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_start(ndr, r->printername));
362 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
363 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
365 ndr->flags = _flags_save_string;
368 uint32_t _flags_save_string = ndr->flags;
369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
371 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
372 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
373 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
375 ndr->flags = _flags_save_string;
378 return NDR_ERR_SUCCESS;
381 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
383 uint32_t _ptr_printername;
384 TALLOC_CTX *_mem_save_printername_0;
385 uint32_t _ptr_servername;
386 TALLOC_CTX *_mem_save_servername_0;
387 if (ndr_flags & NDR_SCALARS) {
388 NDR_CHECK(ndr_pull_align(ndr, 5));
390 uint32_t _flags_save_string = ndr->flags;
391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
393 if (_ptr_printername) {
394 NDR_PULL_ALLOC(ndr, r->printername);
395 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
397 r->printername = NULL;
399 ndr->flags = _flags_save_string;
402 uint32_t _flags_save_string = ndr->flags;
403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
405 if (_ptr_servername) {
406 NDR_PULL_ALLOC(ndr, r->servername);
407 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
409 r->servername = NULL;
411 ndr->flags = _flags_save_string;
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
416 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
426 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
431 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
432 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
435 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
436 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
440 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
442 if (ndr_flags & NDR_BUFFERS) {
444 uint32_t _flags_save_string = ndr->flags;
445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
446 if (r->printername) {
447 uint32_t _relative_save_offset;
448 _relative_save_offset = ndr->offset;
449 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
450 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
451 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
452 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
454 if (ndr->offset > ndr->relative_highest_offset) {
455 ndr->relative_highest_offset = ndr->offset;
457 ndr->offset = _relative_save_offset;
459 ndr->flags = _flags_save_string;
462 uint32_t _flags_save_string = ndr->flags;
463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
465 uint32_t _relative_save_offset;
466 _relative_save_offset = ndr->offset;
467 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
468 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
469 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
470 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
472 if (ndr->offset > ndr->relative_highest_offset) {
473 ndr->relative_highest_offset = ndr->offset;
475 ndr->offset = _relative_save_offset;
477 ndr->flags = _flags_save_string;
480 return NDR_ERR_SUCCESS;
483 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
485 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
487 ndr_print_ptr(ndr, "printername", r->printername);
489 if (r->printername) {
490 ndr_print_string(ndr, "printername", r->printername);
493 ndr_print_ptr(ndr, "servername", r->servername);
496 ndr_print_string(ndr, "servername", r->servername);
499 ndr_print_uint32(ndr, "cjobs", r->cjobs);
500 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
501 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
502 ndr_print_spoolss_Time(ndr, "time", &r->time);
503 ndr_print_uint32(ndr, "global_counter", r->global_counter);
504 ndr_print_uint32(ndr, "total_pages", r->total_pages);
505 ndr_print_uint32(ndr, "version", r->version);
506 ndr_print_uint32(ndr, "free_build", r->free_build);
507 ndr_print_uint32(ndr, "spooling", r->spooling);
508 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
509 ndr_print_uint32(ndr, "session_counter", r->session_counter);
510 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
511 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
512 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
513 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
514 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
515 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
516 ndr_print_uint32(ndr, "change_id", r->change_id);
517 ndr_print_WERROR(ndr, "last_error", r->last_error);
518 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
519 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
520 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
521 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
522 ndr_print_uint16(ndr, "processor_level", r->processor_level);
523 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
524 ndr_print_uint32(ndr, "reserved2", r->reserved2);
525 ndr_print_uint32(ndr, "reserved3", r->reserved3);
529 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
531 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
534 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
537 return NDR_ERR_SUCCESS;
540 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
545 return NDR_ERR_SUCCESS;
548 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
550 ndr_print_uint32(ndr, name, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
571 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
572 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
573 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
574 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
575 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
576 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
577 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
578 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
583 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
585 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
586 return NDR_ERR_SUCCESS;
589 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
592 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
594 return NDR_ERR_SUCCESS;
597 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
599 const char *val = NULL;
602 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
603 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
604 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
606 ndr_print_enum(ndr, name, "ENUM", val, r);
609 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
611 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
612 return NDR_ERR_SUCCESS;
615 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
618 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
620 return NDR_ERR_SUCCESS;
623 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
625 const char *val = NULL;
628 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
629 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
631 ndr_print_enum(ndr, name, "ENUM", val, r);
634 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
636 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
637 return NDR_ERR_SUCCESS;
640 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
643 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
645 return NDR_ERR_SUCCESS;
648 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
650 const char *val = NULL;
653 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
654 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
655 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
656 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
657 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
658 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
659 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
660 case DMPAPER_A3: val = "DMPAPER_A3"; break;
661 case DMPAPER_A4: val = "DMPAPER_A4"; break;
662 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
663 case DMPAPER_A5: val = "DMPAPER_A5"; break;
664 case DMPAPER_B4: val = "DMPAPER_B4"; break;
665 case DMPAPER_B5: val = "DMPAPER_B5"; break;
666 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
667 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
668 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
669 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
670 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
671 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
672 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
673 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
674 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
675 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
676 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
677 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
678 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
679 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
680 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
681 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
682 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
683 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
684 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
685 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
686 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
687 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
688 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
689 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
690 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
691 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
692 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
693 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
694 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
695 case DMPAPER_A6: val = "DMPAPER_A6"; break;
696 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
697 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
698 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
699 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
700 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
701 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
702 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
703 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
704 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
705 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
706 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
707 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
708 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
709 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
710 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
711 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
712 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
713 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
714 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
715 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
716 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
717 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
718 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
719 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
720 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
721 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
722 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
723 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
724 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
725 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
726 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
727 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
728 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
729 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
730 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
731 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
732 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
733 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
734 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
735 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
736 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
737 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
738 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
739 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
740 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
741 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
742 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
743 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
745 ndr_print_enum(ndr, name, "ENUM", val, r);
748 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
750 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
751 return NDR_ERR_SUCCESS;
754 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
757 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
759 return NDR_ERR_SUCCESS;
762 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
764 const char *val = NULL;
767 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
768 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
769 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
770 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
771 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
772 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
773 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
774 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
775 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
776 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
777 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
778 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
779 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
781 ndr_print_enum(ndr, name, "ENUM", val, r);
784 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
786 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
787 return NDR_ERR_SUCCESS;
790 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
793 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
795 return NDR_ERR_SUCCESS;
798 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
800 const char *val = NULL;
803 case DMRES_HIGH: val = "DMRES_HIGH"; break;
804 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
805 case DMRES_LOW: val = "DMRES_LOW"; break;
806 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
808 ndr_print_enum(ndr, name, "ENUM", val, r);
811 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
813 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
814 return NDR_ERR_SUCCESS;
817 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
820 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
822 return NDR_ERR_SUCCESS;
825 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
827 const char *val = NULL;
830 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
831 case DMRES_COLOR: val = "DMRES_COLOR"; break;
833 ndr_print_enum(ndr, name, "ENUM", val, r);
836 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
838 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
839 return NDR_ERR_SUCCESS;
842 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
845 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
847 return NDR_ERR_SUCCESS;
850 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
852 const char *val = NULL;
855 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
856 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
857 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
859 ndr_print_enum(ndr, name, "ENUM", val, r);
862 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
864 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
865 return NDR_ERR_SUCCESS;
868 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
871 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
873 return NDR_ERR_SUCCESS;
876 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
878 const char *val = NULL;
881 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
882 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
883 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
884 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
886 ndr_print_enum(ndr, name, "ENUM", val, r);
889 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
891 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
892 return NDR_ERR_SUCCESS;
895 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
898 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
900 return NDR_ERR_SUCCESS;
903 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
905 const char *val = NULL;
908 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
909 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
911 ndr_print_enum(ndr, name, "ENUM", val, r);
914 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
916 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
917 return NDR_ERR_SUCCESS;
920 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
923 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
925 return NDR_ERR_SUCCESS;
928 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
930 const char *val = NULL;
933 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
934 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
936 ndr_print_enum(ndr, name, "ENUM", val, r);
939 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
941 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
942 return NDR_ERR_SUCCESS;
945 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
948 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
950 return NDR_ERR_SUCCESS;
953 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
955 const char *val = NULL;
958 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
959 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
960 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
961 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
963 ndr_print_enum(ndr, name, "ENUM", val, r);
966 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
968 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
969 return NDR_ERR_SUCCESS;
972 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
975 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
977 return NDR_ERR_SUCCESS;
980 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
982 const char *val = NULL;
985 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
986 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
987 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
988 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
990 ndr_print_enum(ndr, name, "ENUM", val, r);
993 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
995 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
996 return NDR_ERR_SUCCESS;
999 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
1002 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1004 return NDR_ERR_SUCCESS;
1007 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1009 const char *val = NULL;
1012 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1013 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1014 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1016 ndr_print_enum(ndr, name, "ENUM", val, r);
1019 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1021 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1022 return NDR_ERR_SUCCESS;
1025 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1028 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1030 return NDR_ERR_SUCCESS;
1033 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1035 const char *val = NULL;
1038 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1039 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1040 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1041 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1042 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1043 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1044 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1045 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1046 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1047 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1049 ndr_print_enum(ndr, name, "ENUM", val, r);
1052 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1054 if (ndr_flags & NDR_SCALARS) {
1055 NDR_CHECK(ndr_push_align(ndr, 4));
1056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1057 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1058 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1059 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1060 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1061 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1062 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1063 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1064 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1065 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1066 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1067 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1068 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1069 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1070 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1071 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1072 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1073 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1074 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1075 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1076 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1080 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1082 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1083 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1084 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1085 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1091 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1094 struct ndr_push *_ndr_driverextra_data;
1095 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1096 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1097 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1099 ndr->flags = _flags_save_DATA_BLOB;
1101 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1103 if (ndr_flags & NDR_BUFFERS) {
1105 return NDR_ERR_SUCCESS;
1108 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1110 if (ndr_flags & NDR_SCALARS) {
1111 NDR_CHECK(ndr_pull_align(ndr, 4));
1112 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1113 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1114 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1115 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1116 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1117 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1118 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1119 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1120 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1121 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1122 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1123 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1124 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1125 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1126 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1127 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1129 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1130 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1131 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1132 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1133 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1136 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1138 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1139 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1140 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1141 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1147 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1150 struct ndr_pull *_ndr_driverextra_data;
1151 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1152 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1153 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1155 ndr->flags = _flags_save_DATA_BLOB;
1157 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1159 if (ndr_flags & NDR_BUFFERS) {
1161 return NDR_ERR_SUCCESS;
1164 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1166 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1168 ndr_print_string(ndr, "devicename", r->devicename);
1169 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1170 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1171 ndr_print_uint16(ndr, "size", r->size);
1172 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1173 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1174 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1175 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1176 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1177 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1178 ndr_print_uint16(ndr, "scale", r->scale);
1179 ndr_print_uint16(ndr, "copies", r->copies);
1180 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1181 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1182 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1183 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1184 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1185 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1186 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1187 ndr_print_string(ndr, "formname", r->formname);
1188 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1189 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1190 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1191 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1192 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1193 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1194 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1195 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1196 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1197 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1198 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1199 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1200 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1201 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1202 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1206 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
1208 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
1211 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1214 return NDR_ERR_SUCCESS;
1217 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1222 return NDR_ERR_SUCCESS;
1225 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1227 ndr_print_uint32(ndr, name, r);
1229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1231 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1232 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1233 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1234 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1235 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1236 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1237 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1238 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1239 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1240 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1251 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1254 return NDR_ERR_SUCCESS;
1257 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1262 return NDR_ERR_SUCCESS;
1265 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1267 ndr_print_uint32(ndr, name, r);
1269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1277 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1278 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1279 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1280 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1281 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1282 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1283 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1284 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1288 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1290 if (ndr_flags & NDR_SCALARS) {
1291 NDR_CHECK(ndr_push_align(ndr, 5));
1292 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
1294 uint32_t _flags_save_string = ndr->flags;
1295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1297 ndr->flags = _flags_save_string;
1300 uint32_t _flags_save_string = ndr->flags;
1301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1302 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1303 ndr->flags = _flags_save_string;
1306 uint32_t _flags_save_string = ndr->flags;
1307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1308 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1309 ndr->flags = _flags_save_string;
1311 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1313 if (ndr_flags & NDR_BUFFERS) {
1315 uint32_t _flags_save_string = ndr->flags;
1316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1317 if (r->description) {
1318 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
1319 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1320 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
1322 ndr->flags = _flags_save_string;
1325 uint32_t _flags_save_string = ndr->flags;
1326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1328 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
1329 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1330 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
1332 ndr->flags = _flags_save_string;
1335 uint32_t _flags_save_string = ndr->flags;
1336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1338 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1339 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1340 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1342 ndr->flags = _flags_save_string;
1345 return NDR_ERR_SUCCESS;
1348 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1350 uint32_t _ptr_description;
1351 TALLOC_CTX *_mem_save_description_0;
1353 TALLOC_CTX *_mem_save_name_0;
1354 uint32_t _ptr_comment;
1355 TALLOC_CTX *_mem_save_comment_0;
1356 if (ndr_flags & NDR_SCALARS) {
1357 NDR_CHECK(ndr_pull_align(ndr, 5));
1358 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
1360 uint32_t _flags_save_string = ndr->flags;
1361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1363 if (_ptr_description) {
1364 NDR_PULL_ALLOC(ndr, r->description);
1365 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1367 r->description = NULL;
1369 ndr->flags = _flags_save_string;
1372 uint32_t _flags_save_string = ndr->flags;
1373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1376 NDR_PULL_ALLOC(ndr, r->name);
1377 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1381 ndr->flags = _flags_save_string;
1384 uint32_t _flags_save_string = ndr->flags;
1385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1386 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1388 NDR_PULL_ALLOC(ndr, r->comment);
1389 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1393 ndr->flags = _flags_save_string;
1395 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1397 if (ndr_flags & NDR_BUFFERS) {
1399 uint32_t _flags_save_string = ndr->flags;
1400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1401 if (r->description) {
1402 uint32_t _relative_save_offset;
1403 _relative_save_offset = ndr->offset;
1404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1405 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1406 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1409 if (ndr->offset > ndr->relative_highest_offset) {
1410 ndr->relative_highest_offset = ndr->offset;
1412 ndr->offset = _relative_save_offset;
1414 ndr->flags = _flags_save_string;
1417 uint32_t _flags_save_string = ndr->flags;
1418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1420 uint32_t _relative_save_offset;
1421 _relative_save_offset = ndr->offset;
1422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1423 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1424 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1427 if (ndr->offset > ndr->relative_highest_offset) {
1428 ndr->relative_highest_offset = ndr->offset;
1430 ndr->offset = _relative_save_offset;
1432 ndr->flags = _flags_save_string;
1435 uint32_t _flags_save_string = ndr->flags;
1436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1438 uint32_t _relative_save_offset;
1439 _relative_save_offset = ndr->offset;
1440 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1441 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1442 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1443 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1445 if (ndr->offset > ndr->relative_highest_offset) {
1446 ndr->relative_highest_offset = ndr->offset;
1448 ndr->offset = _relative_save_offset;
1450 ndr->flags = _flags_save_string;
1453 return NDR_ERR_SUCCESS;
1456 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1458 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1460 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
1461 ndr_print_ptr(ndr, "description", r->description);
1463 if (r->description) {
1464 ndr_print_string(ndr, "description", r->description);
1467 ndr_print_ptr(ndr, "name", r->name);
1470 ndr_print_string(ndr, "name", r->name);
1473 ndr_print_ptr(ndr, "comment", r->comment);
1476 ndr_print_string(ndr, "comment", r->comment);
1482 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
1484 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
1487 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
1489 if (ndr_flags & NDR_SCALARS) {
1490 NDR_CHECK(ndr_push_align(ndr, 5));
1492 uint32_t _flags_save_string = ndr->flags;
1493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1494 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1495 ndr->flags = _flags_save_string;
1498 uint32_t _flags_save_string = ndr->flags;
1499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1500 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1501 ndr->flags = _flags_save_string;
1504 uint32_t _flags_save_string = ndr->flags;
1505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1506 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1507 ndr->flags = _flags_save_string;
1510 uint32_t _flags_save_string = ndr->flags;
1511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1512 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1513 ndr->flags = _flags_save_string;
1516 uint32_t _flags_save_string = ndr->flags;
1517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1518 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1519 ndr->flags = _flags_save_string;
1522 uint32_t _flags_save_string = ndr->flags;
1523 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1524 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1525 ndr->flags = _flags_save_string;
1528 uint32_t _flags_save_string = ndr->flags;
1529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1530 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1531 ndr->flags = _flags_save_string;
1533 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1535 uint32_t _flags_save_string = ndr->flags;
1536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1538 ndr->flags = _flags_save_string;
1541 uint32_t _flags_save_string = ndr->flags;
1542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1544 ndr->flags = _flags_save_string;
1547 uint32_t _flags_save_string = ndr->flags;
1548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1550 ndr->flags = _flags_save_string;
1553 uint32_t _flags_save_string = ndr->flags;
1554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1556 ndr->flags = _flags_save_string;
1558 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1559 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1564 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1567 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1569 if (ndr_flags & NDR_BUFFERS) {
1571 uint32_t _flags_save_string = ndr->flags;
1572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1573 if (r->servername) {
1574 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
1575 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1576 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
1578 ndr->flags = _flags_save_string;
1581 uint32_t _flags_save_string = ndr->flags;
1582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1583 if (r->printername) {
1584 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
1585 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1586 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
1588 ndr->flags = _flags_save_string;
1591 uint32_t _flags_save_string = ndr->flags;
1592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1594 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->sharename));
1595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1596 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->sharename));
1598 ndr->flags = _flags_save_string;
1601 uint32_t _flags_save_string = ndr->flags;
1602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1604 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
1605 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1606 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
1608 ndr->flags = _flags_save_string;
1611 uint32_t _flags_save_string = ndr->flags;
1612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1613 if (r->drivername) {
1614 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->drivername));
1615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1616 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->drivername));
1618 ndr->flags = _flags_save_string;
1621 uint32_t _flags_save_string = ndr->flags;
1622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1624 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1625 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1626 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1628 ndr->flags = _flags_save_string;
1631 uint32_t _flags_save_string = ndr->flags;
1632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1634 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->location));
1635 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1636 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->location));
1638 ndr->flags = _flags_save_string;
1641 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
1643 struct ndr_push *_ndr_devmode;
1644 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1645 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1646 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1648 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
1651 uint32_t _flags_save_string = ndr->flags;
1652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1654 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->sepfile));
1655 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1656 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->sepfile));
1658 ndr->flags = _flags_save_string;
1661 uint32_t _flags_save_string = ndr->flags;
1662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1663 if (r->printprocessor) {
1664 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printprocessor));
1665 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1666 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printprocessor));
1668 ndr->flags = _flags_save_string;
1671 uint32_t _flags_save_string = ndr->flags;
1672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1674 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->datatype));
1675 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1676 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->datatype));
1678 ndr->flags = _flags_save_string;
1681 uint32_t _flags_save_string = ndr->flags;
1682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1683 if (r->parameters) {
1684 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
1685 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1686 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
1688 ndr->flags = _flags_save_string;
1691 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
1693 struct ndr_push *_ndr_secdesc;
1694 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1695 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1696 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1698 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
1701 return NDR_ERR_SUCCESS;
1704 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1706 uint32_t _ptr_servername;
1707 TALLOC_CTX *_mem_save_servername_0;
1708 uint32_t _ptr_printername;
1709 TALLOC_CTX *_mem_save_printername_0;
1710 uint32_t _ptr_sharename;
1711 TALLOC_CTX *_mem_save_sharename_0;
1712 uint32_t _ptr_portname;
1713 TALLOC_CTX *_mem_save_portname_0;
1714 uint32_t _ptr_drivername;
1715 TALLOC_CTX *_mem_save_drivername_0;
1716 uint32_t _ptr_comment;
1717 TALLOC_CTX *_mem_save_comment_0;
1718 uint32_t _ptr_location;
1719 TALLOC_CTX *_mem_save_location_0;
1720 uint32_t _ptr_devmode;
1721 TALLOC_CTX *_mem_save_devmode_0;
1722 uint32_t _ptr_sepfile;
1723 TALLOC_CTX *_mem_save_sepfile_0;
1724 uint32_t _ptr_printprocessor;
1725 TALLOC_CTX *_mem_save_printprocessor_0;
1726 uint32_t _ptr_datatype;
1727 TALLOC_CTX *_mem_save_datatype_0;
1728 uint32_t _ptr_parameters;
1729 TALLOC_CTX *_mem_save_parameters_0;
1730 uint32_t _ptr_secdesc;
1731 TALLOC_CTX *_mem_save_secdesc_0;
1732 if (ndr_flags & NDR_SCALARS) {
1733 NDR_CHECK(ndr_pull_align(ndr, 5));
1735 uint32_t _flags_save_string = ndr->flags;
1736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1738 if (_ptr_servername) {
1739 NDR_PULL_ALLOC(ndr, r->servername);
1740 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1742 r->servername = NULL;
1744 ndr->flags = _flags_save_string;
1747 uint32_t _flags_save_string = ndr->flags;
1748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1750 if (_ptr_printername) {
1751 NDR_PULL_ALLOC(ndr, r->printername);
1752 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1754 r->printername = NULL;
1756 ndr->flags = _flags_save_string;
1759 uint32_t _flags_save_string = ndr->flags;
1760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1762 if (_ptr_sharename) {
1763 NDR_PULL_ALLOC(ndr, r->sharename);
1764 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1766 r->sharename = NULL;
1768 ndr->flags = _flags_save_string;
1771 uint32_t _flags_save_string = ndr->flags;
1772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1773 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1774 if (_ptr_portname) {
1775 NDR_PULL_ALLOC(ndr, r->portname);
1776 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1780 ndr->flags = _flags_save_string;
1783 uint32_t _flags_save_string = ndr->flags;
1784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1785 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1786 if (_ptr_drivername) {
1787 NDR_PULL_ALLOC(ndr, r->drivername);
1788 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1790 r->drivername = NULL;
1792 ndr->flags = _flags_save_string;
1795 uint32_t _flags_save_string = ndr->flags;
1796 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1799 NDR_PULL_ALLOC(ndr, r->comment);
1800 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1804 ndr->flags = _flags_save_string;
1807 uint32_t _flags_save_string = ndr->flags;
1808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1809 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1810 if (_ptr_location) {
1811 NDR_PULL_ALLOC(ndr, r->location);
1812 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1816 ndr->flags = _flags_save_string;
1818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1820 NDR_PULL_ALLOC(ndr, r->devmode);
1821 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1826 uint32_t _flags_save_string = ndr->flags;
1827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1830 NDR_PULL_ALLOC(ndr, r->sepfile);
1831 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1835 ndr->flags = _flags_save_string;
1838 uint32_t _flags_save_string = ndr->flags;
1839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1841 if (_ptr_printprocessor) {
1842 NDR_PULL_ALLOC(ndr, r->printprocessor);
1843 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1845 r->printprocessor = NULL;
1847 ndr->flags = _flags_save_string;
1850 uint32_t _flags_save_string = ndr->flags;
1851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1853 if (_ptr_datatype) {
1854 NDR_PULL_ALLOC(ndr, r->datatype);
1855 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1859 ndr->flags = _flags_save_string;
1862 uint32_t _flags_save_string = ndr->flags;
1863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1865 if (_ptr_parameters) {
1866 NDR_PULL_ALLOC(ndr, r->parameters);
1867 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1869 r->parameters = NULL;
1871 ndr->flags = _flags_save_string;
1873 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1875 NDR_PULL_ALLOC(ndr, r->secdesc);
1876 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1880 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1882 if (r->priority > 99) {
1883 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
1885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1886 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1888 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1891 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1893 if (ndr_flags & NDR_BUFFERS) {
1895 uint32_t _flags_save_string = ndr->flags;
1896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1897 if (r->servername) {
1898 uint32_t _relative_save_offset;
1899 _relative_save_offset = ndr->offset;
1900 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1901 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1902 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1903 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_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);
1915 if (r->printername) {
1916 uint32_t _relative_save_offset;
1917 _relative_save_offset = ndr->offset;
1918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1919 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1920 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_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->sharename));
1937 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1938 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1939 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_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);
1952 uint32_t _relative_save_offset;
1953 _relative_save_offset = ndr->offset;
1954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1955 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1956 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1957 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_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);
1969 if (r->drivername) {
1970 uint32_t _relative_save_offset;
1971 _relative_save_offset = ndr->offset;
1972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1973 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1974 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_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->comment));
1991 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1992 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1993 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_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 _flags_save_string = ndr->flags;
2004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2006 uint32_t _relative_save_offset;
2007 _relative_save_offset = ndr->offset;
2008 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
2009 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
2010 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
2011 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
2012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
2013 if (ndr->offset > ndr->relative_highest_offset) {
2014 ndr->relative_highest_offset = ndr->offset;
2016 ndr->offset = _relative_save_offset;
2018 ndr->flags = _flags_save_string;
2021 uint32_t _relative_save_offset;
2022 _relative_save_offset = ndr->offset;
2023 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2024 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2025 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2027 struct ndr_pull *_ndr_devmode;
2028 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2029 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2030 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2033 if (ndr->offset > ndr->relative_highest_offset) {
2034 ndr->relative_highest_offset = ndr->offset;
2036 ndr->offset = _relative_save_offset;
2039 uint32_t _flags_save_string = ndr->flags;
2040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2042 uint32_t _relative_save_offset;
2043 _relative_save_offset = ndr->offset;
2044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2045 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2046 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2047 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_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);
2059 if (r->printprocessor) {
2060 uint32_t _relative_save_offset;
2061 _relative_save_offset = ndr->offset;
2062 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2063 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2064 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2065 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_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);
2078 uint32_t _relative_save_offset;
2079 _relative_save_offset = ndr->offset;
2080 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2081 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2082 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2083 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_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 _flags_save_string = ndr->flags;
2094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2095 if (r->parameters) {
2096 uint32_t _relative_save_offset;
2097 _relative_save_offset = ndr->offset;
2098 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2099 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2100 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2101 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2103 if (ndr->offset > ndr->relative_highest_offset) {
2104 ndr->relative_highest_offset = ndr->offset;
2106 ndr->offset = _relative_save_offset;
2108 ndr->flags = _flags_save_string;
2111 uint32_t _relative_save_offset;
2112 _relative_save_offset = ndr->offset;
2113 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2114 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2115 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2117 struct ndr_pull *_ndr_secdesc;
2118 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2119 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2120 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2123 if (ndr->offset > ndr->relative_highest_offset) {
2124 ndr->relative_highest_offset = ndr->offset;
2126 ndr->offset = _relative_save_offset;
2129 return NDR_ERR_SUCCESS;
2132 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2134 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2136 ndr_print_ptr(ndr, "servername", r->servername);
2138 if (r->servername) {
2139 ndr_print_string(ndr, "servername", r->servername);
2142 ndr_print_ptr(ndr, "printername", r->printername);
2144 if (r->printername) {
2145 ndr_print_string(ndr, "printername", r->printername);
2148 ndr_print_ptr(ndr, "sharename", r->sharename);
2151 ndr_print_string(ndr, "sharename", r->sharename);
2154 ndr_print_ptr(ndr, "portname", r->portname);
2157 ndr_print_string(ndr, "portname", r->portname);
2160 ndr_print_ptr(ndr, "drivername", r->drivername);
2162 if (r->drivername) {
2163 ndr_print_string(ndr, "drivername", r->drivername);
2166 ndr_print_ptr(ndr, "comment", r->comment);
2169 ndr_print_string(ndr, "comment", r->comment);
2172 ndr_print_ptr(ndr, "location", r->location);
2175 ndr_print_string(ndr, "location", r->location);
2178 ndr_print_ptr(ndr, "devmode", r->devmode);
2181 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2184 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2187 ndr_print_string(ndr, "sepfile", r->sepfile);
2190 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2192 if (r->printprocessor) {
2193 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2196 ndr_print_ptr(ndr, "datatype", r->datatype);
2199 ndr_print_string(ndr, "datatype", r->datatype);
2202 ndr_print_ptr(ndr, "parameters", r->parameters);
2204 if (r->parameters) {
2205 ndr_print_string(ndr, "parameters", r->parameters);
2208 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2211 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2214 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2215 ndr_print_uint32(ndr, "priority", r->priority);
2216 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2217 ndr_print_uint32(ndr, "starttime", r->starttime);
2218 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2219 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2220 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2221 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2225 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
2227 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
2230 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2232 if (ndr_flags & NDR_SCALARS) {
2233 NDR_CHECK(ndr_push_align(ndr, 5));
2234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2235 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2237 if (ndr_flags & NDR_BUFFERS) {
2239 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
2241 struct ndr_push *_ndr_secdesc;
2242 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2243 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2244 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2246 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
2249 return NDR_ERR_SUCCESS;
2252 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2254 uint32_t _ptr_secdesc;
2255 TALLOC_CTX *_mem_save_secdesc_0;
2256 if (ndr_flags & NDR_SCALARS) {
2257 NDR_CHECK(ndr_pull_align(ndr, 5));
2258 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2260 NDR_PULL_ALLOC(ndr, r->secdesc);
2261 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2265 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2267 if (ndr_flags & NDR_BUFFERS) {
2269 uint32_t _relative_save_offset;
2270 _relative_save_offset = ndr->offset;
2271 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2272 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2273 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2275 struct ndr_pull *_ndr_secdesc;
2276 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2277 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2278 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2281 if (ndr->offset > ndr->relative_highest_offset) {
2282 ndr->relative_highest_offset = ndr->offset;
2284 ndr->offset = _relative_save_offset;
2287 return NDR_ERR_SUCCESS;
2290 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2292 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2294 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2297 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
2303 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
2305 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
2308 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2310 if (ndr_flags & NDR_SCALARS) {
2311 NDR_CHECK(ndr_push_align(ndr, 5));
2313 uint32_t _flags_save_string = ndr->flags;
2314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2315 NDR_CHECK(ndr_push_relative_ptr1(ndr, 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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2322 ndr->flags = _flags_save_string;
2324 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2325 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2327 if (ndr_flags & NDR_BUFFERS) {
2329 uint32_t _flags_save_string = ndr->flags;
2330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2331 if (r->printername) {
2332 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2333 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2334 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2336 ndr->flags = _flags_save_string;
2339 uint32_t _flags_save_string = ndr->flags;
2340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2341 if (r->servername) {
2342 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
2343 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2344 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
2346 ndr->flags = _flags_save_string;
2349 return NDR_ERR_SUCCESS;
2352 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2354 uint32_t _ptr_printername;
2355 TALLOC_CTX *_mem_save_printername_0;
2356 uint32_t _ptr_servername;
2357 TALLOC_CTX *_mem_save_servername_0;
2358 if (ndr_flags & NDR_SCALARS) {
2359 NDR_CHECK(ndr_pull_align(ndr, 5));
2361 uint32_t _flags_save_string = ndr->flags;
2362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2364 if (_ptr_printername) {
2365 NDR_PULL_ALLOC(ndr, r->printername);
2366 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2368 r->printername = NULL;
2370 ndr->flags = _flags_save_string;
2373 uint32_t _flags_save_string = ndr->flags;
2374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2376 if (_ptr_servername) {
2377 NDR_PULL_ALLOC(ndr, r->servername);
2378 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2380 r->servername = NULL;
2382 ndr->flags = _flags_save_string;
2384 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2385 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2387 if (ndr_flags & NDR_BUFFERS) {
2389 uint32_t _flags_save_string = ndr->flags;
2390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2391 if (r->printername) {
2392 uint32_t _relative_save_offset;
2393 _relative_save_offset = ndr->offset;
2394 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2395 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2396 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2397 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2399 if (ndr->offset > ndr->relative_highest_offset) {
2400 ndr->relative_highest_offset = ndr->offset;
2402 ndr->offset = _relative_save_offset;
2404 ndr->flags = _flags_save_string;
2407 uint32_t _flags_save_string = ndr->flags;
2408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2409 if (r->servername) {
2410 uint32_t _relative_save_offset;
2411 _relative_save_offset = ndr->offset;
2412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2413 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2414 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2417 if (ndr->offset > ndr->relative_highest_offset) {
2418 ndr->relative_highest_offset = ndr->offset;
2420 ndr->offset = _relative_save_offset;
2422 ndr->flags = _flags_save_string;
2425 return NDR_ERR_SUCCESS;
2428 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2430 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2432 ndr_print_ptr(ndr, "printername", r->printername);
2434 if (r->printername) {
2435 ndr_print_string(ndr, "printername", r->printername);
2438 ndr_print_ptr(ndr, "servername", r->servername);
2440 if (r->servername) {
2441 ndr_print_string(ndr, "servername", r->servername);
2444 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2448 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
2450 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
2453 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2455 if (ndr_flags & NDR_SCALARS) {
2456 NDR_CHECK(ndr_push_align(ndr, 5));
2458 uint32_t _flags_save_string = ndr->flags;
2459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2460 NDR_CHECK(ndr_push_relative_ptr1(ndr, 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);
2466 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2467 ndr->flags = _flags_save_string;
2469 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2472 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2474 if (ndr_flags & NDR_BUFFERS) {
2476 uint32_t _flags_save_string = ndr->flags;
2477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2478 if (r->printername) {
2479 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2480 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2481 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2483 ndr->flags = _flags_save_string;
2486 uint32_t _flags_save_string = ndr->flags;
2487 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2489 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
2490 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2491 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
2493 ndr->flags = _flags_save_string;
2496 return NDR_ERR_SUCCESS;
2499 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2501 uint32_t _ptr_printername;
2502 TALLOC_CTX *_mem_save_printername_0;
2503 uint32_t _ptr_portname;
2504 TALLOC_CTX *_mem_save_portname_0;
2505 if (ndr_flags & NDR_SCALARS) {
2506 NDR_CHECK(ndr_pull_align(ndr, 5));
2508 uint32_t _flags_save_string = ndr->flags;
2509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2511 if (_ptr_printername) {
2512 NDR_PULL_ALLOC(ndr, r->printername);
2513 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2515 r->printername = NULL;
2517 ndr->flags = _flags_save_string;
2520 uint32_t _flags_save_string = ndr->flags;
2521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2523 if (_ptr_portname) {
2524 NDR_PULL_ALLOC(ndr, r->portname);
2525 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2529 ndr->flags = _flags_save_string;
2531 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2534 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2536 if (ndr_flags & NDR_BUFFERS) {
2538 uint32_t _flags_save_string = ndr->flags;
2539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2540 if (r->printername) {
2541 uint32_t _relative_save_offset;
2542 _relative_save_offset = ndr->offset;
2543 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2544 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2545 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2546 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2548 if (ndr->offset > ndr->relative_highest_offset) {
2549 ndr->relative_highest_offset = ndr->offset;
2551 ndr->offset = _relative_save_offset;
2553 ndr->flags = _flags_save_string;
2556 uint32_t _flags_save_string = ndr->flags;
2557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2559 uint32_t _relative_save_offset;
2560 _relative_save_offset = ndr->offset;
2561 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2562 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2563 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2564 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2566 if (ndr->offset > ndr->relative_highest_offset) {
2567 ndr->relative_highest_offset = ndr->offset;
2569 ndr->offset = _relative_save_offset;
2571 ndr->flags = _flags_save_string;
2574 return NDR_ERR_SUCCESS;
2577 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2579 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2581 ndr_print_ptr(ndr, "printername", r->printername);
2583 if (r->printername) {
2584 ndr_print_string(ndr, "printername", r->printername);
2587 ndr_print_ptr(ndr, "portname", r->portname);
2590 ndr_print_string(ndr, "portname", r->portname);
2593 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2594 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2595 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2599 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2601 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2604 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2606 if (ndr_flags & NDR_SCALARS) {
2607 NDR_CHECK(ndr_push_align(ndr, 4));
2608 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2609 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2611 if (ndr_flags & NDR_BUFFERS) {
2613 return NDR_ERR_SUCCESS;
2616 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2618 if (ndr_flags & NDR_SCALARS) {
2619 NDR_CHECK(ndr_pull_align(ndr, 4));
2620 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2621 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2623 if (ndr_flags & NDR_BUFFERS) {
2625 return NDR_ERR_SUCCESS;
2628 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2630 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2632 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2636 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2638 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2641 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2644 return NDR_ERR_SUCCESS;
2647 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2652 return NDR_ERR_SUCCESS;
2655 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2657 ndr_print_uint32(ndr, name, r);
2659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2660 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2661 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2662 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2663 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2667 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2669 if (ndr_flags & NDR_SCALARS) {
2670 NDR_CHECK(ndr_push_align(ndr, 5));
2672 uint32_t _flags_save_string = ndr->flags;
2673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2674 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2675 ndr->flags = _flags_save_string;
2677 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2678 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2680 if (ndr_flags & NDR_BUFFERS) {
2682 uint32_t _flags_save_string = ndr->flags;
2683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2685 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
2686 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2687 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
2689 ndr->flags = _flags_save_string;
2692 return NDR_ERR_SUCCESS;
2695 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2698 TALLOC_CTX *_mem_save_guid_0;
2699 if (ndr_flags & NDR_SCALARS) {
2700 NDR_CHECK(ndr_pull_align(ndr, 5));
2702 uint32_t _flags_save_string = ndr->flags;
2703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2706 NDR_PULL_ALLOC(ndr, r->guid);
2707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2711 ndr->flags = _flags_save_string;
2713 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2714 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2716 if (ndr_flags & NDR_BUFFERS) {
2718 uint32_t _flags_save_string = ndr->flags;
2719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2721 uint32_t _relative_save_offset;
2722 _relative_save_offset = ndr->offset;
2723 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2724 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2725 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2726 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2728 if (ndr->offset > ndr->relative_highest_offset) {
2729 ndr->relative_highest_offset = ndr->offset;
2731 ndr->offset = _relative_save_offset;
2733 ndr->flags = _flags_save_string;
2736 return NDR_ERR_SUCCESS;
2739 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2741 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2743 ndr_print_ptr(ndr, "guid", r->guid);
2746 ndr_print_string(ndr, "guid", r->guid);
2749 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2753 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2755 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2758 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2760 if (ndr_flags & NDR_SCALARS) {
2761 NDR_CHECK(ndr_push_align(ndr, 5));
2762 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2763 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2765 if (ndr_flags & NDR_BUFFERS) {
2767 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2769 struct ndr_push *_ndr_devmode;
2770 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2771 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2772 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2774 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2777 return NDR_ERR_SUCCESS;
2780 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2782 uint32_t _ptr_devmode;
2783 TALLOC_CTX *_mem_save_devmode_0;
2784 if (ndr_flags & NDR_SCALARS) {
2785 NDR_CHECK(ndr_pull_align(ndr, 5));
2786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2788 NDR_PULL_ALLOC(ndr, r->devmode);
2789 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2793 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2795 if (ndr_flags & NDR_BUFFERS) {
2797 uint32_t _relative_save_offset;
2798 _relative_save_offset = ndr->offset;
2799 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2800 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2801 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2803 struct ndr_pull *_ndr_devmode;
2804 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2805 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2806 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2809 if (ndr->offset > ndr->relative_highest_offset) {
2810 ndr->relative_highest_offset = ndr->offset;
2812 ndr->offset = _relative_save_offset;
2815 return NDR_ERR_SUCCESS;
2818 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2820 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2822 ndr_print_ptr(ndr, "devmode", r->devmode);
2825 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2831 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2833 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2834 if (ndr_flags & NDR_SCALARS) {
2835 int level = ndr_push_get_switch_value(ndr, r);
2836 NDR_CHECK(ndr_push_union_align(ndr, 5));
2839 NDR_CHECK(ndr_push_align(ndr, 5));
2840 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2841 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2845 NDR_CHECK(ndr_push_align(ndr, 5));
2846 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2847 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2851 NDR_CHECK(ndr_push_align(ndr, 5));
2852 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2853 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2857 NDR_CHECK(ndr_push_align(ndr, 5));
2858 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2859 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2863 NDR_CHECK(ndr_push_align(ndr, 5));
2864 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2865 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2869 NDR_CHECK(ndr_push_align(ndr, 5));
2870 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2871 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2875 NDR_CHECK(ndr_push_align(ndr, 4));
2876 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2877 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2881 NDR_CHECK(ndr_push_align(ndr, 5));
2882 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2883 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2887 NDR_CHECK(ndr_push_align(ndr, 5));
2888 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2889 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2893 NDR_CHECK(ndr_push_align(ndr, 5));
2894 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2895 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2903 if (ndr_flags & NDR_BUFFERS) {
2904 int level = ndr_push_get_switch_value(ndr, r);
2905 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2908 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2912 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2916 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2920 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2924 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2928 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2935 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2939 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2943 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2951 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2952 return NDR_ERR_SUCCESS;
2955 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2957 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2959 level = ndr_pull_get_switch_value(ndr, r);
2960 if (ndr_flags & NDR_SCALARS) {
2961 NDR_CHECK(ndr_pull_union_align(ndr, 5));
2964 NDR_CHECK(ndr_pull_align(ndr, 5));
2965 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2966 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2970 NDR_CHECK(ndr_pull_align(ndr, 5));
2971 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2972 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2976 NDR_CHECK(ndr_pull_align(ndr, 5));
2977 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2978 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2982 NDR_CHECK(ndr_pull_align(ndr, 5));
2983 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2984 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2988 NDR_CHECK(ndr_pull_align(ndr, 5));
2989 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2990 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2994 NDR_CHECK(ndr_pull_align(ndr, 5));
2995 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2996 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3000 NDR_CHECK(ndr_pull_align(ndr, 4));
3001 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3002 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3006 NDR_CHECK(ndr_pull_align(ndr, 5));
3007 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3008 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3012 NDR_CHECK(ndr_pull_align(ndr, 5));
3013 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3014 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3018 NDR_CHECK(ndr_pull_align(ndr, 5));
3019 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3020 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3028 if (ndr_flags & NDR_BUFFERS) {
3029 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3032 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3036 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3040 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3044 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3048 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3052 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3059 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3063 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3067 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3075 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3076 return NDR_ERR_SUCCESS;
3079 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3082 level = ndr_print_get_switch_value(ndr, r);
3083 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3086 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3090 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3094 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3098 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3102 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3106 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3110 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3114 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3118 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3122 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3131 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
3133 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
3136 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3138 if (ndr_flags & NDR_SCALARS) {
3139 NDR_CHECK(ndr_push_align(ndr, 5));
3140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3141 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3142 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3144 if (ndr_flags & NDR_BUFFERS) {
3147 struct ndr_push *_ndr_devmode;
3148 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3149 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3150 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
3154 return NDR_ERR_SUCCESS;
3157 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3159 uint32_t _ptr_devmode;
3160 TALLOC_CTX *_mem_save_devmode_0;
3161 if (ndr_flags & NDR_SCALARS) {
3162 NDR_CHECK(ndr_pull_align(ndr, 5));
3163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3164 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3166 NDR_PULL_ALLOC(ndr, r->devmode);
3170 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3172 if (ndr_flags & NDR_BUFFERS) {
3174 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3175 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3177 struct ndr_pull *_ndr_devmode;
3178 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3179 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3180 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3185 return NDR_ERR_SUCCESS;
3188 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3190 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3192 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);
3193 ndr_print_ptr(ndr, "devmode", r->devmode);
3196 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3202 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3204 if (ndr_flags & NDR_SCALARS) {
3205 NDR_CHECK(ndr_push_align(ndr, 5));
3206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3208 uint32_t _flags_save_string = ndr->flags;
3209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3210 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3211 ndr->flags = _flags_save_string;
3214 uint32_t _flags_save_string = ndr->flags;
3215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3216 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3217 ndr->flags = _flags_save_string;
3220 uint32_t _flags_save_string = ndr->flags;
3221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3222 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3223 ndr->flags = _flags_save_string;
3226 uint32_t _flags_save_string = ndr->flags;
3227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3228 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3229 ndr->flags = _flags_save_string;
3232 uint32_t _flags_save_string = ndr->flags;
3233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3235 ndr->flags = _flags_save_string;
3238 uint32_t _flags_save_string = ndr->flags;
3239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3241 ndr->flags = _flags_save_string;
3243 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3248 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3249 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3251 if (ndr_flags & NDR_BUFFERS) {
3253 uint32_t _flags_save_string = ndr->flags;
3254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3255 if (r->printer_name) {
3256 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3257 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3258 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3260 ndr->flags = _flags_save_string;
3263 uint32_t _flags_save_string = ndr->flags;
3264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3265 if (r->server_name) {
3266 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3267 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3268 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3270 ndr->flags = _flags_save_string;
3273 uint32_t _flags_save_string = ndr->flags;
3274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3276 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3278 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3280 ndr->flags = _flags_save_string;
3283 uint32_t _flags_save_string = ndr->flags;
3284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3285 if (r->document_name) {
3286 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3287 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3288 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3290 ndr->flags = _flags_save_string;
3293 uint32_t _flags_save_string = ndr->flags;
3294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3296 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3297 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3298 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3300 ndr->flags = _flags_save_string;
3303 uint32_t _flags_save_string = ndr->flags;
3304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3305 if (r->text_status) {
3306 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3307 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3308 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3310 ndr->flags = _flags_save_string;
3313 return NDR_ERR_SUCCESS;
3316 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3318 uint32_t _ptr_printer_name;
3319 TALLOC_CTX *_mem_save_printer_name_0;
3320 uint32_t _ptr_server_name;
3321 TALLOC_CTX *_mem_save_server_name_0;
3322 uint32_t _ptr_user_name;
3323 TALLOC_CTX *_mem_save_user_name_0;
3324 uint32_t _ptr_document_name;
3325 TALLOC_CTX *_mem_save_document_name_0;
3326 uint32_t _ptr_data_type;
3327 TALLOC_CTX *_mem_save_data_type_0;
3328 uint32_t _ptr_text_status;
3329 TALLOC_CTX *_mem_save_text_status_0;
3330 if (ndr_flags & NDR_SCALARS) {
3331 NDR_CHECK(ndr_pull_align(ndr, 5));
3332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3334 uint32_t _flags_save_string = ndr->flags;
3335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3336 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3337 if (_ptr_printer_name) {
3338 NDR_PULL_ALLOC(ndr, r->printer_name);
3339 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3341 r->printer_name = NULL;
3343 ndr->flags = _flags_save_string;
3346 uint32_t _flags_save_string = ndr->flags;
3347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3349 if (_ptr_server_name) {
3350 NDR_PULL_ALLOC(ndr, r->server_name);
3351 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3353 r->server_name = NULL;
3355 ndr->flags = _flags_save_string;
3358 uint32_t _flags_save_string = ndr->flags;
3359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3361 if (_ptr_user_name) {
3362 NDR_PULL_ALLOC(ndr, r->user_name);
3363 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3365 r->user_name = NULL;
3367 ndr->flags = _flags_save_string;
3370 uint32_t _flags_save_string = ndr->flags;
3371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3373 if (_ptr_document_name) {
3374 NDR_PULL_ALLOC(ndr, r->document_name);
3375 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3377 r->document_name = NULL;
3379 ndr->flags = _flags_save_string;
3382 uint32_t _flags_save_string = ndr->flags;
3383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3385 if (_ptr_data_type) {
3386 NDR_PULL_ALLOC(ndr, r->data_type);
3387 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3389 r->data_type = NULL;
3391 ndr->flags = _flags_save_string;
3394 uint32_t _flags_save_string = ndr->flags;
3395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3397 if (_ptr_text_status) {
3398 NDR_PULL_ALLOC(ndr, r->text_status);
3399 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3401 r->text_status = NULL;
3403 ndr->flags = _flags_save_string;
3405 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3407 if (r->priority > 99) {
3408 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3413 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3414 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3416 if (ndr_flags & NDR_BUFFERS) {
3418 uint32_t _flags_save_string = ndr->flags;
3419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3420 if (r->printer_name) {
3421 uint32_t _relative_save_offset;
3422 _relative_save_offset = ndr->offset;
3423 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3424 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3425 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3426 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3428 if (ndr->offset > ndr->relative_highest_offset) {
3429 ndr->relative_highest_offset = ndr->offset;
3431 ndr->offset = _relative_save_offset;
3433 ndr->flags = _flags_save_string;
3436 uint32_t _flags_save_string = ndr->flags;
3437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3438 if (r->server_name) {
3439 uint32_t _relative_save_offset;
3440 _relative_save_offset = ndr->offset;
3441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3442 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3443 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3446 if (ndr->offset > ndr->relative_highest_offset) {
3447 ndr->relative_highest_offset = ndr->offset;
3449 ndr->offset = _relative_save_offset;
3451 ndr->flags = _flags_save_string;
3454 uint32_t _flags_save_string = ndr->flags;
3455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3457 uint32_t _relative_save_offset;
3458 _relative_save_offset = ndr->offset;
3459 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3460 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3461 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3462 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3464 if (ndr->offset > ndr->relative_highest_offset) {
3465 ndr->relative_highest_offset = ndr->offset;
3467 ndr->offset = _relative_save_offset;
3469 ndr->flags = _flags_save_string;
3472 uint32_t _flags_save_string = ndr->flags;
3473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3474 if (r->document_name) {
3475 uint32_t _relative_save_offset;
3476 _relative_save_offset = ndr->offset;
3477 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3478 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3479 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3480 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3482 if (ndr->offset > ndr->relative_highest_offset) {
3483 ndr->relative_highest_offset = ndr->offset;
3485 ndr->offset = _relative_save_offset;
3487 ndr->flags = _flags_save_string;
3490 uint32_t _flags_save_string = ndr->flags;
3491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3493 uint32_t _relative_save_offset;
3494 _relative_save_offset = ndr->offset;
3495 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3496 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3497 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3498 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3500 if (ndr->offset > ndr->relative_highest_offset) {
3501 ndr->relative_highest_offset = ndr->offset;
3503 ndr->offset = _relative_save_offset;
3505 ndr->flags = _flags_save_string;
3508 uint32_t _flags_save_string = ndr->flags;
3509 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3510 if (r->text_status) {
3511 uint32_t _relative_save_offset;
3512 _relative_save_offset = ndr->offset;
3513 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3514 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3515 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3516 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3518 if (ndr->offset > ndr->relative_highest_offset) {
3519 ndr->relative_highest_offset = ndr->offset;
3521 ndr->offset = _relative_save_offset;
3523 ndr->flags = _flags_save_string;
3526 return NDR_ERR_SUCCESS;
3529 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3531 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3533 ndr_print_uint32(ndr, "job_id", r->job_id);
3534 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3536 if (r->printer_name) {
3537 ndr_print_string(ndr, "printer_name", r->printer_name);
3540 ndr_print_ptr(ndr, "server_name", r->server_name);
3542 if (r->server_name) {
3543 ndr_print_string(ndr, "server_name", r->server_name);
3546 ndr_print_ptr(ndr, "user_name", r->user_name);
3549 ndr_print_string(ndr, "user_name", r->user_name);
3552 ndr_print_ptr(ndr, "document_name", r->document_name);
3554 if (r->document_name) {
3555 ndr_print_string(ndr, "document_name", r->document_name);
3558 ndr_print_ptr(ndr, "data_type", r->data_type);
3561 ndr_print_string(ndr, "data_type", r->data_type);
3564 ndr_print_ptr(ndr, "text_status", r->text_status);
3566 if (r->text_status) {
3567 ndr_print_string(ndr, "text_status", r->text_status);
3570 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3571 ndr_print_uint32(ndr, "priority", r->priority);
3572 ndr_print_uint32(ndr, "position", r->position);
3573 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3574 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3575 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3579 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
3581 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
3584 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3586 if (ndr_flags & NDR_SCALARS) {
3587 NDR_CHECK(ndr_push_align(ndr, 5));
3588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3590 uint32_t _flags_save_string = ndr->flags;
3591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3592 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3593 ndr->flags = _flags_save_string;
3596 uint32_t _flags_save_string = ndr->flags;
3597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3598 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3599 ndr->flags = _flags_save_string;
3602 uint32_t _flags_save_string = ndr->flags;
3603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3604 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3605 ndr->flags = _flags_save_string;
3608 uint32_t _flags_save_string = ndr->flags;
3609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3610 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3611 ndr->flags = _flags_save_string;
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->notify_name));
3617 ndr->flags = _flags_save_string;
3620 uint32_t _flags_save_string = ndr->flags;
3621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3622 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3623 ndr->flags = _flags_save_string;
3626 uint32_t _flags_save_string = ndr->flags;
3627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3628 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3629 ndr->flags = _flags_save_string;
3632 uint32_t _flags_save_string = ndr->flags;
3633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3634 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3635 ndr->flags = _flags_save_string;
3638 uint32_t _flags_save_string = ndr->flags;
3639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3640 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3641 ndr->flags = _flags_save_string;
3643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3645 uint32_t _flags_save_string = ndr->flags;
3646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3647 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3648 ndr->flags = _flags_save_string;
3650 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3651 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3658 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3661 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3663 if (ndr_flags & NDR_BUFFERS) {
3665 uint32_t _flags_save_string = ndr->flags;
3666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3667 if (r->printer_name) {
3668 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3669 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3670 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3672 ndr->flags = _flags_save_string;
3675 uint32_t _flags_save_string = ndr->flags;
3676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3677 if (r->server_name) {
3678 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3679 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3680 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3682 ndr->flags = _flags_save_string;
3685 uint32_t _flags_save_string = ndr->flags;
3686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3688 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3689 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3690 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3692 ndr->flags = _flags_save_string;
3695 uint32_t _flags_save_string = ndr->flags;
3696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3697 if (r->document_name) {
3698 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3699 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3700 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3702 ndr->flags = _flags_save_string;
3705 uint32_t _flags_save_string = ndr->flags;
3706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3707 if (r->notify_name) {
3708 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3709 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3710 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3712 ndr->flags = _flags_save_string;
3715 uint32_t _flags_save_string = ndr->flags;
3716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3718 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3719 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3720 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3722 ndr->flags = _flags_save_string;
3725 uint32_t _flags_save_string = ndr->flags;
3726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3727 if (r->print_processor) {
3728 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3730 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3732 ndr->flags = _flags_save_string;
3735 uint32_t _flags_save_string = ndr->flags;
3736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3737 if (r->parameters) {
3738 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3739 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3740 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3742 ndr->flags = _flags_save_string;
3745 uint32_t _flags_save_string = ndr->flags;
3746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3747 if (r->driver_name) {
3748 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3749 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3750 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3752 ndr->flags = _flags_save_string;
3755 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3756 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3757 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3760 uint32_t _flags_save_string = ndr->flags;
3761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3762 if (r->text_status) {
3763 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3764 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3765 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3767 ndr->flags = _flags_save_string;
3770 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
3771 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3772 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
3775 return NDR_ERR_SUCCESS;
3778 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3780 uint32_t _ptr_printer_name;
3781 TALLOC_CTX *_mem_save_printer_name_0;
3782 uint32_t _ptr_server_name;
3783 TALLOC_CTX *_mem_save_server_name_0;
3784 uint32_t _ptr_user_name;
3785 TALLOC_CTX *_mem_save_user_name_0;
3786 uint32_t _ptr_document_name;
3787 TALLOC_CTX *_mem_save_document_name_0;
3788 uint32_t _ptr_notify_name;
3789 TALLOC_CTX *_mem_save_notify_name_0;
3790 uint32_t _ptr_data_type;
3791 TALLOC_CTX *_mem_save_data_type_0;
3792 uint32_t _ptr_print_processor;
3793 TALLOC_CTX *_mem_save_print_processor_0;
3794 uint32_t _ptr_parameters;
3795 TALLOC_CTX *_mem_save_parameters_0;
3796 uint32_t _ptr_driver_name;
3797 TALLOC_CTX *_mem_save_driver_name_0;
3798 uint32_t _ptr_devmode;
3799 TALLOC_CTX *_mem_save_devmode_0;
3800 uint32_t _ptr_text_status;
3801 TALLOC_CTX *_mem_save_text_status_0;
3802 uint32_t _ptr_secdesc;
3803 TALLOC_CTX *_mem_save_secdesc_0;
3804 if (ndr_flags & NDR_SCALARS) {
3805 NDR_CHECK(ndr_pull_align(ndr, 5));
3806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3808 uint32_t _flags_save_string = ndr->flags;
3809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3811 if (_ptr_printer_name) {
3812 NDR_PULL_ALLOC(ndr, r->printer_name);
3813 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3815 r->printer_name = NULL;
3817 ndr->flags = _flags_save_string;
3820 uint32_t _flags_save_string = ndr->flags;
3821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3822 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3823 if (_ptr_server_name) {
3824 NDR_PULL_ALLOC(ndr, r->server_name);
3825 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3827 r->server_name = NULL;
3829 ndr->flags = _flags_save_string;
3832 uint32_t _flags_save_string = ndr->flags;
3833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3835 if (_ptr_user_name) {
3836 NDR_PULL_ALLOC(ndr, r->user_name);
3837 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3839 r->user_name = NULL;
3841 ndr->flags = _flags_save_string;
3844 uint32_t _flags_save_string = ndr->flags;
3845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3847 if (_ptr_document_name) {
3848 NDR_PULL_ALLOC(ndr, r->document_name);
3849 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3851 r->document_name = NULL;
3853 ndr->flags = _flags_save_string;
3856 uint32_t _flags_save_string = ndr->flags;
3857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3859 if (_ptr_notify_name) {
3860 NDR_PULL_ALLOC(ndr, r->notify_name);
3861 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3863 r->notify_name = NULL;
3865 ndr->flags = _flags_save_string;
3868 uint32_t _flags_save_string = ndr->flags;
3869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3870 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3871 if (_ptr_data_type) {
3872 NDR_PULL_ALLOC(ndr, r->data_type);
3873 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3875 r->data_type = NULL;
3877 ndr->flags = _flags_save_string;
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_print_processor));
3883 if (_ptr_print_processor) {
3884 NDR_PULL_ALLOC(ndr, r->print_processor);
3885 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3887 r->print_processor = NULL;
3889 ndr->flags = _flags_save_string;
3892 uint32_t _flags_save_string = ndr->flags;
3893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3895 if (_ptr_parameters) {
3896 NDR_PULL_ALLOC(ndr, r->parameters);
3897 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3899 r->parameters = NULL;
3901 ndr->flags = _flags_save_string;
3904 uint32_t _flags_save_string = ndr->flags;
3905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3907 if (_ptr_driver_name) {
3908 NDR_PULL_ALLOC(ndr, r->driver_name);
3909 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3911 r->driver_name = NULL;
3913 ndr->flags = _flags_save_string;
3915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3917 NDR_PULL_ALLOC(ndr, r->devmode);
3918 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3923 uint32_t _flags_save_string = ndr->flags;
3924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3926 if (_ptr_text_status) {
3927 NDR_PULL_ALLOC(ndr, r->text_status);
3928 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3930 r->text_status = NULL;
3932 ndr->flags = _flags_save_string;
3934 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3936 NDR_PULL_ALLOC(ndr, r->secdesc);
3937 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3941 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3942 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3943 if (r->priority > 99) {
3944 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3946 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3951 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3954 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3956 if (ndr_flags & NDR_BUFFERS) {
3958 uint32_t _flags_save_string = ndr->flags;
3959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3960 if (r->printer_name) {
3961 uint32_t _relative_save_offset;
3962 _relative_save_offset = ndr->offset;
3963 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3964 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3965 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3966 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3968 if (ndr->offset > ndr->relative_highest_offset) {
3969 ndr->relative_highest_offset = ndr->offset;
3971 ndr->offset = _relative_save_offset;
3973 ndr->flags = _flags_save_string;
3976 uint32_t _flags_save_string = ndr->flags;
3977 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3978 if (r->server_name) {
3979 uint32_t _relative_save_offset;
3980 _relative_save_offset = ndr->offset;
3981 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3982 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3983 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3984 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3986 if (ndr->offset > ndr->relative_highest_offset) {
3987 ndr->relative_highest_offset = ndr->offset;
3989 ndr->offset = _relative_save_offset;
3991 ndr->flags = _flags_save_string;
3994 uint32_t _flags_save_string = ndr->flags;
3995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3997 uint32_t _relative_save_offset;
3998 _relative_save_offset = ndr->offset;
3999 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4000 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4001 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4002 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4004 if (ndr->offset > ndr->relative_highest_offset) {
4005 ndr->relative_highest_offset = ndr->offset;
4007 ndr->offset = _relative_save_offset;
4009 ndr->flags = _flags_save_string;
4012 uint32_t _flags_save_string = ndr->flags;
4013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4014 if (r->document_name) {
4015 uint32_t _relative_save_offset;
4016 _relative_save_offset = ndr->offset;
4017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4018 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4019 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4020 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4022 if (ndr->offset > ndr->relative_highest_offset) {
4023 ndr->relative_highest_offset = ndr->offset;
4025 ndr->offset = _relative_save_offset;
4027 ndr->flags = _flags_save_string;
4030 uint32_t _flags_save_string = ndr->flags;
4031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4032 if (r->notify_name) {
4033 uint32_t _relative_save_offset;
4034 _relative_save_offset = ndr->offset;
4035 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4036 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4037 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4038 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4040 if (ndr->offset > ndr->relative_highest_offset) {
4041 ndr->relative_highest_offset = ndr->offset;
4043 ndr->offset = _relative_save_offset;
4045 ndr->flags = _flags_save_string;
4048 uint32_t _flags_save_string = ndr->flags;
4049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4051 uint32_t _relative_save_offset;
4052 _relative_save_offset = ndr->offset;
4053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4054 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4055 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4058 if (ndr->offset > ndr->relative_highest_offset) {
4059 ndr->relative_highest_offset = ndr->offset;
4061 ndr->offset = _relative_save_offset;
4063 ndr->flags = _flags_save_string;
4066 uint32_t _flags_save_string = ndr->flags;
4067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4068 if (r->print_processor) {
4069 uint32_t _relative_save_offset;
4070 _relative_save_offset = ndr->offset;
4071 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4072 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4073 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4074 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4076 if (ndr->offset > ndr->relative_highest_offset) {
4077 ndr->relative_highest_offset = ndr->offset;
4079 ndr->offset = _relative_save_offset;
4081 ndr->flags = _flags_save_string;
4084 uint32_t _flags_save_string = ndr->flags;
4085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4086 if (r->parameters) {
4087 uint32_t _relative_save_offset;
4088 _relative_save_offset = ndr->offset;
4089 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4090 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4091 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4092 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4094 if (ndr->offset > ndr->relative_highest_offset) {
4095 ndr->relative_highest_offset = ndr->offset;
4097 ndr->offset = _relative_save_offset;
4099 ndr->flags = _flags_save_string;
4102 uint32_t _flags_save_string = ndr->flags;
4103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4104 if (r->driver_name) {
4105 uint32_t _relative_save_offset;
4106 _relative_save_offset = ndr->offset;
4107 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4108 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4109 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4110 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4112 if (ndr->offset > ndr->relative_highest_offset) {
4113 ndr->relative_highest_offset = ndr->offset;
4115 ndr->offset = _relative_save_offset;
4117 ndr->flags = _flags_save_string;
4120 uint32_t _relative_save_offset;
4121 _relative_save_offset = ndr->offset;
4122 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4123 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4124 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4125 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4127 if (ndr->offset > ndr->relative_highest_offset) {
4128 ndr->relative_highest_offset = ndr->offset;
4130 ndr->offset = _relative_save_offset;
4133 uint32_t _flags_save_string = ndr->flags;
4134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4135 if (r->text_status) {
4136 uint32_t _relative_save_offset;
4137 _relative_save_offset = ndr->offset;
4138 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4139 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4140 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4141 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4143 if (ndr->offset > ndr->relative_highest_offset) {
4144 ndr->relative_highest_offset = ndr->offset;
4146 ndr->offset = _relative_save_offset;
4148 ndr->flags = _flags_save_string;
4151 uint32_t _relative_save_offset;
4152 _relative_save_offset = ndr->offset;
4153 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4154 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4155 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4156 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4158 if (ndr->offset > ndr->relative_highest_offset) {
4159 ndr->relative_highest_offset = ndr->offset;
4161 ndr->offset = _relative_save_offset;
4164 return NDR_ERR_SUCCESS;
4167 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4169 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4171 ndr_print_uint32(ndr, "job_id", r->job_id);
4172 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4174 if (r->printer_name) {
4175 ndr_print_string(ndr, "printer_name", r->printer_name);
4178 ndr_print_ptr(ndr, "server_name", r->server_name);
4180 if (r->server_name) {
4181 ndr_print_string(ndr, "server_name", r->server_name);
4184 ndr_print_ptr(ndr, "user_name", r->user_name);
4187 ndr_print_string(ndr, "user_name", r->user_name);
4190 ndr_print_ptr(ndr, "document_name", r->document_name);
4192 if (r->document_name) {
4193 ndr_print_string(ndr, "document_name", r->document_name);
4196 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4198 if (r->notify_name) {
4199 ndr_print_string(ndr, "notify_name", r->notify_name);
4202 ndr_print_ptr(ndr, "data_type", r->data_type);
4205 ndr_print_string(ndr, "data_type", r->data_type);
4208 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4210 if (r->print_processor) {
4211 ndr_print_string(ndr, "print_processor", r->print_processor);
4214 ndr_print_ptr(ndr, "parameters", r->parameters);
4216 if (r->parameters) {
4217 ndr_print_string(ndr, "parameters", r->parameters);
4220 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4222 if (r->driver_name) {
4223 ndr_print_string(ndr, "driver_name", r->driver_name);
4226 ndr_print_ptr(ndr, "devmode", r->devmode);
4229 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4232 ndr_print_ptr(ndr, "text_status", r->text_status);
4234 if (r->text_status) {
4235 ndr_print_string(ndr, "text_status", r->text_status);
4238 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4241 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4244 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4245 ndr_print_uint32(ndr, "priority", r->priority);
4246 ndr_print_uint32(ndr, "position", r->position);
4247 ndr_print_uint32(ndr, "start_time", r->start_time);
4248 ndr_print_uint32(ndr, "until_time", r->until_time);
4249 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4250 ndr_print_uint32(ndr, "size", r->size);
4251 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4252 ndr_print_uint32(ndr, "time", r->time);
4253 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4257 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
4259 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
4262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4264 if (ndr_flags & NDR_SCALARS) {
4265 NDR_CHECK(ndr_push_align(ndr, 4));
4266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4269 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4271 if (ndr_flags & NDR_BUFFERS) {
4273 return NDR_ERR_SUCCESS;
4276 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4278 if (ndr_flags & NDR_SCALARS) {
4279 NDR_CHECK(ndr_pull_align(ndr, 4));
4280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4283 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4285 if (ndr_flags & NDR_BUFFERS) {
4287 return NDR_ERR_SUCCESS;
4290 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4292 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4294 ndr_print_uint32(ndr, "job_id", r->job_id);
4295 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4296 ndr_print_uint32(ndr, "reserved", r->reserved);
4300 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
4302 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
4305 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4307 if (ndr_flags & NDR_SCALARS) {
4308 NDR_CHECK(ndr_push_align(ndr, 5));
4309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4311 uint32_t _flags_save_string = ndr->flags;
4312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4313 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4314 ndr->flags = _flags_save_string;
4317 uint32_t _flags_save_string = ndr->flags;
4318 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4319 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4320 ndr->flags = _flags_save_string;
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->user_name));
4326 ndr->flags = _flags_save_string;
4329 uint32_t _flags_save_string = ndr->flags;
4330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4331 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4332 ndr->flags = _flags_save_string;
4335 uint32_t _flags_save_string = ndr->flags;
4336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4337 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4338 ndr->flags = _flags_save_string;
4341 uint32_t _flags_save_string = ndr->flags;
4342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4343 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4344 ndr->flags = _flags_save_string;
4347 uint32_t _flags_save_string = ndr->flags;
4348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4349 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4356 ndr->flags = _flags_save_string;
4359 uint32_t _flags_save_string = ndr->flags;
4360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4361 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4362 ndr->flags = _flags_save_string;
4364 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4366 uint32_t _flags_save_string = ndr->flags;
4367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4368 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4369 ndr->flags = _flags_save_string;
4371 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4372 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4379 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4383 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4385 if (ndr_flags & NDR_BUFFERS) {
4387 uint32_t _flags_save_string = ndr->flags;
4388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4389 if (r->printer_name) {
4390 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
4391 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4392 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
4394 ndr->flags = _flags_save_string;
4397 uint32_t _flags_save_string = ndr->flags;
4398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4399 if (r->server_name) {
4400 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
4401 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4402 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
4404 ndr->flags = _flags_save_string;
4407 uint32_t _flags_save_string = ndr->flags;
4408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4410 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
4411 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4412 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
4414 ndr->flags = _flags_save_string;
4417 uint32_t _flags_save_string = ndr->flags;
4418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4419 if (r->document_name) {
4420 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
4421 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4422 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
4424 ndr->flags = _flags_save_string;
4427 uint32_t _flags_save_string = ndr->flags;
4428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4429 if (r->notify_name) {
4430 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
4431 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4432 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
4434 ndr->flags = _flags_save_string;
4437 uint32_t _flags_save_string = ndr->flags;
4438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4440 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
4441 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4442 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
4444 ndr->flags = _flags_save_string;
4447 uint32_t _flags_save_string = ndr->flags;
4448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4449 if (r->print_processor) {
4450 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
4451 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4452 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
4454 ndr->flags = _flags_save_string;
4457 uint32_t _flags_save_string = ndr->flags;
4458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4459 if (r->parameters) {
4460 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
4461 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4462 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
4464 ndr->flags = _flags_save_string;
4467 uint32_t _flags_save_string = ndr->flags;
4468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4469 if (r->driver_name) {
4470 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
4471 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4472 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
4474 ndr->flags = _flags_save_string;
4477 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
4478 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4479 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
4482 uint32_t _flags_save_string = ndr->flags;
4483 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4484 if (r->text_status) {
4485 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4486 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4487 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4489 ndr->flags = _flags_save_string;
4492 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4493 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4494 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4497 return NDR_ERR_SUCCESS;
4500 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4502 uint32_t _ptr_printer_name;
4503 TALLOC_CTX *_mem_save_printer_name_0;
4504 uint32_t _ptr_server_name;
4505 TALLOC_CTX *_mem_save_server_name_0;
4506 uint32_t _ptr_user_name;
4507 TALLOC_CTX *_mem_save_user_name_0;
4508 uint32_t _ptr_document_name;
4509 TALLOC_CTX *_mem_save_document_name_0;
4510 uint32_t _ptr_notify_name;
4511 TALLOC_CTX *_mem_save_notify_name_0;
4512 uint32_t _ptr_data_type;
4513 TALLOC_CTX *_mem_save_data_type_0;
4514 uint32_t _ptr_print_processor;
4515 TALLOC_CTX *_mem_save_print_processor_0;
4516 uint32_t _ptr_parameters;
4517 TALLOC_CTX *_mem_save_parameters_0;
4518 uint32_t _ptr_driver_name;
4519 TALLOC_CTX *_mem_save_driver_name_0;
4520 uint32_t _ptr_devmode;
4521 TALLOC_CTX *_mem_save_devmode_0;
4522 uint32_t _ptr_text_status;
4523 TALLOC_CTX *_mem_save_text_status_0;
4524 uint32_t _ptr_secdesc;
4525 TALLOC_CTX *_mem_save_secdesc_0;
4526 if (ndr_flags & NDR_SCALARS) {
4527 NDR_CHECK(ndr_pull_align(ndr, 5));
4528 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4530 uint32_t _flags_save_string = ndr->flags;
4531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4533 if (_ptr_printer_name) {
4534 NDR_PULL_ALLOC(ndr, r->printer_name);
4535 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4537 r->printer_name = NULL;
4539 ndr->flags = _flags_save_string;
4542 uint32_t _flags_save_string = ndr->flags;
4543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4545 if (_ptr_server_name) {
4546 NDR_PULL_ALLOC(ndr, r->server_name);
4547 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4549 r->server_name = NULL;
4551 ndr->flags = _flags_save_string;
4554 uint32_t _flags_save_string = ndr->flags;
4555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4556 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4557 if (_ptr_user_name) {
4558 NDR_PULL_ALLOC(ndr, r->user_name);
4559 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4561 r->user_name = NULL;
4563 ndr->flags = _flags_save_string;
4566 uint32_t _flags_save_string = ndr->flags;
4567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4569 if (_ptr_document_name) {
4570 NDR_PULL_ALLOC(ndr, r->document_name);
4571 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4573 r->document_name = NULL;
4575 ndr->flags = _flags_save_string;
4578 uint32_t _flags_save_string = ndr->flags;
4579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4581 if (_ptr_notify_name) {
4582 NDR_PULL_ALLOC(ndr, r->notify_name);
4583 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4585 r->notify_name = NULL;
4587 ndr->flags = _flags_save_string;
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_data_type));
4593 if (_ptr_data_type) {
4594 NDR_PULL_ALLOC(ndr, r->data_type);
4595 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4597 r->data_type = NULL;
4599 ndr->flags = _flags_save_string;
4602 uint32_t _flags_save_string = ndr->flags;
4603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4605 if (_ptr_print_processor) {
4606 NDR_PULL_ALLOC(ndr, r->print_processor);
4607 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4609 r->print_processor = NULL;
4611 ndr->flags = _flags_save_string;
4614 uint32_t _flags_save_string = ndr->flags;
4615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4617 if (_ptr_parameters) {
4618 NDR_PULL_ALLOC(ndr, r->parameters);
4619 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4621 r->parameters = NULL;
4623 ndr->flags = _flags_save_string;
4626 uint32_t _flags_save_string = ndr->flags;
4627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4629 if (_ptr_driver_name) {
4630 NDR_PULL_ALLOC(ndr, r->driver_name);
4631 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4633 r->driver_name = NULL;
4635 ndr->flags = _flags_save_string;
4637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4639 NDR_PULL_ALLOC(ndr, r->devmode);
4640 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4645 uint32_t _flags_save_string = ndr->flags;
4646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4648 if (_ptr_text_status) {
4649 NDR_PULL_ALLOC(ndr, r->text_status);
4650 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4652 r->text_status = NULL;
4654 ndr->flags = _flags_save_string;
4656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4658 NDR_PULL_ALLOC(ndr, r->secdesc);
4659 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4663 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4665 if (r->priority > 99) {
4666 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4673 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
4677 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4679 if (ndr_flags & NDR_BUFFERS) {
4681 uint32_t _flags_save_string = ndr->flags;
4682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4683 if (r->printer_name) {
4684 uint32_t _relative_save_offset;
4685 _relative_save_offset = ndr->offset;
4686 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4687 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4688 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4689 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4691 if (ndr->offset > ndr->relative_highest_offset) {
4692 ndr->relative_highest_offset = ndr->offset;
4694 ndr->offset = _relative_save_offset;
4696 ndr->flags = _flags_save_string;
4699 uint32_t _flags_save_string = ndr->flags;
4700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4701 if (r->server_name) {
4702 uint32_t _relative_save_offset;
4703 _relative_save_offset = ndr->offset;
4704 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4705 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4706 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4707 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4709 if (ndr->offset > ndr->relative_highest_offset) {
4710 ndr->relative_highest_offset = ndr->offset;
4712 ndr->offset = _relative_save_offset;
4714 ndr->flags = _flags_save_string;
4717 uint32_t _flags_save_string = ndr->flags;
4718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4720 uint32_t _relative_save_offset;
4721 _relative_save_offset = ndr->offset;
4722 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4723 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4724 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4725 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4727 if (ndr->offset > ndr->relative_highest_offset) {
4728 ndr->relative_highest_offset = ndr->offset;
4730 ndr->offset = _relative_save_offset;
4732 ndr->flags = _flags_save_string;
4735 uint32_t _flags_save_string = ndr->flags;
4736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4737 if (r->document_name) {
4738 uint32_t _relative_save_offset;
4739 _relative_save_offset = ndr->offset;
4740 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4741 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4742 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4743 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4745 if (ndr->offset > ndr->relative_highest_offset) {
4746 ndr->relative_highest_offset = ndr->offset;
4748 ndr->offset = _relative_save_offset;
4750 ndr->flags = _flags_save_string;
4753 uint32_t _flags_save_string = ndr->flags;
4754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4755 if (r->notify_name) {
4756 uint32_t _relative_save_offset;
4757 _relative_save_offset = ndr->offset;
4758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4759 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4760 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4763 if (ndr->offset > ndr->relative_highest_offset) {
4764 ndr->relative_highest_offset = ndr->offset;
4766 ndr->offset = _relative_save_offset;
4768 ndr->flags = _flags_save_string;
4771 uint32_t _flags_save_string = ndr->flags;
4772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4774 uint32_t _relative_save_offset;
4775 _relative_save_offset = ndr->offset;
4776 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4777 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4778 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4779 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4781 if (ndr->offset > ndr->relative_highest_offset) {
4782 ndr->relative_highest_offset = ndr->offset;
4784 ndr->offset = _relative_save_offset;
4786 ndr->flags = _flags_save_string;
4789 uint32_t _flags_save_string = ndr->flags;
4790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4791 if (r->print_processor) {
4792 uint32_t _relative_save_offset;
4793 _relative_save_offset = ndr->offset;
4794 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4795 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4796 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4797 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4799 if (ndr->offset > ndr->relative_highest_offset) {
4800 ndr->relative_highest_offset = ndr->offset;
4802 ndr->offset = _relative_save_offset;
4804 ndr->flags = _flags_save_string;
4807 uint32_t _flags_save_string = ndr->flags;
4808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4809 if (r->parameters) {
4810 uint32_t _relative_save_offset;
4811 _relative_save_offset = ndr->offset;
4812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4813 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4814 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4817 if (ndr->offset > ndr->relative_highest_offset) {
4818 ndr->relative_highest_offset = ndr->offset;
4820 ndr->offset = _relative_save_offset;
4822 ndr->flags = _flags_save_string;
4825 uint32_t _flags_save_string = ndr->flags;
4826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4827 if (r->driver_name) {
4828 uint32_t _relative_save_offset;
4829 _relative_save_offset = ndr->offset;
4830 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4831 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4832 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4833 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4835 if (ndr->offset > ndr->relative_highest_offset) {
4836 ndr->relative_highest_offset = ndr->offset;
4838 ndr->offset = _relative_save_offset;
4840 ndr->flags = _flags_save_string;
4843 uint32_t _relative_save_offset;
4844 _relative_save_offset = ndr->offset;
4845 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4846 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4847 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4848 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4850 if (ndr->offset > ndr->relative_highest_offset) {
4851 ndr->relative_highest_offset = ndr->offset;
4853 ndr->offset = _relative_save_offset;
4856 uint32_t _flags_save_string = ndr->flags;
4857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4858 if (r->text_status) {
4859 uint32_t _relative_save_offset;
4860 _relative_save_offset = ndr->offset;
4861 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4862 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4863 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4864 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4866 if (ndr->offset > ndr->relative_highest_offset) {
4867 ndr->relative_highest_offset = ndr->offset;
4869 ndr->offset = _relative_save_offset;
4871 ndr->flags = _flags_save_string;
4874 uint32_t _relative_save_offset;
4875 _relative_save_offset = ndr->offset;
4876 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4877 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4878 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4879 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4881 if (ndr->offset > ndr->relative_highest_offset) {
4882 ndr->relative_highest_offset = ndr->offset;
4884 ndr->offset = _relative_save_offset;
4887 return NDR_ERR_SUCCESS;
4890 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4892 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4894 ndr_print_uint32(ndr, "job_id", r->job_id);
4895 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4897 if (r->printer_name) {
4898 ndr_print_string(ndr, "printer_name", r->printer_name);
4901 ndr_print_ptr(ndr, "server_name", r->server_name);
4903 if (r->server_name) {
4904 ndr_print_string(ndr, "server_name", r->server_name);
4907 ndr_print_ptr(ndr, "user_name", r->user_name);
4910 ndr_print_string(ndr, "user_name", r->user_name);
4913 ndr_print_ptr(ndr, "document_name", r->document_name);
4915 if (r->document_name) {
4916 ndr_print_string(ndr, "document_name", r->document_name);
4919 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4921 if (r->notify_name) {
4922 ndr_print_string(ndr, "notify_name", r->notify_name);
4925 ndr_print_ptr(ndr, "data_type", r->data_type);
4928 ndr_print_string(ndr, "data_type", r->data_type);
4931 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4933 if (r->print_processor) {
4934 ndr_print_string(ndr, "print_processor", r->print_processor);
4937 ndr_print_ptr(ndr, "parameters", r->parameters);
4939 if (r->parameters) {
4940 ndr_print_string(ndr, "parameters", r->parameters);
4943 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4945 if (r->driver_name) {
4946 ndr_print_string(ndr, "driver_name", r->driver_name);
4949 ndr_print_ptr(ndr, "devmode", r->devmode);
4952 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4955 ndr_print_ptr(ndr, "text_status", r->text_status);
4957 if (r->text_status) {
4958 ndr_print_string(ndr, "text_status", r->text_status);
4961 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4964 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4967 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4968 ndr_print_uint32(ndr, "priority", r->priority);
4969 ndr_print_uint32(ndr, "position", r->position);
4970 ndr_print_uint32(ndr, "start_time", r->start_time);
4971 ndr_print_uint32(ndr, "until_time", r->until_time);
4972 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4973 ndr_print_uint32(ndr, "size", r->size);
4974 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4975 ndr_print_uint32(ndr, "time", r->time);
4976 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4977 ndr_print_uint32(ndr, "size_high", r->size_high);
4981 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4983 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4986 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4988 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4989 if (ndr_flags & NDR_SCALARS) {
4990 int level = ndr_push_get_switch_value(ndr, r);
4991 NDR_CHECK(ndr_push_union_align(ndr, 5));
4994 NDR_CHECK(ndr_push_align(ndr, 5));
4995 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4996 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5000 NDR_CHECK(ndr_push_align(ndr, 5));
5001 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5002 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5006 NDR_CHECK(ndr_push_align(ndr, 4));
5007 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5008 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5012 NDR_CHECK(ndr_push_align(ndr, 5));
5013 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5014 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5022 if (ndr_flags & NDR_BUFFERS) {
5023 int level = ndr_push_get_switch_value(ndr, r);
5024 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
5027 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5031 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5038 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5046 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
5047 return NDR_ERR_SUCCESS;
5050 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
5052 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
5054 level = ndr_pull_get_switch_value(ndr, r);
5055 if (ndr_flags & NDR_SCALARS) {
5056 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5059 NDR_CHECK(ndr_pull_align(ndr, 5));
5060 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5061 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5065 NDR_CHECK(ndr_pull_align(ndr, 5));
5066 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5067 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5071 NDR_CHECK(ndr_pull_align(ndr, 4));
5072 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5073 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5077 NDR_CHECK(ndr_pull_align(ndr, 5));
5078 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5079 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5087 if (ndr_flags & NDR_BUFFERS) {
5088 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5091 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5095 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5102 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5110 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5111 return NDR_ERR_SUCCESS;
5114 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5117 level = ndr_print_get_switch_value(ndr, r);
5118 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5121 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5125 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5129 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5133 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5142 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
5144 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
5147 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5149 if (ndr_flags & NDR_SCALARS) {
5150 NDR_CHECK(ndr_push_align(ndr, 5));
5151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5152 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5153 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5154 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5155 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5156 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5157 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5158 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5163 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5164 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5166 if (ndr_flags & NDR_BUFFERS) {
5167 if (r->printer_name) {
5168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5171 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5173 if (r->server_name) {
5174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5176 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5177 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5180 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5181 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5183 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5185 if (r->document_name) {
5186 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5187 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5188 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5189 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5195 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5197 if (r->text_status) {
5198 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5200 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5201 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5204 return NDR_ERR_SUCCESS;
5207 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5209 uint32_t _ptr_printer_name;
5210 TALLOC_CTX *_mem_save_printer_name_0;
5211 uint32_t _ptr_server_name;
5212 TALLOC_CTX *_mem_save_server_name_0;
5213 uint32_t _ptr_user_name;
5214 TALLOC_CTX *_mem_save_user_name_0;
5215 uint32_t _ptr_document_name;
5216 TALLOC_CTX *_mem_save_document_name_0;
5217 uint32_t _ptr_data_type;
5218 TALLOC_CTX *_mem_save_data_type_0;
5219 uint32_t _ptr_text_status;
5220 TALLOC_CTX *_mem_save_text_status_0;
5221 if (ndr_flags & NDR_SCALARS) {
5222 NDR_CHECK(ndr_pull_align(ndr, 5));
5223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5225 if (_ptr_printer_name) {
5226 NDR_PULL_ALLOC(ndr, r->printer_name);
5228 r->printer_name = NULL;
5230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5231 if (_ptr_server_name) {
5232 NDR_PULL_ALLOC(ndr, r->server_name);
5234 r->server_name = NULL;
5236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5237 if (_ptr_user_name) {
5238 NDR_PULL_ALLOC(ndr, r->user_name);
5240 r->user_name = NULL;
5242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5243 if (_ptr_document_name) {
5244 NDR_PULL_ALLOC(ndr, r->document_name);
5246 r->document_name = NULL;
5248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5249 if (_ptr_data_type) {
5250 NDR_PULL_ALLOC(ndr, r->data_type);
5252 r->data_type = NULL;
5254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5255 if (_ptr_text_status) {
5256 NDR_PULL_ALLOC(ndr, r->text_status);
5258 r->text_status = NULL;
5260 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5262 if (r->priority > 99) {
5263 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5265 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5266 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5268 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5269 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5271 if (ndr_flags & NDR_BUFFERS) {
5272 if (r->printer_name) {
5273 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5274 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5275 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5276 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5277 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5278 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));
5280 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5281 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5284 if (r->server_name) {
5285 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5286 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5287 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5288 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5289 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5290 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));
5292 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5293 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5297 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5298 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5299 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5300 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5301 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5302 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));
5304 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5305 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5308 if (r->document_name) {
5309 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5310 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5311 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5312 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5313 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5314 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));
5316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5321 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5322 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5323 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5324 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5325 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5326 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));
5328 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5329 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5332 if (r->text_status) {
5333 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5334 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5335 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5336 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5337 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5338 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));
5340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5345 return NDR_ERR_SUCCESS;
5348 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5350 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5352 ndr_print_uint32(ndr, "job_id", r->job_id);
5353 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5355 if (r->printer_name) {
5356 ndr_print_string(ndr, "printer_name", r->printer_name);
5359 ndr_print_ptr(ndr, "server_name", r->server_name);
5361 if (r->server_name) {
5362 ndr_print_string(ndr, "server_name", r->server_name);
5365 ndr_print_ptr(ndr, "user_name", r->user_name);
5368 ndr_print_string(ndr, "user_name", r->user_name);
5371 ndr_print_ptr(ndr, "document_name", r->document_name);
5373 if (r->document_name) {
5374 ndr_print_string(ndr, "document_name", r->document_name);
5377 ndr_print_ptr(ndr, "data_type", r->data_type);
5380 ndr_print_string(ndr, "data_type", r->data_type);
5383 ndr_print_ptr(ndr, "text_status", r->text_status);
5385 if (r->text_status) {
5386 ndr_print_string(ndr, "text_status", r->text_status);
5389 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5390 ndr_print_uint32(ndr, "priority", r->priority);
5391 ndr_print_uint32(ndr, "position", r->position);
5392 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5393 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5394 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5398 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5400 if (ndr_flags & NDR_SCALARS) {
5401 NDR_CHECK(ndr_push_align(ndr, 5));
5402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5403 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5404 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5405 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5406 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5407 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5408 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5409 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5410 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5411 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5415 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5422 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5425 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5427 if (ndr_flags & NDR_BUFFERS) {
5428 if (r->printer_name) {
5429 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5430 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5431 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5432 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5434 if (r->server_name) {
5435 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5436 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5437 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5438 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5444 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5446 if (r->document_name) {
5447 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5448 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5449 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5450 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5452 if (r->notify_name) {
5453 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5454 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5455 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5456 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5459 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5461 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5462 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5464 if (r->print_processor) {
5465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5466 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5468 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5470 if (r->parameters) {
5471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5474 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5476 if (r->driver_name) {
5477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5480 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5482 if (r->text_status) {
5483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5489 return NDR_ERR_SUCCESS;
5492 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5494 uint32_t _ptr_printer_name;
5495 TALLOC_CTX *_mem_save_printer_name_0;
5496 uint32_t _ptr_server_name;
5497 TALLOC_CTX *_mem_save_server_name_0;
5498 uint32_t _ptr_user_name;
5499 TALLOC_CTX *_mem_save_user_name_0;
5500 uint32_t _ptr_document_name;
5501 TALLOC_CTX *_mem_save_document_name_0;
5502 uint32_t _ptr_notify_name;
5503 TALLOC_CTX *_mem_save_notify_name_0;
5504 uint32_t _ptr_data_type;
5505 TALLOC_CTX *_mem_save_data_type_0;
5506 uint32_t _ptr_print_processor;
5507 TALLOC_CTX *_mem_save_print_processor_0;
5508 uint32_t _ptr_parameters;
5509 TALLOC_CTX *_mem_save_parameters_0;
5510 uint32_t _ptr_driver_name;
5511 TALLOC_CTX *_mem_save_driver_name_0;
5512 uint32_t _ptr_text_status;
5513 TALLOC_CTX *_mem_save_text_status_0;
5514 if (ndr_flags & NDR_SCALARS) {
5515 NDR_CHECK(ndr_pull_align(ndr, 5));
5516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5518 if (_ptr_printer_name) {
5519 NDR_PULL_ALLOC(ndr, r->printer_name);
5521 r->printer_name = NULL;
5523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5524 if (_ptr_server_name) {
5525 NDR_PULL_ALLOC(ndr, r->server_name);
5527 r->server_name = NULL;
5529 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5530 if (_ptr_user_name) {
5531 NDR_PULL_ALLOC(ndr, r->user_name);
5533 r->user_name = NULL;
5535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5536 if (_ptr_document_name) {
5537 NDR_PULL_ALLOC(ndr, r->document_name);
5539 r->document_name = NULL;
5541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5542 if (_ptr_notify_name) {
5543 NDR_PULL_ALLOC(ndr, r->notify_name);
5545 r->notify_name = NULL;
5547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5548 if (_ptr_data_type) {
5549 NDR_PULL_ALLOC(ndr, r->data_type);
5551 r->data_type = NULL;
5553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5554 if (_ptr_print_processor) {
5555 NDR_PULL_ALLOC(ndr, r->print_processor);
5557 r->print_processor = NULL;
5559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5560 if (_ptr_parameters) {
5561 NDR_PULL_ALLOC(ndr, r->parameters);
5563 r->parameters = NULL;
5565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5566 if (_ptr_driver_name) {
5567 NDR_PULL_ALLOC(ndr, r->driver_name);
5569 r->driver_name = NULL;
5571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5573 if (_ptr_text_status) {
5574 NDR_PULL_ALLOC(ndr, r->text_status);
5576 r->text_status = NULL;
5578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5579 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5581 if (r->priority > 99) {
5582 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5584 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5586 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5589 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5592 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5594 if (ndr_flags & NDR_BUFFERS) {
5595 if (r->printer_name) {
5596 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5597 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5598 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5599 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5600 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5601 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));
5603 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5604 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5607 if (r->server_name) {
5608 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5609 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5610 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5611 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5612 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5613 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));
5615 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5616 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5620 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5621 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5622 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5623 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5624 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5625 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));
5627 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5628 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5631 if (r->document_name) {
5632 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5633 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5634 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5635 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5636 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5637 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));
5639 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5640 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5643 if (r->notify_name) {
5644 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5645 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5646 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5647 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5648 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5649 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));
5651 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5656 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5657 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5658 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5659 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5660 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5661 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));
5663 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5664 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5667 if (r->print_processor) {
5668 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5669 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5670 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5671 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5672 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5673 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));
5675 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5676 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5679 if (r->parameters) {
5680 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5681 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5682 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5683 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5684 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5685 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));
5687 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5688 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5691 if (r->driver_name) {
5692 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5693 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5694 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5695 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5696 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5697 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));
5699 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5700 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5703 if (r->text_status) {
5704 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5705 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5706 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5707 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5708 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5709 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));
5711 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5712 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5716 return NDR_ERR_SUCCESS;
5719 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
5721 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
5723 ndr_print_uint32(ndr, "job_id", r->job_id);
5724 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5726 if (r->printer_name) {
5727 ndr_print_string(ndr, "printer_name", r->printer_name);
5730 ndr_print_ptr(ndr, "server_name", r->server_name);
5732 if (r->server_name) {
5733 ndr_print_string(ndr, "server_name", r->server_name);
5736 ndr_print_ptr(ndr, "user_name", r->user_name);
5739 ndr_print_string(ndr, "user_name", r->user_name);
5742 ndr_print_ptr(ndr, "document_name", r->document_name);
5744 if (r->document_name) {
5745 ndr_print_string(ndr, "document_name", r->document_name);
5748 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5750 if (r->notify_name) {
5751 ndr_print_string(ndr, "notify_name", r->notify_name);
5754 ndr_print_ptr(ndr, "data_type", r->data_type);
5757 ndr_print_string(ndr, "data_type", r->data_type);
5760 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5762 if (r->print_processor) {
5763 ndr_print_string(ndr, "print_processor", r->print_processor);
5766 ndr_print_ptr(ndr, "parameters", r->parameters);
5768 if (r->parameters) {
5769 ndr_print_string(ndr, "parameters", r->parameters);
5772 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5774 if (r->driver_name) {
5775 ndr_print_string(ndr, "driver_name", r->driver_name);
5778 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5779 ndr_print_ptr(ndr, "text_status", r->text_status);
5781 if (r->text_status) {
5782 ndr_print_string(ndr, "text_status", r->text_status);
5785 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5786 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5787 ndr_print_uint32(ndr, "priority", r->priority);
5788 ndr_print_uint32(ndr, "position", r->position);
5789 ndr_print_uint32(ndr, "start_time", r->start_time);
5790 ndr_print_uint32(ndr, "until_time", r->until_time);
5791 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5792 ndr_print_uint32(ndr, "size", r->size);
5793 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5794 ndr_print_uint32(ndr, "time", r->time);
5795 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5799 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5801 if (ndr_flags & NDR_SCALARS) {
5802 NDR_CHECK(ndr_push_align(ndr, 5));
5803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5805 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5807 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5808 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5809 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5811 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5812 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5816 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5823 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5827 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5829 if (ndr_flags & NDR_BUFFERS) {
5830 if (r->printer_name) {
5831 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5832 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5834 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5836 if (r->server_name) {
5837 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5840 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5843 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5846 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5848 if (r->document_name) {
5849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5852 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5854 if (r->notify_name) {
5855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5858 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5861 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5862 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5863 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5864 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5866 if (r->print_processor) {
5867 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5868 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5869 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5870 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5872 if (r->parameters) {
5873 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5874 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5875 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5876 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5878 if (r->driver_name) {
5879 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5880 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5881 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5882 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5884 if (r->text_status) {
5885 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5886 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5887 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5888 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5891 return NDR_ERR_SUCCESS;
5894 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5896 uint32_t _ptr_printer_name;
5897 TALLOC_CTX *_mem_save_printer_name_0;
5898 uint32_t _ptr_server_name;
5899 TALLOC_CTX *_mem_save_server_name_0;
5900 uint32_t _ptr_user_name;
5901 TALLOC_CTX *_mem_save_user_name_0;
5902 uint32_t _ptr_document_name;
5903 TALLOC_CTX *_mem_save_document_name_0;
5904 uint32_t _ptr_notify_name;
5905 TALLOC_CTX *_mem_save_notify_name_0;
5906 uint32_t _ptr_data_type;
5907 TALLOC_CTX *_mem_save_data_type_0;
5908 uint32_t _ptr_print_processor;
5909 TALLOC_CTX *_mem_save_print_processor_0;
5910 uint32_t _ptr_parameters;
5911 TALLOC_CTX *_mem_save_parameters_0;
5912 uint32_t _ptr_driver_name;
5913 TALLOC_CTX *_mem_save_driver_name_0;
5914 uint32_t _ptr_text_status;
5915 TALLOC_CTX *_mem_save_text_status_0;
5916 if (ndr_flags & NDR_SCALARS) {
5917 NDR_CHECK(ndr_pull_align(ndr, 5));
5918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5920 if (_ptr_printer_name) {
5921 NDR_PULL_ALLOC(ndr, r->printer_name);
5923 r->printer_name = NULL;
5925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5926 if (_ptr_server_name) {
5927 NDR_PULL_ALLOC(ndr, r->server_name);
5929 r->server_name = NULL;
5931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5932 if (_ptr_user_name) {
5933 NDR_PULL_ALLOC(ndr, r->user_name);
5935 r->user_name = NULL;
5937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5938 if (_ptr_document_name) {
5939 NDR_PULL_ALLOC(ndr, r->document_name);
5941 r->document_name = NULL;
5943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5944 if (_ptr_notify_name) {
5945 NDR_PULL_ALLOC(ndr, r->notify_name);
5947 r->notify_name = NULL;
5949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5950 if (_ptr_data_type) {
5951 NDR_PULL_ALLOC(ndr, r->data_type);
5953 r->data_type = NULL;
5955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5956 if (_ptr_print_processor) {
5957 NDR_PULL_ALLOC(ndr, r->print_processor);
5959 r->print_processor = NULL;
5961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5962 if (_ptr_parameters) {
5963 NDR_PULL_ALLOC(ndr, r->parameters);
5965 r->parameters = NULL;
5967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5968 if (_ptr_driver_name) {
5969 NDR_PULL_ALLOC(ndr, r->driver_name);
5971 r->driver_name = NULL;
5973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5975 if (_ptr_text_status) {
5976 NDR_PULL_ALLOC(ndr, r->text_status);
5978 r->text_status = NULL;
5980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5981 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5983 if (r->priority > 99) {
5984 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5986 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5989 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5991 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5995 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5997 if (ndr_flags & NDR_BUFFERS) {
5998 if (r->printer_name) {
5999 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6000 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6001 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6002 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6003 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
6004 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));
6006 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
6007 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
6008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6010 if (r->server_name) {
6011 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6012 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6013 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6014 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6015 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
6016 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));
6018 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
6019 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
6020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6023 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6024 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6025 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6026 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6027 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
6028 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));
6030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
6031 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
6032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6034 if (r->document_name) {
6035 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6036 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6037 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6038 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6039 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
6040 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));
6042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
6043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
6044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6046 if (r->notify_name) {
6047 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6048 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6049 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6050 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6051 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
6052 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));
6054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
6055 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
6056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6059 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6060 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6061 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6062 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6063 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
6064 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));
6066 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
6067 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
6068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6070 if (r->print_processor) {
6071 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6072 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6073 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6074 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6075 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6076 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));
6078 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6079 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6082 if (r->parameters) {
6083 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6084 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6085 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6086 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6087 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6088 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));
6090 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6091 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6094 if (r->driver_name) {
6095 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6096 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6097 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6098 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6099 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6100 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));
6102 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6103 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6106 if (r->text_status) {
6107 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6108 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6109 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6110 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6111 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
6112 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));
6114 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
6115 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
6116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6119 return NDR_ERR_SUCCESS;
6122 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6124 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6126 ndr_print_uint32(ndr, "job_id", r->job_id);
6127 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6129 if (r->printer_name) {
6130 ndr_print_string(ndr, "printer_name", r->printer_name);
6133 ndr_print_ptr(ndr, "server_name", r->server_name);
6135 if (r->server_name) {
6136 ndr_print_string(ndr, "server_name", r->server_name);
6139 ndr_print_ptr(ndr, "user_name", r->user_name);
6142 ndr_print_string(ndr, "user_name", r->user_name);
6145 ndr_print_ptr(ndr, "document_name", r->document_name);
6147 if (r->document_name) {
6148 ndr_print_string(ndr, "document_name", r->document_name);
6151 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6153 if (r->notify_name) {
6154 ndr_print_string(ndr, "notify_name", r->notify_name);
6157 ndr_print_ptr(ndr, "data_type", r->data_type);
6160 ndr_print_string(ndr, "data_type", r->data_type);
6163 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6165 if (r->print_processor) {
6166 ndr_print_string(ndr, "print_processor", r->print_processor);
6169 ndr_print_ptr(ndr, "parameters", r->parameters);
6171 if (r->parameters) {
6172 ndr_print_string(ndr, "parameters", r->parameters);
6175 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6177 if (r->driver_name) {
6178 ndr_print_string(ndr, "driver_name", r->driver_name);
6181 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
6182 ndr_print_ptr(ndr, "text_status", r->text_status);
6184 if (r->text_status) {
6185 ndr_print_string(ndr, "text_status", r->text_status);
6188 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6189 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6190 ndr_print_uint32(ndr, "priority", r->priority);
6191 ndr_print_uint32(ndr, "position", r->position);
6192 ndr_print_uint32(ndr, "start_time", r->start_time);
6193 ndr_print_uint32(ndr, "until_time", r->until_time);
6194 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6195 ndr_print_uint32(ndr, "size", r->size);
6196 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6197 ndr_print_uint32(ndr, "time", r->time);
6198 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6199 ndr_print_uint32(ndr, "size_high", r->size_high);
6203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6205 if (ndr_flags & NDR_SCALARS) {
6206 int level = ndr_push_get_switch_value(ndr, r);
6207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6208 NDR_CHECK(ndr_push_union_align(ndr, 5));
6211 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6231 if (ndr_flags & NDR_BUFFERS) {
6232 int level = ndr_push_get_switch_value(ndr, r);
6236 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6242 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6248 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6254 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6263 return NDR_ERR_SUCCESS;
6266 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6270 TALLOC_CTX *_mem_save_info1_0;
6271 TALLOC_CTX *_mem_save_info2_0;
6272 TALLOC_CTX *_mem_save_info3_0;
6273 TALLOC_CTX *_mem_save_info4_0;
6274 level = ndr_pull_get_switch_value(ndr, r);
6275 if (ndr_flags & NDR_SCALARS) {
6276 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6277 if (_level != level) {
6278 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6280 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6283 uint32_t _ptr_info1;
6284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6286 NDR_PULL_ALLOC(ndr, r->info1);
6293 uint32_t _ptr_info2;
6294 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6296 NDR_PULL_ALLOC(ndr, r->info2);
6303 uint32_t _ptr_info3;
6304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6306 NDR_PULL_ALLOC(ndr, r->info3);
6313 uint32_t _ptr_info4;
6314 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6316 NDR_PULL_ALLOC(ndr, r->info4);
6327 if (ndr_flags & NDR_BUFFERS) {
6331 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6332 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6333 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6340 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6341 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6342 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6349 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6350 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6351 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6358 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6359 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6360 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6370 return NDR_ERR_SUCCESS;
6373 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6376 level = ndr_print_get_switch_value(ndr, r);
6377 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6380 ndr_print_ptr(ndr, "info1", r->info1);
6383 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6389 ndr_print_ptr(ndr, "info2", r->info2);
6392 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6398 ndr_print_ptr(ndr, "info3", r->info3);
6401 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6407 ndr_print_ptr(ndr, "info4", r->info4);
6410 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6421 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6423 if (ndr_flags & NDR_SCALARS) {
6424 NDR_CHECK(ndr_push_align(ndr, 5));
6425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6426 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6427 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6428 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6430 if (ndr_flags & NDR_BUFFERS) {
6431 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6433 return NDR_ERR_SUCCESS;
6436 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
6438 if (ndr_flags & NDR_SCALARS) {
6439 NDR_CHECK(ndr_pull_align(ndr, 5));
6440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
6441 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
6442 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6443 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6445 if (ndr_flags & NDR_BUFFERS) {
6446 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
6448 return NDR_ERR_SUCCESS;
6451 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
6453 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
6455 ndr_print_uint32(ndr, "level", r->level);
6456 ndr_print_set_switch_value(ndr, &r->info, r->level);
6457 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
6461 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
6463 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6464 return NDR_ERR_SUCCESS;
6467 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
6470 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6472 return NDR_ERR_SUCCESS;
6475 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
6477 const char *val = NULL;
6480 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
6481 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
6482 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
6483 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
6484 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
6485 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
6486 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
6487 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
6488 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
6490 ndr_print_enum(ndr, name, "ENUM", val, r);
6493 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
6495 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
6496 return NDR_ERR_SUCCESS;
6499 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
6502 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
6504 return NDR_ERR_SUCCESS;
6507 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
6509 const char *val = NULL;
6512 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
6513 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
6514 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
6515 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
6516 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
6518 ndr_print_enum(ndr, name, "ENUM", val, r);
6521 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
6523 if (ndr_flags & NDR_SCALARS) {
6524 NDR_CHECK(ndr_push_align(ndr, 5));
6525 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6526 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
6529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
6530 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
6532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
6534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
6535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
6536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
6537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
6538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
6539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
6540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
6541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
6542 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
6543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
6544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
6545 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
6546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
6547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
6548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
6549 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
6550 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
6551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
6552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
6553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
6554 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6556 if (ndr_flags & NDR_BUFFERS) {
6557 if (r->servername) {
6558 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6559 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6560 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6561 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6563 if (r->printername) {
6564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6566 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6567 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6570 return NDR_ERR_SUCCESS;
6573 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
6575 uint32_t _ptr_servername;
6576 TALLOC_CTX *_mem_save_servername_0;
6577 uint32_t _ptr_printername;
6578 TALLOC_CTX *_mem_save_printername_0;
6579 if (ndr_flags & NDR_SCALARS) {
6580 NDR_CHECK(ndr_pull_align(ndr, 5));
6581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6582 if (_ptr_servername) {
6583 NDR_PULL_ALLOC(ndr, r->servername);
6585 r->servername = NULL;
6587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6588 if (_ptr_printername) {
6589 NDR_PULL_ALLOC(ndr, r->printername);
6591 r->printername = NULL;
6593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
6595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
6596 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
6597 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
6598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
6600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
6601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
6602 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
6603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
6604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
6605 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
6606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
6607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
6608 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
6609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
6610 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
6611 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
6612 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
6613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
6614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
6615 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
6616 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
6617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
6618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
6619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
6620 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6622 if (ndr_flags & NDR_BUFFERS) {
6623 if (r->servername) {
6624 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6625 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6626 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6627 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6628 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6629 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));
6631 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6632 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6635 if (r->printername) {
6636 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6637 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6638 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6639 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6640 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6641 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));
6643 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6644 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6648 return NDR_ERR_SUCCESS;
6651 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
6653 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
6655 ndr_print_ptr(ndr, "servername", r->servername);
6657 if (r->servername) {
6658 ndr_print_string(ndr, "servername", r->servername);
6661 ndr_print_ptr(ndr, "printername", r->printername);
6663 if (r->printername) {
6664 ndr_print_string(ndr, "printername", r->printername);
6667 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6668 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
6669 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
6670 ndr_print_spoolss_Time(ndr, "time", &r->time);
6671 ndr_print_uint32(ndr, "global_counter", r->global_counter);
6672 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6673 ndr_print_uint32(ndr, "version", r->version);
6674 ndr_print_uint32(ndr, "free_build", r->free_build);
6675 ndr_print_uint32(ndr, "spooling", r->spooling);
6676 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
6677 ndr_print_uint32(ndr, "session_counter", r->session_counter);
6678 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
6679 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
6680 ndr_print_uint32(ndr, "job_error", r->job_error);
6681 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
6682 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
6683 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
6684 ndr_print_uint32(ndr, "change_id", r->change_id);
6685 ndr_print_WERROR(ndr, "last_error", r->last_error);
6686 ndr_print_uint32(ndr, "status", r->status);
6687 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
6688 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
6689 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
6690 ndr_print_uint16(ndr, "processor_level", r->processor_level);
6691 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
6692 ndr_print_uint32(ndr, "reserved2", r->reserved2);
6693 ndr_print_uint32(ndr, "reserved3", r->reserved3);
6697 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
6699 if (ndr_flags & NDR_SCALARS) {
6700 NDR_CHECK(ndr_push_align(ndr, 5));
6701 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
6702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
6703 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
6704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6705 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6707 if (ndr_flags & NDR_BUFFERS) {
6708 if (r->description) {
6709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
6712 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
6718 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6727 return NDR_ERR_SUCCESS;
6730 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
6732 uint32_t _ptr_description;
6733 TALLOC_CTX *_mem_save_description_0;
6735 TALLOC_CTX *_mem_save_name_0;
6736 uint32_t _ptr_comment;
6737 TALLOC_CTX *_mem_save_comment_0;
6738 if (ndr_flags & NDR_SCALARS) {
6739 NDR_CHECK(ndr_pull_align(ndr, 5));
6740 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
6741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
6742 if (_ptr_description) {
6743 NDR_PULL_ALLOC(ndr, r->description);
6745 r->description = NULL;
6747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
6749 NDR_PULL_ALLOC(ndr, r->name);
6753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6755 NDR_PULL_ALLOC(ndr, r->comment);
6759 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6761 if (ndr_flags & NDR_BUFFERS) {
6762 if (r->description) {
6763 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6764 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6765 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6766 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6767 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6768 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));
6770 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6771 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6772 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6775 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6776 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6777 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6778 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6779 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6780 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));
6782 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6783 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6787 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6788 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6789 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6790 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6791 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6792 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));
6794 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6795 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6799 return NDR_ERR_SUCCESS;
6802 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6804 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6806 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
6807 ndr_print_ptr(ndr, "description", r->description);
6809 if (r->description) {
6810 ndr_print_string(ndr, "description", r->description);
6813 ndr_print_ptr(ndr, "name", r->name);
6816 ndr_print_string(ndr, "name", r->name);
6819 ndr_print_ptr(ndr, "comment", r->comment);
6822 ndr_print_string(ndr, "comment", r->comment);
6828 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6830 if (ndr_flags & NDR_SCALARS) {
6831 NDR_CHECK(ndr_push_align(ndr, 5));
6832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
6840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6841 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6843 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->secdesc_ptr));
6845 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6850 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6853 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6855 if (ndr_flags & NDR_BUFFERS) {
6856 if (r->servername) {
6857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6862 if (r->printername) {
6863 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6866 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6869 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6871 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6872 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6875 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6876 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6877 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6878 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6880 if (r->drivername) {
6881 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6882 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6883 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6884 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6887 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6888 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6889 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6890 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6893 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6894 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6895 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6896 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6899 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6900 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6901 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6902 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6904 if (r->printprocessor) {
6905 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6906 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6908 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6911 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6912 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6913 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6914 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6916 if (r->parameters) {
6917 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6918 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6919 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6920 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6923 return NDR_ERR_SUCCESS;
6926 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6928 uint32_t _ptr_servername;
6929 TALLOC_CTX *_mem_save_servername_0;
6930 uint32_t _ptr_printername;
6931 TALLOC_CTX *_mem_save_printername_0;
6932 uint32_t _ptr_sharename;
6933 TALLOC_CTX *_mem_save_sharename_0;
6934 uint32_t _ptr_portname;
6935 TALLOC_CTX *_mem_save_portname_0;
6936 uint32_t _ptr_drivername;
6937 TALLOC_CTX *_mem_save_drivername_0;
6938 uint32_t _ptr_comment;
6939 TALLOC_CTX *_mem_save_comment_0;
6940 uint32_t _ptr_location;
6941 TALLOC_CTX *_mem_save_location_0;
6942 uint32_t _ptr_sepfile;
6943 TALLOC_CTX *_mem_save_sepfile_0;
6944 uint32_t _ptr_printprocessor;
6945 TALLOC_CTX *_mem_save_printprocessor_0;
6946 uint32_t _ptr_datatype;
6947 TALLOC_CTX *_mem_save_datatype_0;
6948 uint32_t _ptr_parameters;
6949 TALLOC_CTX *_mem_save_parameters_0;
6950 if (ndr_flags & NDR_SCALARS) {
6951 NDR_CHECK(ndr_pull_align(ndr, 5));
6952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6953 if (_ptr_servername) {
6954 NDR_PULL_ALLOC(ndr, r->servername);
6956 r->servername = NULL;
6958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6959 if (_ptr_printername) {
6960 NDR_PULL_ALLOC(ndr, r->printername);
6962 r->printername = NULL;
6964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6965 if (_ptr_sharename) {
6966 NDR_PULL_ALLOC(ndr, r->sharename);
6968 r->sharename = NULL;
6970 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6971 if (_ptr_portname) {
6972 NDR_PULL_ALLOC(ndr, r->portname);
6976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6977 if (_ptr_drivername) {
6978 NDR_PULL_ALLOC(ndr, r->drivername);
6980 r->drivername = NULL;
6982 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6984 NDR_PULL_ALLOC(ndr, r->comment);
6988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6989 if (_ptr_location) {
6990 NDR_PULL_ALLOC(ndr, r->location);
6994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
6995 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6997 NDR_PULL_ALLOC(ndr, r->sepfile);
7001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
7002 if (_ptr_printprocessor) {
7003 NDR_PULL_ALLOC(ndr, r->printprocessor);
7005 r->printprocessor = NULL;
7007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
7008 if (_ptr_datatype) {
7009 NDR_PULL_ALLOC(ndr, r->datatype);
7013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
7014 if (_ptr_parameters) {
7015 NDR_PULL_ALLOC(ndr, r->parameters);
7017 r->parameters = NULL;
7019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->secdesc_ptr));
7020 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7021 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
7022 if (r->priority > 99) {
7023 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7027 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7028 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7031 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7033 if (ndr_flags & NDR_BUFFERS) {
7034 if (r->servername) {
7035 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7036 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7037 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7038 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7039 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7040 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));
7042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7046 if (r->printername) {
7047 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7048 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7049 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7050 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7051 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7052 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));
7054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7055 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7059 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7060 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7061 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7062 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7063 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
7064 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));
7066 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
7067 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
7068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7071 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7072 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7073 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7074 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7075 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7076 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));
7078 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7079 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7082 if (r->drivername) {
7083 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7084 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7085 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7086 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7087 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
7088 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));
7090 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
7091 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
7092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7095 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7096 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7097 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7098 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7099 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
7100 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));
7102 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
7103 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
7104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7107 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7108 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7109 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7110 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7111 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
7112 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));
7114 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
7115 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
7116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7119 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7120 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7121 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7122 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7123 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
7124 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));
7126 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
7127 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
7128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7130 if (r->printprocessor) {
7131 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7132 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7133 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7134 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7135 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
7136 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));
7138 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
7139 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
7140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7143 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7144 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7145 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7146 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7147 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
7148 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));
7150 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
7151 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
7152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7154 if (r->parameters) {
7155 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7156 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7157 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7158 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7159 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
7160 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));
7162 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
7163 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
7164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7167 return NDR_ERR_SUCCESS;
7170 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7172 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7174 ndr_print_ptr(ndr, "servername", r->servername);
7176 if (r->servername) {
7177 ndr_print_string(ndr, "servername", r->servername);
7180 ndr_print_ptr(ndr, "printername", r->printername);
7182 if (r->printername) {
7183 ndr_print_string(ndr, "printername", r->printername);
7186 ndr_print_ptr(ndr, "sharename", r->sharename);
7189 ndr_print_string(ndr, "sharename", r->sharename);
7192 ndr_print_ptr(ndr, "portname", r->portname);
7195 ndr_print_string(ndr, "portname", r->portname);
7198 ndr_print_ptr(ndr, "drivername", r->drivername);
7200 if (r->drivername) {
7201 ndr_print_string(ndr, "drivername", r->drivername);
7204 ndr_print_ptr(ndr, "comment", r->comment);
7207 ndr_print_string(ndr, "comment", r->comment);
7210 ndr_print_ptr(ndr, "location", r->location);
7213 ndr_print_string(ndr, "location", r->location);
7216 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7217 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7220 ndr_print_string(ndr, "sepfile", r->sepfile);
7223 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7225 if (r->printprocessor) {
7226 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7229 ndr_print_ptr(ndr, "datatype", r->datatype);
7232 ndr_print_string(ndr, "datatype", r->datatype);
7235 ndr_print_ptr(ndr, "parameters", r->parameters);
7237 if (r->parameters) {
7238 ndr_print_string(ndr, "parameters", r->parameters);
7241 ndr_print_uint32(ndr, "secdesc_ptr", r->secdesc_ptr);
7242 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7243 ndr_print_uint32(ndr, "priority", r->priority);
7244 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7245 ndr_print_uint32(ndr, "starttime", r->starttime);
7246 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7247 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7248 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7249 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7253 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7255 if (ndr_flags & NDR_SCALARS) {
7256 NDR_CHECK(ndr_push_align(ndr, 4));
7257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7258 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7260 if (ndr_flags & NDR_BUFFERS) {
7262 return NDR_ERR_SUCCESS;
7265 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7267 if (ndr_flags & NDR_SCALARS) {
7268 NDR_CHECK(ndr_pull_align(ndr, 4));
7269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
7270 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7272 if (ndr_flags & NDR_BUFFERS) {
7274 return NDR_ERR_SUCCESS;
7277 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7279 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7281 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7285 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7287 if (ndr_flags & NDR_SCALARS) {
7288 NDR_CHECK(ndr_push_align(ndr, 5));
7289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7290 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7291 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7292 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7294 if (ndr_flags & NDR_BUFFERS) {
7295 if (r->printername) {
7296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7301 if (r->servername) {
7302 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7303 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7304 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7305 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7308 return NDR_ERR_SUCCESS;
7311 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
7313 uint32_t _ptr_printername;
7314 TALLOC_CTX *_mem_save_printername_0;
7315 uint32_t _ptr_servername;
7316 TALLOC_CTX *_mem_save_servername_0;
7317 if (ndr_flags & NDR_SCALARS) {
7318 NDR_CHECK(ndr_pull_align(ndr, 5));
7319 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7320 if (_ptr_printername) {
7321 NDR_PULL_ALLOC(ndr, r->printername);
7323 r->printername = NULL;
7325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7326 if (_ptr_servername) {
7327 NDR_PULL_ALLOC(ndr, r->servername);
7329 r->servername = NULL;
7331 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7332 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7334 if (ndr_flags & NDR_BUFFERS) {
7335 if (r->printername) {
7336 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7337 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7338 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7339 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7340 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7341 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));
7343 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7344 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7347 if (r->servername) {
7348 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7349 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7350 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7351 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7352 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
7353 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));
7355 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
7356 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
7357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7360 return NDR_ERR_SUCCESS;
7363 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
7365 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
7367 ndr_print_ptr(ndr, "printername", r->printername);
7369 if (r->printername) {
7370 ndr_print_string(ndr, "printername", r->printername);
7373 ndr_print_ptr(ndr, "servername", r->servername);
7375 if (r->servername) {
7376 ndr_print_string(ndr, "servername", r->servername);
7379 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7383 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
7385 if (ndr_flags & NDR_SCALARS) {
7386 NDR_CHECK(ndr_push_align(ndr, 5));
7387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7389 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
7391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
7392 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7394 if (ndr_flags & NDR_BUFFERS) {
7395 if (r->printername) {
7396 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7397 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7398 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7399 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7402 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7403 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7404 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7405 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7408 return NDR_ERR_SUCCESS;
7411 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
7413 uint32_t _ptr_printername;
7414 TALLOC_CTX *_mem_save_printername_0;
7415 uint32_t _ptr_portname;
7416 TALLOC_CTX *_mem_save_portname_0;
7417 if (ndr_flags & NDR_SCALARS) {
7418 NDR_CHECK(ndr_pull_align(ndr, 5));
7419 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7420 if (_ptr_printername) {
7421 NDR_PULL_ALLOC(ndr, r->printername);
7423 r->printername = NULL;
7425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7426 if (_ptr_portname) {
7427 NDR_PULL_ALLOC(ndr, r->portname);
7431 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
7433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
7434 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7436 if (ndr_flags & NDR_BUFFERS) {
7437 if (r->printername) {
7438 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7439 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7440 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7441 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7442 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
7443 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));
7445 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
7446 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
7447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7450 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7451 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7452 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7453 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7454 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
7455 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));
7457 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
7458 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
7459 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7462 return NDR_ERR_SUCCESS;
7465 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
7467 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
7469 ndr_print_ptr(ndr, "printername", r->printername);
7471 if (r->printername) {
7472 ndr_print_string(ndr, "printername", r->printername);
7475 ndr_print_ptr(ndr, "portname", r->portname);
7478 ndr_print_string(ndr, "portname", r->portname);
7481 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7482 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
7483 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
7487 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
7489 if (ndr_flags & NDR_SCALARS) {
7490 NDR_CHECK(ndr_push_align(ndr, 4));
7491 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7492 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7494 if (ndr_flags & NDR_BUFFERS) {
7496 return NDR_ERR_SUCCESS;
7499 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
7501 if (ndr_flags & NDR_SCALARS) {
7502 NDR_CHECK(ndr_pull_align(ndr, 4));
7503 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7504 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7506 if (ndr_flags & NDR_BUFFERS) {
7508 return NDR_ERR_SUCCESS;
7511 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
7513 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
7515 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7519 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
7521 if (ndr_flags & NDR_SCALARS) {
7522 NDR_CHECK(ndr_push_align(ndr, 5));
7523 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
7524 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
7525 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7527 if (ndr_flags & NDR_BUFFERS) {
7529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7530 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
7532 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7535 return NDR_ERR_SUCCESS;
7538 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
7541 TALLOC_CTX *_mem_save_guid_0;
7542 if (ndr_flags & NDR_SCALARS) {
7543 NDR_CHECK(ndr_pull_align(ndr, 5));
7544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
7546 NDR_PULL_ALLOC(ndr, r->guid);
7550 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
7551 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7553 if (ndr_flags & NDR_BUFFERS) {
7555 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
7556 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
7557 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
7558 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
7559 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
7560 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));
7562 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
7563 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
7564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
7567 return NDR_ERR_SUCCESS;
7570 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
7572 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
7574 ndr_print_ptr(ndr, "guid", r->guid);
7577 ndr_print_string(ndr, "guid", r->guid);
7580 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
7584 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
7586 if (ndr_flags & NDR_SCALARS) {
7587 NDR_CHECK(ndr_push_align(ndr, 4));
7588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7589 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7591 if (ndr_flags & NDR_BUFFERS) {
7593 return NDR_ERR_SUCCESS;
7596 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo8 *r)
7598 if (ndr_flags & NDR_SCALARS) {
7599 NDR_CHECK(ndr_pull_align(ndr, 4));
7600 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7601 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7603 if (ndr_flags & NDR_BUFFERS) {
7605 return NDR_ERR_SUCCESS;
7608 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
7610 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
7612 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7616 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
7618 if (ndr_flags & NDR_SCALARS) {
7619 NDR_CHECK(ndr_push_align(ndr, 4));
7620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7621 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
7623 if (ndr_flags & NDR_BUFFERS) {
7625 return NDR_ERR_SUCCESS;
7628 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo9 *r)
7630 if (ndr_flags & NDR_SCALARS) {
7631 NDR_CHECK(ndr_pull_align(ndr, 4));
7632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->devmode_ptr));
7633 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
7635 if (ndr_flags & NDR_BUFFERS) {
7637 return NDR_ERR_SUCCESS;
7640 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
7642 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
7644 ndr_print_uint32(ndr, "devmode_ptr", r->devmode_ptr);
7648 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
7650 if (ndr_flags & NDR_SCALARS) {
7651 int level = ndr_push_get_switch_value(ndr, r);
7652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
7653 NDR_CHECK(ndr_push_union_align(ndr, 5));
7656 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
7660 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
7664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
7668 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
7672 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
7676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
7680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
7684 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
7688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
7692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
7700 if (ndr_flags & NDR_BUFFERS) {
7701 int level = ndr_push_get_switch_value(ndr, r);
7705 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7711 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7717 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7723 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7729 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7735 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7741 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7747 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7753 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7759 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7768 return NDR_ERR_SUCCESS;
7771 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
7775 TALLOC_CTX *_mem_save_info0_0;
7776 TALLOC_CTX *_mem_save_info1_0;
7777 TALLOC_CTX *_mem_save_info2_0;
7778 TALLOC_CTX *_mem_save_info3_0;
7779 TALLOC_CTX *_mem_save_info4_0;
7780 TALLOC_CTX *_mem_save_info5_0;
7781 TALLOC_CTX *_mem_save_info6_0;
7782 TALLOC_CTX *_mem_save_info7_0;
7783 TALLOC_CTX *_mem_save_info8_0;
7784 TALLOC_CTX *_mem_save_info9_0;
7785 level = ndr_pull_get_switch_value(ndr, r);
7786 if (ndr_flags & NDR_SCALARS) {
7787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7788 if (_level != level) {
7789 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
7791 NDR_CHECK(ndr_pull_union_align(ndr, 5));
7794 uint32_t _ptr_info0;
7795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7797 NDR_PULL_ALLOC(ndr, r->info0);
7804 uint32_t _ptr_info1;
7805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7807 NDR_PULL_ALLOC(ndr, r->info1);
7814 uint32_t _ptr_info2;
7815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7817 NDR_PULL_ALLOC(ndr, r->info2);
7824 uint32_t _ptr_info3;
7825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7827 NDR_PULL_ALLOC(ndr, r->info3);
7834 uint32_t _ptr_info4;
7835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7837 NDR_PULL_ALLOC(ndr, r->info4);
7844 uint32_t _ptr_info5;
7845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7847 NDR_PULL_ALLOC(ndr, r->info5);
7854 uint32_t _ptr_info6;
7855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7857 NDR_PULL_ALLOC(ndr, r->info6);
7864 uint32_t _ptr_info7;
7865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7867 NDR_PULL_ALLOC(ndr, r->info7);
7874 uint32_t _ptr_info8;
7875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7877 NDR_PULL_ALLOC(ndr, r->info8);
7884 uint32_t _ptr_info9;
7885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7887 NDR_PULL_ALLOC(ndr, r->info9);
7898 if (ndr_flags & NDR_BUFFERS) {
7902 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7903 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7904 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7911 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7912 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7913 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7920 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7921 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7922 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7929 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7930 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7931 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7938 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7939 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7940 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7947 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7948 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7949 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7956 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7957 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7958 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7965 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7966 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7967 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7974 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7975 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7976 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS, r->info8));
7977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7983 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7984 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7985 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS, r->info9));
7986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7995 return NDR_ERR_SUCCESS;
7998 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
8001 level = ndr_print_get_switch_value(ndr, r);
8002 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
8005 ndr_print_ptr(ndr, "info0", r->info0);
8008 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
8014 ndr_print_ptr(ndr, "info1", r->info1);
8017 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
8023 ndr_print_ptr(ndr, "info2", r->info2);
8026 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
8032 ndr_print_ptr(ndr, "info3", r->info3);
8035 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
8041 ndr_print_ptr(ndr, "info4", r->info4);
8044 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
8050 ndr_print_ptr(ndr, "info5", r->info5);
8053 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
8059 ndr_print_ptr(ndr, "info6", r->info6);
8062 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8068 ndr_print_ptr(ndr, "info7", r->info7);
8071 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8077 ndr_print_ptr(ndr, "info8", r->info8);
8080 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
8086 ndr_print_ptr(ndr, "info9", r->info9);
8089 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
8100 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8102 if (ndr_flags & NDR_SCALARS) {
8103 NDR_CHECK(ndr_push_align(ndr, 5));
8104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8105 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8106 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8107 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8109 if (ndr_flags & NDR_BUFFERS) {
8110 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8112 return NDR_ERR_SUCCESS;
8115 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8117 if (ndr_flags & NDR_SCALARS) {
8118 NDR_CHECK(ndr_pull_align(ndr, 5));
8119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8120 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8121 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8122 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8124 if (ndr_flags & NDR_BUFFERS) {
8125 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8127 return NDR_ERR_SUCCESS;
8130 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8132 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8134 ndr_print_uint32(ndr, "level", r->level);
8135 ndr_print_set_switch_value(ndr, &r->info, r->level);
8136 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8140 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8142 if (ndr_flags & NDR_SCALARS) {
8143 NDR_CHECK(ndr_push_align(ndr, 4));
8144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
8146 uint32_t _flags_save_string_array = ndr->flags;
8147 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8148 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8149 ndr->flags = _flags_save_string_array;
8151 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8153 if (ndr_flags & NDR_BUFFERS) {
8155 return NDR_ERR_SUCCESS;
8158 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8160 if (ndr_flags & NDR_SCALARS) {
8161 NDR_CHECK(ndr_pull_align(ndr, 4));
8162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8164 uint32_t _flags_save_string_array = ndr->flags;
8165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8166 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8167 ndr->flags = _flags_save_string_array;
8169 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8171 if (ndr_flags & NDR_BUFFERS) {
8173 return NDR_ERR_SUCCESS;
8176 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8178 ndr_print_struct(ndr, name, "spoolss_StringArray");
8180 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);
8181 ndr_print_string_array(ndr, "string", r->string);
8185 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8187 if (ndr_flags & NDR_SCALARS) {
8188 NDR_CHECK(ndr_push_align(ndr, 5));
8189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8190 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8192 if (ndr_flags & NDR_BUFFERS) {
8193 if (r->driver_name) {
8194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8196 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8197 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8200 return NDR_ERR_SUCCESS;
8203 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
8205 uint32_t _ptr_driver_name;
8206 TALLOC_CTX *_mem_save_driver_name_0;
8207 if (ndr_flags & NDR_SCALARS) {
8208 NDR_CHECK(ndr_pull_align(ndr, 5));
8209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8210 if (_ptr_driver_name) {
8211 NDR_PULL_ALLOC(ndr, r->driver_name);
8213 r->driver_name = NULL;
8215 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8217 if (ndr_flags & NDR_BUFFERS) {
8218 if (r->driver_name) {
8219 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8220 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8221 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8222 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8223 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8224 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));
8226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8231 return NDR_ERR_SUCCESS;
8234 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
8236 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
8238 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8240 if (r->driver_name) {
8241 ndr_print_string(ndr, "driver_name", r->driver_name);
8247 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
8249 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
8250 return NDR_ERR_SUCCESS;
8253 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
8256 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
8258 return NDR_ERR_SUCCESS;
8261 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
8263 const char *val = NULL;
8266 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
8267 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
8268 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
8269 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
8271 ndr_print_enum(ndr, name, "ENUM", val, r);
8274 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
8276 if (ndr_flags & NDR_SCALARS) {
8277 NDR_CHECK(ndr_push_align(ndr, 5));
8278 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8279 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8280 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8284 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8286 if (ndr_flags & NDR_BUFFERS) {
8287 if (r->driver_name) {
8288 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8289 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8290 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8291 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8293 if (r->architecture) {
8294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8295 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8299 if (r->driver_path) {
8300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8301 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8302 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8303 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8306 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8307 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8308 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8309 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8311 if (r->config_file) {
8312 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8313 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8314 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8315 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8318 return NDR_ERR_SUCCESS;
8321 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
8323 uint32_t _ptr_driver_name;
8324 TALLOC_CTX *_mem_save_driver_name_0;
8325 uint32_t _ptr_architecture;
8326 TALLOC_CTX *_mem_save_architecture_0;
8327 uint32_t _ptr_driver_path;
8328 TALLOC_CTX *_mem_save_driver_path_0;
8329 uint32_t _ptr_data_file;
8330 TALLOC_CTX *_mem_save_data_file_0;
8331 uint32_t _ptr_config_file;
8332 TALLOC_CTX *_mem_save_config_file_0;
8333 if (ndr_flags & NDR_SCALARS) {
8334 NDR_CHECK(ndr_pull_align(ndr, 5));
8335 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8336 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8337 if (_ptr_driver_name) {
8338 NDR_PULL_ALLOC(ndr, r->driver_name);
8340 r->driver_name = NULL;
8342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8343 if (_ptr_architecture) {
8344 NDR_PULL_ALLOC(ndr, r->architecture);
8346 r->architecture = NULL;
8348 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8349 if (_ptr_driver_path) {
8350 NDR_PULL_ALLOC(ndr, r->driver_path);
8352 r->driver_path = NULL;
8354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8355 if (_ptr_data_file) {
8356 NDR_PULL_ALLOC(ndr, r->data_file);
8358 r->data_file = NULL;
8360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8361 if (_ptr_config_file) {
8362 NDR_PULL_ALLOC(ndr, r->config_file);
8364 r->config_file = NULL;
8366 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8368 if (ndr_flags & NDR_BUFFERS) {
8369 if (r->driver_name) {
8370 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8371 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8372 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8373 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8374 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8375 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8381 if (r->architecture) {
8382 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8383 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8384 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8385 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8386 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8387 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));
8389 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8390 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8393 if (r->driver_path) {
8394 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8395 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8396 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8397 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8398 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8399 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));
8401 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8402 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8406 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8407 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8408 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8409 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8410 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8411 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));
8413 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8414 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8417 if (r->config_file) {
8418 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8419 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8420 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8421 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8422 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8423 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));
8425 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8426 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8430 return NDR_ERR_SUCCESS;
8433 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
8435 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
8437 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8438 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8440 if (r->driver_name) {
8441 ndr_print_string(ndr, "driver_name", r->driver_name);
8444 ndr_print_ptr(ndr, "architecture", r->architecture);
8446 if (r->architecture) {
8447 ndr_print_string(ndr, "architecture", r->architecture);
8450 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8452 if (r->driver_path) {
8453 ndr_print_string(ndr, "driver_path", r->driver_path);
8456 ndr_print_ptr(ndr, "data_file", r->data_file);
8459 ndr_print_string(ndr, "data_file", r->data_file);
8462 ndr_print_ptr(ndr, "config_file", r->config_file);
8464 if (r->config_file) {
8465 ndr_print_string(ndr, "config_file", r->config_file);
8471 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
8473 if (ndr_flags & NDR_SCALARS) {
8474 NDR_CHECK(ndr_push_align(ndr, 5));
8475 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8476 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8478 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8486 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8488 if (ndr_flags & NDR_BUFFERS) {
8489 if (r->driver_name) {
8490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8493 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8495 if (r->architecture) {
8496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8497 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8498 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8499 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8501 if (r->driver_path) {
8502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8505 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8508 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8511 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8513 if (r->config_file) {
8514 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8516 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8517 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8522 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8523 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8525 if (r->monitor_name) {
8526 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8527 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8528 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8529 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8531 if (r->default_datatype) {
8532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8534 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8535 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8537 if (r->dependent_files) {
8538 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8541 return NDR_ERR_SUCCESS;
8544 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
8546 uint32_t _ptr_driver_name;
8547 TALLOC_CTX *_mem_save_driver_name_0;
8548 uint32_t _ptr_architecture;
8549 TALLOC_CTX *_mem_save_architecture_0;
8550 uint32_t _ptr_driver_path;
8551 TALLOC_CTX *_mem_save_driver_path_0;
8552 uint32_t _ptr_data_file;
8553 TALLOC_CTX *_mem_save_data_file_0;
8554 uint32_t _ptr_config_file;
8555 TALLOC_CTX *_mem_save_config_file_0;
8556 uint32_t _ptr_help_file;
8557 TALLOC_CTX *_mem_save_help_file_0;
8558 uint32_t _ptr_monitor_name;
8559 TALLOC_CTX *_mem_save_monitor_name_0;
8560 uint32_t _ptr_default_datatype;
8561 TALLOC_CTX *_mem_save_default_datatype_0;
8562 uint32_t _ptr_dependent_files;
8563 TALLOC_CTX *_mem_save_dependent_files_0;
8564 if (ndr_flags & NDR_SCALARS) {
8565 NDR_CHECK(ndr_pull_align(ndr, 5));
8566 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8568 if (_ptr_driver_name) {
8569 NDR_PULL_ALLOC(ndr, r->driver_name);
8571 r->driver_name = NULL;
8573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8574 if (_ptr_architecture) {
8575 NDR_PULL_ALLOC(ndr, r->architecture);
8577 r->architecture = NULL;
8579 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8580 if (_ptr_driver_path) {
8581 NDR_PULL_ALLOC(ndr, r->driver_path);
8583 r->driver_path = NULL;
8585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8586 if (_ptr_data_file) {
8587 NDR_PULL_ALLOC(ndr, r->data_file);
8589 r->data_file = NULL;
8591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8592 if (_ptr_config_file) {
8593 NDR_PULL_ALLOC(ndr, r->config_file);
8595 r->config_file = NULL;
8597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8598 if (_ptr_help_file) {
8599 NDR_PULL_ALLOC(ndr, r->help_file);
8601 r->help_file = NULL;
8603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8604 if (_ptr_monitor_name) {
8605 NDR_PULL_ALLOC(ndr, r->monitor_name);
8607 r->monitor_name = NULL;
8609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8610 if (_ptr_default_datatype) {
8611 NDR_PULL_ALLOC(ndr, r->default_datatype);
8613 r->default_datatype = NULL;
8615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8617 if (_ptr_dependent_files) {
8618 NDR_PULL_ALLOC(ndr, r->dependent_files);
8620 r->dependent_files = NULL;
8622 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8624 if (ndr_flags & NDR_BUFFERS) {
8625 if (r->driver_name) {
8626 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8627 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8628 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8629 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8630 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8631 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8633 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8634 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8635 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8637 if (r->architecture) {
8638 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8639 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8640 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8641 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8642 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8643 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8645 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8646 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8649 if (r->driver_path) {
8650 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8651 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8652 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8653 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8654 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8655 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8657 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8662 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8663 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8664 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8665 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8666 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8667 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8669 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8673 if (r->config_file) {
8674 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8675 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8676 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8677 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8678 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8679 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));
8681 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8682 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8686 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8687 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8688 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8689 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8690 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8691 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));
8693 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8694 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8697 if (r->monitor_name) {
8698 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8699 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8700 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8701 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8702 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8703 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));
8705 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8706 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8709 if (r->default_datatype) {
8710 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8711 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8712 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8713 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8714 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8715 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));
8717 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8718 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8721 if (r->dependent_files) {
8722 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8723 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8724 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8728 return NDR_ERR_SUCCESS;
8731 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
8733 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
8735 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8736 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8738 if (r->driver_name) {
8739 ndr_print_string(ndr, "driver_name", r->driver_name);
8742 ndr_print_ptr(ndr, "architecture", r->architecture);
8744 if (r->architecture) {
8745 ndr_print_string(ndr, "architecture", r->architecture);
8748 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8750 if (r->driver_path) {
8751 ndr_print_string(ndr, "driver_path", r->driver_path);
8754 ndr_print_ptr(ndr, "data_file", r->data_file);
8757 ndr_print_string(ndr, "data_file", r->data_file);
8760 ndr_print_ptr(ndr, "config_file", r->config_file);
8762 if (r->config_file) {
8763 ndr_print_string(ndr, "config_file", r->config_file);
8766 ndr_print_ptr(ndr, "help_file", r->help_file);
8769 ndr_print_string(ndr, "help_file", r->help_file);
8772 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8774 if (r->monitor_name) {
8775 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8778 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8780 if (r->default_datatype) {
8781 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8784 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);
8785 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8787 if (r->dependent_files) {
8788 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8794 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8796 if (ndr_flags & NDR_SCALARS) {
8797 NDR_CHECK(ndr_push_align(ndr, 5));
8798 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8800 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8802 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8805 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8808 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8811 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8813 if (ndr_flags & NDR_BUFFERS) {
8814 if (r->driver_name) {
8815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8816 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8817 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8818 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8820 if (r->architecture) {
8821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8824 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8826 if (r->driver_path) {
8827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8829 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8830 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8838 if (r->config_file) {
8839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8841 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8846 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8847 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8850 if (r->monitor_name) {
8851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8854 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8856 if (r->default_datatype) {
8857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8862 if (r->dependent_files) {
8863 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8865 if (r->previous_names) {
8866 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8869 return NDR_ERR_SUCCESS;
8872 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8874 uint32_t _ptr_driver_name;
8875 TALLOC_CTX *_mem_save_driver_name_0;
8876 uint32_t _ptr_architecture;
8877 TALLOC_CTX *_mem_save_architecture_0;
8878 uint32_t _ptr_driver_path;
8879 TALLOC_CTX *_mem_save_driver_path_0;
8880 uint32_t _ptr_data_file;
8881 TALLOC_CTX *_mem_save_data_file_0;
8882 uint32_t _ptr_config_file;
8883 TALLOC_CTX *_mem_save_config_file_0;
8884 uint32_t _ptr_help_file;
8885 TALLOC_CTX *_mem_save_help_file_0;
8886 uint32_t _ptr_monitor_name;
8887 TALLOC_CTX *_mem_save_monitor_name_0;
8888 uint32_t _ptr_default_datatype;
8889 TALLOC_CTX *_mem_save_default_datatype_0;
8890 uint32_t _ptr_dependent_files;
8891 TALLOC_CTX *_mem_save_dependent_files_0;
8892 uint32_t _ptr_previous_names;
8893 TALLOC_CTX *_mem_save_previous_names_0;
8894 if (ndr_flags & NDR_SCALARS) {
8895 NDR_CHECK(ndr_pull_align(ndr, 5));
8896 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8898 if (_ptr_driver_name) {
8899 NDR_PULL_ALLOC(ndr, r->driver_name);
8901 r->driver_name = NULL;
8903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8904 if (_ptr_architecture) {
8905 NDR_PULL_ALLOC(ndr, r->architecture);
8907 r->architecture = NULL;
8909 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8910 if (_ptr_driver_path) {
8911 NDR_PULL_ALLOC(ndr, r->driver_path);
8913 r->driver_path = NULL;
8915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8916 if (_ptr_data_file) {
8917 NDR_PULL_ALLOC(ndr, r->data_file);
8919 r->data_file = NULL;
8921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8922 if (_ptr_config_file) {
8923 NDR_PULL_ALLOC(ndr, r->config_file);
8925 r->config_file = NULL;
8927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8928 if (_ptr_help_file) {
8929 NDR_PULL_ALLOC(ndr, r->help_file);
8931 r->help_file = NULL;
8933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8934 if (_ptr_monitor_name) {
8935 NDR_PULL_ALLOC(ndr, r->monitor_name);
8937 r->monitor_name = NULL;
8939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8940 if (_ptr_default_datatype) {
8941 NDR_PULL_ALLOC(ndr, r->default_datatype);
8943 r->default_datatype = NULL;
8945 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8947 if (_ptr_dependent_files) {
8948 NDR_PULL_ALLOC(ndr, r->dependent_files);
8950 r->dependent_files = NULL;
8952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8954 if (_ptr_previous_names) {
8955 NDR_PULL_ALLOC(ndr, r->previous_names);
8957 r->previous_names = NULL;
8959 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8961 if (ndr_flags & NDR_BUFFERS) {
8962 if (r->driver_name) {
8963 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8964 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8965 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8966 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8967 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8968 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8970 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8971 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8974 if (r->architecture) {
8975 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8976 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8977 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8978 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8979 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8980 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8982 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8983 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8986 if (r->driver_path) {
8987 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8988 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8989 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8990 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8991 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8992 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8994 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8995 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8999 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9000 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9001 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9002 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9003 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9004 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9006 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9007 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9010 if (r->config_file) {
9011 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9012 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9013 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9014 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9015 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9016 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));
9018 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9019 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9023 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9024 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9025 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9026 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9027 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9028 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));
9030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9031 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9034 if (r->monitor_name) {
9035 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9036 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9037 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9038 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9039 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9040 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));
9042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9046 if (r->default_datatype) {
9047 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9048 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9049 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9050 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9051 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9052 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));
9054 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9055 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9058 if (r->dependent_files) {
9059 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9060 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9061 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9064 if (r->previous_names) {
9065 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9066 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9067 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9071 return NDR_ERR_SUCCESS;
9074 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9076 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9078 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9079 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9081 if (r->driver_name) {
9082 ndr_print_string(ndr, "driver_name", r->driver_name);
9085 ndr_print_ptr(ndr, "architecture", r->architecture);
9087 if (r->architecture) {
9088 ndr_print_string(ndr, "architecture", r->architecture);
9091 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9093 if (r->driver_path) {
9094 ndr_print_string(ndr, "driver_path", r->driver_path);
9097 ndr_print_ptr(ndr, "data_file", r->data_file);
9100 ndr_print_string(ndr, "data_file", r->data_file);
9103 ndr_print_ptr(ndr, "config_file", r->config_file);
9105 if (r->config_file) {
9106 ndr_print_string(ndr, "config_file", r->config_file);
9109 ndr_print_ptr(ndr, "help_file", r->help_file);
9112 ndr_print_string(ndr, "help_file", r->help_file);
9115 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9117 if (r->monitor_name) {
9118 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9121 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9123 if (r->default_datatype) {
9124 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9127 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);
9128 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9130 if (r->dependent_files) {
9131 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9134 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);
9135 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9137 if (r->previous_names) {
9138 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9144 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
9146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9147 return NDR_ERR_SUCCESS;
9150 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
9153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9155 return NDR_ERR_SUCCESS;
9158 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
9160 ndr_print_uint32(ndr, name, r);
9162 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
9166 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
9168 if (ndr_flags & NDR_SCALARS) {
9169 NDR_CHECK(ndr_push_align(ndr, 8));
9170 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9172 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9173 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9174 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9175 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9176 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9178 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9183 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9184 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9189 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9191 if (ndr_flags & NDR_BUFFERS) {
9192 if (r->driver_name) {
9193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9194 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9195 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9196 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9198 if (r->architecture) {
9199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9200 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9202 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9204 if (r->driver_path) {
9205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9206 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9207 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9208 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9211 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9212 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9213 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9214 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9216 if (r->config_file) {
9217 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9223 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9224 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9225 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9226 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9228 if (r->monitor_name) {
9229 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9230 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9231 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9232 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9234 if (r->default_datatype) {
9235 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9236 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9237 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9238 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9240 if (r->dependent_files) {
9241 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9243 if (r->previous_names) {
9244 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9246 if (r->manufacturer_name) {
9247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9252 if (r->manufacturer_url) {
9253 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9256 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9258 if (r->hardware_id) {
9259 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9260 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9261 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9262 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9265 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9266 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9267 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9268 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9271 return NDR_ERR_SUCCESS;
9274 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
9276 uint32_t _ptr_driver_name;
9277 TALLOC_CTX *_mem_save_driver_name_0;
9278 uint32_t _ptr_architecture;
9279 TALLOC_CTX *_mem_save_architecture_0;
9280 uint32_t _ptr_driver_path;
9281 TALLOC_CTX *_mem_save_driver_path_0;
9282 uint32_t _ptr_data_file;
9283 TALLOC_CTX *_mem_save_data_file_0;
9284 uint32_t _ptr_config_file;
9285 TALLOC_CTX *_mem_save_config_file_0;
9286 uint32_t _ptr_help_file;
9287 TALLOC_CTX *_mem_save_help_file_0;
9288 uint32_t _ptr_monitor_name;
9289 TALLOC_CTX *_mem_save_monitor_name_0;
9290 uint32_t _ptr_default_datatype;
9291 TALLOC_CTX *_mem_save_default_datatype_0;
9292 uint32_t _ptr_dependent_files;
9293 TALLOC_CTX *_mem_save_dependent_files_0;
9294 uint32_t _ptr_previous_names;
9295 TALLOC_CTX *_mem_save_previous_names_0;
9296 uint32_t _ptr_manufacturer_name;
9297 TALLOC_CTX *_mem_save_manufacturer_name_0;
9298 uint32_t _ptr_manufacturer_url;
9299 TALLOC_CTX *_mem_save_manufacturer_url_0;
9300 uint32_t _ptr_hardware_id;
9301 TALLOC_CTX *_mem_save_hardware_id_0;
9302 uint32_t _ptr_provider;
9303 TALLOC_CTX *_mem_save_provider_0;
9304 if (ndr_flags & NDR_SCALARS) {
9305 NDR_CHECK(ndr_pull_align(ndr, 8));
9306 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9308 if (_ptr_driver_name) {
9309 NDR_PULL_ALLOC(ndr, r->driver_name);
9311 r->driver_name = NULL;
9313 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9314 if (_ptr_architecture) {
9315 NDR_PULL_ALLOC(ndr, r->architecture);
9317 r->architecture = NULL;
9319 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9320 if (_ptr_driver_path) {
9321 NDR_PULL_ALLOC(ndr, r->driver_path);
9323 r->driver_path = NULL;
9325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9326 if (_ptr_data_file) {
9327 NDR_PULL_ALLOC(ndr, r->data_file);
9329 r->data_file = NULL;
9331 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9332 if (_ptr_config_file) {
9333 NDR_PULL_ALLOC(ndr, r->config_file);
9335 r->config_file = NULL;
9337 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9338 if (_ptr_help_file) {
9339 NDR_PULL_ALLOC(ndr, r->help_file);
9341 r->help_file = NULL;
9343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9344 if (_ptr_monitor_name) {
9345 NDR_PULL_ALLOC(ndr, r->monitor_name);
9347 r->monitor_name = NULL;
9349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9350 if (_ptr_default_datatype) {
9351 NDR_PULL_ALLOC(ndr, r->default_datatype);
9353 r->default_datatype = NULL;
9355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9357 if (_ptr_dependent_files) {
9358 NDR_PULL_ALLOC(ndr, r->dependent_files);
9360 r->dependent_files = NULL;
9362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9364 if (_ptr_previous_names) {
9365 NDR_PULL_ALLOC(ndr, r->previous_names);
9367 r->previous_names = NULL;
9369 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9370 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9372 if (_ptr_manufacturer_name) {
9373 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9375 r->manufacturer_name = NULL;
9377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9378 if (_ptr_manufacturer_url) {
9379 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9381 r->manufacturer_url = NULL;
9383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9384 if (_ptr_hardware_id) {
9385 NDR_PULL_ALLOC(ndr, r->hardware_id);
9387 r->hardware_id = NULL;
9389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9390 if (_ptr_provider) {
9391 NDR_PULL_ALLOC(ndr, r->provider);
9395 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9397 if (ndr_flags & NDR_BUFFERS) {
9398 if (r->driver_name) {
9399 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9400 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9401 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9402 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9403 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9404 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9406 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9407 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9410 if (r->architecture) {
9411 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9412 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9413 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9414 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9415 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9416 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9418 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9419 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9422 if (r->driver_path) {
9423 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9424 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9425 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9426 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9427 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9428 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9430 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9431 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9435 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9436 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9437 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9438 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9439 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9440 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9442 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9443 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9446 if (r->config_file) {
9447 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9448 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9449 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9450 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9451 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9452 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));
9454 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9455 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9459 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9460 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9461 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9462 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9463 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9464 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9466 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9467 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9470 if (r->monitor_name) {
9471 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9472 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9473 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9474 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9475 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9476 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9478 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9479 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9482 if (r->default_datatype) {
9483 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9484 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9485 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9486 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9487 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9488 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9491 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9494 if (r->dependent_files) {
9495 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9496 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9497 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9500 if (r->previous_names) {
9501 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9502 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9503 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9506 if (r->manufacturer_name) {
9507 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9508 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9509 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9510 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9511 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9512 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));
9514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9518 if (r->manufacturer_url) {
9519 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9520 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9521 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9522 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9523 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9524 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));
9526 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9527 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9530 if (r->hardware_id) {
9531 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9532 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9533 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9534 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9535 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9536 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));
9538 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9539 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9543 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9544 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9545 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9546 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9547 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9548 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));
9550 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9551 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9555 return NDR_ERR_SUCCESS;
9558 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
9560 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
9562 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9563 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9565 if (r->driver_name) {
9566 ndr_print_string(ndr, "driver_name", r->driver_name);
9569 ndr_print_ptr(ndr, "architecture", r->architecture);
9571 if (r->architecture) {
9572 ndr_print_string(ndr, "architecture", r->architecture);
9575 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9577 if (r->driver_path) {
9578 ndr_print_string(ndr, "driver_path", r->driver_path);
9581 ndr_print_ptr(ndr, "data_file", r->data_file);
9584 ndr_print_string(ndr, "data_file", r->data_file);
9587 ndr_print_ptr(ndr, "config_file", r->config_file);
9589 if (r->config_file) {
9590 ndr_print_string(ndr, "config_file", r->config_file);
9593 ndr_print_ptr(ndr, "help_file", r->help_file);
9596 ndr_print_string(ndr, "help_file", r->help_file);
9599 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9601 if (r->monitor_name) {
9602 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9605 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9607 if (r->default_datatype) {
9608 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9611 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);
9612 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9614 if (r->dependent_files) {
9615 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9618 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);
9619 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9621 if (r->previous_names) {
9622 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9625 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9626 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9627 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9629 if (r->manufacturer_name) {
9630 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9633 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9635 if (r->manufacturer_url) {
9636 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9639 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9641 if (r->hardware_id) {
9642 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9645 ndr_print_ptr(ndr, "provider", r->provider);
9648 ndr_print_string(ndr, "provider", r->provider);
9654 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
9656 if (ndr_flags & NDR_SCALARS) {
9657 NDR_CHECK(ndr_push_align(ndr, 8));
9658 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9660 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9662 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9665 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9668 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9670 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9671 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9672 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9673 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
9674 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
9675 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
9676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
9677 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
9678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
9679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
9681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
9682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
9684 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
9685 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9686 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9687 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
9689 if (ndr_flags & NDR_BUFFERS) {
9690 if (r->driver_name) {
9691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9693 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9694 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9696 if (r->architecture) {
9697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9699 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9700 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9702 if (r->driver_path) {
9703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9706 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9711 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9712 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9714 if (r->config_file) {
9715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9718 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9723 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9726 if (r->monitor_name) {
9727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, 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->monitor_name, CH_UTF16)));
9730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9732 if (r->default_datatype) {
9733 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9734 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9735 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9736 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9738 if (r->dependent_files) {
9739 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9741 if (r->previous_names) {
9742 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9744 if (r->manufacturer_name) {
9745 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9746 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9747 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
9748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9750 if (r->manufacturer_url) {
9751 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9752 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9753 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
9754 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9756 if (r->hardware_id) {
9757 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9758 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9759 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
9760 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9763 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9764 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9765 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
9766 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9768 if (r->print_processor) {
9769 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9770 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9771 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
9772 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9774 if (r->vendor_setup) {
9775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9776 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
9778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9780 if (r->color_profiles) {
9781 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9784 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
9787 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9789 if (r->core_driver_dependencies) {
9790 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9793 return NDR_ERR_SUCCESS;
9796 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
9798 uint32_t _ptr_driver_name;
9799 TALLOC_CTX *_mem_save_driver_name_0;
9800 uint32_t _ptr_architecture;
9801 TALLOC_CTX *_mem_save_architecture_0;
9802 uint32_t _ptr_driver_path;
9803 TALLOC_CTX *_mem_save_driver_path_0;
9804 uint32_t _ptr_data_file;
9805 TALLOC_CTX *_mem_save_data_file_0;
9806 uint32_t _ptr_config_file;
9807 TALLOC_CTX *_mem_save_config_file_0;
9808 uint32_t _ptr_help_file;
9809 TALLOC_CTX *_mem_save_help_file_0;
9810 uint32_t _ptr_monitor_name;
9811 TALLOC_CTX *_mem_save_monitor_name_0;
9812 uint32_t _ptr_default_datatype;
9813 TALLOC_CTX *_mem_save_default_datatype_0;
9814 uint32_t _ptr_dependent_files;
9815 TALLOC_CTX *_mem_save_dependent_files_0;
9816 uint32_t _ptr_previous_names;
9817 TALLOC_CTX *_mem_save_previous_names_0;
9818 uint32_t _ptr_manufacturer_name;
9819 TALLOC_CTX *_mem_save_manufacturer_name_0;
9820 uint32_t _ptr_manufacturer_url;
9821 TALLOC_CTX *_mem_save_manufacturer_url_0;
9822 uint32_t _ptr_hardware_id;
9823 TALLOC_CTX *_mem_save_hardware_id_0;
9824 uint32_t _ptr_provider;
9825 TALLOC_CTX *_mem_save_provider_0;
9826 uint32_t _ptr_print_processor;
9827 TALLOC_CTX *_mem_save_print_processor_0;
9828 uint32_t _ptr_vendor_setup;
9829 TALLOC_CTX *_mem_save_vendor_setup_0;
9830 uint32_t _ptr_color_profiles;
9831 TALLOC_CTX *_mem_save_color_profiles_0;
9832 uint32_t _ptr_inf_path;
9833 TALLOC_CTX *_mem_save_inf_path_0;
9834 uint32_t _ptr_core_driver_dependencies;
9835 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9836 if (ndr_flags & NDR_SCALARS) {
9837 NDR_CHECK(ndr_pull_align(ndr, 8));
9838 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9840 if (_ptr_driver_name) {
9841 NDR_PULL_ALLOC(ndr, r->driver_name);
9843 r->driver_name = NULL;
9845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9846 if (_ptr_architecture) {
9847 NDR_PULL_ALLOC(ndr, r->architecture);
9849 r->architecture = NULL;
9851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9852 if (_ptr_driver_path) {
9853 NDR_PULL_ALLOC(ndr, r->driver_path);
9855 r->driver_path = NULL;
9857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9858 if (_ptr_data_file) {
9859 NDR_PULL_ALLOC(ndr, r->data_file);
9861 r->data_file = NULL;
9863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9864 if (_ptr_config_file) {
9865 NDR_PULL_ALLOC(ndr, r->config_file);
9867 r->config_file = NULL;
9869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9870 if (_ptr_help_file) {
9871 NDR_PULL_ALLOC(ndr, r->help_file);
9873 r->help_file = NULL;
9875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9876 if (_ptr_monitor_name) {
9877 NDR_PULL_ALLOC(ndr, r->monitor_name);
9879 r->monitor_name = NULL;
9881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9882 if (_ptr_default_datatype) {
9883 NDR_PULL_ALLOC(ndr, r->default_datatype);
9885 r->default_datatype = NULL;
9887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9889 if (_ptr_dependent_files) {
9890 NDR_PULL_ALLOC(ndr, r->dependent_files);
9892 r->dependent_files = NULL;
9894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9896 if (_ptr_previous_names) {
9897 NDR_PULL_ALLOC(ndr, r->previous_names);
9899 r->previous_names = NULL;
9901 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9902 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9904 if (_ptr_manufacturer_name) {
9905 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9907 r->manufacturer_name = NULL;
9909 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9910 if (_ptr_manufacturer_url) {
9911 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9913 r->manufacturer_url = NULL;
9915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9916 if (_ptr_hardware_id) {
9917 NDR_PULL_ALLOC(ndr, r->hardware_id);
9919 r->hardware_id = NULL;
9921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9922 if (_ptr_provider) {
9923 NDR_PULL_ALLOC(ndr, r->provider);
9927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9928 if (_ptr_print_processor) {
9929 NDR_PULL_ALLOC(ndr, r->print_processor);
9931 r->print_processor = NULL;
9933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9934 if (_ptr_vendor_setup) {
9935 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9937 r->vendor_setup = NULL;
9939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9941 if (_ptr_color_profiles) {
9942 NDR_PULL_ALLOC(ndr, r->color_profiles);
9944 r->color_profiles = NULL;
9946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9947 if (_ptr_inf_path) {
9948 NDR_PULL_ALLOC(ndr, r->inf_path);
9952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9954 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9955 if (_ptr_core_driver_dependencies) {
9956 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9958 r->core_driver_dependencies = NULL;
9960 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9961 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9962 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
9964 if (ndr_flags & NDR_BUFFERS) {
9965 if (r->driver_name) {
9966 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9967 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9968 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9969 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9970 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9971 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9977 if (r->architecture) {
9978 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9979 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9980 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9981 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9982 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9983 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9989 if (r->driver_path) {
9990 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9991 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9992 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9993 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9994 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9995 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9997 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9998 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10001 if (r->data_file) {
10002 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10003 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10004 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10005 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10006 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
10007 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
10009 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
10010 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
10011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10013 if (r->config_file) {
10014 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10015 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10016 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10017 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10018 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
10019 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));
10021 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
10022 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
10023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10025 if (r->help_file) {
10026 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10027 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10028 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10029 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10030 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
10031 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
10033 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
10034 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
10035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10037 if (r->monitor_name) {
10038 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10039 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10040 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10041 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10042 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
10043 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
10045 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
10046 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
10047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10049 if (r->default_datatype) {
10050 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10051 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10052 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10053 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10054 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
10055 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
10057 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
10058 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
10059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10061 if (r->dependent_files) {
10062 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10063 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10064 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10067 if (r->previous_names) {
10068 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10069 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10070 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10073 if (r->manufacturer_name) {
10074 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10075 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10076 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10077 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10078 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
10079 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
10081 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
10082 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
10083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10085 if (r->manufacturer_url) {
10086 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10087 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10088 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10089 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10090 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
10091 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
10093 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
10094 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
10095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10097 if (r->hardware_id) {
10098 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10099 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10100 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10101 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10102 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
10103 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));
10105 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
10106 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
10107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10110 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10111 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10112 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10113 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10114 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
10115 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));
10117 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
10118 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
10119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10121 if (r->print_processor) {
10122 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10123 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10124 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
10125 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
10126 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
10127 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));
10129 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
10130 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
10131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10133 if (r->vendor_setup) {
10134 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10135 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10136 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
10137 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
10138 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
10139 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));
10141 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
10142 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
10143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10145 if (r->color_profiles) {
10146 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10147 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10148 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10152 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10153 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10154 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
10155 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
10156 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
10157 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));
10159 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
10160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
10161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10163 if (r->core_driver_dependencies) {
10164 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10165 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10166 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10170 return NDR_ERR_SUCCESS;
10173 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
10175 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
10177 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10178 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10180 if (r->driver_name) {
10181 ndr_print_string(ndr, "driver_name", r->driver_name);
10184 ndr_print_ptr(ndr, "architecture", r->architecture);
10186 if (r->architecture) {
10187 ndr_print_string(ndr, "architecture", r->architecture);
10190 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10192 if (r->driver_path) {
10193 ndr_print_string(ndr, "driver_path", r->driver_path);
10196 ndr_print_ptr(ndr, "data_file", r->data_file);
10198 if (r->data_file) {
10199 ndr_print_string(ndr, "data_file", r->data_file);
10202 ndr_print_ptr(ndr, "config_file", r->config_file);
10204 if (r->config_file) {
10205 ndr_print_string(ndr, "config_file", r->config_file);
10208 ndr_print_ptr(ndr, "help_file", r->help_file);
10210 if (r->help_file) {
10211 ndr_print_string(ndr, "help_file", r->help_file);
10214 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10216 if (r->monitor_name) {
10217 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10220 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10222 if (r->default_datatype) {
10223 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10226 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);
10227 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10229 if (r->dependent_files) {
10230 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10233 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);
10234 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10236 if (r->previous_names) {
10237 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10240 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10241 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10242 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10244 if (r->manufacturer_name) {
10245 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10248 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10250 if (r->manufacturer_url) {
10251 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10254 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10256 if (r->hardware_id) {
10257 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10260 ndr_print_ptr(ndr, "provider", r->provider);
10263 ndr_print_string(ndr, "provider", r->provider);
10266 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10268 if (r->print_processor) {
10269 ndr_print_string(ndr, "print_processor", r->print_processor);
10272 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10274 if (r->vendor_setup) {
10275 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10278 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);
10279 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10281 if (r->color_profiles) {
10282 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
10285 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10288 ndr_print_string(ndr, "inf_path", r->inf_path);
10291 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10292 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);
10293 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10295 if (r->core_driver_dependencies) {
10296 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10299 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10300 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10304 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
10306 if (ndr_flags & NDR_SCALARS) {
10307 int level = ndr_push_get_switch_value(ndr, r);
10308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10309 NDR_CHECK(ndr_push_union_align(ndr, 5));
10312 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10316 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
10320 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
10324 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
10328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
10332 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
10336 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10339 if (ndr_flags & NDR_BUFFERS) {
10340 int level = ndr_push_get_switch_value(ndr, r);
10344 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10350 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10356 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10362 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10368 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10374 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10379 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10382 return NDR_ERR_SUCCESS;
10385 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
10389 TALLOC_CTX *_mem_save_info1_0;
10390 TALLOC_CTX *_mem_save_info2_0;
10391 TALLOC_CTX *_mem_save_info3_0;
10392 TALLOC_CTX *_mem_save_info4_0;
10393 TALLOC_CTX *_mem_save_info6_0;
10394 TALLOC_CTX *_mem_save_info8_0;
10395 level = ndr_pull_get_switch_value(ndr, r);
10396 if (ndr_flags & NDR_SCALARS) {
10397 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10398 if (_level != level) {
10399 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
10401 NDR_CHECK(ndr_pull_union_align(ndr, 5));
10404 uint32_t _ptr_info1;
10405 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10407 NDR_PULL_ALLOC(ndr, r->info1);
10414 uint32_t _ptr_info2;
10415 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
10417 NDR_PULL_ALLOC(ndr, r->info2);
10424 uint32_t _ptr_info3;
10425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
10427 NDR_PULL_ALLOC(ndr, r->info3);
10434 uint32_t _ptr_info4;
10435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
10437 NDR_PULL_ALLOC(ndr, r->info4);
10444 uint32_t _ptr_info6;
10445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
10447 NDR_PULL_ALLOC(ndr, r->info6);
10454 uint32_t _ptr_info8;
10455 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
10457 NDR_PULL_ALLOC(ndr, r->info8);
10464 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10467 if (ndr_flags & NDR_BUFFERS) {
10471 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10472 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10473 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10480 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
10481 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
10482 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
10483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
10489 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
10490 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
10491 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
10492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
10498 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
10499 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
10500 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
10501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
10507 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
10508 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
10509 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
10510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
10516 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
10517 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
10518 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
10519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
10524 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
10527 return NDR_ERR_SUCCESS;
10530 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
10533 level = ndr_print_get_switch_value(ndr, r);
10534 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
10537 ndr_print_ptr(ndr, "info1", r->info1);
10540 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
10546 ndr_print_ptr(ndr, "info2", r->info2);
10549 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
10555 ndr_print_ptr(ndr, "info3", r->info3);
10558 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
10564 ndr_print_ptr(ndr, "info4", r->info4);
10567 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
10573 ndr_print_ptr(ndr, "info6", r->info6);
10576 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
10582 ndr_print_ptr(ndr, "info8", r->info8);
10585 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
10591 ndr_print_bad_level(ndr, name, level);
10595 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
10597 if (ndr_flags & NDR_SCALARS) {
10598 NDR_CHECK(ndr_push_align(ndr, 5));
10599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
10600 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
10601 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10602 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10604 if (ndr_flags & NDR_BUFFERS) {
10605 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10607 return NDR_ERR_SUCCESS;
10610 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
10612 if (ndr_flags & NDR_SCALARS) {
10613 NDR_CHECK(ndr_pull_align(ndr, 5));
10614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
10615 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
10616 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
10617 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10619 if (ndr_flags & NDR_BUFFERS) {
10620 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
10622 return NDR_ERR_SUCCESS;
10625 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
10627 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
10629 ndr_print_uint32(ndr, "level", r->level);
10630 ndr_print_set_switch_value(ndr, &r->info, r->level);
10631 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
10635 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
10637 if (ndr_flags & NDR_SCALARS) {
10638 NDR_CHECK(ndr_push_align(ndr, 5));
10640 uint32_t _flags_save_string = ndr->flags;
10641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10642 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10643 ndr->flags = _flags_save_string;
10645 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10647 if (ndr_flags & NDR_BUFFERS) {
10649 uint32_t _flags_save_string = ndr->flags;
10650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10651 if (r->driver_name) {
10652 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10653 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10654 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10656 ndr->flags = _flags_save_string;
10659 return NDR_ERR_SUCCESS;
10662 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
10664 uint32_t _ptr_driver_name;
10665 TALLOC_CTX *_mem_save_driver_name_0;
10666 if (ndr_flags & NDR_SCALARS) {
10667 NDR_CHECK(ndr_pull_align(ndr, 5));
10669 uint32_t _flags_save_string = ndr->flags;
10670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10672 if (_ptr_driver_name) {
10673 NDR_PULL_ALLOC(ndr, r->driver_name);
10674 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10676 r->driver_name = NULL;
10678 ndr->flags = _flags_save_string;
10680 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10682 if (ndr_flags & NDR_BUFFERS) {
10684 uint32_t _flags_save_string = ndr->flags;
10685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10686 if (r->driver_name) {
10687 uint32_t _relative_save_offset;
10688 _relative_save_offset = ndr->offset;
10689 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10690 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10691 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10692 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10693 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10694 if (ndr->offset > ndr->relative_highest_offset) {
10695 ndr->relative_highest_offset = ndr->offset;
10697 ndr->offset = _relative_save_offset;
10699 ndr->flags = _flags_save_string;
10702 return NDR_ERR_SUCCESS;
10705 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
10707 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
10709 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10711 if (r->driver_name) {
10712 ndr_print_string(ndr, "driver_name", r->driver_name);
10718 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10720 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
10723 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
10725 if (ndr_flags & NDR_SCALARS) {
10726 NDR_CHECK(ndr_push_align(ndr, 5));
10727 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10729 uint32_t _flags_save_string = ndr->flags;
10730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10731 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10732 ndr->flags = _flags_save_string;
10735 uint32_t _flags_save_string = ndr->flags;
10736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10737 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10738 ndr->flags = _flags_save_string;
10741 uint32_t _flags_save_string = ndr->flags;
10742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10743 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10744 ndr->flags = _flags_save_string;
10747 uint32_t _flags_save_string = ndr->flags;
10748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10749 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10750 ndr->flags = _flags_save_string;
10753 uint32_t _flags_save_string = ndr->flags;
10754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10755 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10756 ndr->flags = _flags_save_string;
10758 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
10760 if (ndr_flags & NDR_BUFFERS) {
10762 uint32_t _flags_save_string = ndr->flags;
10763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10764 if (r->driver_name) {
10765 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
10766 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10767 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
10769 ndr->flags = _flags_save_string;
10772 uint32_t _flags_save_string = ndr->flags;
10773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10774 if (r->architecture) {
10775 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
10776 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10777 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
10779 ndr->flags = _flags_save_string;
10782 uint32_t _flags_save_string = ndr->flags;
10783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10784 if (r->driver_path) {
10785 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
10786 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10787 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
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 if (r->data_file) {
10795 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
10796 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10797 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
10799 ndr->flags = _flags_save_string;
10802 uint32_t _flags_save_string = ndr->flags;
10803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10804 if (r->config_file) {
10805 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
10806 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10807 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
10809 ndr->flags = _flags_save_string;
10812 return NDR_ERR_SUCCESS;
10815 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
10817 uint32_t _ptr_driver_name;
10818 TALLOC_CTX *_mem_save_driver_name_0;
10819 uint32_t _ptr_architecture;
10820 TALLOC_CTX *_mem_save_architecture_0;
10821 uint32_t _ptr_driver_path;
10822 TALLOC_CTX *_mem_save_driver_path_0;
10823 uint32_t _ptr_data_file;
10824 TALLOC_CTX *_mem_save_data_file_0;
10825 uint32_t _ptr_config_file;
10826 TALLOC_CTX *_mem_save_config_file_0;
10827 if (ndr_flags & NDR_SCALARS) {
10828 NDR_CHECK(ndr_pull_align(ndr, 5));
10829 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10831 uint32_t _flags_save_string = ndr->flags;
10832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10834 if (_ptr_driver_name) {
10835 NDR_PULL_ALLOC(ndr, r->driver_name);
10836 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10838 r->driver_name = NULL;
10840 ndr->flags = _flags_save_string;
10843 uint32_t _flags_save_string = ndr->flags;
10844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10846 if (_ptr_architecture) {
10847 NDR_PULL_ALLOC(ndr, r->architecture);
10848 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10850 r->architecture = NULL;
10852 ndr->flags = _flags_save_string;
10855 uint32_t _flags_save_string = ndr->flags;
10856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10858 if (_ptr_driver_path) {
10859 NDR_PULL_ALLOC(ndr, r->driver_path);
10860 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10862 r->driver_path = NULL;
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 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10870 if (_ptr_data_file) {
10871 NDR_PULL_ALLOC(ndr, r->data_file);
10872 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10874 r->data_file = NULL;
10876 ndr->flags = _flags_save_string;
10879 uint32_t _flags_save_string = ndr->flags;
10880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10882 if (_ptr_config_file) {
10883 NDR_PULL_ALLOC(ndr, r->config_file);
10884 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10886 r->config_file = NULL;
10888 ndr->flags = _flags_save_string;
10890 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
10892 if (ndr_flags & NDR_BUFFERS) {
10894 uint32_t _flags_save_string = ndr->flags;
10895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10896 if (r->driver_name) {
10897 uint32_t _relative_save_offset;
10898 _relative_save_offset = ndr->offset;
10899 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10900 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10901 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10902 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10904 if (ndr->offset > ndr->relative_highest_offset) {
10905 ndr->relative_highest_offset = ndr->offset;
10907 ndr->offset = _relative_save_offset;
10909 ndr->flags = _flags_save_string;
10912 uint32_t _flags_save_string = ndr->flags;
10913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10914 if (r->architecture) {
10915 uint32_t _relative_save_offset;
10916 _relative_save_offset = ndr->offset;
10917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10918 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10919 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10922 if (ndr->offset > ndr->relative_highest_offset) {
10923 ndr->relative_highest_offset = ndr->offset;
10925 ndr->offset = _relative_save_offset;
10927 ndr->flags = _flags_save_string;
10930 uint32_t _flags_save_string = ndr->flags;
10931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10932 if (r->driver_path) {
10933 uint32_t _relative_save_offset;
10934 _relative_save_offset = ndr->offset;
10935 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10936 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10937 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10938 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10940 if (ndr->offset > ndr->relative_highest_offset) {
10941 ndr->relative_highest_offset = ndr->offset;
10943 ndr->offset = _relative_save_offset;
10945 ndr->flags = _flags_save_string;
10948 uint32_t _flags_save_string = ndr->flags;
10949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10950 if (r->data_file) {
10951 uint32_t _relative_save_offset;
10952 _relative_save_offset = ndr->offset;
10953 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10954 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10955 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10956 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10958 if (ndr->offset > ndr->relative_highest_offset) {
10959 ndr->relative_highest_offset = ndr->offset;
10961 ndr->offset = _relative_save_offset;
10963 ndr->flags = _flags_save_string;
10966 uint32_t _flags_save_string = ndr->flags;
10967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10968 if (r->config_file) {
10969 uint32_t _relative_save_offset;
10970 _relative_save_offset = ndr->offset;
10971 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10972 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10973 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10974 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10976 if (ndr->offset > ndr->relative_highest_offset) {
10977 ndr->relative_highest_offset = ndr->offset;
10979 ndr->offset = _relative_save_offset;
10981 ndr->flags = _flags_save_string;
10984 return NDR_ERR_SUCCESS;
10987 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10989 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10991 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10992 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10994 if (r->driver_name) {
10995 ndr_print_string(ndr, "driver_name", r->driver_name);
10998 ndr_print_ptr(ndr, "architecture", r->architecture);
11000 if (r->architecture) {
11001 ndr_print_string(ndr, "architecture", r->architecture);
11004 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11006 if (r->driver_path) {
11007 ndr_print_string(ndr, "driver_path", r->driver_path);
11010 ndr_print_ptr(ndr, "data_file", r->data_file);
11012 if (r->data_file) {
11013 ndr_print_string(ndr, "data_file", r->data_file);
11016 ndr_print_ptr(ndr, "config_file", r->config_file);
11018 if (r->config_file) {
11019 ndr_print_string(ndr, "config_file", r->config_file);
11025 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
11027 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
11030 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
11032 if (ndr_flags & NDR_SCALARS) {
11033 NDR_CHECK(ndr_push_align(ndr, 5));
11034 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11036 uint32_t _flags_save_string = ndr->flags;
11037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11039 ndr->flags = _flags_save_string;
11042 uint32_t _flags_save_string = ndr->flags;
11043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11044 NDR_CHECK(ndr_push_relative_ptr1(ndr, 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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11051 ndr->flags = _flags_save_string;
11054 uint32_t _flags_save_string = ndr->flags;
11055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11056 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11057 ndr->flags = _flags_save_string;
11060 uint32_t _flags_save_string = ndr->flags;
11061 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11062 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11069 ndr->flags = _flags_save_string;
11072 uint32_t _flags_save_string_array = ndr->flags;
11073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11074 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11075 ndr->flags = _flags_save_string_array;
11078 uint32_t _flags_save_string = ndr->flags;
11079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11080 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11081 ndr->flags = _flags_save_string;
11084 uint32_t _flags_save_string = ndr->flags;
11085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11086 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11087 ndr->flags = _flags_save_string;
11089 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11091 if (ndr_flags & NDR_BUFFERS) {
11093 uint32_t _flags_save_string = ndr->flags;
11094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11095 if (r->driver_name) {
11096 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11097 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11098 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11100 ndr->flags = _flags_save_string;
11103 uint32_t _flags_save_string = ndr->flags;
11104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11105 if (r->architecture) {
11106 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11107 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11108 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11110 ndr->flags = _flags_save_string;
11113 uint32_t _flags_save_string = ndr->flags;
11114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11115 if (r->driver_path) {
11116 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11117 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11118 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11120 ndr->flags = _flags_save_string;
11123 uint32_t _flags_save_string = ndr->flags;
11124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11125 if (r->data_file) {
11126 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11127 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11128 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11130 ndr->flags = _flags_save_string;
11133 uint32_t _flags_save_string = ndr->flags;
11134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11135 if (r->config_file) {
11136 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11137 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11138 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11140 ndr->flags = _flags_save_string;
11143 uint32_t _flags_save_string = ndr->flags;
11144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11145 if (r->help_file) {
11146 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11147 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11148 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11150 ndr->flags = _flags_save_string;
11153 uint32_t _flags_save_string_array = ndr->flags;
11154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11155 if (r->dependent_files) {
11156 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11157 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11158 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11160 ndr->flags = _flags_save_string_array;
11163 uint32_t _flags_save_string = ndr->flags;
11164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11165 if (r->monitor_name) {
11166 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11167 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11168 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11170 ndr->flags = _flags_save_string;
11173 uint32_t _flags_save_string = ndr->flags;
11174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11175 if (r->default_datatype) {
11176 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11177 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11178 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11180 ndr->flags = _flags_save_string;
11183 return NDR_ERR_SUCCESS;
11186 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
11188 uint32_t _ptr_driver_name;
11189 TALLOC_CTX *_mem_save_driver_name_0;
11190 uint32_t _ptr_architecture;
11191 TALLOC_CTX *_mem_save_architecture_0;
11192 uint32_t _ptr_driver_path;
11193 TALLOC_CTX *_mem_save_driver_path_0;
11194 uint32_t _ptr_data_file;
11195 TALLOC_CTX *_mem_save_data_file_0;
11196 uint32_t _ptr_config_file;
11197 TALLOC_CTX *_mem_save_config_file_0;
11198 uint32_t _ptr_help_file;
11199 TALLOC_CTX *_mem_save_help_file_0;
11200 uint32_t _ptr_dependent_files;
11201 TALLOC_CTX *_mem_save_dependent_files_0;
11202 uint32_t _ptr_monitor_name;
11203 TALLOC_CTX *_mem_save_monitor_name_0;
11204 uint32_t _ptr_default_datatype;
11205 TALLOC_CTX *_mem_save_default_datatype_0;
11206 if (ndr_flags & NDR_SCALARS) {
11207 NDR_CHECK(ndr_pull_align(ndr, 5));
11208 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11210 uint32_t _flags_save_string = ndr->flags;
11211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11213 if (_ptr_driver_name) {
11214 NDR_PULL_ALLOC(ndr, r->driver_name);
11215 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11217 r->driver_name = NULL;
11219 ndr->flags = _flags_save_string;
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_architecture));
11225 if (_ptr_architecture) {
11226 NDR_PULL_ALLOC(ndr, r->architecture);
11227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11229 r->architecture = 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_driver_path));
11237 if (_ptr_driver_path) {
11238 NDR_PULL_ALLOC(ndr, r->driver_path);
11239 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11241 r->driver_path = NULL;
11243 ndr->flags = _flags_save_string;
11246 uint32_t _flags_save_string = ndr->flags;
11247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11249 if (_ptr_data_file) {
11250 NDR_PULL_ALLOC(ndr, r->data_file);
11251 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11253 r->data_file = NULL;
11255 ndr->flags = _flags_save_string;
11258 uint32_t _flags_save_string = ndr->flags;
11259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11261 if (_ptr_config_file) {
11262 NDR_PULL_ALLOC(ndr, r->config_file);
11263 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11265 r->config_file = NULL;
11267 ndr->flags = _flags_save_string;
11270 uint32_t _flags_save_string = ndr->flags;
11271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11273 if (_ptr_help_file) {
11274 NDR_PULL_ALLOC(ndr, r->help_file);
11275 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11277 r->help_file = NULL;
11279 ndr->flags = _flags_save_string;
11282 uint32_t _flags_save_string_array = ndr->flags;
11283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11285 if (_ptr_dependent_files) {
11286 NDR_PULL_ALLOC(ndr, r->dependent_files);
11287 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11289 r->dependent_files = NULL;
11291 ndr->flags = _flags_save_string_array;
11294 uint32_t _flags_save_string = ndr->flags;
11295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11297 if (_ptr_monitor_name) {
11298 NDR_PULL_ALLOC(ndr, r->monitor_name);
11299 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11301 r->monitor_name = NULL;
11303 ndr->flags = _flags_save_string;
11306 uint32_t _flags_save_string = ndr->flags;
11307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11308 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11309 if (_ptr_default_datatype) {
11310 NDR_PULL_ALLOC(ndr, r->default_datatype);
11311 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11313 r->default_datatype = NULL;
11315 ndr->flags = _flags_save_string;
11317 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11319 if (ndr_flags & NDR_BUFFERS) {
11321 uint32_t _flags_save_string = ndr->flags;
11322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11323 if (r->driver_name) {
11324 uint32_t _relative_save_offset;
11325 _relative_save_offset = ndr->offset;
11326 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11327 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11328 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_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->architecture) {
11342 uint32_t _relative_save_offset;
11343 _relative_save_offset = ndr->offset;
11344 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11345 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11346 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11347 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_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 = ndr->flags;
11358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11359 if (r->driver_path) {
11360 uint32_t _relative_save_offset;
11361 _relative_save_offset = ndr->offset;
11362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11363 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11364 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_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;
11375 uint32_t _flags_save_string = ndr->flags;
11376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11377 if (r->data_file) {
11378 uint32_t _relative_save_offset;
11379 _relative_save_offset = ndr->offset;
11380 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11381 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11382 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11383 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_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->config_file) {
11396 uint32_t _relative_save_offset;
11397 _relative_save_offset = ndr->offset;
11398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11399 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11400 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11401 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_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 uint32_t _flags_save_string = ndr->flags;
11412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11413 if (r->help_file) {
11414 uint32_t _relative_save_offset;
11415 _relative_save_offset = ndr->offset;
11416 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11417 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11418 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11419 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11421 if (ndr->offset > ndr->relative_highest_offset) {
11422 ndr->relative_highest_offset = ndr->offset;
11424 ndr->offset = _relative_save_offset;
11426 ndr->flags = _flags_save_string;
11429 uint32_t _flags_save_string_array = ndr->flags;
11430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11431 if (r->dependent_files) {
11432 uint32_t _relative_save_offset;
11433 _relative_save_offset = ndr->offset;
11434 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11435 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11436 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11437 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11439 if (ndr->offset > ndr->relative_highest_offset) {
11440 ndr->relative_highest_offset = ndr->offset;
11442 ndr->offset = _relative_save_offset;
11444 ndr->flags = _flags_save_string_array;
11447 uint32_t _flags_save_string = ndr->flags;
11448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11449 if (r->monitor_name) {
11450 uint32_t _relative_save_offset;
11451 _relative_save_offset = ndr->offset;
11452 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11453 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11454 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11455 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11457 if (ndr->offset > ndr->relative_highest_offset) {
11458 ndr->relative_highest_offset = ndr->offset;
11460 ndr->offset = _relative_save_offset;
11462 ndr->flags = _flags_save_string;
11465 uint32_t _flags_save_string = ndr->flags;
11466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11467 if (r->default_datatype) {
11468 uint32_t _relative_save_offset;
11469 _relative_save_offset = ndr->offset;
11470 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11471 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11472 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11473 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11475 if (ndr->offset > ndr->relative_highest_offset) {
11476 ndr->relative_highest_offset = ndr->offset;
11478 ndr->offset = _relative_save_offset;
11480 ndr->flags = _flags_save_string;
11483 return NDR_ERR_SUCCESS;
11486 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
11488 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
11490 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11491 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11493 if (r->driver_name) {
11494 ndr_print_string(ndr, "driver_name", r->driver_name);
11497 ndr_print_ptr(ndr, "architecture", r->architecture);
11499 if (r->architecture) {
11500 ndr_print_string(ndr, "architecture", r->architecture);
11503 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11505 if (r->driver_path) {
11506 ndr_print_string(ndr, "driver_path", r->driver_path);
11509 ndr_print_ptr(ndr, "data_file", r->data_file);
11511 if (r->data_file) {
11512 ndr_print_string(ndr, "data_file", r->data_file);
11515 ndr_print_ptr(ndr, "config_file", r->config_file);
11517 if (r->config_file) {
11518 ndr_print_string(ndr, "config_file", r->config_file);
11521 ndr_print_ptr(ndr, "help_file", r->help_file);
11523 if (r->help_file) {
11524 ndr_print_string(ndr, "help_file", r->help_file);
11527 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11529 if (r->dependent_files) {
11530 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11533 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11535 if (r->monitor_name) {
11536 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11539 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11541 if (r->default_datatype) {
11542 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11548 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
11550 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
11553 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
11555 if (ndr_flags & NDR_SCALARS) {
11556 NDR_CHECK(ndr_push_align(ndr, 5));
11557 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11559 uint32_t _flags_save_string = ndr->flags;
11560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11562 ndr->flags = _flags_save_string;
11565 uint32_t _flags_save_string = ndr->flags;
11566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11567 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11568 ndr->flags = _flags_save_string;
11571 uint32_t _flags_save_string = ndr->flags;
11572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11573 NDR_CHECK(ndr_push_relative_ptr1(ndr, 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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11580 ndr->flags = _flags_save_string;
11583 uint32_t _flags_save_string = ndr->flags;
11584 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11585 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11586 ndr->flags = _flags_save_string;
11589 uint32_t _flags_save_string = ndr->flags;
11590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11591 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11592 ndr->flags = _flags_save_string;
11595 uint32_t _flags_save_string_array = ndr->flags;
11596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11597 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11598 ndr->flags = _flags_save_string_array;
11601 uint32_t _flags_save_string = ndr->flags;
11602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11603 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11604 ndr->flags = _flags_save_string;
11607 uint32_t _flags_save_string = ndr->flags;
11608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11609 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11610 ndr->flags = _flags_save_string;
11613 uint32_t _flags_save_string_array = ndr->flags;
11614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11615 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11616 ndr->flags = _flags_save_string_array;
11618 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11620 if (ndr_flags & NDR_BUFFERS) {
11622 uint32_t _flags_save_string = ndr->flags;
11623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11624 if (r->driver_name) {
11625 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11626 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11627 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11629 ndr->flags = _flags_save_string;
11632 uint32_t _flags_save_string = ndr->flags;
11633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11634 if (r->architecture) {
11635 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11637 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11639 ndr->flags = _flags_save_string;
11642 uint32_t _flags_save_string = ndr->flags;
11643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11644 if (r->driver_path) {
11645 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11647 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11649 ndr->flags = _flags_save_string;
11652 uint32_t _flags_save_string = ndr->flags;
11653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11654 if (r->data_file) {
11655 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11657 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11659 ndr->flags = _flags_save_string;
11662 uint32_t _flags_save_string = ndr->flags;
11663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11664 if (r->config_file) {
11665 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11666 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11667 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11669 ndr->flags = _flags_save_string;
11672 uint32_t _flags_save_string = ndr->flags;
11673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11674 if (r->help_file) {
11675 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
11676 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11677 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
11679 ndr->flags = _flags_save_string;
11682 uint32_t _flags_save_string_array = ndr->flags;
11683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11684 if (r->dependent_files) {
11685 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
11686 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11687 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
11689 ndr->flags = _flags_save_string_array;
11692 uint32_t _flags_save_string = ndr->flags;
11693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11694 if (r->monitor_name) {
11695 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
11696 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11697 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
11699 ndr->flags = _flags_save_string;
11702 uint32_t _flags_save_string = ndr->flags;
11703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11704 if (r->default_datatype) {
11705 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
11706 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11707 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
11709 ndr->flags = _flags_save_string;
11712 uint32_t _flags_save_string_array = ndr->flags;
11713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11714 if (r->previous_names) {
11715 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
11716 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11717 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
11719 ndr->flags = _flags_save_string_array;
11722 return NDR_ERR_SUCCESS;
11725 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
11727 uint32_t _ptr_driver_name;
11728 TALLOC_CTX *_mem_save_driver_name_0;
11729 uint32_t _ptr_architecture;
11730 TALLOC_CTX *_mem_save_architecture_0;
11731 uint32_t _ptr_driver_path;
11732 TALLOC_CTX *_mem_save_driver_path_0;
11733 uint32_t _ptr_data_file;
11734 TALLOC_CTX *_mem_save_data_file_0;
11735 uint32_t _ptr_config_file;
11736 TALLOC_CTX *_mem_save_config_file_0;
11737 uint32_t _ptr_help_file;
11738 TALLOC_CTX *_mem_save_help_file_0;
11739 uint32_t _ptr_dependent_files;
11740 TALLOC_CTX *_mem_save_dependent_files_0;
11741 uint32_t _ptr_monitor_name;
11742 TALLOC_CTX *_mem_save_monitor_name_0;
11743 uint32_t _ptr_default_datatype;
11744 TALLOC_CTX *_mem_save_default_datatype_0;
11745 uint32_t _ptr_previous_names;
11746 TALLOC_CTX *_mem_save_previous_names_0;
11747 if (ndr_flags & NDR_SCALARS) {
11748 NDR_CHECK(ndr_pull_align(ndr, 5));
11749 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11751 uint32_t _flags_save_string = ndr->flags;
11752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11754 if (_ptr_driver_name) {
11755 NDR_PULL_ALLOC(ndr, r->driver_name);
11756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11758 r->driver_name = NULL;
11760 ndr->flags = _flags_save_string;
11763 uint32_t _flags_save_string = ndr->flags;
11764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11766 if (_ptr_architecture) {
11767 NDR_PULL_ALLOC(ndr, r->architecture);
11768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11770 r->architecture = NULL;
11772 ndr->flags = _flags_save_string;
11775 uint32_t _flags_save_string = ndr->flags;
11776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11778 if (_ptr_driver_path) {
11779 NDR_PULL_ALLOC(ndr, r->driver_path);
11780 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11782 r->driver_path = NULL;
11784 ndr->flags = _flags_save_string;
11787 uint32_t _flags_save_string = ndr->flags;
11788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11790 if (_ptr_data_file) {
11791 NDR_PULL_ALLOC(ndr, r->data_file);
11792 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11794 r->data_file = NULL;
11796 ndr->flags = _flags_save_string;
11799 uint32_t _flags_save_string = ndr->flags;
11800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11802 if (_ptr_config_file) {
11803 NDR_PULL_ALLOC(ndr, r->config_file);
11804 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11806 r->config_file = NULL;
11808 ndr->flags = _flags_save_string;
11811 uint32_t _flags_save_string = ndr->flags;
11812 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11814 if (_ptr_help_file) {
11815 NDR_PULL_ALLOC(ndr, r->help_file);
11816 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11818 r->help_file = NULL;
11820 ndr->flags = _flags_save_string;
11823 uint32_t _flags_save_string_array = ndr->flags;
11824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11826 if (_ptr_dependent_files) {
11827 NDR_PULL_ALLOC(ndr, r->dependent_files);
11828 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11830 r->dependent_files = NULL;
11832 ndr->flags = _flags_save_string_array;
11835 uint32_t _flags_save_string = ndr->flags;
11836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11837 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11838 if (_ptr_monitor_name) {
11839 NDR_PULL_ALLOC(ndr, r->monitor_name);
11840 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11842 r->monitor_name = NULL;
11844 ndr->flags = _flags_save_string;
11847 uint32_t _flags_save_string = ndr->flags;
11848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11849 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11850 if (_ptr_default_datatype) {
11851 NDR_PULL_ALLOC(ndr, r->default_datatype);
11852 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11854 r->default_datatype = NULL;
11856 ndr->flags = _flags_save_string;
11859 uint32_t _flags_save_string_array = ndr->flags;
11860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11862 if (_ptr_previous_names) {
11863 NDR_PULL_ALLOC(ndr, r->previous_names);
11864 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11866 r->previous_names = NULL;
11868 ndr->flags = _flags_save_string_array;
11870 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11872 if (ndr_flags & NDR_BUFFERS) {
11874 uint32_t _flags_save_string = ndr->flags;
11875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11876 if (r->driver_name) {
11877 uint32_t _relative_save_offset;
11878 _relative_save_offset = ndr->offset;
11879 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11880 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11881 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11882 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11884 if (ndr->offset > ndr->relative_highest_offset) {
11885 ndr->relative_highest_offset = ndr->offset;
11887 ndr->offset = _relative_save_offset;
11889 ndr->flags = _flags_save_string;
11892 uint32_t _flags_save_string = ndr->flags;
11893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11894 if (r->architecture) {
11895 uint32_t _relative_save_offset;
11896 _relative_save_offset = ndr->offset;
11897 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11898 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11899 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11900 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11902 if (ndr->offset > ndr->relative_highest_offset) {
11903 ndr->relative_highest_offset = ndr->offset;
11905 ndr->offset = _relative_save_offset;
11907 ndr->flags = _flags_save_string;
11910 uint32_t _flags_save_string = ndr->flags;
11911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11912 if (r->driver_path) {
11913 uint32_t _relative_save_offset;
11914 _relative_save_offset = ndr->offset;
11915 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11916 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11917 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11918 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11920 if (ndr->offset > ndr->relative_highest_offset) {
11921 ndr->relative_highest_offset = ndr->offset;
11923 ndr->offset = _relative_save_offset;
11925 ndr->flags = _flags_save_string;
11928 uint32_t _flags_save_string = ndr->flags;
11929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11930 if (r->data_file) {
11931 uint32_t _relative_save_offset;
11932 _relative_save_offset = ndr->offset;
11933 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11934 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11935 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11936 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11938 if (ndr->offset > ndr->relative_highest_offset) {
11939 ndr->relative_highest_offset = ndr->offset;
11941 ndr->offset = _relative_save_offset;
11943 ndr->flags = _flags_save_string;
11946 uint32_t _flags_save_string = ndr->flags;
11947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11948 if (r->config_file) {
11949 uint32_t _relative_save_offset;
11950 _relative_save_offset = ndr->offset;
11951 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11952 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11953 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11954 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11956 if (ndr->offset > ndr->relative_highest_offset) {
11957 ndr->relative_highest_offset = ndr->offset;
11959 ndr->offset = _relative_save_offset;
11961 ndr->flags = _flags_save_string;
11964 uint32_t _flags_save_string = ndr->flags;
11965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11966 if (r->help_file) {
11967 uint32_t _relative_save_offset;
11968 _relative_save_offset = ndr->offset;
11969 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11970 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11971 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11972 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11974 if (ndr->offset > ndr->relative_highest_offset) {
11975 ndr->relative_highest_offset = ndr->offset;
11977 ndr->offset = _relative_save_offset;
11979 ndr->flags = _flags_save_string;
11982 uint32_t _flags_save_string_array = ndr->flags;
11983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11984 if (r->dependent_files) {
11985 uint32_t _relative_save_offset;
11986 _relative_save_offset = ndr->offset;
11987 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11988 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11989 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11990 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11992 if (ndr->offset > ndr->relative_highest_offset) {
11993 ndr->relative_highest_offset = ndr->offset;
11995 ndr->offset = _relative_save_offset;
11997 ndr->flags = _flags_save_string_array;
12000 uint32_t _flags_save_string = ndr->flags;
12001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12002 if (r->monitor_name) {
12003 uint32_t _relative_save_offset;
12004 _relative_save_offset = ndr->offset;
12005 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12006 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12007 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12008 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12010 if (ndr->offset > ndr->relative_highest_offset) {
12011 ndr->relative_highest_offset = ndr->offset;
12013 ndr->offset = _relative_save_offset;
12015 ndr->flags = _flags_save_string;
12018 uint32_t _flags_save_string = ndr->flags;
12019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12020 if (r->default_datatype) {
12021 uint32_t _relative_save_offset;
12022 _relative_save_offset = ndr->offset;
12023 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12024 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12025 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12026 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12028 if (ndr->offset > ndr->relative_highest_offset) {
12029 ndr->relative_highest_offset = ndr->offset;
12031 ndr->offset = _relative_save_offset;
12033 ndr->flags = _flags_save_string;
12036 uint32_t _flags_save_string_array = ndr->flags;
12037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12038 if (r->previous_names) {
12039 uint32_t _relative_save_offset;
12040 _relative_save_offset = ndr->offset;
12041 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12042 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12043 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12044 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12046 if (ndr->offset > ndr->relative_highest_offset) {
12047 ndr->relative_highest_offset = ndr->offset;
12049 ndr->offset = _relative_save_offset;
12051 ndr->flags = _flags_save_string_array;
12054 return NDR_ERR_SUCCESS;
12057 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
12059 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
12061 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12062 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12064 if (r->driver_name) {
12065 ndr_print_string(ndr, "driver_name", r->driver_name);
12068 ndr_print_ptr(ndr, "architecture", r->architecture);
12070 if (r->architecture) {
12071 ndr_print_string(ndr, "architecture", r->architecture);
12074 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12076 if (r->driver_path) {
12077 ndr_print_string(ndr, "driver_path", r->driver_path);
12080 ndr_print_ptr(ndr, "data_file", r->data_file);
12082 if (r->data_file) {
12083 ndr_print_string(ndr, "data_file", r->data_file);
12086 ndr_print_ptr(ndr, "config_file", r->config_file);
12088 if (r->config_file) {
12089 ndr_print_string(ndr, "config_file", r->config_file);
12092 ndr_print_ptr(ndr, "help_file", r->help_file);
12094 if (r->help_file) {
12095 ndr_print_string(ndr, "help_file", r->help_file);
12098 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12100 if (r->dependent_files) {
12101 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12104 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12106 if (r->monitor_name) {
12107 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12110 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12112 if (r->default_datatype) {
12113 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12116 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12118 if (r->previous_names) {
12119 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12125 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
12127 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
12130 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
12132 if (ndr_flags & NDR_SCALARS) {
12133 NDR_CHECK(ndr_push_align(ndr, 5));
12134 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12136 uint32_t _flags_save_string = ndr->flags;
12137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12138 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12139 ndr->flags = _flags_save_string;
12142 uint32_t _flags_save_string = ndr->flags;
12143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12144 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12145 ndr->flags = _flags_save_string;
12148 uint32_t _flags_save_string = ndr->flags;
12149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12150 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12151 ndr->flags = _flags_save_string;
12154 uint32_t _flags_save_string = ndr->flags;
12155 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12156 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12157 ndr->flags = _flags_save_string;
12160 uint32_t _flags_save_string = ndr->flags;
12161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12162 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12163 ndr->flags = _flags_save_string;
12165 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
12166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
12167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
12168 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12170 if (ndr_flags & NDR_BUFFERS) {
12172 uint32_t _flags_save_string = ndr->flags;
12173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12174 if (r->driver_name) {
12175 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12176 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12177 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12179 ndr->flags = _flags_save_string;
12182 uint32_t _flags_save_string = ndr->flags;
12183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12184 if (r->architecture) {
12185 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12186 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12187 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12189 ndr->flags = _flags_save_string;
12192 uint32_t _flags_save_string = ndr->flags;
12193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12194 if (r->driver_path) {
12195 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12196 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12197 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
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 if (r->data_file) {
12205 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12206 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12207 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12209 ndr->flags = _flags_save_string;
12212 uint32_t _flags_save_string = ndr->flags;
12213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12214 if (r->config_file) {
12215 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12216 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12217 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12219 ndr->flags = _flags_save_string;
12222 return NDR_ERR_SUCCESS;
12225 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
12227 uint32_t _ptr_driver_name;
12228 TALLOC_CTX *_mem_save_driver_name_0;
12229 uint32_t _ptr_architecture;
12230 TALLOC_CTX *_mem_save_architecture_0;
12231 uint32_t _ptr_driver_path;
12232 TALLOC_CTX *_mem_save_driver_path_0;
12233 uint32_t _ptr_data_file;
12234 TALLOC_CTX *_mem_save_data_file_0;
12235 uint32_t _ptr_config_file;
12236 TALLOC_CTX *_mem_save_config_file_0;
12237 if (ndr_flags & NDR_SCALARS) {
12238 NDR_CHECK(ndr_pull_align(ndr, 5));
12239 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12241 uint32_t _flags_save_string = ndr->flags;
12242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12244 if (_ptr_driver_name) {
12245 NDR_PULL_ALLOC(ndr, r->driver_name);
12246 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12248 r->driver_name = NULL;
12250 ndr->flags = _flags_save_string;
12253 uint32_t _flags_save_string = ndr->flags;
12254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12256 if (_ptr_architecture) {
12257 NDR_PULL_ALLOC(ndr, r->architecture);
12258 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12260 r->architecture = NULL;
12262 ndr->flags = _flags_save_string;
12265 uint32_t _flags_save_string = ndr->flags;
12266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12267 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12268 if (_ptr_driver_path) {
12269 NDR_PULL_ALLOC(ndr, r->driver_path);
12270 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12272 r->driver_path = NULL;
12274 ndr->flags = _flags_save_string;
12277 uint32_t _flags_save_string = ndr->flags;
12278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12280 if (_ptr_data_file) {
12281 NDR_PULL_ALLOC(ndr, r->data_file);
12282 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12284 r->data_file = NULL;
12286 ndr->flags = _flags_save_string;
12289 uint32_t _flags_save_string = ndr->flags;
12290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12291 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12292 if (_ptr_config_file) {
12293 NDR_PULL_ALLOC(ndr, r->config_file);
12294 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12296 r->config_file = NULL;
12298 ndr->flags = _flags_save_string;
12300 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
12301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
12302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
12303 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12305 if (ndr_flags & NDR_BUFFERS) {
12307 uint32_t _flags_save_string = ndr->flags;
12308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12309 if (r->driver_name) {
12310 uint32_t _relative_save_offset;
12311 _relative_save_offset = ndr->offset;
12312 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12313 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12314 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12315 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12317 if (ndr->offset > ndr->relative_highest_offset) {
12318 ndr->relative_highest_offset = ndr->offset;
12320 ndr->offset = _relative_save_offset;
12322 ndr->flags = _flags_save_string;
12325 uint32_t _flags_save_string = ndr->flags;
12326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12327 if (r->architecture) {
12328 uint32_t _relative_save_offset;
12329 _relative_save_offset = ndr->offset;
12330 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12331 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12332 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12333 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12335 if (ndr->offset > ndr->relative_highest_offset) {
12336 ndr->relative_highest_offset = ndr->offset;
12338 ndr->offset = _relative_save_offset;
12340 ndr->flags = _flags_save_string;
12343 uint32_t _flags_save_string = ndr->flags;
12344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12345 if (r->driver_path) {
12346 uint32_t _relative_save_offset;
12347 _relative_save_offset = ndr->offset;
12348 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12349 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12350 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12351 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12353 if (ndr->offset > ndr->relative_highest_offset) {
12354 ndr->relative_highest_offset = ndr->offset;
12356 ndr->offset = _relative_save_offset;
12358 ndr->flags = _flags_save_string;
12361 uint32_t _flags_save_string = ndr->flags;
12362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12363 if (r->data_file) {
12364 uint32_t _relative_save_offset;
12365 _relative_save_offset = ndr->offset;
12366 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12367 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12368 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12369 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12371 if (ndr->offset > ndr->relative_highest_offset) {
12372 ndr->relative_highest_offset = ndr->offset;
12374 ndr->offset = _relative_save_offset;
12376 ndr->flags = _flags_save_string;
12379 uint32_t _flags_save_string = ndr->flags;
12380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12381 if (r->config_file) {
12382 uint32_t _relative_save_offset;
12383 _relative_save_offset = ndr->offset;
12384 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12385 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12386 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12387 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12389 if (ndr->offset > ndr->relative_highest_offset) {
12390 ndr->relative_highest_offset = ndr->offset;
12392 ndr->offset = _relative_save_offset;
12394 ndr->flags = _flags_save_string;
12397 return NDR_ERR_SUCCESS;
12400 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
12402 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
12404 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12405 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12407 if (r->driver_name) {
12408 ndr_print_string(ndr, "driver_name", r->driver_name);
12411 ndr_print_ptr(ndr, "architecture", r->architecture);
12413 if (r->architecture) {
12414 ndr_print_string(ndr, "architecture", r->architecture);
12417 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12419 if (r->driver_path) {
12420 ndr_print_string(ndr, "driver_path", r->driver_path);
12423 ndr_print_ptr(ndr, "data_file", r->data_file);
12425 if (r->data_file) {
12426 ndr_print_string(ndr, "data_file", r->data_file);
12429 ndr_print_ptr(ndr, "config_file", r->config_file);
12431 if (r->config_file) {
12432 ndr_print_string(ndr, "config_file", r->config_file);
12435 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
12436 ndr_print_uint32(ndr, "config_version", r->config_version);
12437 ndr_print_uint32(ndr, "driver_version", r->driver_version);
12441 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
12443 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
12446 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
12448 if (ndr_flags & NDR_SCALARS) {
12449 NDR_CHECK(ndr_push_align(ndr, 8));
12450 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12452 uint32_t _flags_save_string = ndr->flags;
12453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12454 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12455 ndr->flags = _flags_save_string;
12458 uint32_t _flags_save_string = ndr->flags;
12459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12460 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12461 ndr->flags = _flags_save_string;
12464 uint32_t _flags_save_string = ndr->flags;
12465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12466 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12467 ndr->flags = _flags_save_string;
12470 uint32_t _flags_save_string = ndr->flags;
12471 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12472 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12473 ndr->flags = _flags_save_string;
12476 uint32_t _flags_save_string = ndr->flags;
12477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12478 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12479 ndr->flags = _flags_save_string;
12482 uint32_t _flags_save_string = ndr->flags;
12483 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12484 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12485 ndr->flags = _flags_save_string;
12488 uint32_t _flags_save_string_array = ndr->flags;
12489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12490 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12491 ndr->flags = _flags_save_string_array;
12494 uint32_t _flags_save_string = ndr->flags;
12495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12496 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12497 ndr->flags = _flags_save_string;
12500 uint32_t _flags_save_string = ndr->flags;
12501 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12502 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12503 ndr->flags = _flags_save_string;
12506 uint32_t _flags_save_string_array = ndr->flags;
12507 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12508 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12509 ndr->flags = _flags_save_string_array;
12511 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12512 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12514 uint32_t _flags_save_string = ndr->flags;
12515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12517 ndr->flags = _flags_save_string;
12520 uint32_t _flags_save_string = ndr->flags;
12521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12522 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12529 ndr->flags = _flags_save_string;
12532 uint32_t _flags_save_string = ndr->flags;
12533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12534 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12535 ndr->flags = _flags_save_string;
12537 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
12539 if (ndr_flags & NDR_BUFFERS) {
12541 uint32_t _flags_save_string = ndr->flags;
12542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12543 if (r->driver_name) {
12544 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12545 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12546 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12548 ndr->flags = _flags_save_string;
12551 uint32_t _flags_save_string = ndr->flags;
12552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12553 if (r->architecture) {
12554 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12555 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12556 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12558 ndr->flags = _flags_save_string;
12561 uint32_t _flags_save_string = ndr->flags;
12562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12563 if (r->driver_path) {
12564 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12565 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12566 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12568 ndr->flags = _flags_save_string;
12571 uint32_t _flags_save_string = ndr->flags;
12572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12573 if (r->data_file) {
12574 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12575 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12576 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12578 ndr->flags = _flags_save_string;
12581 uint32_t _flags_save_string = ndr->flags;
12582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12583 if (r->config_file) {
12584 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12585 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12586 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12588 ndr->flags = _flags_save_string;
12591 uint32_t _flags_save_string = ndr->flags;
12592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12593 if (r->help_file) {
12594 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12596 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12598 ndr->flags = _flags_save_string;
12601 uint32_t _flags_save_string_array = ndr->flags;
12602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12603 if (r->dependent_files) {
12604 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12605 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12606 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12608 ndr->flags = _flags_save_string_array;
12611 uint32_t _flags_save_string = ndr->flags;
12612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12613 if (r->monitor_name) {
12614 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12616 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12618 ndr->flags = _flags_save_string;
12621 uint32_t _flags_save_string = ndr->flags;
12622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12623 if (r->default_datatype) {
12624 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12625 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12626 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12628 ndr->flags = _flags_save_string;
12631 uint32_t _flags_save_string_array = ndr->flags;
12632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12633 if (r->previous_names) {
12634 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12635 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12636 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12638 ndr->flags = _flags_save_string_array;
12641 uint32_t _flags_save_string = ndr->flags;
12642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12643 if (r->manufacturer_name) {
12644 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
12645 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12646 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
12648 ndr->flags = _flags_save_string;
12651 uint32_t _flags_save_string = ndr->flags;
12652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12653 if (r->manufacturer_url) {
12654 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
12655 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12656 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
12658 ndr->flags = _flags_save_string;
12661 uint32_t _flags_save_string = ndr->flags;
12662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12663 if (r->hardware_id) {
12664 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
12665 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12666 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
12668 ndr->flags = _flags_save_string;
12671 uint32_t _flags_save_string = ndr->flags;
12672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12674 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
12675 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12676 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
12678 ndr->flags = _flags_save_string;
12681 return NDR_ERR_SUCCESS;
12684 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
12686 uint32_t _ptr_driver_name;
12687 TALLOC_CTX *_mem_save_driver_name_0;
12688 uint32_t _ptr_architecture;
12689 TALLOC_CTX *_mem_save_architecture_0;
12690 uint32_t _ptr_driver_path;
12691 TALLOC_CTX *_mem_save_driver_path_0;
12692 uint32_t _ptr_data_file;
12693 TALLOC_CTX *_mem_save_data_file_0;
12694 uint32_t _ptr_config_file;
12695 TALLOC_CTX *_mem_save_config_file_0;
12696 uint32_t _ptr_help_file;
12697 TALLOC_CTX *_mem_save_help_file_0;
12698 uint32_t _ptr_dependent_files;
12699 TALLOC_CTX *_mem_save_dependent_files_0;
12700 uint32_t _ptr_monitor_name;
12701 TALLOC_CTX *_mem_save_monitor_name_0;
12702 uint32_t _ptr_default_datatype;
12703 TALLOC_CTX *_mem_save_default_datatype_0;
12704 uint32_t _ptr_previous_names;
12705 TALLOC_CTX *_mem_save_previous_names_0;
12706 uint32_t _ptr_manufacturer_name;
12707 TALLOC_CTX *_mem_save_manufacturer_name_0;
12708 uint32_t _ptr_manufacturer_url;
12709 TALLOC_CTX *_mem_save_manufacturer_url_0;
12710 uint32_t _ptr_hardware_id;
12711 TALLOC_CTX *_mem_save_hardware_id_0;
12712 uint32_t _ptr_provider;
12713 TALLOC_CTX *_mem_save_provider_0;
12714 if (ndr_flags & NDR_SCALARS) {
12715 NDR_CHECK(ndr_pull_align(ndr, 8));
12716 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12718 uint32_t _flags_save_string = ndr->flags;
12719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12721 if (_ptr_driver_name) {
12722 NDR_PULL_ALLOC(ndr, r->driver_name);
12723 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12725 r->driver_name = NULL;
12727 ndr->flags = _flags_save_string;
12730 uint32_t _flags_save_string = ndr->flags;
12731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12733 if (_ptr_architecture) {
12734 NDR_PULL_ALLOC(ndr, r->architecture);
12735 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12737 r->architecture = NULL;
12739 ndr->flags = _flags_save_string;
12742 uint32_t _flags_save_string = ndr->flags;
12743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12745 if (_ptr_driver_path) {
12746 NDR_PULL_ALLOC(ndr, r->driver_path);
12747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12749 r->driver_path = NULL;
12751 ndr->flags = _flags_save_string;
12754 uint32_t _flags_save_string = ndr->flags;
12755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12757 if (_ptr_data_file) {
12758 NDR_PULL_ALLOC(ndr, r->data_file);
12759 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12761 r->data_file = NULL;
12763 ndr->flags = _flags_save_string;
12766 uint32_t _flags_save_string = ndr->flags;
12767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12769 if (_ptr_config_file) {
12770 NDR_PULL_ALLOC(ndr, r->config_file);
12771 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12773 r->config_file = NULL;
12775 ndr->flags = _flags_save_string;
12778 uint32_t _flags_save_string = ndr->flags;
12779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12780 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12781 if (_ptr_help_file) {
12782 NDR_PULL_ALLOC(ndr, r->help_file);
12783 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12785 r->help_file = NULL;
12787 ndr->flags = _flags_save_string;
12790 uint32_t _flags_save_string_array = ndr->flags;
12791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12792 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12793 if (_ptr_dependent_files) {
12794 NDR_PULL_ALLOC(ndr, r->dependent_files);
12795 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12797 r->dependent_files = NULL;
12799 ndr->flags = _flags_save_string_array;
12802 uint32_t _flags_save_string = ndr->flags;
12803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12804 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12805 if (_ptr_monitor_name) {
12806 NDR_PULL_ALLOC(ndr, r->monitor_name);
12807 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12809 r->monitor_name = NULL;
12811 ndr->flags = _flags_save_string;
12814 uint32_t _flags_save_string = ndr->flags;
12815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12816 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12817 if (_ptr_default_datatype) {
12818 NDR_PULL_ALLOC(ndr, r->default_datatype);
12819 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12821 r->default_datatype = NULL;
12823 ndr->flags = _flags_save_string;
12826 uint32_t _flags_save_string_array = ndr->flags;
12827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12829 if (_ptr_previous_names) {
12830 NDR_PULL_ALLOC(ndr, r->previous_names);
12831 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12833 r->previous_names = NULL;
12835 ndr->flags = _flags_save_string_array;
12837 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12838 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12840 uint32_t _flags_save_string = ndr->flags;
12841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12843 if (_ptr_manufacturer_name) {
12844 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12845 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12847 r->manufacturer_name = NULL;
12849 ndr->flags = _flags_save_string;
12852 uint32_t _flags_save_string = ndr->flags;
12853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12855 if (_ptr_manufacturer_url) {
12856 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12857 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12859 r->manufacturer_url = NULL;
12861 ndr->flags = _flags_save_string;
12864 uint32_t _flags_save_string = ndr->flags;
12865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12867 if (_ptr_hardware_id) {
12868 NDR_PULL_ALLOC(ndr, r->hardware_id);
12869 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12871 r->hardware_id = NULL;
12873 ndr->flags = _flags_save_string;
12876 uint32_t _flags_save_string = ndr->flags;
12877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12879 if (_ptr_provider) {
12880 NDR_PULL_ALLOC(ndr, r->provider);
12881 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12883 r->provider = NULL;
12885 ndr->flags = _flags_save_string;
12887 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
12889 if (ndr_flags & NDR_BUFFERS) {
12891 uint32_t _flags_save_string = ndr->flags;
12892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12893 if (r->driver_name) {
12894 uint32_t _relative_save_offset;
12895 _relative_save_offset = ndr->offset;
12896 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12897 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12898 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12899 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12901 if (ndr->offset > ndr->relative_highest_offset) {
12902 ndr->relative_highest_offset = ndr->offset;
12904 ndr->offset = _relative_save_offset;
12906 ndr->flags = _flags_save_string;
12909 uint32_t _flags_save_string = ndr->flags;
12910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12911 if (r->architecture) {
12912 uint32_t _relative_save_offset;
12913 _relative_save_offset = ndr->offset;
12914 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12915 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12916 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12917 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12919 if (ndr->offset > ndr->relative_highest_offset) {
12920 ndr->relative_highest_offset = ndr->offset;
12922 ndr->offset = _relative_save_offset;
12924 ndr->flags = _flags_save_string;
12927 uint32_t _flags_save_string = ndr->flags;
12928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12929 if (r->driver_path) {
12930 uint32_t _relative_save_offset;
12931 _relative_save_offset = ndr->offset;
12932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12933 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12934 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12937 if (ndr->offset > ndr->relative_highest_offset) {
12938 ndr->relative_highest_offset = ndr->offset;
12940 ndr->offset = _relative_save_offset;
12942 ndr->flags = _flags_save_string;
12945 uint32_t _flags_save_string = ndr->flags;
12946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12947 if (r->data_file) {
12948 uint32_t _relative_save_offset;
12949 _relative_save_offset = ndr->offset;
12950 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12951 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12952 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12953 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12955 if (ndr->offset > ndr->relative_highest_offset) {
12956 ndr->relative_highest_offset = ndr->offset;
12958 ndr->offset = _relative_save_offset;
12960 ndr->flags = _flags_save_string;
12963 uint32_t _flags_save_string = ndr->flags;
12964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12965 if (r->config_file) {
12966 uint32_t _relative_save_offset;
12967 _relative_save_offset = ndr->offset;
12968 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12969 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12970 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12971 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12973 if (ndr->offset > ndr->relative_highest_offset) {
12974 ndr->relative_highest_offset = ndr->offset;
12976 ndr->offset = _relative_save_offset;
12978 ndr->flags = _flags_save_string;
12981 uint32_t _flags_save_string = ndr->flags;
12982 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12983 if (r->help_file) {
12984 uint32_t _relative_save_offset;
12985 _relative_save_offset = ndr->offset;
12986 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12987 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12988 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12989 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12991 if (ndr->offset > ndr->relative_highest_offset) {
12992 ndr->relative_highest_offset = ndr->offset;
12994 ndr->offset = _relative_save_offset;
12996 ndr->flags = _flags_save_string;
12999 uint32_t _flags_save_string_array = ndr->flags;
13000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13001 if (r->dependent_files) {
13002 uint32_t _relative_save_offset;
13003 _relative_save_offset = ndr->offset;
13004 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13005 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13006 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13007 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
13009 if (ndr->offset > ndr->relative_highest_offset) {
13010 ndr->relative_highest_offset = ndr->offset;
13012 ndr->offset = _relative_save_offset;
13014 ndr->flags = _flags_save_string_array;
13017 uint32_t _flags_save_string = ndr->flags;
13018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13019 if (r->monitor_name) {
13020 uint32_t _relative_save_offset;
13021 _relative_save_offset = ndr->offset;
13022 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13023 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13024 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13025 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13027 if (ndr->offset > ndr->relative_highest_offset) {
13028 ndr->relative_highest_offset = ndr->offset;
13030 ndr->offset = _relative_save_offset;
13032 ndr->flags = _flags_save_string;
13035 uint32_t _flags_save_string = ndr->flags;
13036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13037 if (r->default_datatype) {
13038 uint32_t _relative_save_offset;
13039 _relative_save_offset = ndr->offset;
13040 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13041 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13042 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13043 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
13045 if (ndr->offset > ndr->relative_highest_offset) {
13046 ndr->relative_highest_offset = ndr->offset;
13048 ndr->offset = _relative_save_offset;
13050 ndr->flags = _flags_save_string;
13053 uint32_t _flags_save_string_array = ndr->flags;
13054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13055 if (r->previous_names) {
13056 uint32_t _relative_save_offset;
13057 _relative_save_offset = ndr->offset;
13058 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13059 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13060 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13061 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
13063 if (ndr->offset > ndr->relative_highest_offset) {
13064 ndr->relative_highest_offset = ndr->offset;
13066 ndr->offset = _relative_save_offset;
13068 ndr->flags = _flags_save_string_array;
13071 uint32_t _flags_save_string = ndr->flags;
13072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13073 if (r->manufacturer_name) {
13074 uint32_t _relative_save_offset;
13075 _relative_save_offset = ndr->offset;
13076 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
13077 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13078 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
13079 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
13080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
13081 if (ndr->offset > ndr->relative_highest_offset) {
13082 ndr->relative_highest_offset = ndr->offset;
13084 ndr->offset = _relative_save_offset;
13086 ndr->flags = _flags_save_string;
13089 uint32_t _flags_save_string = ndr->flags;
13090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13091 if (r->manufacturer_url) {
13092 uint32_t _relative_save_offset;
13093 _relative_save_offset = ndr->offset;
13094 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
13095 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
13096 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
13097 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
13098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
13099 if (ndr->offset > ndr->relative_highest_offset) {
13100 ndr->relative_highest_offset = ndr->offset;
13102 ndr->offset = _relative_save_offset;
13104 ndr->flags = _flags_save_string;
13107 uint32_t _flags_save_string = ndr->flags;
13108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13109 if (r->hardware_id) {
13110 uint32_t _relative_save_offset;
13111 _relative_save_offset = ndr->offset;
13112 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13113 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13114 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13115 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13117 if (ndr->offset > ndr->relative_highest_offset) {
13118 ndr->relative_highest_offset = ndr->offset;
13120 ndr->offset = _relative_save_offset;
13122 ndr->flags = _flags_save_string;
13125 uint32_t _flags_save_string = ndr->flags;
13126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13128 uint32_t _relative_save_offset;
13129 _relative_save_offset = ndr->offset;
13130 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13131 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13132 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13133 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13135 if (ndr->offset > ndr->relative_highest_offset) {
13136 ndr->relative_highest_offset = ndr->offset;
13138 ndr->offset = _relative_save_offset;
13140 ndr->flags = _flags_save_string;
13143 return NDR_ERR_SUCCESS;
13146 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
13148 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
13150 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13151 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13153 if (r->driver_name) {
13154 ndr_print_string(ndr, "driver_name", r->driver_name);
13157 ndr_print_ptr(ndr, "architecture", r->architecture);
13159 if (r->architecture) {
13160 ndr_print_string(ndr, "architecture", r->architecture);
13163 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13165 if (r->driver_path) {
13166 ndr_print_string(ndr, "driver_path", r->driver_path);
13169 ndr_print_ptr(ndr, "data_file", r->data_file);
13171 if (r->data_file) {
13172 ndr_print_string(ndr, "data_file", r->data_file);
13175 ndr_print_ptr(ndr, "config_file", r->config_file);
13177 if (r->config_file) {
13178 ndr_print_string(ndr, "config_file", r->config_file);
13181 ndr_print_ptr(ndr, "help_file", r->help_file);
13183 if (r->help_file) {
13184 ndr_print_string(ndr, "help_file", r->help_file);
13187 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13189 if (r->dependent_files) {
13190 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13193 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13195 if (r->monitor_name) {
13196 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13199 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13201 if (r->default_datatype) {
13202 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13205 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13207 if (r->previous_names) {
13208 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13211 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13212 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13213 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13215 if (r->manufacturer_name) {
13216 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13219 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13221 if (r->manufacturer_url) {
13222 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13225 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13227 if (r->hardware_id) {
13228 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13231 ndr_print_ptr(ndr, "provider", r->provider);
13234 ndr_print_string(ndr, "provider", r->provider);
13240 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
13242 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
13245 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo7 *r)
13247 if (ndr_flags & NDR_SCALARS) {
13248 NDR_CHECK(ndr_push_align(ndr, 5));
13249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13250 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13252 uint32_t _flags_save_string = ndr->flags;
13253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13254 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13255 ndr->flags = _flags_save_string;
13258 uint32_t _flags_save_string = ndr->flags;
13259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13260 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
13261 ndr->flags = _flags_save_string;
13264 uint32_t _flags_save_string = ndr->flags;
13265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13266 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
13267 ndr->flags = _flags_save_string;
13269 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13271 if (ndr_flags & NDR_BUFFERS) {
13273 uint32_t _flags_save_string = ndr->flags;
13274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13275 if (r->driver_name) {
13276 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13278 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13280 ndr->flags = _flags_save_string;
13283 uint32_t _flags_save_string = ndr->flags;
13284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13286 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name));
13287 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
13288 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_name));
13290 ndr->flags = _flags_save_string;
13293 uint32_t _flags_save_string = ndr->flags;
13294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13295 if (r->install_source_root) {
13296 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root));
13297 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
13298 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->install_source_root));
13300 ndr->flags = _flags_save_string;
13303 return NDR_ERR_SUCCESS;
13306 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo7 *r)
13308 uint32_t _ptr_driver_name;
13309 TALLOC_CTX *_mem_save_driver_name_0;
13310 uint32_t _ptr_inf_name;
13311 TALLOC_CTX *_mem_save_inf_name_0;
13312 uint32_t _ptr_install_source_root;
13313 TALLOC_CTX *_mem_save_install_source_root_0;
13314 if (ndr_flags & NDR_SCALARS) {
13315 NDR_CHECK(ndr_pull_align(ndr, 5));
13316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13317 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13319 uint32_t _flags_save_string = ndr->flags;
13320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13322 if (_ptr_driver_name) {
13323 NDR_PULL_ALLOC(ndr, r->driver_name);
13324 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13326 r->driver_name = NULL;
13328 ndr->flags = _flags_save_string;
13331 uint32_t _flags_save_string = ndr->flags;
13332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
13334 if (_ptr_inf_name) {
13335 NDR_PULL_ALLOC(ndr, r->inf_name);
13336 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
13338 r->inf_name = NULL;
13340 ndr->flags = _flags_save_string;
13343 uint32_t _flags_save_string = ndr->flags;
13344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
13346 if (_ptr_install_source_root) {
13347 NDR_PULL_ALLOC(ndr, r->install_source_root);
13348 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
13350 r->install_source_root = NULL;
13352 ndr->flags = _flags_save_string;
13354 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13356 if (ndr_flags & NDR_BUFFERS) {
13358 uint32_t _flags_save_string = ndr->flags;
13359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13360 if (r->driver_name) {
13361 uint32_t _relative_save_offset;
13362 _relative_save_offset = ndr->offset;
13363 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13364 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13365 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13366 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13368 if (ndr->offset > ndr->relative_highest_offset) {
13369 ndr->relative_highest_offset = ndr->offset;
13371 ndr->offset = _relative_save_offset;
13373 ndr->flags = _flags_save_string;
13376 uint32_t _flags_save_string = ndr->flags;
13377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13379 uint32_t _relative_save_offset;
13380 _relative_save_offset = ndr->offset;
13381 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
13382 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13383 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
13384 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
13385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
13386 if (ndr->offset > ndr->relative_highest_offset) {
13387 ndr->relative_highest_offset = ndr->offset;
13389 ndr->offset = _relative_save_offset;
13391 ndr->flags = _flags_save_string;
13394 uint32_t _flags_save_string = ndr->flags;
13395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13396 if (r->install_source_root) {
13397 uint32_t _relative_save_offset;
13398 _relative_save_offset = ndr->offset;
13399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
13400 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
13401 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
13402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
13403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
13404 if (ndr->offset > ndr->relative_highest_offset) {
13405 ndr->relative_highest_offset = ndr->offset;
13407 ndr->offset = _relative_save_offset;
13409 ndr->flags = _flags_save_string;
13412 return NDR_ERR_SUCCESS;
13415 _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
13417 ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
13419 ndr_print_uint32(ndr, "size", r->size);
13420 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13421 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13423 if (r->driver_name) {
13424 ndr_print_string(ndr, "driver_name", r->driver_name);
13427 ndr_print_ptr(ndr, "inf_name", r->inf_name);
13430 ndr_print_string(ndr, "inf_name", r->inf_name);
13433 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
13435 if (r->install_source_root) {
13436 ndr_print_string(ndr, "install_source_root", r->install_source_root);
13442 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, struct smb_iconv_convenience *ic, int flags)
13444 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7, ic);
13447 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
13449 if (ndr_flags & NDR_SCALARS) {
13450 NDR_CHECK(ndr_push_align(ndr, 8));
13451 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
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->driver_name));
13456 ndr->flags = _flags_save_string;
13459 uint32_t _flags_save_string = ndr->flags;
13460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13461 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13462 ndr->flags = _flags_save_string;
13465 uint32_t _flags_save_string = ndr->flags;
13466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13467 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13468 ndr->flags = _flags_save_string;
13471 uint32_t _flags_save_string = ndr->flags;
13472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13473 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13474 ndr->flags = _flags_save_string;
13477 uint32_t _flags_save_string = ndr->flags;
13478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13479 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13480 ndr->flags = _flags_save_string;
13483 uint32_t _flags_save_string = ndr->flags;
13484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13485 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13486 ndr->flags = _flags_save_string;
13489 uint32_t _flags_save_string_array = ndr->flags;
13490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13491 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13492 ndr->flags = _flags_save_string_array;
13495 uint32_t _flags_save_string = ndr->flags;
13496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13497 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13498 ndr->flags = _flags_save_string;
13501 uint32_t _flags_save_string = ndr->flags;
13502 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13503 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13504 ndr->flags = _flags_save_string;
13507 uint32_t _flags_save_string_array = ndr->flags;
13508 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13509 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13510 ndr->flags = _flags_save_string_array;
13512 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13513 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13515 uint32_t _flags_save_string = ndr->flags;
13516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13517 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13518 ndr->flags = _flags_save_string;
13521 uint32_t _flags_save_string = ndr->flags;
13522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13523 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13524 ndr->flags = _flags_save_string;
13527 uint32_t _flags_save_string = ndr->flags;
13528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13529 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13530 ndr->flags = _flags_save_string;
13533 uint32_t _flags_save_string = ndr->flags;
13534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13536 ndr->flags = _flags_save_string;
13539 uint32_t _flags_save_string = ndr->flags;
13540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13541 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
13542 ndr->flags = _flags_save_string;
13545 uint32_t _flags_save_string = ndr->flags;
13546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13547 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
13548 ndr->flags = _flags_save_string;
13551 uint32_t _flags_save_string_array = ndr->flags;
13552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13553 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
13554 ndr->flags = _flags_save_string_array;
13557 uint32_t _flags_save_string = ndr->flags;
13558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13559 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
13560 ndr->flags = _flags_save_string;
13562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
13564 uint32_t _flags_save_string_array = ndr->flags;
13565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13566 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
13567 ndr->flags = _flags_save_string_array;
13569 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
13570 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
13571 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13573 if (ndr_flags & NDR_BUFFERS) {
13575 uint32_t _flags_save_string = ndr->flags;
13576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13577 if (r->driver_name) {
13578 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13580 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13582 ndr->flags = _flags_save_string;
13585 uint32_t _flags_save_string = ndr->flags;
13586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13587 if (r->architecture) {
13588 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13589 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13590 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
13592 ndr->flags = _flags_save_string;
13595 uint32_t _flags_save_string = ndr->flags;
13596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13597 if (r->driver_path) {
13598 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13600 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
13602 ndr->flags = _flags_save_string;
13605 uint32_t _flags_save_string = ndr->flags;
13606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13607 if (r->data_file) {
13608 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13609 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13610 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
13612 ndr->flags = _flags_save_string;
13615 uint32_t _flags_save_string = ndr->flags;
13616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13617 if (r->config_file) {
13618 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13619 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13620 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
13622 ndr->flags = _flags_save_string;
13625 uint32_t _flags_save_string = ndr->flags;
13626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13627 if (r->help_file) {
13628 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
13629 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13630 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
13632 ndr->flags = _flags_save_string;
13635 uint32_t _flags_save_string_array = ndr->flags;
13636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13637 if (r->dependent_files) {
13638 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
13639 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13640 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
13642 ndr->flags = _flags_save_string_array;
13645 uint32_t _flags_save_string = ndr->flags;
13646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13647 if (r->monitor_name) {
13648 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
13649 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13650 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
13652 ndr->flags = _flags_save_string;
13655 uint32_t _flags_save_string = ndr->flags;
13656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13657 if (r->default_datatype) {
13658 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
13659 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13660 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
13662 ndr->flags = _flags_save_string;
13665 uint32_t _flags_save_string_array = ndr->flags;
13666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13667 if (r->previous_names) {
13668 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
13669 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13670 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
13672 ndr->flags = _flags_save_string_array;
13675 uint32_t _flags_save_string = ndr->flags;
13676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13677 if (r->manufacturer_name) {
13678 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
13679 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13680 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
13682 ndr->flags = _flags_save_string;
13685 uint32_t _flags_save_string = ndr->flags;
13686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13687 if (r->manufacturer_url) {
13688 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
13689 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13690 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
13692 ndr->flags = _flags_save_string;
13695 uint32_t _flags_save_string = ndr->flags;
13696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13697 if (r->hardware_id) {
13698 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
13699 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13700 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
13702 ndr->flags = _flags_save_string;
13705 uint32_t _flags_save_string = ndr->flags;
13706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13708 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
13709 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13710 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
13712 ndr->flags = _flags_save_string;
13715 uint32_t _flags_save_string = ndr->flags;
13716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13717 if (r->print_processor) {
13718 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
13719 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
13720 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
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 if (r->vendor_setup) {
13728 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
13729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
13730 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
13732 ndr->flags = _flags_save_string;
13735 uint32_t _flags_save_string_array = ndr->flags;
13736 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13737 if (r->color_profiles) {
13738 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
13739 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
13740 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
13742 ndr->flags = _flags_save_string_array;
13745 uint32_t _flags_save_string = ndr->flags;
13746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13748 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
13749 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
13750 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
13752 ndr->flags = _flags_save_string;
13755 uint32_t _flags_save_string_array = ndr->flags;
13756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13757 if (r->core_driver_dependencies) {
13758 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
13759 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
13760 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
13762 ndr->flags = _flags_save_string_array;
13765 return NDR_ERR_SUCCESS;
13768 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
13770 uint32_t _ptr_driver_name;
13771 TALLOC_CTX *_mem_save_driver_name_0;
13772 uint32_t _ptr_architecture;
13773 TALLOC_CTX *_mem_save_architecture_0;
13774 uint32_t _ptr_driver_path;
13775 TALLOC_CTX *_mem_save_driver_path_0;
13776 uint32_t _ptr_data_file;
13777 TALLOC_CTX *_mem_save_data_file_0;
13778 uint32_t _ptr_config_file;
13779 TALLOC_CTX *_mem_save_config_file_0;
13780 uint32_t _ptr_help_file;
13781 TALLOC_CTX *_mem_save_help_file_0;
13782 uint32_t _ptr_dependent_files;
13783 TALLOC_CTX *_mem_save_dependent_files_0;
13784 uint32_t _ptr_monitor_name;
13785 TALLOC_CTX *_mem_save_monitor_name_0;
13786 uint32_t _ptr_default_datatype;
13787 TALLOC_CTX *_mem_save_default_datatype_0;
13788 uint32_t _ptr_previous_names;
13789 TALLOC_CTX *_mem_save_previous_names_0;
13790 uint32_t _ptr_manufacturer_name;
13791 TALLOC_CTX *_mem_save_manufacturer_name_0;
13792 uint32_t _ptr_manufacturer_url;
13793 TALLOC_CTX *_mem_save_manufacturer_url_0;
13794 uint32_t _ptr_hardware_id;
13795 TALLOC_CTX *_mem_save_hardware_id_0;
13796 uint32_t _ptr_provider;
13797 TALLOC_CTX *_mem_save_provider_0;
13798 uint32_t _ptr_print_processor;
13799 TALLOC_CTX *_mem_save_print_processor_0;
13800 uint32_t _ptr_vendor_setup;
13801 TALLOC_CTX *_mem_save_vendor_setup_0;
13802 uint32_t _ptr_color_profiles;
13803 TALLOC_CTX *_mem_save_color_profiles_0;
13804 uint32_t _ptr_inf_path;
13805 TALLOC_CTX *_mem_save_inf_path_0;
13806 uint32_t _ptr_core_driver_dependencies;
13807 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
13808 if (ndr_flags & NDR_SCALARS) {
13809 NDR_CHECK(ndr_pull_align(ndr, 8));
13810 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13812 uint32_t _flags_save_string = ndr->flags;
13813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13815 if (_ptr_driver_name) {
13816 NDR_PULL_ALLOC(ndr, r->driver_name);
13817 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13819 r->driver_name = NULL;
13821 ndr->flags = _flags_save_string;
13824 uint32_t _flags_save_string = ndr->flags;
13825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13826 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13827 if (_ptr_architecture) {
13828 NDR_PULL_ALLOC(ndr, r->architecture);
13829 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13831 r->architecture = NULL;
13833 ndr->flags = _flags_save_string;
13836 uint32_t _flags_save_string = ndr->flags;
13837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13838 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13839 if (_ptr_driver_path) {
13840 NDR_PULL_ALLOC(ndr, r->driver_path);
13841 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13843 r->driver_path = NULL;
13845 ndr->flags = _flags_save_string;
13848 uint32_t _flags_save_string = ndr->flags;
13849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13851 if (_ptr_data_file) {
13852 NDR_PULL_ALLOC(ndr, r->data_file);
13853 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13855 r->data_file = NULL;
13857 ndr->flags = _flags_save_string;
13860 uint32_t _flags_save_string = ndr->flags;
13861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13862 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13863 if (_ptr_config_file) {
13864 NDR_PULL_ALLOC(ndr, r->config_file);
13865 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13867 r->config_file = NULL;
13869 ndr->flags = _flags_save_string;
13872 uint32_t _flags_save_string = ndr->flags;
13873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13875 if (_ptr_help_file) {
13876 NDR_PULL_ALLOC(ndr, r->help_file);
13877 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13879 r->help_file = NULL;
13881 ndr->flags = _flags_save_string;
13884 uint32_t _flags_save_string_array = ndr->flags;
13885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13887 if (_ptr_dependent_files) {
13888 NDR_PULL_ALLOC(ndr, r->dependent_files);
13889 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13891 r->dependent_files = NULL;
13893 ndr->flags = _flags_save_string_array;
13896 uint32_t _flags_save_string = ndr->flags;
13897 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13899 if (_ptr_monitor_name) {
13900 NDR_PULL_ALLOC(ndr, r->monitor_name);
13901 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13903 r->monitor_name = NULL;
13905 ndr->flags = _flags_save_string;
13908 uint32_t _flags_save_string = ndr->flags;
13909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13911 if (_ptr_default_datatype) {
13912 NDR_PULL_ALLOC(ndr, r->default_datatype);
13913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13915 r->default_datatype = NULL;
13917 ndr->flags = _flags_save_string;
13920 uint32_t _flags_save_string_array = ndr->flags;
13921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13923 if (_ptr_previous_names) {
13924 NDR_PULL_ALLOC(ndr, r->previous_names);
13925 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13927 r->previous_names = NULL;
13929 ndr->flags = _flags_save_string_array;
13931 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13932 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13934 uint32_t _flags_save_string = ndr->flags;
13935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13936 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13937 if (_ptr_manufacturer_name) {
13938 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13939 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13941 r->manufacturer_name = NULL;
13943 ndr->flags = _flags_save_string;
13946 uint32_t _flags_save_string = ndr->flags;
13947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13949 if (_ptr_manufacturer_url) {
13950 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13951 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13953 r->manufacturer_url = NULL;
13955 ndr->flags = _flags_save_string;
13958 uint32_t _flags_save_string = ndr->flags;
13959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13960 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13961 if (_ptr_hardware_id) {
13962 NDR_PULL_ALLOC(ndr, r->hardware_id);
13963 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13965 r->hardware_id = NULL;
13967 ndr->flags = _flags_save_string;
13970 uint32_t _flags_save_string = ndr->flags;
13971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13973 if (_ptr_provider) {
13974 NDR_PULL_ALLOC(ndr, r->provider);
13975 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13977 r->provider = NULL;
13979 ndr->flags = _flags_save_string;
13982 uint32_t _flags_save_string = ndr->flags;
13983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
13985 if (_ptr_print_processor) {
13986 NDR_PULL_ALLOC(ndr, r->print_processor);
13987 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
13989 r->print_processor = NULL;
13991 ndr->flags = _flags_save_string;
13994 uint32_t _flags_save_string = ndr->flags;
13995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
13997 if (_ptr_vendor_setup) {
13998 NDR_PULL_ALLOC(ndr, r->vendor_setup);
13999 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
14001 r->vendor_setup = NULL;
14003 ndr->flags = _flags_save_string;
14006 uint32_t _flags_save_string_array = ndr->flags;
14007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
14009 if (_ptr_color_profiles) {
14010 NDR_PULL_ALLOC(ndr, r->color_profiles);
14011 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
14013 r->color_profiles = NULL;
14015 ndr->flags = _flags_save_string_array;
14018 uint32_t _flags_save_string = ndr->flags;
14019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
14021 if (_ptr_inf_path) {
14022 NDR_PULL_ALLOC(ndr, r->inf_path);
14023 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
14025 r->inf_path = NULL;
14027 ndr->flags = _flags_save_string;
14029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
14031 uint32_t _flags_save_string_array = ndr->flags;
14032 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
14034 if (_ptr_core_driver_dependencies) {
14035 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
14036 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
14038 r->core_driver_dependencies = NULL;
14040 ndr->flags = _flags_save_string_array;
14042 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
14043 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
14044 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
14046 if (ndr_flags & NDR_BUFFERS) {
14048 uint32_t _flags_save_string = ndr->flags;
14049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14050 if (r->driver_name) {
14051 uint32_t _relative_save_offset;
14052 _relative_save_offset = ndr->offset;
14053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
14054 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14055 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
14056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
14057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
14058 if (ndr->offset > ndr->relative_highest_offset) {
14059 ndr->relative_highest_offset = ndr->offset;
14061 ndr->offset = _relative_save_offset;
14063 ndr->flags = _flags_save_string;
14066 uint32_t _flags_save_string = ndr->flags;
14067 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14068 if (r->architecture) {
14069 uint32_t _relative_save_offset;
14070 _relative_save_offset = ndr->offset;
14071 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
14072 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
14073 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
14074 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
14075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
14076 if (ndr->offset > ndr->relative_highest_offset) {
14077 ndr->relative_highest_offset = ndr->offset;
14079 ndr->offset = _relative_save_offset;
14081 ndr->flags = _flags_save_string;
14084 uint32_t _flags_save_string = ndr->flags;
14085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14086 if (r->driver_path) {
14087 uint32_t _relative_save_offset;
14088 _relative_save_offset = ndr->offset;
14089 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
14090 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14091 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
14092 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
14093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
14094 if (ndr->offset > ndr->relative_highest_offset) {
14095 ndr->relative_highest_offset = ndr->offset;
14097 ndr->offset = _relative_save_offset;
14099 ndr->flags = _flags_save_string;
14102 uint32_t _flags_save_string = ndr->flags;
14103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14104 if (r->data_file) {
14105 uint32_t _relative_save_offset;
14106 _relative_save_offset = ndr->offset;
14107 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
14108 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14109 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
14110 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
14111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
14112 if (ndr->offset > ndr->relative_highest_offset) {
14113 ndr->relative_highest_offset = ndr->offset;
14115 ndr->offset = _relative_save_offset;
14117 ndr->flags = _flags_save_string;
14120 uint32_t _flags_save_string = ndr->flags;
14121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14122 if (r->config_file) {
14123 uint32_t _relative_save_offset;
14124 _relative_save_offset = ndr->offset;
14125 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
14126 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14127 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
14128 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
14129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
14130 if (ndr->offset > ndr->relative_highest_offset) {
14131 ndr->relative_highest_offset = ndr->offset;
14133 ndr->offset = _relative_save_offset;
14135 ndr->flags = _flags_save_string;
14138 uint32_t _flags_save_string = ndr->flags;
14139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14140 if (r->help_file) {
14141 uint32_t _relative_save_offset;
14142 _relative_save_offset = ndr->offset;
14143 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
14144 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14145 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
14146 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
14147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
14148 if (ndr->offset > ndr->relative_highest_offset) {
14149 ndr->relative_highest_offset = ndr->offset;
14151 ndr->offset = _relative_save_offset;
14153 ndr->flags = _flags_save_string;
14156 uint32_t _flags_save_string_array = ndr->flags;
14157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14158 if (r->dependent_files) {
14159 uint32_t _relative_save_offset;
14160 _relative_save_offset = ndr->offset;
14161 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
14162 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
14163 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
14164 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
14165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
14166 if (ndr->offset > ndr->relative_highest_offset) {
14167 ndr->relative_highest_offset = ndr->offset;
14169 ndr->offset = _relative_save_offset;
14171 ndr->flags = _flags_save_string_array;
14174 uint32_t _flags_save_string = ndr->flags;
14175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14176 if (r->monitor_name) {
14177 uint32_t _relative_save_offset;
14178 _relative_save_offset = ndr->offset;
14179 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
14180 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14181 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
14182 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
14183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
14184 if (ndr->offset > ndr->relative_highest_offset) {
14185 ndr->relative_highest_offset = ndr->offset;
14187 ndr->offset = _relative_save_offset;
14189 ndr->flags = _flags_save_string;
14192 uint32_t _flags_save_string = ndr->flags;
14193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14194 if (r->default_datatype) {
14195 uint32_t _relative_save_offset;
14196 _relative_save_offset = ndr->offset;
14197 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
14198 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14199 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
14200 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
14201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
14202 if (ndr->offset > ndr->relative_highest_offset) {
14203 ndr->relative_highest_offset = ndr->offset;
14205 ndr->offset = _relative_save_offset;
14207 ndr->flags = _flags_save_string;
14210 uint32_t _flags_save_string_array = ndr->flags;
14211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14212 if (r->previous_names) {
14213 uint32_t _relative_save_offset;
14214 _relative_save_offset = ndr->offset;
14215 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
14216 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
14217 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
14218 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
14219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
14220 if (ndr->offset > ndr->relative_highest_offset) {
14221 ndr->relative_highest_offset = ndr->offset;
14223 ndr->offset = _relative_save_offset;
14225 ndr->flags = _flags_save_string_array;
14228 uint32_t _flags_save_string = ndr->flags;
14229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14230 if (r->manufacturer_name) {
14231 uint32_t _relative_save_offset;
14232 _relative_save_offset = ndr->offset;
14233 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
14234 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14235 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
14236 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
14237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
14238 if (ndr->offset > ndr->relative_highest_offset) {
14239 ndr->relative_highest_offset = ndr->offset;
14241 ndr->offset = _relative_save_offset;
14243 ndr->flags = _flags_save_string;
14246 uint32_t _flags_save_string = ndr->flags;
14247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14248 if (r->manufacturer_url) {
14249 uint32_t _relative_save_offset;
14250 _relative_save_offset = ndr->offset;
14251 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
14252 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
14253 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
14254 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
14255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
14256 if (ndr->offset > ndr->relative_highest_offset) {
14257 ndr->relative_highest_offset = ndr->offset;
14259 ndr->offset = _relative_save_offset;
14261 ndr->flags = _flags_save_string;
14264 uint32_t _flags_save_string = ndr->flags;
14265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14266 if (r->hardware_id) {
14267 uint32_t _relative_save_offset;
14268 _relative_save_offset = ndr->offset;
14269 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14270 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14271 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14272 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14274 if (ndr->offset > ndr->relative_highest_offset) {
14275 ndr->relative_highest_offset = ndr->offset;
14277 ndr->offset = _relative_save_offset;
14279 ndr->flags = _flags_save_string;
14282 uint32_t _flags_save_string = ndr->flags;
14283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14285 uint32_t _relative_save_offset;
14286 _relative_save_offset = ndr->offset;
14287 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14288 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14289 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14290 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14292 if (ndr->offset > ndr->relative_highest_offset) {
14293 ndr->relative_highest_offset = ndr->offset;
14295 ndr->offset = _relative_save_offset;
14297 ndr->flags = _flags_save_string;
14300 uint32_t _flags_save_string = ndr->flags;
14301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14302 if (r->print_processor) {
14303 uint32_t _relative_save_offset;
14304 _relative_save_offset = ndr->offset;
14305 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
14306 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
14307 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
14308 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
14309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
14310 if (ndr->offset > ndr->relative_highest_offset) {
14311 ndr->relative_highest_offset = ndr->offset;
14313 ndr->offset = _relative_save_offset;
14315 ndr->flags = _flags_save_string;
14318 uint32_t _flags_save_string = ndr->flags;
14319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14320 if (r->vendor_setup) {
14321 uint32_t _relative_save_offset;
14322 _relative_save_offset = ndr->offset;
14323 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
14324 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
14325 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
14326 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
14327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
14328 if (ndr->offset > ndr->relative_highest_offset) {
14329 ndr->relative_highest_offset = ndr->offset;
14331 ndr->offset = _relative_save_offset;
14333 ndr->flags = _flags_save_string;
14336 uint32_t _flags_save_string_array = ndr->flags;
14337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14338 if (r->color_profiles) {
14339 uint32_t _relative_save_offset;
14340 _relative_save_offset = ndr->offset;
14341 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
14342 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
14343 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
14344 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
14345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
14346 if (ndr->offset > ndr->relative_highest_offset) {
14347 ndr->relative_highest_offset = ndr->offset;
14349 ndr->offset = _relative_save_offset;
14351 ndr->flags = _flags_save_string_array;
14354 uint32_t _flags_save_string = ndr->flags;
14355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14357 uint32_t _relative_save_offset;
14358 _relative_save_offset = ndr->offset;
14359 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
14360 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
14361 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
14362 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
14363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
14364 if (ndr->offset > ndr->relative_highest_offset) {
14365 ndr->relative_highest_offset = ndr->offset;
14367 ndr->offset = _relative_save_offset;
14369 ndr->flags = _flags_save_string;
14372 uint32_t _flags_save_string_array = ndr->flags;
14373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14374 if (r->core_driver_dependencies) {
14375 uint32_t _relative_save_offset;
14376 _relative_save_offset = ndr->offset;
14377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
14378 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
14379 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
14380 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
14381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
14382 if (ndr->offset > ndr->relative_highest_offset) {
14383 ndr->relative_highest_offset = ndr->offset;
14385 ndr->offset = _relative_save_offset;
14387 ndr->flags = _flags_save_string_array;
14390 return NDR_ERR_SUCCESS;
14393 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
14395 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
14397 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14398 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14400 if (r->driver_name) {
14401 ndr_print_string(ndr, "driver_name", r->driver_name);
14404 ndr_print_ptr(ndr, "architecture", r->architecture);
14406 if (r->architecture) {
14407 ndr_print_string(ndr, "architecture", r->architecture);
14410 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14412 if (r->driver_path) {
14413 ndr_print_string(ndr, "driver_path", r->driver_path);
14416 ndr_print_ptr(ndr, "data_file", r->data_file);
14418 if (r->data_file) {
14419 ndr_print_string(ndr, "data_file", r->data_file);
14422 ndr_print_ptr(ndr, "config_file", r->config_file);
14424 if (r->config_file) {
14425 ndr_print_string(ndr, "config_file", r->config_file);
14428 ndr_print_ptr(ndr, "help_file", r->help_file);
14430 if (r->help_file) {
14431 ndr_print_string(ndr, "help_file", r->help_file);
14434 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14436 if (r->dependent_files) {
14437 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14440 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14442 if (r->monitor_name) {
14443 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14446 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14448 if (r->default_datatype) {
14449 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14452 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14454 if (r->previous_names) {
14455 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14458 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14459 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14460 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14462 if (r->manufacturer_name) {
14463 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14466 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14468 if (r->manufacturer_url) {
14469 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14472 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14474 if (r->hardware_id) {
14475 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14478 ndr_print_ptr(ndr, "provider", r->provider);
14481 ndr_print_string(ndr, "provider", r->provider);
14484 ndr_print_ptr(ndr, "print_processor", r->print_processor);
14486 if (r->print_processor) {
14487 ndr_print_string(ndr, "print_processor", r->print_processor);
14490 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
14492 if (r->vendor_setup) {
14493 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
14496 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
14498 if (r->color_profiles) {
14499 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
14502 ndr_print_ptr(ndr, "inf_path", r->inf_path);
14505 ndr_print_string(ndr, "inf_path", r->inf_path);
14508 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
14509 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14511 if (r->core_driver_dependencies) {
14512 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
14515 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
14516 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
14520 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
14522 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
14525 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
14527 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
14528 return NDR_ERR_SUCCESS;
14531 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
14534 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
14536 return NDR_ERR_SUCCESS;
14539 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
14541 const char *val = NULL;
14544 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
14545 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
14546 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
14547 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
14548 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
14550 ndr_print_enum(ndr, name, "ENUM", val, r);
14553 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
14555 if (ndr_flags & NDR_SCALARS) {
14556 NDR_CHECK(ndr_push_align(ndr, 5));
14558 uint32_t _flags_save_string = ndr->flags;
14559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14560 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
14561 ndr->flags = _flags_save_string;
14563 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
14564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
14565 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14567 if (ndr_flags & NDR_BUFFERS) {
14569 uint32_t _flags_save_string = ndr->flags;
14570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14571 if (r->file_name) {
14572 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
14573 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
14574 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
14576 ndr->flags = _flags_save_string;
14579 return NDR_ERR_SUCCESS;
14582 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
14584 uint32_t _ptr_file_name;
14585 TALLOC_CTX *_mem_save_file_name_0;
14586 if (ndr_flags & NDR_SCALARS) {
14587 NDR_CHECK(ndr_pull_align(ndr, 5));
14589 uint32_t _flags_save_string = ndr->flags;
14590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
14592 if (_ptr_file_name) {
14593 NDR_PULL_ALLOC(ndr, r->file_name);
14594 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
14596 r->file_name = NULL;
14598 ndr->flags = _flags_save_string;
14600 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
14601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
14602 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14604 if (ndr_flags & NDR_BUFFERS) {
14606 uint32_t _flags_save_string = ndr->flags;
14607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14608 if (r->file_name) {
14609 uint32_t _relative_save_offset;
14610 _relative_save_offset = ndr->offset;
14611 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
14612 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14613 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
14614 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
14615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
14616 if (ndr->offset > ndr->relative_highest_offset) {
14617 ndr->relative_highest_offset = ndr->offset;
14619 ndr->offset = _relative_save_offset;
14621 ndr->flags = _flags_save_string;
14624 return NDR_ERR_SUCCESS;
14627 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
14629 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
14631 ndr_print_ptr(ndr, "file_name", r->file_name);
14633 if (r->file_name) {
14634 ndr_print_string(ndr, "file_name", r->file_name);
14637 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
14638 ndr_print_uint32(ndr, "file_version", r->file_version);
14642 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
14644 uint32_t cntr_file_info_1;
14645 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
14647 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14648 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14650 if (r->driver_name) {
14651 ndr_print_string(ndr, "driver_name", r->driver_name);
14654 ndr_print_ptr(ndr, "architecture", r->architecture);
14656 if (r->architecture) {
14657 ndr_print_string(ndr, "architecture", r->architecture);
14660 ndr_print_ptr(ndr, "file_info", r->file_info);
14662 if (r->file_info) {
14663 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
14665 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
14667 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
14668 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
14675 ndr_print_uint32(ndr, "file_count", r->file_count);
14676 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14678 if (r->monitor_name) {
14679 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14682 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14684 if (r->default_datatype) {
14685 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14688 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14690 if (r->previous_names) {
14691 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14694 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14695 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14696 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14698 if (r->manufacturer_name) {
14699 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14702 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14704 if (r->manufacturer_url) {
14705 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14708 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14710 if (r->hardware_id) {
14711 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14714 ndr_print_ptr(ndr, "provider", r->provider);
14717 ndr_print_string(ndr, "provider", r->provider);
14723 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
14725 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
14728 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
14730 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14731 if (ndr_flags & NDR_SCALARS) {
14732 int level = ndr_push_get_switch_value(ndr, r);
14733 NDR_CHECK(ndr_push_union_align(ndr, 8));
14736 NDR_CHECK(ndr_push_align(ndr, 5));
14737 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14738 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14742 NDR_CHECK(ndr_push_align(ndr, 5));
14743 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14744 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14748 NDR_CHECK(ndr_push_align(ndr, 5));
14749 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14750 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14754 NDR_CHECK(ndr_push_align(ndr, 5));
14755 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14756 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14760 NDR_CHECK(ndr_push_align(ndr, 5));
14761 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14762 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14766 NDR_CHECK(ndr_push_align(ndr, 8));
14767 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14768 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14772 NDR_CHECK(ndr_push_align(ndr, 5));
14773 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14774 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
14778 NDR_CHECK(ndr_push_align(ndr, 8));
14779 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14780 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14784 NDR_CHECK(ndr_push_align(ndr, 8));
14785 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14786 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14794 if (ndr_flags & NDR_BUFFERS) {
14795 int level = ndr_push_get_switch_value(ndr, r);
14796 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14799 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14803 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14807 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14811 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14815 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14819 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14823 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
14827 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14831 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14839 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14840 return NDR_ERR_SUCCESS;
14843 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
14845 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14847 level = ndr_pull_get_switch_value(ndr, r);
14848 if (ndr_flags & NDR_SCALARS) {
14849 NDR_CHECK(ndr_pull_union_align(ndr, 8));
14852 NDR_CHECK(ndr_pull_align(ndr, 5));
14853 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14854 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
14858 NDR_CHECK(ndr_pull_align(ndr, 5));
14859 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14860 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
14864 NDR_CHECK(ndr_pull_align(ndr, 5));
14865 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14866 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
14870 NDR_CHECK(ndr_pull_align(ndr, 5));
14871 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14872 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
14876 NDR_CHECK(ndr_pull_align(ndr, 5));
14877 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14878 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
14882 NDR_CHECK(ndr_pull_align(ndr, 8));
14883 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14884 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
14888 NDR_CHECK(ndr_pull_align(ndr, 5));
14889 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14890 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
14894 NDR_CHECK(ndr_pull_align(ndr, 8));
14895 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14896 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
14900 NDR_CHECK(ndr_pull_align(ndr, 8));
14901 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14902 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
14910 if (ndr_flags & NDR_BUFFERS) {
14911 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14914 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
14918 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
14922 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
14926 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
14930 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
14934 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
14938 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
14942 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
14946 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
14954 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14955 return NDR_ERR_SUCCESS;
14958 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
14961 level = ndr_print_get_switch_value(ndr, r);
14962 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
14965 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
14969 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
14973 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
14977 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
14981 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
14985 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
14989 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
14993 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
14997 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
15006 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15008 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
15011 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
15013 if (ndr_flags & NDR_SCALARS) {
15014 NDR_CHECK(ndr_push_align(ndr, 4));
15016 uint32_t _flags_save_string = ndr->flags;
15017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15018 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15019 ndr->flags = _flags_save_string;
15021 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15023 if (ndr_flags & NDR_BUFFERS) {
15025 return NDR_ERR_SUCCESS;
15028 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
15030 if (ndr_flags & NDR_SCALARS) {
15031 NDR_CHECK(ndr_pull_align(ndr, 4));
15033 uint32_t _flags_save_string = ndr->flags;
15034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15035 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15036 ndr->flags = _flags_save_string;
15038 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15040 if (ndr_flags & NDR_BUFFERS) {
15042 return NDR_ERR_SUCCESS;
15045 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
15047 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
15049 ndr_print_string(ndr, "directory_name", r->directory_name);
15053 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15055 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
15058 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
15060 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15061 if (ndr_flags & NDR_SCALARS) {
15062 int level = ndr_push_get_switch_value(ndr, r);
15063 NDR_CHECK(ndr_push_union_align(ndr, 4));
15066 NDR_CHECK(ndr_push_align(ndr, 4));
15067 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15068 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15072 NDR_CHECK(ndr_push_align(ndr, 4));
15073 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15074 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15079 if (ndr_flags & NDR_BUFFERS) {
15080 int level = ndr_push_get_switch_value(ndr, r);
15081 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15091 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15092 return NDR_ERR_SUCCESS;
15095 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
15097 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15099 level = ndr_pull_get_switch_value(ndr, r);
15100 if (ndr_flags & NDR_SCALARS) {
15101 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15104 NDR_CHECK(ndr_pull_align(ndr, 4));
15105 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15106 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15110 NDR_CHECK(ndr_pull_align(ndr, 4));
15111 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15112 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15117 if (ndr_flags & NDR_BUFFERS) {
15118 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15128 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15129 return NDR_ERR_SUCCESS;
15132 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
15135 level = ndr_print_get_switch_value(ndr, r);
15136 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
15139 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15143 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
15149 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15151 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
15154 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
15156 if (ndr_flags & NDR_SCALARS) {
15157 NDR_CHECK(ndr_push_align(ndr, 5));
15159 uint32_t _flags_save_string = ndr->flags;
15160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15161 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
15162 ndr->flags = _flags_save_string;
15164 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15166 if (ndr_flags & NDR_BUFFERS) {
15168 uint32_t _flags_save_string = ndr->flags;
15169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15170 if (r->print_processor_name) {
15171 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
15172 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
15173 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
15175 ndr->flags = _flags_save_string;
15178 return NDR_ERR_SUCCESS;
15181 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
15183 uint32_t _ptr_print_processor_name;
15184 TALLOC_CTX *_mem_save_print_processor_name_0;
15185 if (ndr_flags & NDR_SCALARS) {
15186 NDR_CHECK(ndr_pull_align(ndr, 5));
15188 uint32_t _flags_save_string = ndr->flags;
15189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
15191 if (_ptr_print_processor_name) {
15192 NDR_PULL_ALLOC(ndr, r->print_processor_name);
15193 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
15195 r->print_processor_name = NULL;
15197 ndr->flags = _flags_save_string;
15199 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15201 if (ndr_flags & NDR_BUFFERS) {
15203 uint32_t _flags_save_string = ndr->flags;
15204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15205 if (r->print_processor_name) {
15206 uint32_t _relative_save_offset;
15207 _relative_save_offset = ndr->offset;
15208 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
15209 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15210 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
15211 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
15212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
15213 if (ndr->offset > ndr->relative_highest_offset) {
15214 ndr->relative_highest_offset = ndr->offset;
15216 ndr->offset = _relative_save_offset;
15218 ndr->flags = _flags_save_string;
15221 return NDR_ERR_SUCCESS;
15224 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
15226 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
15228 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
15230 if (r->print_processor_name) {
15231 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
15237 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15239 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
15242 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
15244 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15245 if (ndr_flags & NDR_SCALARS) {
15246 int level = ndr_push_get_switch_value(ndr, r);
15247 NDR_CHECK(ndr_push_union_align(ndr, 5));
15250 NDR_CHECK(ndr_push_align(ndr, 5));
15251 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15252 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15260 if (ndr_flags & NDR_BUFFERS) {
15261 int level = ndr_push_get_switch_value(ndr, r);
15262 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15265 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15273 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15274 return NDR_ERR_SUCCESS;
15277 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
15279 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15281 level = ndr_pull_get_switch_value(ndr, r);
15282 if (ndr_flags & NDR_SCALARS) {
15283 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15286 NDR_CHECK(ndr_pull_align(ndr, 5));
15287 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15288 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
15296 if (ndr_flags & NDR_BUFFERS) {
15297 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15300 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
15308 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15309 return NDR_ERR_SUCCESS;
15312 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
15315 level = ndr_print_get_switch_value(ndr, r);
15316 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
15319 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
15328 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15330 if (ndr_flags & NDR_SCALARS) {
15331 NDR_CHECK(ndr_push_align(ndr, 4));
15333 uint32_t _flags_save_string = ndr->flags;
15334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15335 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
15336 ndr->flags = _flags_save_string;
15338 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15340 if (ndr_flags & NDR_BUFFERS) {
15342 return NDR_ERR_SUCCESS;
15345 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
15347 if (ndr_flags & NDR_SCALARS) {
15348 NDR_CHECK(ndr_pull_align(ndr, 4));
15350 uint32_t _flags_save_string = ndr->flags;
15351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15352 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
15353 ndr->flags = _flags_save_string;
15355 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15357 if (ndr_flags & NDR_BUFFERS) {
15359 return NDR_ERR_SUCCESS;
15362 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
15364 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
15366 ndr_print_string(ndr, "directory_name", r->directory_name);
15370 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15372 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
15375 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
15377 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15378 if (ndr_flags & NDR_SCALARS) {
15379 int level = ndr_push_get_switch_value(ndr, r);
15380 NDR_CHECK(ndr_push_union_align(ndr, 4));
15383 NDR_CHECK(ndr_push_align(ndr, 4));
15384 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15385 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15389 NDR_CHECK(ndr_push_align(ndr, 4));
15390 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15391 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15396 if (ndr_flags & NDR_BUFFERS) {
15397 int level = ndr_push_get_switch_value(ndr, r);
15398 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15408 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15409 return NDR_ERR_SUCCESS;
15412 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
15414 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15416 level = ndr_pull_get_switch_value(ndr, r);
15417 if (ndr_flags & NDR_SCALARS) {
15418 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15421 NDR_CHECK(ndr_pull_align(ndr, 4));
15422 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15423 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15427 NDR_CHECK(ndr_pull_align(ndr, 4));
15428 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15429 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
15434 if (ndr_flags & NDR_BUFFERS) {
15435 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15445 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15446 return NDR_ERR_SUCCESS;
15449 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
15452 level = ndr_print_get_switch_value(ndr, r);
15453 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
15456 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15460 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
15466 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15468 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
15471 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
15473 if (ndr_flags & NDR_SCALARS) {
15474 NDR_CHECK(ndr_push_align(ndr, 5));
15475 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
15476 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
15477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
15478 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15480 if (ndr_flags & NDR_BUFFERS) {
15481 if (r->document_name) {
15482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
15485 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15487 if (r->output_file) {
15488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15490 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
15491 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
15496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
15497 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15500 return NDR_ERR_SUCCESS;
15503 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
15505 uint32_t _ptr_document_name;
15506 TALLOC_CTX *_mem_save_document_name_0;
15507 uint32_t _ptr_output_file;
15508 TALLOC_CTX *_mem_save_output_file_0;
15509 uint32_t _ptr_datatype;
15510 TALLOC_CTX *_mem_save_datatype_0;
15511 if (ndr_flags & NDR_SCALARS) {
15512 NDR_CHECK(ndr_pull_align(ndr, 5));
15513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
15514 if (_ptr_document_name) {
15515 NDR_PULL_ALLOC(ndr, r->document_name);
15517 r->document_name = NULL;
15519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
15520 if (_ptr_output_file) {
15521 NDR_PULL_ALLOC(ndr, r->output_file);
15523 r->output_file = NULL;
15525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15526 if (_ptr_datatype) {
15527 NDR_PULL_ALLOC(ndr, r->datatype);
15529 r->datatype = NULL;
15531 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15533 if (ndr_flags & NDR_BUFFERS) {
15534 if (r->document_name) {
15535 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15536 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
15537 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
15538 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
15539 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
15540 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));
15542 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
15543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
15544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
15546 if (r->output_file) {
15547 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15548 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
15549 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
15550 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
15551 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
15552 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));
15554 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
15555 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
15556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
15559 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15560 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
15561 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
15562 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
15563 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
15564 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));
15566 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
15567 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
15568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15571 return NDR_ERR_SUCCESS;
15574 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
15576 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
15578 ndr_print_ptr(ndr, "document_name", r->document_name);
15580 if (r->document_name) {
15581 ndr_print_string(ndr, "document_name", r->document_name);
15584 ndr_print_ptr(ndr, "output_file", r->output_file);
15586 if (r->output_file) {
15587 ndr_print_string(ndr, "output_file", r->output_file);
15590 ndr_print_ptr(ndr, "datatype", r->datatype);
15593 ndr_print_string(ndr, "datatype", r->datatype);
15599 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
15601 if (ndr_flags & NDR_SCALARS) {
15602 int level = ndr_push_get_switch_value(ndr, r);
15603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15604 NDR_CHECK(ndr_push_union_align(ndr, 5));
15607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15621 if (ndr_flags & NDR_BUFFERS) {
15622 int level = ndr_push_get_switch_value(ndr, r);
15626 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15641 return NDR_ERR_SUCCESS;
15644 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
15648 TALLOC_CTX *_mem_save_info1_0;
15649 level = ndr_pull_get_switch_value(ndr, r);
15650 if (ndr_flags & NDR_SCALARS) {
15651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15652 if (_level != level) {
15653 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
15655 NDR_CHECK(ndr_pull_union_align(ndr, 5));
15658 uint32_t _ptr_info1;
15659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15661 NDR_PULL_ALLOC(ndr, r->info1);
15678 if (ndr_flags & NDR_BUFFERS) {
15682 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15683 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15684 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15700 return NDR_ERR_SUCCESS;
15703 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
15706 level = ndr_print_get_switch_value(ndr, r);
15707 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
15710 ndr_print_ptr(ndr, "info1", r->info1);
15713 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
15730 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
15732 if (ndr_flags & NDR_SCALARS) {
15733 NDR_CHECK(ndr_push_align(ndr, 4));
15734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
15735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15740 uint32_t _flags_save_string = ndr->flags;
15741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15743 struct ndr_push *_ndr_extra_string;
15744 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15745 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15746 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15748 ndr->flags = _flags_save_string;
15750 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15752 if (ndr_flags & NDR_BUFFERS) {
15754 return NDR_ERR_SUCCESS;
15757 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
15759 if (ndr_flags & NDR_SCALARS) {
15760 NDR_CHECK(ndr_pull_align(ndr, 4));
15761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15767 uint32_t _flags_save_string = ndr->flags;
15768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15770 struct ndr_pull *_ndr_extra_string;
15771 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15772 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15773 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15775 ndr->flags = _flags_save_string;
15777 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15779 if (ndr_flags & NDR_BUFFERS) {
15781 return NDR_ERR_SUCCESS;
15784 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
15786 ndr_print_struct(ndr, name, "spoolss_OSVersion");
15788 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);
15789 ndr_print_uint32(ndr, "major", r->major);
15790 ndr_print_uint32(ndr, "minor", r->minor);
15791 ndr_print_uint32(ndr, "build", r->build);
15792 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15793 ndr_print_string(ndr, "extra_string", r->extra_string);
15797 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
15799 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
15802 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
15804 if (ndr_flags & NDR_SCALARS) {
15805 NDR_CHECK(ndr_push_align(ndr, 4));
15806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
15807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
15808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
15809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
15810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
15812 uint32_t _flags_save_string = ndr->flags;
15813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15815 struct ndr_push *_ndr_extra_string;
15816 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15817 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
15818 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15820 ndr->flags = _flags_save_string;
15822 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
15823 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
15824 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
15825 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
15826 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
15827 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
15829 if (ndr_flags & NDR_BUFFERS) {
15831 return NDR_ERR_SUCCESS;
15834 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
15836 if (ndr_flags & NDR_SCALARS) {
15837 NDR_CHECK(ndr_pull_align(ndr, 4));
15838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
15839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
15840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
15841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
15842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
15844 uint32_t _flags_save_string = ndr->flags;
15845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15847 struct ndr_pull *_ndr_extra_string;
15848 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
15849 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
15850 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
15852 ndr->flags = _flags_save_string;
15854 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
15855 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
15856 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
15857 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
15858 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
15859 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
15861 if (ndr_flags & NDR_BUFFERS) {
15863 return NDR_ERR_SUCCESS;
15866 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
15868 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
15870 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);
15871 ndr_print_uint32(ndr, "major", r->major);
15872 ndr_print_uint32(ndr, "minor", r->minor);
15873 ndr_print_uint32(ndr, "build", r->build);
15874 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
15875 ndr_print_string(ndr, "extra_string", r->extra_string);
15876 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
15877 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
15878 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
15879 ndr_print_uint8(ndr, "product_type", r->product_type);
15880 ndr_print_uint8(ndr, "reserved", r->reserved);
15884 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
15886 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
15889 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
15891 if (ndr_flags & NDR_SCALARS) {
15892 int level = ndr_push_get_switch_value(ndr, r);
15893 NDR_CHECK(ndr_push_union_align(ndr, 4));
15900 uint32_t _flags_save_string = ndr->flags;
15901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15902 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
15903 ndr->flags = _flags_save_string;
15909 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15911 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
15912 ndr->flags = _flags_save_DATA_BLOB;
15917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
15920 case REG_MULTI_SZ: {
15922 uint32_t _flags_save_string_array = ndr->flags;
15923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15924 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
15925 ndr->flags = _flags_save_string_array;
15931 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15933 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
15934 ndr->flags = _flags_save_DATA_BLOB;
15940 if (ndr_flags & NDR_BUFFERS) {
15941 int level = ndr_push_get_switch_value(ndr, r);
15963 return NDR_ERR_SUCCESS;
15966 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
15969 level = ndr_pull_get_switch_value(ndr, r);
15970 if (ndr_flags & NDR_SCALARS) {
15971 NDR_CHECK(ndr_pull_union_align(ndr, 4));
15978 uint32_t _flags_save_string = ndr->flags;
15979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15980 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
15981 ndr->flags = _flags_save_string;
15987 uint32_t _flags_save_DATA_BLOB = ndr->flags;
15988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
15989 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
15990 ndr->flags = _flags_save_DATA_BLOB;
15995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
15998 case REG_MULTI_SZ: {
16000 uint32_t _flags_save_string_array = ndr->flags;
16001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16002 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
16003 ndr->flags = _flags_save_string_array;
16009 uint32_t _flags_save_DATA_BLOB = ndr->flags;
16010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
16011 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
16012 ndr->flags = _flags_save_DATA_BLOB;
16018 if (ndr_flags & NDR_BUFFERS) {
16040 return NDR_ERR_SUCCESS;
16043 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
16046 level = ndr_print_get_switch_value(ndr, r);
16047 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
16053 ndr_print_string(ndr, "string", r->string);
16057 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
16061 ndr_print_uint32(ndr, "value", r->value);
16065 ndr_print_string_array(ndr, "string_array", r->string_array);
16069 ndr_print_DATA_BLOB(ndr, "data", r->data);
16075 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
16077 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
16078 return NDR_ERR_SUCCESS;
16081 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
16084 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
16086 return NDR_ERR_SUCCESS;
16089 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
16091 const char *val = NULL;
16094 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
16095 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
16096 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
16098 ndr_print_enum(ndr, name, "ENUM", val, r);
16101 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
16103 if (ndr_flags & NDR_SCALARS) {
16104 NDR_CHECK(ndr_push_align(ndr, 4));
16105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
16106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
16107 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16109 if (ndr_flags & NDR_BUFFERS) {
16111 return NDR_ERR_SUCCESS;
16114 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
16116 if (ndr_flags & NDR_SCALARS) {
16117 NDR_CHECK(ndr_pull_align(ndr, 4));
16118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
16119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
16120 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16122 if (ndr_flags & NDR_BUFFERS) {
16124 return NDR_ERR_SUCCESS;
16127 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
16129 ndr_print_struct(ndr, name, "spoolss_FormSize");
16131 ndr_print_uint32(ndr, "width", r->width);
16132 ndr_print_uint32(ndr, "height", r->height);
16136 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
16138 if (ndr_flags & NDR_SCALARS) {
16139 NDR_CHECK(ndr_push_align(ndr, 4));
16140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
16141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
16142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
16143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
16144 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16146 if (ndr_flags & NDR_BUFFERS) {
16148 return NDR_ERR_SUCCESS;
16151 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
16153 if (ndr_flags & NDR_SCALARS) {
16154 NDR_CHECK(ndr_pull_align(ndr, 4));
16155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
16156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
16157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
16158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
16159 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16161 if (ndr_flags & NDR_BUFFERS) {
16163 return NDR_ERR_SUCCESS;
16166 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
16168 ndr_print_struct(ndr, name, "spoolss_FormArea");
16170 ndr_print_uint32(ndr, "left", r->left);
16171 ndr_print_uint32(ndr, "top", r->top);
16172 ndr_print_uint32(ndr, "right", r->right);
16173 ndr_print_uint32(ndr, "bottom", r->bottom);
16177 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
16179 if (ndr_flags & NDR_SCALARS) {
16180 NDR_CHECK(ndr_push_align(ndr, 5));
16181 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16183 uint32_t _flags_save_string = ndr->flags;
16184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16185 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16186 ndr->flags = _flags_save_string;
16188 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16189 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16190 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16192 if (ndr_flags & NDR_BUFFERS) {
16194 uint32_t _flags_save_string = ndr->flags;
16195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16196 if (r->form_name) {
16197 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16198 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16199 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16201 ndr->flags = _flags_save_string;
16204 return NDR_ERR_SUCCESS;
16207 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
16209 uint32_t _ptr_form_name;
16210 TALLOC_CTX *_mem_save_form_name_0;
16211 if (ndr_flags & NDR_SCALARS) {
16212 NDR_CHECK(ndr_pull_align(ndr, 5));
16213 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16215 uint32_t _flags_save_string = ndr->flags;
16216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16218 if (_ptr_form_name) {
16219 NDR_PULL_ALLOC(ndr, r->form_name);
16220 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16222 r->form_name = NULL;
16224 ndr->flags = _flags_save_string;
16226 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16227 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16228 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16230 if (ndr_flags & NDR_BUFFERS) {
16232 uint32_t _flags_save_string = ndr->flags;
16233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16234 if (r->form_name) {
16235 uint32_t _relative_save_offset;
16236 _relative_save_offset = ndr->offset;
16237 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16238 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16239 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16240 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16242 if (ndr->offset > ndr->relative_highest_offset) {
16243 ndr->relative_highest_offset = ndr->offset;
16245 ndr->offset = _relative_save_offset;
16247 ndr->flags = _flags_save_string;
16250 return NDR_ERR_SUCCESS;
16253 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
16255 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
16257 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16258 ndr_print_ptr(ndr, "form_name", r->form_name);
16260 if (r->form_name) {
16261 ndr_print_string(ndr, "form_name", r->form_name);
16264 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16265 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16269 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16271 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
16274 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16277 return NDR_ERR_SUCCESS;
16280 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16283 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16285 return NDR_ERR_SUCCESS;
16288 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
16290 ndr_print_uint32(ndr, name, r);
16292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
16293 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
16294 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
16298 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
16300 if (ndr_flags & NDR_SCALARS) {
16301 NDR_CHECK(ndr_push_align(ndr, 5));
16302 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16304 uint32_t _flags_save_string = ndr->flags;
16305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
16307 ndr->flags = _flags_save_string;
16309 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16310 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16312 uint32_t _flags_save_string = ndr->flags;
16313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
16315 ndr->flags = _flags_save_string;
16317 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16319 uint32_t _flags_save_string = ndr->flags;
16320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16321 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
16322 ndr->flags = _flags_save_string;
16324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16326 uint32_t _flags_save_string = ndr->flags;
16327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
16329 ndr->flags = _flags_save_string;
16331 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
16332 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
16333 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16335 if (ndr_flags & NDR_BUFFERS) {
16337 uint32_t _flags_save_string = ndr->flags;
16338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16339 if (r->form_name) {
16340 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
16341 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
16342 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
16344 ndr->flags = _flags_save_string;
16347 uint32_t _flags_save_string = ndr->flags;
16348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16350 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
16351 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
16352 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
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 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
16361 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
16362 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
16364 ndr->flags = _flags_save_string;
16367 uint32_t _flags_save_string = ndr->flags;
16368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16369 if (r->display_name) {
16370 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
16371 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
16372 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
16374 ndr->flags = _flags_save_string;
16377 return NDR_ERR_SUCCESS;
16380 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
16382 uint32_t _ptr_form_name;
16383 TALLOC_CTX *_mem_save_form_name_0;
16384 uint32_t _ptr_keyword;
16385 TALLOC_CTX *_mem_save_keyword_0;
16386 uint32_t _ptr_mui_dll;
16387 TALLOC_CTX *_mem_save_mui_dll_0;
16388 uint32_t _ptr_display_name;
16389 TALLOC_CTX *_mem_save_display_name_0;
16390 if (ndr_flags & NDR_SCALARS) {
16391 NDR_CHECK(ndr_pull_align(ndr, 5));
16392 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16394 uint32_t _flags_save_string = ndr->flags;
16395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16397 if (_ptr_form_name) {
16398 NDR_PULL_ALLOC(ndr, r->form_name);
16399 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
16401 r->form_name = NULL;
16403 ndr->flags = _flags_save_string;
16405 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16406 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16408 uint32_t _flags_save_string = ndr->flags;
16409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16411 if (_ptr_keyword) {
16412 NDR_PULL_ALLOC(ndr, r->keyword);
16413 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
16417 ndr->flags = _flags_save_string;
16419 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16421 uint32_t _flags_save_string = ndr->flags;
16422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16424 if (_ptr_mui_dll) {
16425 NDR_PULL_ALLOC(ndr, r->mui_dll);
16426 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
16430 ndr->flags = _flags_save_string;
16432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16434 uint32_t _flags_save_string = ndr->flags;
16435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16437 if (_ptr_display_name) {
16438 NDR_PULL_ALLOC(ndr, r->display_name);
16439 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
16441 r->display_name = NULL;
16443 ndr->flags = _flags_save_string;
16445 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
16446 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
16447 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16449 if (ndr_flags & NDR_BUFFERS) {
16451 uint32_t _flags_save_string = ndr->flags;
16452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16453 if (r->form_name) {
16454 uint32_t _relative_save_offset;
16455 _relative_save_offset = ndr->offset;
16456 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
16457 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16458 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16459 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
16460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16461 if (ndr->offset > ndr->relative_highest_offset) {
16462 ndr->relative_highest_offset = ndr->offset;
16464 ndr->offset = _relative_save_offset;
16466 ndr->flags = _flags_save_string;
16469 uint32_t _flags_save_string = ndr->flags;
16470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
16472 uint32_t _relative_save_offset;
16473 _relative_save_offset = ndr->offset;
16474 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
16475 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16476 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16477 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
16478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16479 if (ndr->offset > ndr->relative_highest_offset) {
16480 ndr->relative_highest_offset = ndr->offset;
16482 ndr->offset = _relative_save_offset;
16484 ndr->flags = _flags_save_string;
16487 uint32_t _flags_save_string = ndr->flags;
16488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16490 uint32_t _relative_save_offset;
16491 _relative_save_offset = ndr->offset;
16492 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
16493 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16494 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16495 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
16496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16497 if (ndr->offset > ndr->relative_highest_offset) {
16498 ndr->relative_highest_offset = ndr->offset;
16500 ndr->offset = _relative_save_offset;
16502 ndr->flags = _flags_save_string;
16505 uint32_t _flags_save_string = ndr->flags;
16506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16507 if (r->display_name) {
16508 uint32_t _relative_save_offset;
16509 _relative_save_offset = ndr->offset;
16510 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
16511 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16512 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16513 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
16514 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16515 if (ndr->offset > ndr->relative_highest_offset) {
16516 ndr->relative_highest_offset = ndr->offset;
16518 ndr->offset = _relative_save_offset;
16520 ndr->flags = _flags_save_string;
16523 return NDR_ERR_SUCCESS;
16526 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
16528 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
16530 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16531 ndr_print_ptr(ndr, "form_name", r->form_name);
16533 if (r->form_name) {
16534 ndr_print_string(ndr, "form_name", r->form_name);
16537 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16538 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16539 ndr_print_ptr(ndr, "keyword", r->keyword);
16542 ndr_print_string(ndr, "keyword", r->keyword);
16545 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16546 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16549 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16552 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16553 ndr_print_ptr(ndr, "display_name", r->display_name);
16555 if (r->display_name) {
16556 ndr_print_string(ndr, "display_name", r->display_name);
16559 ndr_print_uint16(ndr, "lang_id", r->lang_id);
16560 ndr_print_uint16(ndr, "unused", r->unused);
16564 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16566 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
16569 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
16571 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16572 if (ndr_flags & NDR_SCALARS) {
16573 int level = ndr_push_get_switch_value(ndr, r);
16574 NDR_CHECK(ndr_push_union_align(ndr, 5));
16577 NDR_CHECK(ndr_push_align(ndr, 5));
16578 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16579 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16583 NDR_CHECK(ndr_push_align(ndr, 5));
16584 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16585 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16593 if (ndr_flags & NDR_BUFFERS) {
16594 int level = ndr_push_get_switch_value(ndr, r);
16595 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16598 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16602 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16610 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16611 return NDR_ERR_SUCCESS;
16614 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
16616 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16618 level = ndr_pull_get_switch_value(ndr, r);
16619 if (ndr_flags & NDR_SCALARS) {
16620 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16623 NDR_CHECK(ndr_pull_align(ndr, 5));
16624 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16625 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
16629 NDR_CHECK(ndr_pull_align(ndr, 5));
16630 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16631 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
16639 if (ndr_flags & NDR_BUFFERS) {
16640 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16643 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
16647 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
16655 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16656 return NDR_ERR_SUCCESS;
16659 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
16662 level = ndr_print_get_switch_value(ndr, r);
16663 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
16666 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
16670 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
16679 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
16681 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
16684 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
16686 if (ndr_flags & NDR_SCALARS) {
16687 NDR_CHECK(ndr_push_align(ndr, 5));
16688 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16690 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16691 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16692 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16694 if (ndr_flags & NDR_BUFFERS) {
16695 if (r->form_name) {
16696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16699 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16702 return NDR_ERR_SUCCESS;
16705 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
16707 uint32_t _ptr_form_name;
16708 TALLOC_CTX *_mem_save_form_name_0;
16709 if (ndr_flags & NDR_SCALARS) {
16710 NDR_CHECK(ndr_pull_align(ndr, 5));
16711 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16713 if (_ptr_form_name) {
16714 NDR_PULL_ALLOC(ndr, r->form_name);
16716 r->form_name = NULL;
16718 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16719 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16720 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16722 if (ndr_flags & NDR_BUFFERS) {
16723 if (r->form_name) {
16724 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16725 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16726 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16727 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16728 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16729 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));
16731 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16732 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16736 return NDR_ERR_SUCCESS;
16739 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
16741 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
16743 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16744 ndr_print_ptr(ndr, "form_name", r->form_name);
16746 if (r->form_name) {
16747 ndr_print_string(ndr, "form_name", r->form_name);
16750 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16751 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16755 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
16757 if (ndr_flags & NDR_SCALARS) {
16758 NDR_CHECK(ndr_push_align(ndr, 5));
16759 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
16760 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
16761 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16762 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16763 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
16764 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
16765 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
16766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
16767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
16768 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
16769 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16771 if (ndr_flags & NDR_BUFFERS) {
16772 if (r->form_name) {
16773 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16774 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16775 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
16776 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
16782 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
16785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
16788 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16790 if (r->display_name) {
16791 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16792 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16793 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
16794 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16797 return NDR_ERR_SUCCESS;
16800 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
16802 uint32_t _ptr_form_name;
16803 TALLOC_CTX *_mem_save_form_name_0;
16804 uint32_t _ptr_keyword;
16805 TALLOC_CTX *_mem_save_keyword_0;
16806 uint32_t _ptr_mui_dll;
16807 TALLOC_CTX *_mem_save_mui_dll_0;
16808 uint32_t _ptr_display_name;
16809 TALLOC_CTX *_mem_save_display_name_0;
16810 if (ndr_flags & NDR_SCALARS) {
16811 NDR_CHECK(ndr_pull_align(ndr, 5));
16812 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
16813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
16814 if (_ptr_form_name) {
16815 NDR_PULL_ALLOC(ndr, r->form_name);
16817 r->form_name = NULL;
16819 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
16820 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
16821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
16822 if (_ptr_keyword) {
16823 NDR_PULL_ALLOC(ndr, r->keyword);
16827 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
16828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
16829 if (_ptr_mui_dll) {
16830 NDR_PULL_ALLOC(ndr, r->mui_dll);
16834 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
16835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
16836 if (_ptr_display_name) {
16837 NDR_PULL_ALLOC(ndr, r->display_name);
16839 r->display_name = NULL;
16841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
16842 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16844 if (ndr_flags & NDR_BUFFERS) {
16845 if (r->form_name) {
16846 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16847 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
16848 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
16849 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
16850 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
16851 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));
16853 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
16854 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
16855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
16858 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
16859 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
16860 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
16861 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
16862 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
16863 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));
16865 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
16866 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
16867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
16870 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
16871 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
16872 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
16873 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
16874 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
16875 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));
16877 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
16878 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
16879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
16881 if (r->display_name) {
16882 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16883 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
16884 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
16885 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
16886 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
16887 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));
16889 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
16890 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
16891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
16894 return NDR_ERR_SUCCESS;
16897 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
16899 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
16901 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
16902 ndr_print_ptr(ndr, "form_name", r->form_name);
16904 if (r->form_name) {
16905 ndr_print_string(ndr, "form_name", r->form_name);
16908 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
16909 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
16910 ndr_print_ptr(ndr, "keyword", r->keyword);
16913 ndr_print_string(ndr, "keyword", r->keyword);
16916 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
16917 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
16920 ndr_print_string(ndr, "mui_dll", r->mui_dll);
16923 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
16924 ndr_print_ptr(ndr, "display_name", r->display_name);
16926 if (r->display_name) {
16927 ndr_print_string(ndr, "display_name", r->display_name);
16930 ndr_print_uint32(ndr, "lang_id", r->lang_id);
16934 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
16936 if (ndr_flags & NDR_SCALARS) {
16937 int level = ndr_push_get_switch_value(ndr, r);
16938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16939 NDR_CHECK(ndr_push_union_align(ndr, 5));
16942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16946 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
16950 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16953 if (ndr_flags & NDR_BUFFERS) {
16954 int level = ndr_push_get_switch_value(ndr, r);
16958 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16964 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
16969 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
16972 return NDR_ERR_SUCCESS;
16975 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
16979 TALLOC_CTX *_mem_save_info1_0;
16980 TALLOC_CTX *_mem_save_info2_0;
16981 level = ndr_pull_get_switch_value(ndr, r);
16982 if (ndr_flags & NDR_SCALARS) {
16983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16984 if (_level != level) {
16985 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16987 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16990 uint32_t _ptr_info1;
16991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16993 NDR_PULL_ALLOC(ndr, r->info1);
17000 uint32_t _ptr_info2;
17001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
17003 NDR_PULL_ALLOC(ndr, r->info2);
17010 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17013 if (ndr_flags & NDR_BUFFERS) {
17017 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
17018 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
17019 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
17020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
17026 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
17027 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
17028 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
17029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
17034 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
17037 return NDR_ERR_SUCCESS;
17040 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
17043 level = ndr_print_get_switch_value(ndr, r);
17044 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
17047 ndr_print_ptr(ndr, "info1", r->info1);
17050 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
17056 ndr_print_ptr(ndr, "info2", r->info2);
17059 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
17065 ndr_print_bad_level(ndr, name, level);
17069 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
17071 if (ndr_flags & NDR_SCALARS) {
17072 NDR_CHECK(ndr_push_align(ndr, 5));
17074 uint32_t _flags_save_string = ndr->flags;
17075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17076 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17077 ndr->flags = _flags_save_string;
17079 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17081 if (ndr_flags & NDR_BUFFERS) {
17083 uint32_t _flags_save_string = ndr->flags;
17084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17085 if (r->port_name) {
17086 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17087 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17088 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17090 ndr->flags = _flags_save_string;
17093 return NDR_ERR_SUCCESS;
17096 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
17098 uint32_t _ptr_port_name;
17099 TALLOC_CTX *_mem_save_port_name_0;
17100 if (ndr_flags & NDR_SCALARS) {
17101 NDR_CHECK(ndr_pull_align(ndr, 5));
17103 uint32_t _flags_save_string = ndr->flags;
17104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17106 if (_ptr_port_name) {
17107 NDR_PULL_ALLOC(ndr, r->port_name);
17108 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17110 r->port_name = NULL;
17112 ndr->flags = _flags_save_string;
17114 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17116 if (ndr_flags & NDR_BUFFERS) {
17118 uint32_t _flags_save_string = ndr->flags;
17119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17120 if (r->port_name) {
17121 uint32_t _relative_save_offset;
17122 _relative_save_offset = ndr->offset;
17123 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17124 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17125 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17126 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17128 if (ndr->offset > ndr->relative_highest_offset) {
17129 ndr->relative_highest_offset = ndr->offset;
17131 ndr->offset = _relative_save_offset;
17133 ndr->flags = _flags_save_string;
17136 return NDR_ERR_SUCCESS;
17139 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
17141 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
17143 ndr_print_ptr(ndr, "port_name", r->port_name);
17145 if (r->port_name) {
17146 ndr_print_string(ndr, "port_name", r->port_name);
17152 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17154 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
17157 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17160 return NDR_ERR_SUCCESS;
17163 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17168 return NDR_ERR_SUCCESS;
17171 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
17173 ndr_print_uint32(ndr, name, r);
17175 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
17176 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
17177 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
17178 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
17182 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
17184 if (ndr_flags & NDR_SCALARS) {
17185 NDR_CHECK(ndr_push_align(ndr, 5));
17187 uint32_t _flags_save_string = ndr->flags;
17188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17189 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17190 ndr->flags = _flags_save_string;
17193 uint32_t _flags_save_string = ndr->flags;
17194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17195 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17196 ndr->flags = _flags_save_string;
17199 uint32_t _flags_save_string = ndr->flags;
17200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17201 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
17202 ndr->flags = _flags_save_string;
17204 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
17205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
17206 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17208 if (ndr_flags & NDR_BUFFERS) {
17210 uint32_t _flags_save_string = ndr->flags;
17211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17212 if (r->port_name) {
17213 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17214 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17215 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17217 ndr->flags = _flags_save_string;
17220 uint32_t _flags_save_string = ndr->flags;
17221 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17222 if (r->monitor_name) {
17223 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17224 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17225 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17227 ndr->flags = _flags_save_string;
17230 uint32_t _flags_save_string = ndr->flags;
17231 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17232 if (r->description) {
17233 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
17234 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
17235 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
17237 ndr->flags = _flags_save_string;
17240 return NDR_ERR_SUCCESS;
17243 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
17245 uint32_t _ptr_port_name;
17246 TALLOC_CTX *_mem_save_port_name_0;
17247 uint32_t _ptr_monitor_name;
17248 TALLOC_CTX *_mem_save_monitor_name_0;
17249 uint32_t _ptr_description;
17250 TALLOC_CTX *_mem_save_description_0;
17251 if (ndr_flags & NDR_SCALARS) {
17252 NDR_CHECK(ndr_pull_align(ndr, 5));
17254 uint32_t _flags_save_string = ndr->flags;
17255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17257 if (_ptr_port_name) {
17258 NDR_PULL_ALLOC(ndr, r->port_name);
17259 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17261 r->port_name = NULL;
17263 ndr->flags = _flags_save_string;
17266 uint32_t _flags_save_string = ndr->flags;
17267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17269 if (_ptr_monitor_name) {
17270 NDR_PULL_ALLOC(ndr, r->monitor_name);
17271 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17273 r->monitor_name = NULL;
17275 ndr->flags = _flags_save_string;
17278 uint32_t _flags_save_string = ndr->flags;
17279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
17281 if (_ptr_description) {
17282 NDR_PULL_ALLOC(ndr, r->description);
17283 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
17285 r->description = NULL;
17287 ndr->flags = _flags_save_string;
17289 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
17290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
17291 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17293 if (ndr_flags & NDR_BUFFERS) {
17295 uint32_t _flags_save_string = ndr->flags;
17296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17297 if (r->port_name) {
17298 uint32_t _relative_save_offset;
17299 _relative_save_offset = ndr->offset;
17300 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17301 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17302 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17303 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17305 if (ndr->offset > ndr->relative_highest_offset) {
17306 ndr->relative_highest_offset = ndr->offset;
17308 ndr->offset = _relative_save_offset;
17310 ndr->flags = _flags_save_string;
17313 uint32_t _flags_save_string = ndr->flags;
17314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17315 if (r->monitor_name) {
17316 uint32_t _relative_save_offset;
17317 _relative_save_offset = ndr->offset;
17318 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17319 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17320 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17321 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17323 if (ndr->offset > ndr->relative_highest_offset) {
17324 ndr->relative_highest_offset = ndr->offset;
17326 ndr->offset = _relative_save_offset;
17328 ndr->flags = _flags_save_string;
17331 uint32_t _flags_save_string = ndr->flags;
17332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17333 if (r->description) {
17334 uint32_t _relative_save_offset;
17335 _relative_save_offset = ndr->offset;
17336 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
17337 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
17338 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
17339 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
17340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
17341 if (ndr->offset > ndr->relative_highest_offset) {
17342 ndr->relative_highest_offset = ndr->offset;
17344 ndr->offset = _relative_save_offset;
17346 ndr->flags = _flags_save_string;
17349 return NDR_ERR_SUCCESS;
17352 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
17354 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
17356 ndr_print_ptr(ndr, "port_name", r->port_name);
17358 if (r->port_name) {
17359 ndr_print_string(ndr, "port_name", r->port_name);
17362 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17364 if (r->monitor_name) {
17365 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17368 ndr_print_ptr(ndr, "description", r->description);
17370 if (r->description) {
17371 ndr_print_string(ndr, "description", r->description);
17374 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
17375 ndr_print_uint32(ndr, "reserved", r->reserved);
17379 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
17381 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
17384 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
17386 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17387 return NDR_ERR_SUCCESS;
17390 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
17393 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17395 return NDR_ERR_SUCCESS;
17398 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
17400 const char *val = NULL;
17403 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
17404 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
17405 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
17406 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
17407 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
17408 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
17409 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
17410 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
17411 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
17412 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
17413 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
17414 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
17415 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
17417 ndr_print_enum(ndr, name, "ENUM", val, r);
17420 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
17422 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17423 return NDR_ERR_SUCCESS;
17426 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
17429 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17431 return NDR_ERR_SUCCESS;
17434 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
17436 const char *val = NULL;
17439 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
17440 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
17441 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
17443 ndr_print_enum(ndr, name, "ENUM", val, r);
17446 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
17448 if (ndr_flags & NDR_SCALARS) {
17449 NDR_CHECK(ndr_push_align(ndr, 5));
17450 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
17452 uint32_t _flags_save_string = ndr->flags;
17453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17454 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
17455 ndr->flags = _flags_save_string;
17457 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
17458 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17460 if (ndr_flags & NDR_BUFFERS) {
17462 uint32_t _flags_save_string = ndr->flags;
17463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17464 if (r->status_string) {
17465 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
17466 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
17467 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
17469 ndr->flags = _flags_save_string;
17472 return NDR_ERR_SUCCESS;
17475 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
17477 uint32_t _ptr_status_string;
17478 TALLOC_CTX *_mem_save_status_string_0;
17479 if (ndr_flags & NDR_SCALARS) {
17480 NDR_CHECK(ndr_pull_align(ndr, 5));
17481 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
17483 uint32_t _flags_save_string = ndr->flags;
17484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
17486 if (_ptr_status_string) {
17487 NDR_PULL_ALLOC(ndr, r->status_string);
17488 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
17490 r->status_string = NULL;
17492 ndr->flags = _flags_save_string;
17494 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
17495 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17497 if (ndr_flags & NDR_BUFFERS) {
17499 uint32_t _flags_save_string = ndr->flags;
17500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17501 if (r->status_string) {
17502 uint32_t _relative_save_offset;
17503 _relative_save_offset = ndr->offset;
17504 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
17505 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17506 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
17507 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
17508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
17509 if (ndr->offset > ndr->relative_highest_offset) {
17510 ndr->relative_highest_offset = ndr->offset;
17512 ndr->offset = _relative_save_offset;
17514 ndr->flags = _flags_save_string;
17517 return NDR_ERR_SUCCESS;
17520 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
17522 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
17524 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
17525 ndr_print_ptr(ndr, "status_string", r->status_string);
17527 if (r->status_string) {
17528 ndr_print_string(ndr, "status_string", r->status_string);
17531 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
17535 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
17537 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
17540 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
17542 if (ndr_flags & NDR_SCALARS) {
17543 NDR_CHECK(ndr_push_align(ndr, 5));
17545 uint32_t _flags_save_string = ndr->flags;
17546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17547 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
17548 ndr->flags = _flags_save_string;
17550 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
17551 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17553 if (ndr_flags & NDR_BUFFERS) {
17555 uint32_t _flags_save_string = ndr->flags;
17556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17557 if (r->port_name) {
17558 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
17559 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
17560 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
17562 ndr->flags = _flags_save_string;
17565 return NDR_ERR_SUCCESS;
17568 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
17570 uint32_t _ptr_port_name;
17571 TALLOC_CTX *_mem_save_port_name_0;
17572 if (ndr_flags & NDR_SCALARS) {
17573 NDR_CHECK(ndr_pull_align(ndr, 5));
17575 uint32_t _flags_save_string = ndr->flags;
17576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
17578 if (_ptr_port_name) {
17579 NDR_PULL_ALLOC(ndr, r->port_name);
17580 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
17582 r->port_name = NULL;
17584 ndr->flags = _flags_save_string;
17586 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
17587 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17589 if (ndr_flags & NDR_BUFFERS) {
17591 uint32_t _flags_save_string = ndr->flags;
17592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17593 if (r->port_name) {
17594 uint32_t _relative_save_offset;
17595 _relative_save_offset = ndr->offset;
17596 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
17597 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17598 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
17599 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
17600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
17601 if (ndr->offset > ndr->relative_highest_offset) {
17602 ndr->relative_highest_offset = ndr->offset;
17604 ndr->offset = _relative_save_offset;
17606 ndr->flags = _flags_save_string;
17609 return NDR_ERR_SUCCESS;
17612 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
17614 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
17616 ndr_print_ptr(ndr, "port_name", r->port_name);
17618 if (r->port_name) {
17619 ndr_print_string(ndr, "port_name", r->port_name);
17622 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
17626 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
17628 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
17631 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
17633 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17634 if (ndr_flags & NDR_SCALARS) {
17635 int level = ndr_push_get_switch_value(ndr, r);
17636 NDR_CHECK(ndr_push_union_align(ndr, 5));
17639 NDR_CHECK(ndr_push_align(ndr, 5));
17640 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17641 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17645 NDR_CHECK(ndr_push_align(ndr, 5));
17646 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17647 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17651 NDR_CHECK(ndr_push_align(ndr, 5));
17652 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17653 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17657 NDR_CHECK(ndr_push_align(ndr, 5));
17658 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17659 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17667 if (ndr_flags & NDR_BUFFERS) {
17668 int level = ndr_push_get_switch_value(ndr, r);
17669 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17672 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17676 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17680 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17684 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17692 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17693 return NDR_ERR_SUCCESS;
17696 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
17698 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17700 level = ndr_pull_get_switch_value(ndr, r);
17701 if (ndr_flags & NDR_SCALARS) {
17702 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17705 NDR_CHECK(ndr_pull_align(ndr, 5));
17706 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17707 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
17711 NDR_CHECK(ndr_pull_align(ndr, 5));
17712 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17713 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
17717 NDR_CHECK(ndr_pull_align(ndr, 5));
17718 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17719 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
17723 NDR_CHECK(ndr_pull_align(ndr, 5));
17724 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17725 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
17733 if (ndr_flags & NDR_BUFFERS) {
17734 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17737 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
17741 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
17745 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
17749 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
17757 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17758 return NDR_ERR_SUCCESS;
17761 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
17764 level = ndr_print_get_switch_value(ndr, r);
17765 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
17768 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
17772 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
17776 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
17780 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
17789 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
17791 if (ndr_flags & NDR_SCALARS) {
17792 NDR_CHECK(ndr_push_align(ndr, 5));
17794 uint32_t _flags_save_string = ndr->flags;
17795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17796 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17797 ndr->flags = _flags_save_string;
17799 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17801 if (ndr_flags & NDR_BUFFERS) {
17803 uint32_t _flags_save_string = ndr->flags;
17804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17805 if (r->monitor_name) {
17806 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17807 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17808 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17810 ndr->flags = _flags_save_string;
17813 return NDR_ERR_SUCCESS;
17816 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
17818 uint32_t _ptr_monitor_name;
17819 TALLOC_CTX *_mem_save_monitor_name_0;
17820 if (ndr_flags & NDR_SCALARS) {
17821 NDR_CHECK(ndr_pull_align(ndr, 5));
17823 uint32_t _flags_save_string = ndr->flags;
17824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17826 if (_ptr_monitor_name) {
17827 NDR_PULL_ALLOC(ndr, r->monitor_name);
17828 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17830 r->monitor_name = NULL;
17832 ndr->flags = _flags_save_string;
17834 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17836 if (ndr_flags & NDR_BUFFERS) {
17838 uint32_t _flags_save_string = ndr->flags;
17839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17840 if (r->monitor_name) {
17841 uint32_t _relative_save_offset;
17842 _relative_save_offset = ndr->offset;
17843 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17844 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17845 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17846 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17848 if (ndr->offset > ndr->relative_highest_offset) {
17849 ndr->relative_highest_offset = ndr->offset;
17851 ndr->offset = _relative_save_offset;
17853 ndr->flags = _flags_save_string;
17856 return NDR_ERR_SUCCESS;
17859 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
17861 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
17863 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
17865 if (r->monitor_name) {
17866 ndr_print_string(ndr, "monitor_name", r->monitor_name);
17872 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
17874 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
17877 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
17879 if (ndr_flags & NDR_SCALARS) {
17880 NDR_CHECK(ndr_push_align(ndr, 5));
17882 uint32_t _flags_save_string = ndr->flags;
17883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17884 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
17885 ndr->flags = _flags_save_string;
17888 uint32_t _flags_save_string = ndr->flags;
17889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17890 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
17891 ndr->flags = _flags_save_string;
17894 uint32_t _flags_save_string = ndr->flags;
17895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17896 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
17897 ndr->flags = _flags_save_string;
17899 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17901 if (ndr_flags & NDR_BUFFERS) {
17903 uint32_t _flags_save_string = ndr->flags;
17904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17905 if (r->monitor_name) {
17906 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
17907 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
17908 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
17910 ndr->flags = _flags_save_string;
17913 uint32_t _flags_save_string = ndr->flags;
17914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17915 if (r->environment) {
17916 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
17917 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
17918 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
17920 ndr->flags = _flags_save_string;
17923 uint32_t _flags_save_string = ndr->flags;
17924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17926 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
17927 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
17928 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
17930 ndr->flags = _flags_save_string;
17933 return NDR_ERR_SUCCESS;
17936 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
17938 uint32_t _ptr_monitor_name;
17939 TALLOC_CTX *_mem_save_monitor_name_0;
17940 uint32_t _ptr_environment;
17941 TALLOC_CTX *_mem_save_environment_0;
17942 uint32_t _ptr_dll_name;
17943 TALLOC_CTX *_mem_save_dll_name_0;
17944 if (ndr_flags & NDR_SCALARS) {
17945 NDR_CHECK(ndr_pull_align(ndr, 5));
17947 uint32_t _flags_save_string = ndr->flags;
17948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
17950 if (_ptr_monitor_name) {
17951 NDR_PULL_ALLOC(ndr, r->monitor_name);
17952 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
17954 r->monitor_name = NULL;
17956 ndr->flags = _flags_save_string;
17959 uint32_t _flags_save_string = ndr->flags;
17960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17962 if (_ptr_environment) {
17963 NDR_PULL_ALLOC(ndr, r->environment);
17964 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
17966 r->environment = NULL;
17968 ndr->flags = _flags_save_string;
17971 uint32_t _flags_save_string = ndr->flags;
17972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
17974 if (_ptr_dll_name) {
17975 NDR_PULL_ALLOC(ndr, r->dll_name);
17976 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
17978 r->dll_name = NULL;
17980 ndr->flags = _flags_save_string;
17982 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17984 if (ndr_flags & NDR_BUFFERS) {
17986 uint32_t _flags_save_string = ndr->flags;
17987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
17988 if (r->monitor_name) {
17989 uint32_t _relative_save_offset;
17990 _relative_save_offset = ndr->offset;
17991 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
17992 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17993 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
17994 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
17995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
17996 if (ndr->offset > ndr->relative_highest_offset) {
17997 ndr->relative_highest_offset = ndr->offset;
17999 ndr->offset = _relative_save_offset;
18001 ndr->flags = _flags_save_string;
18004 uint32_t _flags_save_string = ndr->flags;
18005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18006 if (r->environment) {
18007 uint32_t _relative_save_offset;
18008 _relative_save_offset = ndr->offset;
18009 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
18010 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
18011 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
18012 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
18013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
18014 if (ndr->offset > ndr->relative_highest_offset) {
18015 ndr->relative_highest_offset = ndr->offset;
18017 ndr->offset = _relative_save_offset;
18019 ndr->flags = _flags_save_string;
18022 uint32_t _flags_save_string = ndr->flags;
18023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18025 uint32_t _relative_save_offset;
18026 _relative_save_offset = ndr->offset;
18027 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
18028 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18029 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
18030 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
18032 if (ndr->offset > ndr->relative_highest_offset) {
18033 ndr->relative_highest_offset = ndr->offset;
18035 ndr->offset = _relative_save_offset;
18037 ndr->flags = _flags_save_string;
18040 return NDR_ERR_SUCCESS;
18043 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
18045 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
18047 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18049 if (r->monitor_name) {
18050 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18053 ndr_print_ptr(ndr, "environment", r->environment);
18055 if (r->environment) {
18056 ndr_print_string(ndr, "environment", r->environment);
18059 ndr_print_ptr(ndr, "dll_name", r->dll_name);
18062 ndr_print_string(ndr, "dll_name", r->dll_name);
18068 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
18070 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
18073 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
18075 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18076 if (ndr_flags & NDR_SCALARS) {
18077 int level = ndr_push_get_switch_value(ndr, r);
18078 NDR_CHECK(ndr_push_union_align(ndr, 5));
18081 NDR_CHECK(ndr_push_align(ndr, 5));
18082 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18083 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18087 NDR_CHECK(ndr_push_align(ndr, 5));
18088 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18089 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18097 if (ndr_flags & NDR_BUFFERS) {
18098 int level = ndr_push_get_switch_value(ndr, r);
18099 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18102 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18106 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18114 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18115 return NDR_ERR_SUCCESS;
18118 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
18120 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18122 level = ndr_pull_get_switch_value(ndr, r);
18123 if (ndr_flags & NDR_SCALARS) {
18124 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18127 NDR_CHECK(ndr_pull_align(ndr, 5));
18128 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18129 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
18133 NDR_CHECK(ndr_pull_align(ndr, 5));
18134 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18135 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
18143 if (ndr_flags & NDR_BUFFERS) {
18144 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18147 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
18151 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
18159 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18160 return NDR_ERR_SUCCESS;
18163 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
18166 level = ndr_print_get_switch_value(ndr, r);
18167 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
18170 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
18174 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
18183 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
18185 if (ndr_flags & NDR_SCALARS) {
18186 NDR_CHECK(ndr_push_align(ndr, 5));
18188 uint32_t _flags_save_string = ndr->flags;
18189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18190 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
18191 ndr->flags = _flags_save_string;
18193 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18195 if (ndr_flags & NDR_BUFFERS) {
18197 uint32_t _flags_save_string = ndr->flags;
18198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18199 if (r->name_array) {
18200 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
18201 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
18202 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
18204 ndr->flags = _flags_save_string;
18207 return NDR_ERR_SUCCESS;
18210 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
18212 uint32_t _ptr_name_array;
18213 TALLOC_CTX *_mem_save_name_array_0;
18214 if (ndr_flags & NDR_SCALARS) {
18215 NDR_CHECK(ndr_pull_align(ndr, 5));
18217 uint32_t _flags_save_string = ndr->flags;
18218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
18220 if (_ptr_name_array) {
18221 NDR_PULL_ALLOC(ndr, r->name_array);
18222 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
18224 r->name_array = NULL;
18226 ndr->flags = _flags_save_string;
18228 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18230 if (ndr_flags & NDR_BUFFERS) {
18232 uint32_t _flags_save_string = ndr->flags;
18233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18234 if (r->name_array) {
18235 uint32_t _relative_save_offset;
18236 _relative_save_offset = ndr->offset;
18237 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
18238 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
18239 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
18240 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
18241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
18242 if (ndr->offset > ndr->relative_highest_offset) {
18243 ndr->relative_highest_offset = ndr->offset;
18245 ndr->offset = _relative_save_offset;
18247 ndr->flags = _flags_save_string;
18250 return NDR_ERR_SUCCESS;
18253 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
18255 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
18257 ndr_print_ptr(ndr, "name_array", r->name_array);
18259 if (r->name_array) {
18260 ndr_print_string(ndr, "name_array", r->name_array);
18266 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
18268 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
18271 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
18273 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18274 if (ndr_flags & NDR_SCALARS) {
18275 int level = ndr_push_get_switch_value(ndr, r);
18276 NDR_CHECK(ndr_push_union_align(ndr, 5));
18279 NDR_CHECK(ndr_push_align(ndr, 5));
18280 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18281 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18289 if (ndr_flags & NDR_BUFFERS) {
18290 int level = ndr_push_get_switch_value(ndr, r);
18291 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18294 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18302 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18303 return NDR_ERR_SUCCESS;
18306 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
18308 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18310 level = ndr_pull_get_switch_value(ndr, r);
18311 if (ndr_flags & NDR_SCALARS) {
18312 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18315 NDR_CHECK(ndr_pull_align(ndr, 5));
18316 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18317 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
18325 if (ndr_flags & NDR_BUFFERS) {
18326 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
18329 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
18337 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
18338 return NDR_ERR_SUCCESS;
18341 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
18344 level = ndr_print_get_switch_value(ndr, r);
18345 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
18348 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
18357 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18360 return NDR_ERR_SUCCESS;
18363 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18368 return NDR_ERR_SUCCESS;
18371 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18373 ndr_print_uint32(ndr, name, r);
18375 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
18376 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
18377 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
18378 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
18379 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
18380 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
18381 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
18382 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
18383 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
18384 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
18385 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
18386 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
18387 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
18388 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
18389 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
18390 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
18391 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
18392 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
18393 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
18394 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
18395 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
18399 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
18401 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18402 return NDR_ERR_SUCCESS;
18405 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
18408 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18410 return NDR_ERR_SUCCESS;
18413 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
18415 const char *val = NULL;
18418 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
18419 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
18420 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
18421 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
18422 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
18423 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
18424 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18425 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
18426 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
18427 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
18428 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
18429 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
18430 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18431 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
18432 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
18433 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
18434 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
18435 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
18436 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
18437 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
18438 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
18439 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
18440 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
18441 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
18443 ndr_print_enum(ndr, name, "ENUM", val, r);
18446 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
18448 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18449 return NDR_ERR_SUCCESS;
18452 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
18455 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18457 return NDR_ERR_SUCCESS;
18460 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
18462 const char *val = NULL;
18465 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
18466 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
18467 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
18468 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
18469 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
18470 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
18471 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
18472 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
18473 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
18474 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
18475 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
18476 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
18477 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
18478 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
18479 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
18480 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
18481 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
18482 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
18483 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
18484 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
18485 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
18486 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
18487 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
18488 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
18489 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
18490 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
18491 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
18492 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
18494 ndr_print_enum(ndr, name, "ENUM", val, r);
18497 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
18499 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
18500 return NDR_ERR_SUCCESS;
18503 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
18506 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
18508 return NDR_ERR_SUCCESS;
18511 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
18513 const char *val = NULL;
18516 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
18517 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
18519 ndr_print_enum(ndr, name, "ENUM", val, r);
18522 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
18524 if (ndr_flags & NDR_SCALARS) {
18525 int level = ndr_push_get_switch_value(ndr, r);
18526 NDR_CHECK(ndr_push_union_align(ndr, 2));
18528 case PRINTER_NOTIFY_TYPE: {
18529 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18532 case JOB_NOTIFY_TYPE: {
18533 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18537 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
18542 if (ndr_flags & NDR_BUFFERS) {
18543 int level = ndr_push_get_switch_value(ndr, r);
18545 case PRINTER_NOTIFY_TYPE:
18548 case JOB_NOTIFY_TYPE:
18556 return NDR_ERR_SUCCESS;
18559 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
18562 level = ndr_pull_get_switch_value(ndr, r);
18563 if (ndr_flags & NDR_SCALARS) {
18564 NDR_CHECK(ndr_pull_union_align(ndr, 2));
18566 case PRINTER_NOTIFY_TYPE: {
18567 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18570 case JOB_NOTIFY_TYPE: {
18571 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18575 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
18580 if (ndr_flags & NDR_BUFFERS) {
18582 case PRINTER_NOTIFY_TYPE:
18585 case JOB_NOTIFY_TYPE:
18593 return NDR_ERR_SUCCESS;
18596 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
18598 uint32_t cntr_fields_1;
18599 if (ndr_flags & NDR_SCALARS) {
18600 NDR_CHECK(ndr_push_align(ndr, 5));
18601 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
18602 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
18603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
18604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
18605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18606 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
18607 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18609 if (ndr_flags & NDR_BUFFERS) {
18611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18612 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18613 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18614 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18618 return NDR_ERR_SUCCESS;
18621 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
18623 uint32_t _ptr_fields;
18624 uint32_t cntr_fields_1;
18625 TALLOC_CTX *_mem_save_fields_0;
18626 TALLOC_CTX *_mem_save_fields_1;
18627 if (ndr_flags & NDR_SCALARS) {
18628 NDR_CHECK(ndr_pull_align(ndr, 5));
18629 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
18630 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
18631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
18632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
18633 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
18636 NDR_PULL_ALLOC(ndr, r->fields);
18640 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18642 if (ndr_flags & NDR_BUFFERS) {
18644 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
18645 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18646 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
18647 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
18648 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
18649 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
18650 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
18651 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
18652 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
18654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
18655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
18658 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
18661 return NDR_ERR_SUCCESS;
18664 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
18666 uint32_t cntr_fields_1;
18667 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
18669 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
18670 ndr_print_uint16(ndr, "u1", r->u1);
18671 ndr_print_uint32(ndr, "u2", r->u2);
18672 ndr_print_uint32(ndr, "u3", r->u3);
18673 ndr_print_uint32(ndr, "count", r->count);
18674 ndr_print_ptr(ndr, "fields", r->fields);
18677 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
18679 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
18681 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
18682 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
18683 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
18693 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18696 return NDR_ERR_SUCCESS;
18699 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18704 return NDR_ERR_SUCCESS;
18707 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18709 ndr_print_uint32(ndr, name, r);
18711 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
18715 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
18717 uint32_t cntr_types_1;
18718 if (ndr_flags & NDR_SCALARS) {
18719 NDR_CHECK(ndr_push_align(ndr, 5));
18720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
18721 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
18722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
18723 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
18724 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18726 if (ndr_flags & NDR_BUFFERS) {
18728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
18729 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18730 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18732 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18733 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18737 return NDR_ERR_SUCCESS;
18740 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
18742 uint32_t _ptr_types;
18743 uint32_t cntr_types_1;
18744 TALLOC_CTX *_mem_save_types_0;
18745 TALLOC_CTX *_mem_save_types_1;
18746 if (ndr_flags & NDR_SCALARS) {
18747 NDR_CHECK(ndr_pull_align(ndr, 5));
18748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18749 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
18750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
18751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
18753 NDR_PULL_ALLOC(ndr, r->types);
18757 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18759 if (ndr_flags & NDR_BUFFERS) {
18761 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
18762 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18763 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
18764 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
18765 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
18766 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
18767 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18768 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
18770 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
18771 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
18773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
18774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
18777 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
18780 return NDR_ERR_SUCCESS;
18783 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
18785 uint32_t cntr_types_1;
18786 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
18788 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
18789 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
18790 ndr_print_uint32(ndr, "count", r->count);
18791 ndr_print_ptr(ndr, "types", r->types);
18794 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
18796 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
18798 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
18799 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
18809 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
18811 if (ndr_flags & NDR_SCALARS) {
18812 NDR_CHECK(ndr_push_align(ndr, 5));
18813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
18814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
18815 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18817 if (ndr_flags & NDR_BUFFERS) {
18819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
18820 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
18823 return NDR_ERR_SUCCESS;
18826 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
18828 uint32_t _ptr_string;
18829 TALLOC_CTX *_mem_save_string_0;
18830 if (ndr_flags & NDR_SCALARS) {
18831 NDR_CHECK(ndr_pull_align(ndr, 5));
18832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
18835 NDR_PULL_ALLOC(ndr, r->string);
18839 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18841 if (ndr_flags & NDR_BUFFERS) {
18843 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18844 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
18845 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
18846 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
18847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
18850 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
18853 return NDR_ERR_SUCCESS;
18856 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
18858 ndr_print_struct(ndr, name, "spoolss_NotifyString");
18860 ndr_print_uint32(ndr, "size", r->size);
18861 ndr_print_ptr(ndr, "string", r->string);
18864 ndr_print_string(ndr, "string", r->string);
18870 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
18872 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18873 return NDR_ERR_SUCCESS;
18876 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
18879 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18881 return NDR_ERR_SUCCESS;
18884 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
18886 const char *val = NULL;
18889 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
18890 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
18891 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
18892 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
18893 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
18895 ndr_print_enum(ndr, name, "ENUM", val, r);
18898 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
18900 if (ndr_flags & NDR_SCALARS) {
18901 int level = ndr_push_get_switch_value(ndr, r);
18902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18903 NDR_CHECK(ndr_push_union_align(ndr, 5));
18906 uint32_t cntr_integer_0;
18907 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
18913 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18917 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18921 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18925 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18929 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18932 if (ndr_flags & NDR_BUFFERS) {
18933 int level = ndr_push_get_switch_value(ndr, r);
18939 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
18943 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
18947 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
18951 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
18955 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18958 return NDR_ERR_SUCCESS;
18961 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
18965 level = ndr_pull_get_switch_value(ndr, r);
18966 if (ndr_flags & NDR_SCALARS) {
18967 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18968 if (_level != level) {
18969 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18971 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18974 uint32_t cntr_integer_0;
18975 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
18976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
18981 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
18985 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
18989 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
18993 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
18997 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19000 if (ndr_flags & NDR_BUFFERS) {
19006 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
19010 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
19014 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
19018 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
19022 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19025 return NDR_ERR_SUCCESS;
19028 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
19031 uint32_t cntr_integer_0;
19032 level = ndr_print_get_switch_value(ndr, r);
19033 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
19036 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
19038 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
19040 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
19041 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
19049 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
19053 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
19057 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
19061 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
19065 ndr_print_bad_level(ndr, name, level);
19069 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
19071 if (ndr_flags & NDR_SCALARS) {
19072 NDR_CHECK(ndr_push_align(ndr, 5));
19073 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
19074 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
19075 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19076 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
19077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
19078 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
19079 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19080 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19082 if (ndr_flags & NDR_BUFFERS) {
19083 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19085 return NDR_ERR_SUCCESS;
19088 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
19090 if (ndr_flags & NDR_SCALARS) {
19091 NDR_CHECK(ndr_pull_align(ndr, 5));
19092 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
19093 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
19094 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
19095 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
19096 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
19097 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
19098 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
19099 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19101 if (ndr_flags & NDR_BUFFERS) {
19102 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
19104 return NDR_ERR_SUCCESS;
19107 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
19109 ndr_print_struct(ndr, name, "spoolss_Notify");
19111 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
19112 ndr_print_set_switch_value(ndr, &r->field, r->type);
19113 ndr_print_spoolss_Field(ndr, "field", &r->field);
19114 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
19115 ndr_print_uint32(ndr, "job_id", r->job_id);
19116 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
19117 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
19121 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
19123 uint32_t cntr_notifies_0;
19124 if (ndr_flags & NDR_SCALARS) {
19125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
19126 NDR_CHECK(ndr_push_align(ndr, 5));
19127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
19128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19130 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19131 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19133 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19135 if (ndr_flags & NDR_BUFFERS) {
19136 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19137 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19140 return NDR_ERR_SUCCESS;
19143 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
19145 uint32_t cntr_notifies_0;
19146 TALLOC_CTX *_mem_save_notifies_0;
19147 if (ndr_flags & NDR_SCALARS) {
19148 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
19149 NDR_CHECK(ndr_pull_align(ndr, 5));
19150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
19151 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19153 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
19154 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19155 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19156 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19157 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
19159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19161 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
19163 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19165 if (ndr_flags & NDR_BUFFERS) {
19166 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
19167 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
19168 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
19169 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
19171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
19173 return NDR_ERR_SUCCESS;
19176 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
19178 uint32_t cntr_notifies_0;
19179 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
19181 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
19182 ndr_print_uint32(ndr, "flags", r->flags);
19183 ndr_print_uint32(ndr, "count", r->count);
19184 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
19186 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
19188 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
19189 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
19197 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
19199 if (ndr_flags & NDR_SCALARS) {
19200 int level = ndr_push_get_switch_value(ndr, r);
19201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19202 NDR_CHECK(ndr_push_union_align(ndr, 5));
19205 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
19209 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19212 if (ndr_flags & NDR_BUFFERS) {
19213 int level = ndr_push_get_switch_value(ndr, r);
19217 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19222 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19225 return NDR_ERR_SUCCESS;
19228 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
19232 TALLOC_CTX *_mem_save_info0_0;
19233 level = ndr_pull_get_switch_value(ndr, r);
19234 if (ndr_flags & NDR_SCALARS) {
19235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19236 if (_level != level) {
19237 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19239 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19242 uint32_t _ptr_info0;
19243 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
19245 NDR_PULL_ALLOC(ndr, r->info0);
19252 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19255 if (ndr_flags & NDR_BUFFERS) {
19259 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
19260 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
19261 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
19262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
19267 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19270 return NDR_ERR_SUCCESS;
19273 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
19276 level = ndr_print_get_switch_value(ndr, r);
19277 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
19280 ndr_print_ptr(ndr, "info0", r->info0);
19283 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
19289 ndr_print_bad_level(ndr, name, level);
19293 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19296 return NDR_ERR_SUCCESS;
19299 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19304 return NDR_ERR_SUCCESS;
19307 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
19309 ndr_print_uint32(ndr, name, r);
19311 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
19312 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
19313 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
19317 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
19319 if (ndr_flags & NDR_SCALARS) {
19320 NDR_CHECK(ndr_push_align(ndr, 5));
19321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19322 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19325 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19326 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19327 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19328 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19330 if (ndr_flags & NDR_BUFFERS) {
19332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19333 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19334 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19338 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19339 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19340 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19344 return NDR_ERR_SUCCESS;
19347 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
19349 uint32_t _ptr_client;
19350 TALLOC_CTX *_mem_save_client_0;
19351 uint32_t _ptr_user;
19352 TALLOC_CTX *_mem_save_user_0;
19353 if (ndr_flags & NDR_SCALARS) {
19354 NDR_CHECK(ndr_pull_align(ndr, 5));
19355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19358 NDR_PULL_ALLOC(ndr, r->client);
19362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19364 NDR_PULL_ALLOC(ndr, r->user);
19368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19369 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19370 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19371 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19372 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19374 if (ndr_flags & NDR_BUFFERS) {
19376 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19377 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19378 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19379 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19380 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19381 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));
19383 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19384 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19388 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19389 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19390 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19391 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19392 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19393 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));
19395 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19396 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19400 return NDR_ERR_SUCCESS;
19403 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
19405 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
19407 ndr_print_uint32(ndr, "size", r->size);
19408 ndr_print_ptr(ndr, "client", r->client);
19411 ndr_print_string(ndr, "client", r->client);
19414 ndr_print_ptr(ndr, "user", r->user);
19417 ndr_print_string(ndr, "user", r->user);
19420 ndr_print_uint32(ndr, "build", r->build);
19421 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19422 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19423 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19427 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
19429 if (ndr_flags & NDR_SCALARS) {
19430 NDR_CHECK(ndr_push_align(ndr, 4));
19431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
19432 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19434 if (ndr_flags & NDR_BUFFERS) {
19436 return NDR_ERR_SUCCESS;
19439 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
19441 if (ndr_flags & NDR_SCALARS) {
19442 NDR_CHECK(ndr_pull_align(ndr, 4));
19443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
19444 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19446 if (ndr_flags & NDR_BUFFERS) {
19448 return NDR_ERR_SUCCESS;
19451 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
19453 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
19455 ndr_print_uint32(ndr, "not_used", r->not_used);
19459 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
19461 if (ndr_flags & NDR_SCALARS) {
19462 NDR_CHECK(ndr_push_align(ndr, 5));
19463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
19464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
19465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
19466 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
19467 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
19468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
19469 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
19470 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
19471 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
19472 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
19473 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19475 if (ndr_flags & NDR_BUFFERS) {
19477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19478 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19479 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
19480 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19484 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19485 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
19486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19489 return NDR_ERR_SUCCESS;
19492 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
19494 uint32_t _ptr_client;
19495 TALLOC_CTX *_mem_save_client_0;
19496 uint32_t _ptr_user;
19497 TALLOC_CTX *_mem_save_user_0;
19498 if (ndr_flags & NDR_SCALARS) {
19499 NDR_CHECK(ndr_pull_align(ndr, 5));
19500 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
19501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
19502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
19503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
19505 NDR_PULL_ALLOC(ndr, r->client);
19509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
19511 NDR_PULL_ALLOC(ndr, r->user);
19515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
19516 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
19517 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
19518 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
19519 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
19520 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19522 if (ndr_flags & NDR_BUFFERS) {
19524 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
19525 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
19526 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
19527 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
19528 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
19529 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));
19531 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
19532 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
19533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
19536 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
19537 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
19538 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
19539 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
19540 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
19541 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));
19543 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
19544 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
19545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
19548 return NDR_ERR_SUCCESS;
19551 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
19553 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
19555 ndr_print_uint32(ndr, "size", r->size);
19556 ndr_print_uint32(ndr, "flags", r->flags);
19557 ndr_print_uint32(ndr, "size2", r->size2);
19558 ndr_print_ptr(ndr, "client", r->client);
19561 ndr_print_string(ndr, "client", r->client);
19564 ndr_print_ptr(ndr, "user", r->user);
19567 ndr_print_string(ndr, "user", r->user);
19570 ndr_print_uint32(ndr, "build", r->build);
19571 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
19572 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
19573 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
19574 ndr_print_udlong(ndr, "reserved", r->reserved);
19578 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
19580 if (ndr_flags & NDR_SCALARS) {
19581 int level = ndr_push_get_switch_value(ndr, r);
19582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
19583 NDR_CHECK(ndr_push_union_align(ndr, 5));
19586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
19590 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
19594 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
19598 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19601 if (ndr_flags & NDR_BUFFERS) {
19602 int level = ndr_push_get_switch_value(ndr, r);
19606 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19612 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19618 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19623 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19626 return NDR_ERR_SUCCESS;
19629 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
19633 TALLOC_CTX *_mem_save_level1_0;
19634 TALLOC_CTX *_mem_save_level2_0;
19635 TALLOC_CTX *_mem_save_level3_0;
19636 level = ndr_pull_get_switch_value(ndr, r);
19637 if (ndr_flags & NDR_SCALARS) {
19638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
19639 if (_level != level) {
19640 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
19642 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19645 uint32_t _ptr_level1;
19646 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
19648 NDR_PULL_ALLOC(ndr, r->level1);
19655 uint32_t _ptr_level2;
19656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
19658 NDR_PULL_ALLOC(ndr, r->level2);
19665 uint32_t _ptr_level3;
19666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
19668 NDR_PULL_ALLOC(ndr, r->level3);
19675 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19678 if (ndr_flags & NDR_BUFFERS) {
19682 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
19683 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
19684 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
19685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
19691 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
19692 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
19693 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
19694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
19700 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
19701 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
19702 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
19703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
19708 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
19711 return NDR_ERR_SUCCESS;
19714 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
19717 level = ndr_print_get_switch_value(ndr, r);
19718 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
19721 ndr_print_ptr(ndr, "level1", r->level1);
19724 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
19730 ndr_print_ptr(ndr, "level2", r->level2);
19733 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
19739 ndr_print_ptr(ndr, "level3", r->level3);
19742 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
19748 ndr_print_bad_level(ndr, name, level);
19752 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
19754 if (ndr_flags & NDR_SCALARS) {
19755 NDR_CHECK(ndr_push_align(ndr, 5));
19756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19757 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
19758 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19759 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19761 if (ndr_flags & NDR_BUFFERS) {
19762 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19764 return NDR_ERR_SUCCESS;
19767 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
19769 if (ndr_flags & NDR_SCALARS) {
19770 NDR_CHECK(ndr_pull_align(ndr, 5));
19771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19772 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
19773 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
19774 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19776 if (ndr_flags & NDR_BUFFERS) {
19777 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
19779 return NDR_ERR_SUCCESS;
19782 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
19784 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
19786 ndr_print_uint32(ndr, "level", r->level);
19787 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
19788 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
19792 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
19794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
19795 return NDR_ERR_SUCCESS;
19798 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
19801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
19803 return NDR_ERR_SUCCESS;
19806 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
19808 ndr_print_uint32(ndr, name, r);
19810 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
19811 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
19812 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
19813 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
19814 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
19815 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
19819 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
19821 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19822 if (ndr_flags & NDR_SCALARS) {
19823 NDR_CHECK(ndr_push_align(ndr, 5));
19824 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19826 uint32_t _flags_save_string = ndr->flags;
19827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19828 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
19829 ndr->flags = _flags_save_string;
19831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
19832 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
19833 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
19834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PrinterData(r->data, r->type, ndr->iconv_convenience, ndr->flags)));
19835 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19837 if (ndr_flags & NDR_BUFFERS) {
19838 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19840 uint32_t _flags_save_string = ndr->flags;
19841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19842 if (r->value_name) {
19843 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
19844 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
19845 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
19847 ndr->flags = _flags_save_string;
19850 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
19852 struct ndr_push *_ndr_data;
19853 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19854 NDR_CHECK(ndr_push_set_switch_value(_ndr_data, r->data, r->type));
19855 NDR_CHECK(ndr_push_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19856 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19858 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
19861 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19862 return NDR_ERR_SUCCESS;
19865 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
19867 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19868 uint32_t _ptr_value_name;
19869 TALLOC_CTX *_mem_save_value_name_0;
19870 uint32_t _ptr_data;
19871 TALLOC_CTX *_mem_save_data_0;
19872 if (ndr_flags & NDR_SCALARS) {
19873 NDR_CHECK(ndr_pull_align(ndr, 5));
19874 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19876 uint32_t _flags_save_string = ndr->flags;
19877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
19879 if (_ptr_value_name) {
19880 NDR_PULL_ALLOC(ndr, r->value_name);
19881 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
19883 r->value_name = NULL;
19885 ndr->flags = _flags_save_string;
19887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
19888 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
19889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
19891 NDR_PULL_ALLOC(ndr, r->data);
19892 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
19896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
19897 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19899 if (ndr_flags & NDR_BUFFERS) {
19900 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19902 uint32_t _flags_save_string = ndr->flags;
19903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19904 if (r->value_name) {
19905 uint32_t _relative_save_offset;
19906 _relative_save_offset = ndr->offset;
19907 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
19908 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19909 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
19910 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
19911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
19912 if (ndr->offset > ndr->relative_highest_offset) {
19913 ndr->relative_highest_offset = ndr->offset;
19915 ndr->offset = _relative_save_offset;
19917 ndr->flags = _flags_save_string;
19920 uint32_t _relative_save_offset;
19921 _relative_save_offset = ndr->offset;
19922 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
19923 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
19924 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
19926 struct ndr_pull *_ndr_data;
19927 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
19928 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, r->data, r->type));
19929 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, r->data));
19930 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
19932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
19933 if (ndr->offset > ndr->relative_highest_offset) {
19934 ndr->relative_highest_offset = ndr->offset;
19936 ndr->offset = _relative_save_offset;
19939 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19940 return NDR_ERR_SUCCESS;
19943 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
19945 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
19947 ndr_print_ptr(ndr, "value_name", r->value_name);
19949 if (r->value_name) {
19950 ndr_print_string(ndr, "value_name", r->value_name);
19953 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
19954 ndr_print_winreg_Type(ndr, "type", r->type);
19955 ndr_print_ptr(ndr, "data", r->data);
19958 ndr_print_set_switch_value(ndr, r->data, r->type);
19959 ndr_print_spoolss_PrinterData(ndr, "data", r->data);
19962 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);
19966 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, struct smb_iconv_convenience *ic, int flags)
19968 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues, ic);
19971 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
19973 if (ndr_flags & NDR_SCALARS) {
19974 int level = ndr_push_get_switch_value(ndr, r);
19975 NDR_CHECK(ndr_push_union_align(ndr, 4));
19985 uint32_t _flags_save_string_array = ndr->flags;
19986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
19987 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
19988 ndr->flags = _flags_save_string_array;
19994 if (ndr_flags & NDR_BUFFERS) {
19995 int level = ndr_push_get_switch_value(ndr, r);
20008 return NDR_ERR_SUCCESS;
20011 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
20014 level = ndr_pull_get_switch_value(ndr, r);
20015 if (ndr_flags & NDR_SCALARS) {
20016 NDR_CHECK(ndr_pull_union_align(ndr, 4));
20026 uint32_t _flags_save_string_array = ndr->flags;
20027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20028 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
20029 ndr->flags = _flags_save_string_array;
20035 if (ndr_flags & NDR_BUFFERS) {
20048 return NDR_ERR_SUCCESS;
20051 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
20054 level = ndr_print_get_switch_value(ndr, r);
20055 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
20064 ndr_print_string_array(ndr, "string_array", r->string_array);
20070 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20073 return NDR_ERR_SUCCESS;
20076 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20081 return NDR_ERR_SUCCESS;
20084 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20086 ndr_print_uint32(ndr, name, r);
20088 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
20089 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
20090 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
20094 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
20096 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
20097 return NDR_ERR_SUCCESS;
20100 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
20103 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
20105 return NDR_ERR_SUCCESS;
20108 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
20110 const char *val = NULL;
20113 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
20114 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
20116 ndr_print_enum(ndr, name, "ENUM", val, r);
20119 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
20121 if (ndr_flags & NDR_SCALARS) {
20122 NDR_CHECK(ndr_push_align(ndr, 4));
20123 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
20125 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20128 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20129 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20131 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20133 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20138 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20140 if (ndr_flags & NDR_BUFFERS) {
20142 return NDR_ERR_SUCCESS;
20145 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
20147 if (ndr_flags & NDR_SCALARS) {
20148 NDR_CHECK(ndr_pull_align(ndr, 4));
20149 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20151 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20154 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
20155 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20157 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20158 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
20159 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
20160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20164 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20166 if (ndr_flags & NDR_BUFFERS) {
20168 return NDR_ERR_SUCCESS;
20171 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
20173 ndr_print_struct(ndr, name, "spoolss_PortData1");
20175 ndr_print_string(ndr, "portname", r->portname);
20176 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
20177 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20178 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20179 ndr_print_uint32(ndr, "reserved", r->reserved);
20180 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20181 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20182 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20183 ndr_print_string(ndr, "queue", r->queue);
20184 ndr_print_string(ndr, "ip_address", r->ip_address);
20185 ndr_print_string(ndr, "hardware_address", r->hardware_address);
20186 ndr_print_string(ndr, "device_type", r->device_type);
20187 ndr_print_uint32(ndr, "port_number", r->port_number);
20188 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20189 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20193 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
20195 if (ndr_flags & NDR_SCALARS) {
20196 NDR_CHECK(ndr_push_align(ndr, 4));
20197 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
20198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
20199 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
20200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
20201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
20202 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20203 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
20205 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
20206 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
20208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
20209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
20210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
20211 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20213 if (ndr_flags & NDR_BUFFERS) {
20215 return NDR_ERR_SUCCESS;
20218 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
20220 if (ndr_flags & NDR_SCALARS) {
20221 NDR_CHECK(ndr_pull_align(ndr, 4));
20222 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
20223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20224 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
20225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
20227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
20228 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
20229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
20230 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
20231 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
20232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
20233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
20234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
20235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
20236 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20238 if (ndr_flags & NDR_BUFFERS) {
20240 return NDR_ERR_SUCCESS;
20243 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
20245 ndr_print_struct(ndr, name, "spoolss_PortData2");
20247 ndr_print_string(ndr, "portname", r->portname);
20248 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
20249 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
20250 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
20251 ndr_print_uint32(ndr, "reserved", r->reserved);
20252 ndr_print_string(ndr, "hostaddress", r->hostaddress);
20253 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
20254 ndr_print_uint32(ndr, "dblspool", r->dblspool);
20255 ndr_print_string(ndr, "queue", r->queue);
20256 ndr_print_string(ndr, "device_type", r->device_type);
20257 ndr_print_uint32(ndr, "port_number", r->port_number);
20258 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
20259 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
20260 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
20264 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
20266 if (ndr_flags & NDR_SCALARS) {
20267 NDR_CHECK(ndr_push_align(ndr, 4));
20269 uint32_t _flags_save_string = ndr->flags;
20270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20271 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
20272 ndr->flags = _flags_save_string;
20274 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
20276 if (ndr_flags & NDR_BUFFERS) {
20278 return NDR_ERR_SUCCESS;
20281 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
20283 if (ndr_flags & NDR_SCALARS) {
20284 NDR_CHECK(ndr_pull_align(ndr, 4));
20286 uint32_t _flags_save_string = ndr->flags;
20287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
20288 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
20289 ndr->flags = _flags_save_string;
20291 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
20293 if (ndr_flags & NDR_BUFFERS) {
20295 return NDR_ERR_SUCCESS;
20298 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
20300 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
20302 ndr_print_string(ndr, "dll_name", r->dll_name);
20306 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20309 return NDR_ERR_SUCCESS;
20312 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20317 return NDR_ERR_SUCCESS;
20320 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20322 ndr_print_uint32(ndr, name, r);
20324 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
20325 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
20326 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
20327 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
20328 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
20329 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
20330 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
20331 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
20335 static enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
20337 if (ndr_flags & NDR_SCALARS) {
20338 NDR_CHECK(ndr_push_align(ndr, 8));
20339 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20340 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
20341 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
20342 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 520, sizeof(uint8_t), CH_UTF8));
20343 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
20345 if (ndr_flags & NDR_BUFFERS) {
20347 return NDR_ERR_SUCCESS;
20350 static enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
20352 if (ndr_flags & NDR_SCALARS) {
20353 NDR_CHECK(ndr_pull_align(ndr, 8));
20354 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
20355 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
20356 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
20357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 520, sizeof(uint8_t), CH_UTF8));
20358 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
20360 if (ndr_flags & NDR_BUFFERS) {
20362 return NDR_ERR_SUCCESS;
20365 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
20367 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
20369 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
20370 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
20371 ndr_print_hyper(ndr, "driver_version", r->driver_version);
20372 ndr_print_string(ndr, "formname", r->formname);
20376 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
20378 if (flags & NDR_IN) {
20379 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
20380 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20381 if (r->in.server) {
20382 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20383 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20384 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20385 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20389 if (r->in.buffer) {
20390 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20394 if (flags & NDR_OUT) {
20395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20397 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20399 if (r->out.needed == NULL) {
20400 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20403 if (r->out.count == NULL) {
20404 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20407 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20409 return NDR_ERR_SUCCESS;
20412 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
20414 uint32_t _ptr_server;
20415 uint32_t _ptr_buffer;
20416 uint32_t _ptr_info;
20417 TALLOC_CTX *_mem_save_server_0;
20418 TALLOC_CTX *_mem_save_buffer_0;
20419 TALLOC_CTX *_mem_save_info_0;
20420 TALLOC_CTX *_mem_save_needed_0;
20421 TALLOC_CTX *_mem_save_count_0;
20422 if (flags & NDR_IN) {
20423 ZERO_STRUCT(r->out);
20425 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
20426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20428 NDR_PULL_ALLOC(ndr, r->in.server);
20430 r->in.server = NULL;
20432 if (r->in.server) {
20433 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20434 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20435 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20436 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20437 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20438 return 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));
20440 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20447 NDR_PULL_ALLOC(ndr, r->in.buffer);
20449 r->in.buffer = NULL;
20451 if (r->in.buffer) {
20452 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20453 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20454 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20458 NDR_PULL_ALLOC(ndr, r->out.needed);
20459 ZERO_STRUCTP(r->out.needed);
20460 NDR_PULL_ALLOC(ndr, r->out.count);
20461 ZERO_STRUCTP(r->out.count);
20463 if (flags & NDR_OUT) {
20464 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20466 NDR_PULL_ALLOC(ndr, r->out.info);
20468 r->out.info = NULL;
20471 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20472 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20473 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20476 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20477 NDR_PULL_ALLOC(ndr, r->out.needed);
20479 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20480 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20481 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20482 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20483 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20484 NDR_PULL_ALLOC(ndr, r->out.count);
20486 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20487 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20490 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20492 return NDR_ERR_SUCCESS;
20495 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
20497 uint32_t cntr_info_0;
20498 if (flags & NDR_IN) {
20499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20502 if (flags & NDR_OUT) {
20503 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20504 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20505 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20507 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20508 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20511 return NDR_ERR_SUCCESS;
20514 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
20516 uint32_t cntr_info_0;
20517 TALLOC_CTX *_mem_save_info_0;
20518 if (flags & NDR_IN) {
20519 ZERO_STRUCT(r->out);
20521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20524 if (flags & NDR_OUT) {
20525 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20526 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20527 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20528 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20529 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20530 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20532 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20533 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20537 return NDR_ERR_SUCCESS;
20540 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
20542 uint32_t cntr_info_2;
20543 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
20545 if (flags & NDR_SET_VALUES) {
20546 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20548 if (flags & NDR_IN) {
20549 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
20551 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
20552 ndr_print_ptr(ndr, "server", r->in.server);
20554 if (r->in.server) {
20555 ndr_print_string(ndr, "server", r->in.server);
20558 ndr_print_uint32(ndr, "level", r->in.level);
20559 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20561 if (r->in.buffer) {
20562 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20565 ndr_print_uint32(ndr, "offered", r->in.offered);
20568 if (flags & NDR_OUT) {
20569 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
20571 ndr_print_ptr(ndr, "count", r->out.count);
20573 ndr_print_uint32(ndr, "count", *r->out.count);
20575 ndr_print_ptr(ndr, "info", r->out.info);
20577 ndr_print_ptr(ndr, "info", *r->out.info);
20579 if (*r->out.info) {
20580 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20582 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20584 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20585 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20586 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20594 ndr_print_ptr(ndr, "needed", r->out.needed);
20596 ndr_print_uint32(ndr, "needed", *r->out.needed);
20598 ndr_print_WERROR(ndr, "result", r->out.result);
20604 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
20606 if (flags & NDR_IN) {
20607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20608 if (r->in.printername) {
20609 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20610 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20612 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20615 if (r->in.datatype) {
20616 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20617 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
20618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20621 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20622 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20624 if (flags & NDR_OUT) {
20625 if (r->out.handle == NULL) {
20626 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20628 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20629 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20631 return NDR_ERR_SUCCESS;
20634 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
20636 uint32_t _ptr_printername;
20637 uint32_t _ptr_datatype;
20638 TALLOC_CTX *_mem_save_printername_0;
20639 TALLOC_CTX *_mem_save_datatype_0;
20640 TALLOC_CTX *_mem_save_handle_0;
20641 if (flags & NDR_IN) {
20642 ZERO_STRUCT(r->out);
20644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20645 if (_ptr_printername) {
20646 NDR_PULL_ALLOC(ndr, r->in.printername);
20648 r->in.printername = NULL;
20650 if (r->in.printername) {
20651 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20652 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20653 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20654 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20655 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20656 return 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));
20658 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20659 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20663 if (_ptr_datatype) {
20664 NDR_PULL_ALLOC(ndr, r->in.datatype);
20666 r->in.datatype = NULL;
20668 if (r->in.datatype) {
20669 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20670 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20671 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20672 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20673 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20674 return 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));
20676 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20677 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20680 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20681 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20682 NDR_PULL_ALLOC(ndr, r->out.handle);
20683 ZERO_STRUCTP(r->out.handle);
20685 if (flags & NDR_OUT) {
20686 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20687 NDR_PULL_ALLOC(ndr, r->out.handle);
20689 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20690 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20691 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20693 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20695 return NDR_ERR_SUCCESS;
20698 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
20700 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
20702 if (flags & NDR_SET_VALUES) {
20703 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20705 if (flags & NDR_IN) {
20706 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
20708 ndr_print_ptr(ndr, "printername", r->in.printername);
20710 if (r->in.printername) {
20711 ndr_print_string(ndr, "printername", r->in.printername);
20714 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20716 if (r->in.datatype) {
20717 ndr_print_string(ndr, "datatype", r->in.datatype);
20720 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20721 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20724 if (flags & NDR_OUT) {
20725 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
20727 ndr_print_ptr(ndr, "handle", r->out.handle);
20729 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20731 ndr_print_WERROR(ndr, "result", r->out.result);
20737 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
20739 if (flags & NDR_IN) {
20740 if (r->in.handle == NULL) {
20741 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20743 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20745 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
20747 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20749 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
20751 if (flags & NDR_OUT) {
20752 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20754 return NDR_ERR_SUCCESS;
20757 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
20760 TALLOC_CTX *_mem_save_handle_0;
20761 TALLOC_CTX *_mem_save_ctr_0;
20762 if (flags & NDR_IN) {
20763 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20764 NDR_PULL_ALLOC(ndr, r->in.handle);
20766 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20767 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20768 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20771 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
20773 NDR_PULL_ALLOC(ndr, r->in.ctr);
20778 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20779 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
20780 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
20781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
20783 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
20785 if (flags & NDR_OUT) {
20786 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20788 return NDR_ERR_SUCCESS;
20791 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
20793 ndr_print_struct(ndr, name, "spoolss_SetJob");
20795 if (flags & NDR_SET_VALUES) {
20796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20798 if (flags & NDR_IN) {
20799 ndr_print_struct(ndr, "in", "spoolss_SetJob");
20801 ndr_print_ptr(ndr, "handle", r->in.handle);
20803 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20805 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20806 ndr_print_ptr(ndr, "ctr", r->in.ctr);
20809 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
20812 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
20815 if (flags & NDR_OUT) {
20816 ndr_print_struct(ndr, "out", "spoolss_SetJob");
20818 ndr_print_WERROR(ndr, "result", r->out.result);
20824 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
20826 if (flags & NDR_IN) {
20827 if (r->in.handle == NULL) {
20828 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20830 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
20832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20834 if (r->in.buffer) {
20835 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20839 if (flags & NDR_OUT) {
20840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20843 struct ndr_push *_ndr_info;
20844 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20845 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20846 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20847 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20850 if (r->out.needed == NULL) {
20851 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20854 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20856 return NDR_ERR_SUCCESS;
20859 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
20861 uint32_t _ptr_buffer;
20862 uint32_t _ptr_info;
20863 TALLOC_CTX *_mem_save_handle_0;
20864 TALLOC_CTX *_mem_save_buffer_0;
20865 TALLOC_CTX *_mem_save_info_0;
20866 TALLOC_CTX *_mem_save_needed_0;
20867 if (flags & NDR_IN) {
20868 ZERO_STRUCT(r->out);
20870 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20871 NDR_PULL_ALLOC(ndr, r->in.handle);
20873 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20874 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20875 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20877 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
20878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20881 NDR_PULL_ALLOC(ndr, r->in.buffer);
20883 r->in.buffer = NULL;
20885 if (r->in.buffer) {
20886 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20887 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20888 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20891 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20892 NDR_PULL_ALLOC(ndr, r->out.needed);
20893 ZERO_STRUCTP(r->out.needed);
20895 if (flags & NDR_OUT) {
20896 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20898 NDR_PULL_ALLOC(ndr, r->out.info);
20900 r->out.info = NULL;
20903 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20904 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20906 struct ndr_pull *_ndr_info;
20907 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20908 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20909 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
20910 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20914 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20915 NDR_PULL_ALLOC(ndr, r->out.needed);
20917 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20918 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20921 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20923 return NDR_ERR_SUCCESS;
20926 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
20928 ndr_print_struct(ndr, name, "spoolss_GetJob");
20930 if (flags & NDR_SET_VALUES) {
20931 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20933 if (flags & NDR_IN) {
20934 ndr_print_struct(ndr, "in", "spoolss_GetJob");
20936 ndr_print_ptr(ndr, "handle", r->in.handle);
20938 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20940 ndr_print_uint32(ndr, "job_id", r->in.job_id);
20941 ndr_print_uint32(ndr, "level", r->in.level);
20942 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20944 if (r->in.buffer) {
20945 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20948 ndr_print_uint32(ndr, "offered", r->in.offered);
20951 if (flags & NDR_OUT) {
20952 ndr_print_struct(ndr, "out", "spoolss_GetJob");
20954 ndr_print_ptr(ndr, "info", r->out.info);
20957 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20958 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
20961 ndr_print_ptr(ndr, "needed", r->out.needed);
20963 ndr_print_uint32(ndr, "needed", *r->out.needed);
20965 ndr_print_WERROR(ndr, "result", r->out.result);
20971 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
20973 if (flags & NDR_IN) {
20974 if (r->in.handle == NULL) {
20975 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20977 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
20979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
20980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20981 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20982 if (r->in.buffer) {
20983 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20987 if (flags & NDR_OUT) {
20988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20990 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20992 if (r->out.needed == NULL) {
20993 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20996 if (r->out.count == NULL) {
20997 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21000 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21002 return NDR_ERR_SUCCESS;
21005 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
21007 uint32_t _ptr_buffer;
21008 uint32_t _ptr_info;
21009 TALLOC_CTX *_mem_save_handle_0;
21010 TALLOC_CTX *_mem_save_buffer_0;
21011 TALLOC_CTX *_mem_save_info_0;
21012 TALLOC_CTX *_mem_save_needed_0;
21013 TALLOC_CTX *_mem_save_count_0;
21014 if (flags & NDR_IN) {
21015 ZERO_STRUCT(r->out);
21017 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21018 NDR_PULL_ALLOC(ndr, r->in.handle);
21020 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21021 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21022 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
21025 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
21026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21029 NDR_PULL_ALLOC(ndr, r->in.buffer);
21031 r->in.buffer = NULL;
21033 if (r->in.buffer) {
21034 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21035 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21036 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21039 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21040 NDR_PULL_ALLOC(ndr, r->out.needed);
21041 ZERO_STRUCTP(r->out.needed);
21042 NDR_PULL_ALLOC(ndr, r->out.count);
21043 ZERO_STRUCTP(r->out.count);
21045 if (flags & NDR_OUT) {
21046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21048 NDR_PULL_ALLOC(ndr, r->out.info);
21050 r->out.info = NULL;
21053 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21054 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21055 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21058 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21059 NDR_PULL_ALLOC(ndr, r->out.needed);
21061 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21062 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21066 NDR_PULL_ALLOC(ndr, r->out.count);
21068 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21069 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21070 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21072 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21074 return NDR_ERR_SUCCESS;
21077 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
21079 uint32_t cntr_info_0;
21080 if (flags & NDR_IN) {
21081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21084 if (flags & NDR_OUT) {
21085 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21086 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21087 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21089 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21090 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21093 return NDR_ERR_SUCCESS;
21096 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
21098 uint32_t cntr_info_0;
21099 TALLOC_CTX *_mem_save_info_0;
21100 if (flags & NDR_IN) {
21101 ZERO_STRUCT(r->out);
21103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21106 if (flags & NDR_OUT) {
21107 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21108 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21109 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21110 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21111 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21112 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21114 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21115 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21119 return NDR_ERR_SUCCESS;
21122 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
21124 uint32_t cntr_info_2;
21125 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
21127 if (flags & NDR_SET_VALUES) {
21128 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21130 if (flags & NDR_IN) {
21131 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
21133 ndr_print_ptr(ndr, "handle", r->in.handle);
21135 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21137 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
21138 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
21139 ndr_print_uint32(ndr, "level", r->in.level);
21140 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21142 if (r->in.buffer) {
21143 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21146 ndr_print_uint32(ndr, "offered", r->in.offered);
21149 if (flags & NDR_OUT) {
21150 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
21152 ndr_print_ptr(ndr, "count", r->out.count);
21154 ndr_print_uint32(ndr, "count", *r->out.count);
21156 ndr_print_ptr(ndr, "info", r->out.info);
21158 ndr_print_ptr(ndr, "info", *r->out.info);
21160 if (*r->out.info) {
21161 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21163 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21165 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21166 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21167 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21175 ndr_print_ptr(ndr, "needed", r->out.needed);
21177 ndr_print_uint32(ndr, "needed", *r->out.needed);
21179 ndr_print_WERROR(ndr, "result", r->out.result);
21185 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
21187 if (flags & NDR_IN) {
21188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21189 if (r->in.server) {
21190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21193 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21195 if (r->in.info_ctr == NULL) {
21196 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21198 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21199 if (r->in.devmode_ctr == NULL) {
21200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21202 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21203 if (r->in.secdesc_ctr == NULL) {
21204 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21206 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21208 if (flags & NDR_OUT) {
21209 if (r->out.handle == NULL) {
21210 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21212 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21213 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21215 return NDR_ERR_SUCCESS;
21218 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
21220 uint32_t _ptr_server;
21221 TALLOC_CTX *_mem_save_server_0;
21222 TALLOC_CTX *_mem_save_info_ctr_0;
21223 TALLOC_CTX *_mem_save_devmode_ctr_0;
21224 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21225 TALLOC_CTX *_mem_save_handle_0;
21226 if (flags & NDR_IN) {
21227 ZERO_STRUCT(r->out);
21229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21231 NDR_PULL_ALLOC(ndr, r->in.server);
21233 r->in.server = NULL;
21235 if (r->in.server) {
21236 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21237 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21238 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21239 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21240 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21241 return 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));
21243 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21244 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21247 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21248 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21250 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21251 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21252 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21254 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21255 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21257 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21258 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21259 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21262 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21264 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21265 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21266 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21268 NDR_PULL_ALLOC(ndr, r->out.handle);
21269 ZERO_STRUCTP(r->out.handle);
21271 if (flags & NDR_OUT) {
21272 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21273 NDR_PULL_ALLOC(ndr, r->out.handle);
21275 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21276 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21277 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21279 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21281 return NDR_ERR_SUCCESS;
21284 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
21286 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
21288 if (flags & NDR_SET_VALUES) {
21289 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21291 if (flags & NDR_IN) {
21292 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
21294 ndr_print_ptr(ndr, "server", r->in.server);
21296 if (r->in.server) {
21297 ndr_print_string(ndr, "server", r->in.server);
21300 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21302 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21304 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21306 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21308 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21310 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21314 if (flags & NDR_OUT) {
21315 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
21317 ndr_print_ptr(ndr, "handle", r->out.handle);
21319 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21321 ndr_print_WERROR(ndr, "result", r->out.result);
21327 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
21329 if (flags & NDR_IN) {
21330 if (r->in.handle == NULL) {
21331 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21333 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21335 if (flags & NDR_OUT) {
21336 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21338 return NDR_ERR_SUCCESS;
21341 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
21343 TALLOC_CTX *_mem_save_handle_0;
21344 if (flags & NDR_IN) {
21345 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21346 NDR_PULL_ALLOC(ndr, r->in.handle);
21348 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21349 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21350 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21353 if (flags & NDR_OUT) {
21354 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21356 return NDR_ERR_SUCCESS;
21359 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
21361 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
21363 if (flags & NDR_SET_VALUES) {
21364 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21366 if (flags & NDR_IN) {
21367 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
21369 ndr_print_ptr(ndr, "handle", r->in.handle);
21371 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21375 if (flags & NDR_OUT) {
21376 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
21378 ndr_print_WERROR(ndr, "result", r->out.result);
21384 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
21386 if (flags & NDR_IN) {
21387 if (r->in.handle == NULL) {
21388 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21390 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21391 if (r->in.info_ctr == NULL) {
21392 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21394 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21395 if (r->in.devmode_ctr == NULL) {
21396 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21398 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21399 if (r->in.secdesc_ctr == NULL) {
21400 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21402 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21403 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
21405 if (flags & NDR_OUT) {
21406 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21408 return NDR_ERR_SUCCESS;
21411 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
21413 TALLOC_CTX *_mem_save_handle_0;
21414 TALLOC_CTX *_mem_save_info_ctr_0;
21415 TALLOC_CTX *_mem_save_devmode_ctr_0;
21416 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21417 if (flags & NDR_IN) {
21418 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21419 NDR_PULL_ALLOC(ndr, r->in.handle);
21421 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21422 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21423 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21425 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21426 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21428 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21429 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21430 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21432 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21433 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21435 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21436 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21437 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21440 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21442 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21443 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21444 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21446 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
21448 if (flags & NDR_OUT) {
21449 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21451 return NDR_ERR_SUCCESS;
21454 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
21456 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
21458 if (flags & NDR_SET_VALUES) {
21459 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21461 if (flags & NDR_IN) {
21462 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
21464 ndr_print_ptr(ndr, "handle", r->in.handle);
21466 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21468 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21470 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21472 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21474 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21476 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21478 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21480 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
21483 if (flags & NDR_OUT) {
21484 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
21486 ndr_print_WERROR(ndr, "result", r->out.result);
21492 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
21494 if (flags & NDR_IN) {
21495 if (r->in.handle == NULL) {
21496 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21498 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21500 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21501 if (r->in.buffer) {
21502 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21506 if (flags & NDR_OUT) {
21507 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21510 struct ndr_push *_ndr_info;
21511 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21512 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
21513 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21514 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21517 if (r->out.needed == NULL) {
21518 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21521 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21523 return NDR_ERR_SUCCESS;
21526 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
21528 uint32_t _ptr_buffer;
21529 uint32_t _ptr_info;
21530 TALLOC_CTX *_mem_save_handle_0;
21531 TALLOC_CTX *_mem_save_buffer_0;
21532 TALLOC_CTX *_mem_save_info_0;
21533 TALLOC_CTX *_mem_save_needed_0;
21534 if (flags & NDR_IN) {
21535 ZERO_STRUCT(r->out);
21537 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21538 NDR_PULL_ALLOC(ndr, r->in.handle);
21540 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21541 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21542 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21547 NDR_PULL_ALLOC(ndr, r->in.buffer);
21549 r->in.buffer = NULL;
21551 if (r->in.buffer) {
21552 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21553 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21554 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21558 NDR_PULL_ALLOC(ndr, r->out.needed);
21559 ZERO_STRUCTP(r->out.needed);
21561 if (flags & NDR_OUT) {
21562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21564 NDR_PULL_ALLOC(ndr, r->out.info);
21566 r->out.info = NULL;
21569 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21570 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21572 struct ndr_pull *_ndr_info;
21573 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
21574 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
21575 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
21576 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
21578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21580 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21581 NDR_PULL_ALLOC(ndr, r->out.needed);
21583 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21584 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21587 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21589 return NDR_ERR_SUCCESS;
21592 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
21594 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
21596 if (flags & NDR_SET_VALUES) {
21597 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21599 if (flags & NDR_IN) {
21600 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
21602 ndr_print_ptr(ndr, "handle", r->in.handle);
21604 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21606 ndr_print_uint32(ndr, "level", r->in.level);
21607 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21609 if (r->in.buffer) {
21610 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21613 ndr_print_uint32(ndr, "offered", r->in.offered);
21616 if (flags & NDR_OUT) {
21617 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
21619 ndr_print_ptr(ndr, "info", r->out.info);
21622 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
21623 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
21626 ndr_print_ptr(ndr, "needed", r->out.needed);
21628 ndr_print_uint32(ndr, "needed", *r->out.needed);
21630 ndr_print_WERROR(ndr, "result", r->out.result);
21636 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
21638 if (flags & NDR_IN) {
21639 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
21640 if (r->in.servername) {
21641 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21642 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21643 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
21644 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21646 if (r->in.info_ctr == NULL) {
21647 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21649 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21651 if (flags & NDR_OUT) {
21652 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21654 return NDR_ERR_SUCCESS;
21657 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
21659 uint32_t _ptr_servername;
21660 TALLOC_CTX *_mem_save_servername_0;
21661 TALLOC_CTX *_mem_save_info_ctr_0;
21662 if (flags & NDR_IN) {
21663 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
21664 if (_ptr_servername) {
21665 NDR_PULL_ALLOC(ndr, r->in.servername);
21667 r->in.servername = NULL;
21669 if (r->in.servername) {
21670 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21671 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
21672 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
21673 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
21674 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
21675 return 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));
21677 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
21678 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
21679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
21681 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21682 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21684 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21685 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21686 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21689 if (flags & NDR_OUT) {
21690 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21692 return NDR_ERR_SUCCESS;
21695 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
21697 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
21699 if (flags & NDR_SET_VALUES) {
21700 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21702 if (flags & NDR_IN) {
21703 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
21705 ndr_print_ptr(ndr, "servername", r->in.servername);
21707 if (r->in.servername) {
21708 ndr_print_string(ndr, "servername", r->in.servername);
21711 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21713 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21717 if (flags & NDR_OUT) {
21718 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
21720 ndr_print_WERROR(ndr, "result", r->out.result);
21726 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
21728 if (flags & NDR_IN) {
21729 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21730 if (r->in.server) {
21731 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21732 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21733 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21734 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21736 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
21737 if (r->in.environment) {
21738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
21741 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21744 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21745 if (r->in.buffer) {
21746 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
21748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21750 if (flags & NDR_OUT) {
21751 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
21753 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
21755 if (r->out.needed == NULL) {
21756 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21759 if (r->out.count == NULL) {
21760 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21765 return NDR_ERR_SUCCESS;
21768 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
21770 uint32_t _ptr_server;
21771 uint32_t _ptr_environment;
21772 uint32_t _ptr_buffer;
21773 uint32_t _ptr_info;
21774 TALLOC_CTX *_mem_save_server_0;
21775 TALLOC_CTX *_mem_save_environment_0;
21776 TALLOC_CTX *_mem_save_buffer_0;
21777 TALLOC_CTX *_mem_save_info_0;
21778 TALLOC_CTX *_mem_save_needed_0;
21779 TALLOC_CTX *_mem_save_count_0;
21780 if (flags & NDR_IN) {
21781 ZERO_STRUCT(r->out);
21783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21785 NDR_PULL_ALLOC(ndr, r->in.server);
21787 r->in.server = NULL;
21789 if (r->in.server) {
21790 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21791 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21792 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21793 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21794 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21795 return 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));
21797 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21798 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
21802 if (_ptr_environment) {
21803 NDR_PULL_ALLOC(ndr, r->in.environment);
21805 r->in.environment = NULL;
21807 if (r->in.environment) {
21808 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
21809 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
21810 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
21811 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
21812 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
21813 return 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));
21815 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
21816 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
21817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
21819 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21822 NDR_PULL_ALLOC(ndr, r->in.buffer);
21824 r->in.buffer = NULL;
21826 if (r->in.buffer) {
21827 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21828 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21829 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
21830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21833 NDR_PULL_ALLOC(ndr, r->out.needed);
21834 ZERO_STRUCTP(r->out.needed);
21835 NDR_PULL_ALLOC(ndr, r->out.count);
21836 ZERO_STRUCTP(r->out.count);
21838 if (flags & NDR_OUT) {
21839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21841 NDR_PULL_ALLOC(ndr, r->out.info);
21843 r->out.info = NULL;
21846 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21847 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21848 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
21849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21851 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21852 NDR_PULL_ALLOC(ndr, r->out.needed);
21854 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21855 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21858 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21859 NDR_PULL_ALLOC(ndr, r->out.count);
21861 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21862 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21865 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21867 return NDR_ERR_SUCCESS;
21870 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
21872 uint32_t cntr_info_0;
21873 if (flags & NDR_IN) {
21874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
21877 if (flags & NDR_OUT) {
21878 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21879 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21880 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21882 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21883 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21886 return NDR_ERR_SUCCESS;
21889 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
21891 uint32_t cntr_info_0;
21892 TALLOC_CTX *_mem_save_info_0;
21893 if (flags & NDR_IN) {
21894 ZERO_STRUCT(r->out);
21896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
21899 if (flags & NDR_OUT) {
21900 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
21901 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21902 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
21903 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21904 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
21905 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
21907 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
21908 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
21910 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
21912 return NDR_ERR_SUCCESS;
21915 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
21917 uint32_t cntr_info_2;
21918 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
21920 if (flags & NDR_SET_VALUES) {
21921 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21923 if (flags & NDR_IN) {
21924 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
21926 ndr_print_ptr(ndr, "server", r->in.server);
21928 if (r->in.server) {
21929 ndr_print_string(ndr, "server", r->in.server);
21932 ndr_print_ptr(ndr, "environment", r->in.environment);
21934 if (r->in.environment) {
21935 ndr_print_string(ndr, "environment", r->in.environment);
21938 ndr_print_uint32(ndr, "level", r->in.level);
21939 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21941 if (r->in.buffer) {
21942 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
21945 ndr_print_uint32(ndr, "offered", r->in.offered);
21948 if (flags & NDR_OUT) {
21949 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
21951 ndr_print_ptr(ndr, "count", r->out.count);
21953 ndr_print_uint32(ndr, "count", *r->out.count);
21955 ndr_print_ptr(ndr, "info", r->out.info);
21957 ndr_print_ptr(ndr, "info", *r->out.info);
21959 if (*r->out.info) {
21960 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
21962 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
21964 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
21965 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
21966 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
21974 ndr_print_ptr(ndr, "needed", r->out.needed);
21976 ndr_print_uint32(ndr, "needed", *r->out.needed);
21978 ndr_print_WERROR(ndr, "result", r->out.result);
21984 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
21986 if (flags & NDR_IN) {
21987 if (r->in.handle == NULL) {
21988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21990 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21991 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
21992 if (r->in.architecture) {
21993 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21994 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21995 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
21996 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21999 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22000 if (r->in.buffer) {
22001 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22005 if (flags & NDR_OUT) {
22006 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22009 struct ndr_push *_ndr_info;
22010 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22011 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22012 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22013 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22016 if (r->out.needed == NULL) {
22017 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22020 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22022 return NDR_ERR_SUCCESS;
22025 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
22027 uint32_t _ptr_architecture;
22028 uint32_t _ptr_buffer;
22029 uint32_t _ptr_info;
22030 TALLOC_CTX *_mem_save_handle_0;
22031 TALLOC_CTX *_mem_save_architecture_0;
22032 TALLOC_CTX *_mem_save_buffer_0;
22033 TALLOC_CTX *_mem_save_info_0;
22034 TALLOC_CTX *_mem_save_needed_0;
22035 if (flags & NDR_IN) {
22036 ZERO_STRUCT(r->out);
22038 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22039 NDR_PULL_ALLOC(ndr, r->in.handle);
22041 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22042 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22043 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
22046 if (_ptr_architecture) {
22047 NDR_PULL_ALLOC(ndr, r->in.architecture);
22049 r->in.architecture = NULL;
22051 if (r->in.architecture) {
22052 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
22053 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
22054 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22055 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22056 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22057 return 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));
22059 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22060 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
22063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22066 NDR_PULL_ALLOC(ndr, r->in.buffer);
22068 r->in.buffer = NULL;
22070 if (r->in.buffer) {
22071 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22072 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22073 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22077 NDR_PULL_ALLOC(ndr, r->out.needed);
22078 ZERO_STRUCTP(r->out.needed);
22080 if (flags & NDR_OUT) {
22081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22083 NDR_PULL_ALLOC(ndr, r->out.info);
22085 r->out.info = NULL;
22088 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22089 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22091 struct ndr_pull *_ndr_info;
22092 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22093 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22094 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22095 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22099 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22100 NDR_PULL_ALLOC(ndr, r->out.needed);
22102 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22103 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22106 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22108 return NDR_ERR_SUCCESS;
22111 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
22113 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
22115 if (flags & NDR_SET_VALUES) {
22116 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22118 if (flags & NDR_IN) {
22119 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
22121 ndr_print_ptr(ndr, "handle", r->in.handle);
22123 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22125 ndr_print_ptr(ndr, "architecture", r->in.architecture);
22127 if (r->in.architecture) {
22128 ndr_print_string(ndr, "architecture", r->in.architecture);
22131 ndr_print_uint32(ndr, "level", r->in.level);
22132 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22134 if (r->in.buffer) {
22135 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22138 ndr_print_uint32(ndr, "offered", r->in.offered);
22141 if (flags & NDR_OUT) {
22142 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
22144 ndr_print_ptr(ndr, "info", r->out.info);
22147 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22148 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
22151 ndr_print_ptr(ndr, "needed", r->out.needed);
22153 ndr_print_uint32(ndr, "needed", *r->out.needed);
22155 ndr_print_WERROR(ndr, "result", r->out.result);
22161 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22163 if (flags & NDR_IN) {
22164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22165 if (r->in.server) {
22166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22169 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22172 if (r->in.environment) {
22173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22174 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22175 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22176 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22179 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22180 if (r->in.buffer) {
22181 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22185 if (flags & NDR_OUT) {
22186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22189 struct ndr_push *_ndr_info;
22190 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22191 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22192 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22193 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22196 if (r->out.needed == NULL) {
22197 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22200 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22202 return NDR_ERR_SUCCESS;
22205 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
22207 uint32_t _ptr_server;
22208 uint32_t _ptr_environment;
22209 uint32_t _ptr_buffer;
22210 uint32_t _ptr_info;
22211 TALLOC_CTX *_mem_save_server_0;
22212 TALLOC_CTX *_mem_save_environment_0;
22213 TALLOC_CTX *_mem_save_buffer_0;
22214 TALLOC_CTX *_mem_save_info_0;
22215 TALLOC_CTX *_mem_save_needed_0;
22216 if (flags & NDR_IN) {
22217 ZERO_STRUCT(r->out);
22219 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22221 NDR_PULL_ALLOC(ndr, r->in.server);
22223 r->in.server = NULL;
22225 if (r->in.server) {
22226 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22227 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22228 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22229 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22230 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22231 return 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));
22233 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22234 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22238 if (_ptr_environment) {
22239 NDR_PULL_ALLOC(ndr, r->in.environment);
22241 r->in.environment = NULL;
22243 if (r->in.environment) {
22244 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22245 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22246 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22247 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22248 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22249 return 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));
22251 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22252 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22258 NDR_PULL_ALLOC(ndr, r->in.buffer);
22260 r->in.buffer = NULL;
22262 if (r->in.buffer) {
22263 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22264 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22265 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22268 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22269 NDR_PULL_ALLOC(ndr, r->out.needed);
22270 ZERO_STRUCTP(r->out.needed);
22272 if (flags & NDR_OUT) {
22273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22275 NDR_PULL_ALLOC(ndr, r->out.info);
22277 r->out.info = NULL;
22280 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22281 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22283 struct ndr_pull *_ndr_info;
22284 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22285 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22286 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22287 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22291 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22292 NDR_PULL_ALLOC(ndr, r->out.needed);
22294 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22295 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22298 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22300 return NDR_ERR_SUCCESS;
22303 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
22305 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
22307 if (flags & NDR_SET_VALUES) {
22308 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22310 if (flags & NDR_IN) {
22311 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
22313 ndr_print_ptr(ndr, "server", r->in.server);
22315 if (r->in.server) {
22316 ndr_print_string(ndr, "server", r->in.server);
22319 ndr_print_ptr(ndr, "environment", r->in.environment);
22321 if (r->in.environment) {
22322 ndr_print_string(ndr, "environment", r->in.environment);
22325 ndr_print_uint32(ndr, "level", r->in.level);
22326 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22328 if (r->in.buffer) {
22329 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22332 ndr_print_uint32(ndr, "offered", r->in.offered);
22335 if (flags & NDR_OUT) {
22336 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
22338 ndr_print_ptr(ndr, "info", r->out.info);
22341 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22342 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
22345 ndr_print_ptr(ndr, "needed", r->out.needed);
22347 ndr_print_uint32(ndr, "needed", *r->out.needed);
22349 ndr_print_WERROR(ndr, "result", r->out.result);
22355 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
22357 if (flags & NDR_IN) {
22358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22359 if (r->in.server) {
22360 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22361 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22362 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22363 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22366 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22367 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22368 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22369 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22370 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22372 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22374 if (flags & NDR_OUT) {
22375 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22377 return NDR_ERR_SUCCESS;
22380 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
22382 uint32_t _ptr_server;
22383 TALLOC_CTX *_mem_save_server_0;
22384 if (flags & NDR_IN) {
22385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22387 NDR_PULL_ALLOC(ndr, r->in.server);
22389 r->in.server = NULL;
22391 if (r->in.server) {
22392 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22393 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22394 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22395 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22396 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22397 return 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));
22399 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22400 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22403 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22404 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22405 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22406 return 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));
22408 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22409 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22410 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22411 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22412 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22413 return 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));
22415 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22416 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22418 if (flags & NDR_OUT) {
22419 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22421 return NDR_ERR_SUCCESS;
22424 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
22426 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
22428 if (flags & NDR_SET_VALUES) {
22429 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22431 if (flags & NDR_IN) {
22432 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
22434 ndr_print_ptr(ndr, "server", r->in.server);
22436 if (r->in.server) {
22437 ndr_print_string(ndr, "server", r->in.server);
22440 ndr_print_string(ndr, "architecture", r->in.architecture);
22441 ndr_print_string(ndr, "driver", r->in.driver);
22444 if (flags & NDR_OUT) {
22445 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
22447 ndr_print_WERROR(ndr, "result", r->out.result);
22453 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
22455 if (flags & NDR_IN) {
22456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22457 if (r->in.server) {
22458 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22459 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22461 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22463 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22466 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22467 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22468 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22469 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
22470 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));
22471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22472 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22473 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
22474 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));
22476 if (flags & NDR_OUT) {
22477 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22479 return NDR_ERR_SUCCESS;
22482 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
22484 uint32_t _ptr_server;
22485 TALLOC_CTX *_mem_save_server_0;
22486 if (flags & NDR_IN) {
22487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22489 NDR_PULL_ALLOC(ndr, r->in.server);
22491 r->in.server = NULL;
22493 if (r->in.server) {
22494 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22495 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22496 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22497 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22498 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22499 return 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));
22501 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22502 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22505 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22506 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22507 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22508 return 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));
22510 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22511 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22512 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
22513 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
22514 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
22515 return 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));
22517 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
22518 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));
22519 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
22520 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
22521 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
22522 return 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));
22524 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
22525 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));
22527 if (flags & NDR_OUT) {
22528 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22530 return NDR_ERR_SUCCESS;
22533 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
22535 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
22537 if (flags & NDR_SET_VALUES) {
22538 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22540 if (flags & NDR_IN) {
22541 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
22543 ndr_print_ptr(ndr, "server", r->in.server);
22545 if (r->in.server) {
22546 ndr_print_string(ndr, "server", r->in.server);
22549 ndr_print_string(ndr, "architecture", r->in.architecture);
22550 ndr_print_string(ndr, "path_name", r->in.path_name);
22551 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
22554 if (flags & NDR_OUT) {
22555 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
22557 ndr_print_WERROR(ndr, "result", r->out.result);
22563 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
22565 if (flags & NDR_IN) {
22566 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22567 if (r->in.servername) {
22568 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22569 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22570 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22571 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22573 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22574 if (r->in.environment) {
22575 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22576 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22577 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22578 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22582 if (r->in.buffer) {
22583 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22587 if (flags & NDR_OUT) {
22588 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22590 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22592 if (r->out.needed == NULL) {
22593 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22596 if (r->out.count == NULL) {
22597 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22600 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22602 return NDR_ERR_SUCCESS;
22605 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
22607 uint32_t _ptr_servername;
22608 uint32_t _ptr_environment;
22609 uint32_t _ptr_buffer;
22610 uint32_t _ptr_info;
22611 TALLOC_CTX *_mem_save_servername_0;
22612 TALLOC_CTX *_mem_save_environment_0;
22613 TALLOC_CTX *_mem_save_buffer_0;
22614 TALLOC_CTX *_mem_save_info_0;
22615 TALLOC_CTX *_mem_save_needed_0;
22616 TALLOC_CTX *_mem_save_count_0;
22617 if (flags & NDR_IN) {
22618 ZERO_STRUCT(r->out);
22620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22621 if (_ptr_servername) {
22622 NDR_PULL_ALLOC(ndr, r->in.servername);
22624 r->in.servername = NULL;
22626 if (r->in.servername) {
22627 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22628 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22629 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22630 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22631 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22632 return 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));
22634 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22635 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22639 if (_ptr_environment) {
22640 NDR_PULL_ALLOC(ndr, r->in.environment);
22642 r->in.environment = NULL;
22644 if (r->in.environment) {
22645 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22646 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22647 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22648 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22649 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22650 return 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));
22652 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22653 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22659 NDR_PULL_ALLOC(ndr, r->in.buffer);
22661 r->in.buffer = NULL;
22663 if (r->in.buffer) {
22664 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22665 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22666 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22670 NDR_PULL_ALLOC(ndr, r->out.needed);
22671 ZERO_STRUCTP(r->out.needed);
22672 NDR_PULL_ALLOC(ndr, r->out.count);
22673 ZERO_STRUCTP(r->out.count);
22675 if (flags & NDR_OUT) {
22676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22678 NDR_PULL_ALLOC(ndr, r->out.info);
22680 r->out.info = NULL;
22683 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22684 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22685 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22688 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22689 NDR_PULL_ALLOC(ndr, r->out.needed);
22691 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22692 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22693 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22695 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22696 NDR_PULL_ALLOC(ndr, r->out.count);
22698 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22699 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22701 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22702 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22704 return NDR_ERR_SUCCESS;
22707 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
22709 uint32_t cntr_info_0;
22710 if (flags & NDR_IN) {
22711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22714 if (flags & NDR_OUT) {
22715 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22716 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22717 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22719 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22720 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22723 return NDR_ERR_SUCCESS;
22726 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
22728 uint32_t cntr_info_0;
22729 TALLOC_CTX *_mem_save_info_0;
22730 if (flags & NDR_IN) {
22731 ZERO_STRUCT(r->out);
22733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22736 if (flags & NDR_OUT) {
22737 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22738 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22739 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22740 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22741 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22742 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22744 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22745 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22749 return NDR_ERR_SUCCESS;
22752 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
22754 uint32_t cntr_info_2;
22755 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
22757 if (flags & NDR_SET_VALUES) {
22758 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22760 if (flags & NDR_IN) {
22761 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
22763 ndr_print_ptr(ndr, "servername", r->in.servername);
22765 if (r->in.servername) {
22766 ndr_print_string(ndr, "servername", r->in.servername);
22769 ndr_print_ptr(ndr, "environment", r->in.environment);
22771 if (r->in.environment) {
22772 ndr_print_string(ndr, "environment", r->in.environment);
22775 ndr_print_uint32(ndr, "level", r->in.level);
22776 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22778 if (r->in.buffer) {
22779 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22782 ndr_print_uint32(ndr, "offered", r->in.offered);
22785 if (flags & NDR_OUT) {
22786 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
22788 ndr_print_ptr(ndr, "count", r->out.count);
22790 ndr_print_uint32(ndr, "count", *r->out.count);
22792 ndr_print_ptr(ndr, "info", r->out.info);
22794 ndr_print_ptr(ndr, "info", *r->out.info);
22796 if (*r->out.info) {
22797 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22799 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22801 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22802 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22803 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22811 ndr_print_ptr(ndr, "needed", r->out.needed);
22813 ndr_print_uint32(ndr, "needed", *r->out.needed);
22815 ndr_print_WERROR(ndr, "result", r->out.result);
22821 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22823 if (flags & NDR_IN) {
22824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22825 if (r->in.server) {
22826 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
22832 if (r->in.environment) {
22833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
22836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22840 if (r->in.buffer) {
22841 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22845 if (flags & NDR_OUT) {
22846 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22849 struct ndr_push *_ndr_info;
22850 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22851 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22852 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22853 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22856 if (r->out.needed == NULL) {
22857 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22860 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22862 return NDR_ERR_SUCCESS;
22865 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
22867 uint32_t _ptr_server;
22868 uint32_t _ptr_environment;
22869 uint32_t _ptr_buffer;
22870 uint32_t _ptr_info;
22871 TALLOC_CTX *_mem_save_server_0;
22872 TALLOC_CTX *_mem_save_environment_0;
22873 TALLOC_CTX *_mem_save_buffer_0;
22874 TALLOC_CTX *_mem_save_info_0;
22875 TALLOC_CTX *_mem_save_needed_0;
22876 if (flags & NDR_IN) {
22877 ZERO_STRUCT(r->out);
22879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22881 NDR_PULL_ALLOC(ndr, r->in.server);
22883 r->in.server = NULL;
22885 if (r->in.server) {
22886 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22887 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22888 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22889 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22890 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22891 return 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));
22893 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22894 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
22898 if (_ptr_environment) {
22899 NDR_PULL_ALLOC(ndr, r->in.environment);
22901 r->in.environment = NULL;
22903 if (r->in.environment) {
22904 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
22905 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
22906 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
22907 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
22908 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
22909 return 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));
22911 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
22912 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
22913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
22915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22918 NDR_PULL_ALLOC(ndr, r->in.buffer);
22920 r->in.buffer = NULL;
22922 if (r->in.buffer) {
22923 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22924 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22925 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22926 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22928 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22929 NDR_PULL_ALLOC(ndr, r->out.needed);
22930 ZERO_STRUCTP(r->out.needed);
22932 if (flags & NDR_OUT) {
22933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22935 NDR_PULL_ALLOC(ndr, r->out.info);
22937 r->out.info = NULL;
22940 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22941 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22943 struct ndr_pull *_ndr_info;
22944 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22945 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22946 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
22947 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22949 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22951 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22952 NDR_PULL_ALLOC(ndr, r->out.needed);
22954 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22955 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22958 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22960 return NDR_ERR_SUCCESS;
22963 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
22965 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
22967 if (flags & NDR_SET_VALUES) {
22968 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22970 if (flags & NDR_IN) {
22971 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
22973 ndr_print_ptr(ndr, "server", r->in.server);
22975 if (r->in.server) {
22976 ndr_print_string(ndr, "server", r->in.server);
22979 ndr_print_ptr(ndr, "environment", r->in.environment);
22981 if (r->in.environment) {
22982 ndr_print_string(ndr, "environment", r->in.environment);
22985 ndr_print_uint32(ndr, "level", r->in.level);
22986 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22988 if (r->in.buffer) {
22989 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22992 ndr_print_uint32(ndr, "offered", r->in.offered);
22995 if (flags & NDR_OUT) {
22996 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
22998 ndr_print_ptr(ndr, "info", r->out.info);
23001 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
23002 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
23005 ndr_print_ptr(ndr, "needed", r->out.needed);
23007 ndr_print_uint32(ndr, "needed", *r->out.needed);
23009 ndr_print_WERROR(ndr, "result", r->out.result);
23015 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *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_uint32(ndr, NDR_SCALARS, r->in.level));
23023 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
23024 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23026 if (flags & NDR_OUT) {
23027 if (r->out.job_id == NULL) {
23028 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
23031 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23033 return NDR_ERR_SUCCESS;
23036 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
23038 TALLOC_CTX *_mem_save_handle_0;
23039 TALLOC_CTX *_mem_save_job_id_0;
23040 if (flags & NDR_IN) {
23041 ZERO_STRUCT(r->out);
23043 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23044 NDR_PULL_ALLOC(ndr, r->in.handle);
23046 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23047 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23048 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23050 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23051 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
23052 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
23053 NDR_PULL_ALLOC(ndr, r->out.job_id);
23054 ZERO_STRUCTP(r->out.job_id);
23056 if (flags & NDR_OUT) {
23057 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23058 NDR_PULL_ALLOC(ndr, r->out.job_id);
23060 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
23061 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
23062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
23063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
23064 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23066 return NDR_ERR_SUCCESS;
23069 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
23071 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
23073 if (flags & NDR_SET_VALUES) {
23074 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23076 if (flags & NDR_IN) {
23077 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
23079 ndr_print_ptr(ndr, "handle", r->in.handle);
23081 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23083 ndr_print_uint32(ndr, "level", r->in.level);
23084 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
23085 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
23088 if (flags & NDR_OUT) {
23089 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
23091 ndr_print_ptr(ndr, "job_id", r->out.job_id);
23093 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
23095 ndr_print_WERROR(ndr, "result", r->out.result);
23101 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
23103 if (flags & NDR_IN) {
23104 if (r->in.handle == NULL) {
23105 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23107 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23109 if (flags & NDR_OUT) {
23110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23112 return NDR_ERR_SUCCESS;
23115 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
23117 TALLOC_CTX *_mem_save_handle_0;
23118 if (flags & NDR_IN) {
23119 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23120 NDR_PULL_ALLOC(ndr, r->in.handle);
23122 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23123 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23124 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23127 if (flags & NDR_OUT) {
23128 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23130 return NDR_ERR_SUCCESS;
23133 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
23135 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
23137 if (flags & NDR_SET_VALUES) {
23138 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23140 if (flags & NDR_IN) {
23141 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
23143 ndr_print_ptr(ndr, "handle", r->in.handle);
23145 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23149 if (flags & NDR_OUT) {
23150 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
23152 ndr_print_WERROR(ndr, "result", r->out.result);
23158 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
23160 if (flags & NDR_IN) {
23161 if (r->in.handle == NULL) {
23162 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23164 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23165 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
23168 if (flags & NDR_OUT) {
23169 if (r->out.num_written == NULL) {
23170 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
23173 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23175 return NDR_ERR_SUCCESS;
23178 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
23180 TALLOC_CTX *_mem_save_handle_0;
23181 TALLOC_CTX *_mem_save_num_written_0;
23182 if (flags & NDR_IN) {
23183 ZERO_STRUCT(r->out);
23185 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23186 NDR_PULL_ALLOC(ndr, r->in.handle);
23188 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23189 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23190 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23192 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
23193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
23194 NDR_PULL_ALLOC(ndr, r->out.num_written);
23195 ZERO_STRUCTP(r->out.num_written);
23197 if (flags & NDR_OUT) {
23198 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23199 NDR_PULL_ALLOC(ndr, r->out.num_written);
23201 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
23202 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
23203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
23204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
23205 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23207 return NDR_ERR_SUCCESS;
23210 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
23212 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
23214 if (flags & NDR_SET_VALUES) {
23215 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23217 if (flags & NDR_IN) {
23218 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
23220 ndr_print_ptr(ndr, "handle", r->in.handle);
23222 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23224 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
23225 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
23228 if (flags & NDR_OUT) {
23229 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
23231 ndr_print_ptr(ndr, "num_written", r->out.num_written);
23233 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
23235 ndr_print_WERROR(ndr, "result", r->out.result);
23241 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
23243 if (flags & NDR_IN) {
23244 if (r->in.handle == NULL) {
23245 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23247 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23249 if (flags & NDR_OUT) {
23250 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23252 return NDR_ERR_SUCCESS;
23255 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
23257 TALLOC_CTX *_mem_save_handle_0;
23258 if (flags & NDR_IN) {
23259 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23260 NDR_PULL_ALLOC(ndr, r->in.handle);
23262 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23263 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23264 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23267 if (flags & NDR_OUT) {
23268 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23270 return NDR_ERR_SUCCESS;
23273 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
23275 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
23277 if (flags & NDR_SET_VALUES) {
23278 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23280 if (flags & NDR_IN) {
23281 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
23283 ndr_print_ptr(ndr, "handle", r->in.handle);
23285 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23289 if (flags & NDR_OUT) {
23290 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
23292 ndr_print_WERROR(ndr, "result", r->out.result);
23298 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
23300 if (flags & NDR_IN) {
23301 if (r->in.handle == NULL) {
23302 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23304 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23306 if (flags & NDR_OUT) {
23307 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23309 return NDR_ERR_SUCCESS;
23312 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
23314 TALLOC_CTX *_mem_save_handle_0;
23315 if (flags & NDR_IN) {
23316 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23317 NDR_PULL_ALLOC(ndr, r->in.handle);
23319 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23320 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23321 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23322 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23324 if (flags & NDR_OUT) {
23325 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23327 return NDR_ERR_SUCCESS;
23330 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
23332 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
23334 if (flags & NDR_SET_VALUES) {
23335 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23337 if (flags & NDR_IN) {
23338 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
23340 ndr_print_ptr(ndr, "handle", r->in.handle);
23342 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23346 if (flags & NDR_OUT) {
23347 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
23349 ndr_print_WERROR(ndr, "result", r->out.result);
23355 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
23357 if (flags & NDR_IN) {
23358 if (r->in.handle == NULL) {
23359 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23361 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
23364 if (flags & NDR_OUT) {
23365 if (r->out.data == NULL) {
23366 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23368 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
23369 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
23370 if (r->out._data_size == NULL) {
23371 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
23374 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23376 return NDR_ERR_SUCCESS;
23379 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
23381 TALLOC_CTX *_mem_save_handle_0;
23382 TALLOC_CTX *_mem_save__data_size_0;
23383 if (flags & NDR_IN) {
23384 ZERO_STRUCT(r->out);
23386 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23387 NDR_PULL_ALLOC(ndr, r->in.handle);
23389 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23390 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23391 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23393 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
23394 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
23395 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
23396 NDR_PULL_ALLOC(ndr, r->out._data_size);
23397 ZERO_STRUCTP(r->out._data_size);
23399 if (flags & NDR_OUT) {
23400 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
23401 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23402 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
23404 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
23405 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23406 NDR_PULL_ALLOC(ndr, r->out._data_size);
23408 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
23409 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
23410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
23411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
23412 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23414 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
23417 return NDR_ERR_SUCCESS;
23420 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
23422 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
23424 if (flags & NDR_SET_VALUES) {
23425 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23427 if (flags & NDR_IN) {
23428 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
23430 ndr_print_ptr(ndr, "handle", r->in.handle);
23432 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23434 ndr_print_uint32(ndr, "data_size", r->in.data_size);
23437 if (flags & NDR_OUT) {
23438 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
23440 ndr_print_ptr(ndr, "data", r->out.data);
23442 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
23444 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
23446 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
23448 ndr_print_WERROR(ndr, "result", r->out.result);
23454 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
23456 if (flags & NDR_IN) {
23457 if (r->in.handle == NULL) {
23458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23460 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23462 if (flags & NDR_OUT) {
23463 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23465 return NDR_ERR_SUCCESS;
23468 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
23470 TALLOC_CTX *_mem_save_handle_0;
23471 if (flags & NDR_IN) {
23472 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23473 NDR_PULL_ALLOC(ndr, r->in.handle);
23475 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23476 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23477 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23480 if (flags & NDR_OUT) {
23481 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23483 return NDR_ERR_SUCCESS;
23486 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
23488 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
23490 if (flags & NDR_SET_VALUES) {
23491 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23493 if (flags & NDR_IN) {
23494 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
23496 ndr_print_ptr(ndr, "handle", r->in.handle);
23498 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23502 if (flags & NDR_OUT) {
23503 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
23505 ndr_print_WERROR(ndr, "result", r->out.result);
23511 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
23513 if (flags & NDR_IN) {
23514 if (r->in.handle == NULL) {
23515 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23517 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23519 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23520 if (r->in.buffer) {
23521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23522 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
23524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23526 if (flags & NDR_OUT) {
23527 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
23528 if (r->out.buffer) {
23529 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
23530 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
23532 if (r->out.needed == NULL) {
23533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23536 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23538 return NDR_ERR_SUCCESS;
23541 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
23543 uint32_t _ptr_buffer;
23544 TALLOC_CTX *_mem_save_handle_0;
23545 TALLOC_CTX *_mem_save_buffer_0;
23546 TALLOC_CTX *_mem_save_needed_0;
23547 if (flags & NDR_IN) {
23548 ZERO_STRUCT(r->out);
23550 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23551 NDR_PULL_ALLOC(ndr, r->in.handle);
23553 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23554 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23555 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23558 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23560 NDR_PULL_ALLOC(ndr, r->in.buffer);
23562 r->in.buffer = NULL;
23564 if (r->in.buffer) {
23565 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23566 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23567 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
23568 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
23569 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
23570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23573 NDR_PULL_ALLOC(ndr, r->out.needed);
23574 ZERO_STRUCTP(r->out.needed);
23575 if (r->in.buffer) {
23576 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
23579 if (flags & NDR_OUT) {
23580 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23582 NDR_PULL_ALLOC(ndr, r->out.buffer);
23584 r->out.buffer = NULL;
23586 if (r->out.buffer) {
23587 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23588 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
23589 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
23590 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
23591 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
23592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23594 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23595 NDR_PULL_ALLOC(ndr, r->out.needed);
23597 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23598 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23601 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23602 if (r->out.buffer) {
23603 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
23606 return NDR_ERR_SUCCESS;
23609 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
23611 ndr_print_struct(ndr, name, "spoolss_AddJob");
23613 if (flags & NDR_SET_VALUES) {
23614 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23616 if (flags & NDR_IN) {
23617 ndr_print_struct(ndr, "in", "spoolss_AddJob");
23619 ndr_print_ptr(ndr, "handle", r->in.handle);
23621 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23623 ndr_print_uint32(ndr, "level", r->in.level);
23624 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23626 if (r->in.buffer) {
23627 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
23630 ndr_print_uint32(ndr, "offered", r->in.offered);
23633 if (flags & NDR_OUT) {
23634 ndr_print_struct(ndr, "out", "spoolss_AddJob");
23636 ndr_print_ptr(ndr, "buffer", r->out.buffer);
23638 if (r->out.buffer) {
23639 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
23642 ndr_print_ptr(ndr, "needed", r->out.needed);
23644 ndr_print_uint32(ndr, "needed", *r->out.needed);
23646 ndr_print_WERROR(ndr, "result", r->out.result);
23652 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
23654 if (flags & NDR_IN) {
23655 if (r->in.handle == NULL) {
23656 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23658 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
23661 if (flags & NDR_OUT) {
23662 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23664 return NDR_ERR_SUCCESS;
23667 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
23669 TALLOC_CTX *_mem_save_handle_0;
23670 if (flags & NDR_IN) {
23671 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23672 NDR_PULL_ALLOC(ndr, r->in.handle);
23674 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23675 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23676 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
23680 if (flags & NDR_OUT) {
23681 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23683 return NDR_ERR_SUCCESS;
23686 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
23688 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
23690 if (flags & NDR_SET_VALUES) {
23691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23693 if (flags & NDR_IN) {
23694 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
23696 ndr_print_ptr(ndr, "handle", r->in.handle);
23698 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23700 ndr_print_uint32(ndr, "jobid", r->in.jobid);
23703 if (flags & NDR_OUT) {
23704 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
23706 ndr_print_WERROR(ndr, "result", r->out.result);
23712 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
23714 if (flags & NDR_IN) {
23715 if (r->in.handle == NULL) {
23716 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23718 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23719 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23722 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));
23723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23725 if (flags & NDR_OUT) {
23726 if (r->out.type == NULL) {
23727 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23729 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
23730 if (r->out.data == NULL) {
23731 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23733 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
23734 if (r->out.needed == NULL) {
23735 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23738 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23740 return NDR_ERR_SUCCESS;
23743 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
23745 TALLOC_CTX *_mem_save_handle_0;
23746 TALLOC_CTX *_mem_save_type_0;
23747 TALLOC_CTX *_mem_save_data_0;
23748 TALLOC_CTX *_mem_save_needed_0;
23749 if (flags & NDR_IN) {
23750 ZERO_STRUCT(r->out);
23752 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23753 NDR_PULL_ALLOC(ndr, r->in.handle);
23755 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23756 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23757 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23759 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23760 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23761 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23762 return 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));
23764 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23765 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));
23766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23767 NDR_PULL_ALLOC(ndr, r->out.type);
23768 ZERO_STRUCTP(r->out.type);
23769 NDR_PULL_ALLOC(ndr, r->out.data);
23770 ZERO_STRUCTP(r->out.data);
23771 NDR_PULL_ALLOC(ndr, r->out.needed);
23772 ZERO_STRUCTP(r->out.needed);
23774 if (flags & NDR_OUT) {
23775 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23776 NDR_PULL_ALLOC(ndr, r->out.type);
23778 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23779 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
23780 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
23781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
23782 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23783 NDR_PULL_ALLOC(ndr, r->out.data);
23785 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23786 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23787 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
23788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23789 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23790 NDR_PULL_ALLOC(ndr, r->out.needed);
23792 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23793 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23795 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23796 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23798 return NDR_ERR_SUCCESS;
23801 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
23803 if (flags & NDR_IN) {
23804 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23806 if (flags & NDR_OUT) {
23807 if (r->out.data == NULL) {
23808 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23810 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23811 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23813 return NDR_ERR_SUCCESS;
23816 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
23818 TALLOC_CTX *_mem_save_data_0;
23819 if (flags & NDR_IN) {
23820 ZERO_STRUCT(r->out);
23822 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23823 NDR_PULL_ALLOC(ndr, r->out.data);
23824 ZERO_STRUCTP(r->out.data);
23826 if (flags & NDR_OUT) {
23827 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23828 NDR_PULL_ALLOC(ndr, r->out.data);
23830 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
23831 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
23832 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
23833 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
23836 return NDR_ERR_SUCCESS;
23839 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
23841 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
23843 if (flags & NDR_SET_VALUES) {
23844 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23846 if (flags & NDR_IN) {
23847 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
23849 ndr_print_ptr(ndr, "handle", r->in.handle);
23851 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23853 ndr_print_string(ndr, "value_name", r->in.value_name);
23854 ndr_print_uint32(ndr, "offered", r->in.offered);
23857 if (flags & NDR_OUT) {
23858 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
23860 ndr_print_ptr(ndr, "type", r->out.type);
23862 ndr_print_winreg_Type(ndr, "type", *r->out.type);
23864 ndr_print_ptr(ndr, "data", r->out.data);
23866 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
23867 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
23869 ndr_print_ptr(ndr, "needed", r->out.needed);
23871 ndr_print_uint32(ndr, "needed", *r->out.needed);
23873 ndr_print_WERROR(ndr, "result", r->out.result);
23879 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
23881 if (flags & NDR_IN) {
23882 if (r->in.handle == NULL) {
23883 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23885 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23886 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23887 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23888 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
23889 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));
23890 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23891 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
23892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
23894 if (flags & NDR_OUT) {
23895 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23897 return NDR_ERR_SUCCESS;
23900 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
23902 if (flags & NDR_IN) {
23903 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
23905 if (flags & NDR_OUT) {
23906 if (r->out.data == NULL) {
23907 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23909 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
23910 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
23912 return NDR_ERR_SUCCESS;
23915 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
23917 TALLOC_CTX *_mem_save_handle_0;
23918 if (flags & NDR_IN) {
23919 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23920 NDR_PULL_ALLOC(ndr, r->in.handle);
23922 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23923 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23924 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23926 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
23927 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
23928 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
23929 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
23931 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
23932 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));
23933 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
23935 struct ndr_pull *_ndr_data;
23936 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
23937 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
23938 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
23939 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
23941 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
23943 if (flags & NDR_OUT) {
23944 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23946 return NDR_ERR_SUCCESS;
23949 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
23951 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
23953 if (flags & NDR_SET_VALUES) {
23954 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23956 if (flags & NDR_IN) {
23957 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
23959 ndr_print_ptr(ndr, "handle", r->in.handle);
23961 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23963 ndr_print_string(ndr, "value_name", r->in.value_name);
23964 ndr_print_winreg_Type(ndr, "type", r->in.type);
23965 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
23966 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
23967 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);
23970 if (flags & NDR_OUT) {
23971 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
23973 ndr_print_WERROR(ndr, "result", r->out.result);
23979 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
23981 if (flags & NDR_IN) {
23983 if (flags & NDR_OUT) {
23984 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23986 return NDR_ERR_SUCCESS;
23989 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
23991 if (flags & NDR_IN) {
23993 if (flags & NDR_OUT) {
23994 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23996 return NDR_ERR_SUCCESS;
23999 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
24001 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
24003 if (flags & NDR_SET_VALUES) {
24004 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24006 if (flags & NDR_IN) {
24007 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
24011 if (flags & NDR_OUT) {
24012 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
24014 ndr_print_WERROR(ndr, "result", r->out.result);
24020 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
24022 if (flags & NDR_IN) {
24023 if (r->in.handle == NULL) {
24024 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24026 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24028 if (flags & NDR_OUT) {
24029 if (r->out.handle == NULL) {
24030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24032 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24033 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24035 return NDR_ERR_SUCCESS;
24038 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
24040 TALLOC_CTX *_mem_save_handle_0;
24041 if (flags & NDR_IN) {
24042 ZERO_STRUCT(r->out);
24044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24045 NDR_PULL_ALLOC(ndr, r->in.handle);
24047 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24048 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24049 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24051 NDR_PULL_ALLOC(ndr, r->out.handle);
24052 *r->out.handle = *r->in.handle;
24054 if (flags & NDR_OUT) {
24055 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24056 NDR_PULL_ALLOC(ndr, r->out.handle);
24058 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24059 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24060 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24062 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24064 return NDR_ERR_SUCCESS;
24067 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
24069 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
24071 if (flags & NDR_SET_VALUES) {
24072 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24074 if (flags & NDR_IN) {
24075 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
24077 ndr_print_ptr(ndr, "handle", r->in.handle);
24079 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24083 if (flags & NDR_OUT) {
24084 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
24086 ndr_print_ptr(ndr, "handle", r->out.handle);
24088 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24090 ndr_print_WERROR(ndr, "result", r->out.result);
24096 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
24098 if (flags & NDR_IN) {
24099 if (r->in.handle == NULL) {
24100 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24102 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24104 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24105 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24107 if (flags & NDR_OUT) {
24108 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24110 return NDR_ERR_SUCCESS;
24113 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
24115 TALLOC_CTX *_mem_save_handle_0;
24116 if (flags & NDR_IN) {
24117 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24118 NDR_PULL_ALLOC(ndr, r->in.handle);
24120 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24121 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24122 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24124 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24125 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24126 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24128 if (flags & NDR_OUT) {
24129 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24131 return NDR_ERR_SUCCESS;
24134 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
24136 ndr_print_struct(ndr, name, "spoolss_AddForm");
24138 if (flags & NDR_SET_VALUES) {
24139 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24141 if (flags & NDR_IN) {
24142 ndr_print_struct(ndr, "in", "spoolss_AddForm");
24144 ndr_print_ptr(ndr, "handle", r->in.handle);
24146 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24148 ndr_print_uint32(ndr, "level", r->in.level);
24149 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24150 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24153 if (flags & NDR_OUT) {
24154 ndr_print_struct(ndr, "out", "spoolss_AddForm");
24156 ndr_print_WERROR(ndr, "result", r->out.result);
24162 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
24164 if (flags & NDR_IN) {
24165 if (r->in.handle == NULL) {
24166 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24168 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24172 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));
24174 if (flags & NDR_OUT) {
24175 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24177 return NDR_ERR_SUCCESS;
24180 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
24182 TALLOC_CTX *_mem_save_handle_0;
24183 if (flags & NDR_IN) {
24184 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24185 NDR_PULL_ALLOC(ndr, r->in.handle);
24187 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24188 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24189 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24190 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24191 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24192 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24193 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24194 return 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));
24196 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24197 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));
24199 if (flags & NDR_OUT) {
24200 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24202 return NDR_ERR_SUCCESS;
24205 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
24207 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
24209 if (flags & NDR_SET_VALUES) {
24210 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24212 if (flags & NDR_IN) {
24213 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
24215 ndr_print_ptr(ndr, "handle", r->in.handle);
24217 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24219 ndr_print_string(ndr, "form_name", r->in.form_name);
24222 if (flags & NDR_OUT) {
24223 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
24225 ndr_print_WERROR(ndr, "result", r->out.result);
24231 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
24233 if (flags & NDR_IN) {
24234 if (r->in.handle == NULL) {
24235 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24237 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24238 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24241 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));
24242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24243 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24244 if (r->in.buffer) {
24245 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24249 if (flags & NDR_OUT) {
24250 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24253 struct ndr_push *_ndr_info;
24254 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24255 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
24256 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24257 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24260 if (r->out.needed == NULL) {
24261 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24264 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24266 return NDR_ERR_SUCCESS;
24269 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
24271 uint32_t _ptr_buffer;
24272 uint32_t _ptr_info;
24273 TALLOC_CTX *_mem_save_handle_0;
24274 TALLOC_CTX *_mem_save_buffer_0;
24275 TALLOC_CTX *_mem_save_info_0;
24276 TALLOC_CTX *_mem_save_needed_0;
24277 if (flags & NDR_IN) {
24278 ZERO_STRUCT(r->out);
24280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24281 NDR_PULL_ALLOC(ndr, r->in.handle);
24283 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24284 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24285 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24287 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24288 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24289 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24290 return 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));
24292 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24293 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));
24294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24297 NDR_PULL_ALLOC(ndr, r->in.buffer);
24299 r->in.buffer = NULL;
24301 if (r->in.buffer) {
24302 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24303 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24304 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24308 NDR_PULL_ALLOC(ndr, r->out.needed);
24309 ZERO_STRUCTP(r->out.needed);
24311 if (flags & NDR_OUT) {
24312 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24314 NDR_PULL_ALLOC(ndr, r->out.info);
24316 r->out.info = NULL;
24319 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24320 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24322 struct ndr_pull *_ndr_info;
24323 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24324 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24325 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24326 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24330 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24331 NDR_PULL_ALLOC(ndr, r->out.needed);
24333 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24334 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24337 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24339 return NDR_ERR_SUCCESS;
24342 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
24344 ndr_print_struct(ndr, name, "spoolss_GetForm");
24346 if (flags & NDR_SET_VALUES) {
24347 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24349 if (flags & NDR_IN) {
24350 ndr_print_struct(ndr, "in", "spoolss_GetForm");
24352 ndr_print_ptr(ndr, "handle", r->in.handle);
24354 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24356 ndr_print_string(ndr, "form_name", r->in.form_name);
24357 ndr_print_uint32(ndr, "level", r->in.level);
24358 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24360 if (r->in.buffer) {
24361 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24364 ndr_print_uint32(ndr, "offered", r->in.offered);
24367 if (flags & NDR_OUT) {
24368 ndr_print_struct(ndr, "out", "spoolss_GetForm");
24370 ndr_print_ptr(ndr, "info", r->out.info);
24373 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24374 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
24377 ndr_print_ptr(ndr, "needed", r->out.needed);
24379 ndr_print_uint32(ndr, "needed", *r->out.needed);
24381 ndr_print_WERROR(ndr, "result", r->out.result);
24387 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
24389 if (flags & NDR_IN) {
24390 if (r->in.handle == NULL) {
24391 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24393 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24394 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24395 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24396 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
24397 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));
24398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24399 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
24400 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24402 if (flags & NDR_OUT) {
24403 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24405 return NDR_ERR_SUCCESS;
24408 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
24410 TALLOC_CTX *_mem_save_handle_0;
24411 if (flags & NDR_IN) {
24412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24413 NDR_PULL_ALLOC(ndr, r->in.handle);
24415 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24416 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24417 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24419 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
24420 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
24421 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
24422 return 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));
24424 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
24425 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));
24426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24427 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
24428 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24430 if (flags & NDR_OUT) {
24431 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24433 return NDR_ERR_SUCCESS;
24436 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
24438 ndr_print_struct(ndr, name, "spoolss_SetForm");
24440 if (flags & NDR_SET_VALUES) {
24441 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24443 if (flags & NDR_IN) {
24444 ndr_print_struct(ndr, "in", "spoolss_SetForm");
24446 ndr_print_ptr(ndr, "handle", r->in.handle);
24448 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24450 ndr_print_string(ndr, "form_name", r->in.form_name);
24451 ndr_print_uint32(ndr, "level", r->in.level);
24452 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
24453 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
24456 if (flags & NDR_OUT) {
24457 ndr_print_struct(ndr, "out", "spoolss_SetForm");
24459 ndr_print_WERROR(ndr, "result", r->out.result);
24465 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
24467 if (flags & NDR_IN) {
24468 if (r->in.handle == NULL) {
24469 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24471 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24473 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24474 if (r->in.buffer) {
24475 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24479 if (flags & NDR_OUT) {
24480 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24482 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24484 if (r->out.needed == NULL) {
24485 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24488 if (r->out.count == NULL) {
24489 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24492 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24494 return NDR_ERR_SUCCESS;
24497 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
24499 uint32_t _ptr_buffer;
24500 uint32_t _ptr_info;
24501 TALLOC_CTX *_mem_save_handle_0;
24502 TALLOC_CTX *_mem_save_buffer_0;
24503 TALLOC_CTX *_mem_save_info_0;
24504 TALLOC_CTX *_mem_save_needed_0;
24505 TALLOC_CTX *_mem_save_count_0;
24506 if (flags & NDR_IN) {
24507 ZERO_STRUCT(r->out);
24509 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24510 NDR_PULL_ALLOC(ndr, r->in.handle);
24512 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24513 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24514 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24515 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24516 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24519 NDR_PULL_ALLOC(ndr, r->in.buffer);
24521 r->in.buffer = NULL;
24523 if (r->in.buffer) {
24524 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24525 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24526 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24530 NDR_PULL_ALLOC(ndr, r->out.needed);
24531 ZERO_STRUCTP(r->out.needed);
24532 NDR_PULL_ALLOC(ndr, r->out.count);
24533 ZERO_STRUCTP(r->out.count);
24535 if (flags & NDR_OUT) {
24536 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24538 NDR_PULL_ALLOC(ndr, r->out.info);
24540 r->out.info = NULL;
24543 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24544 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24545 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24548 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24549 NDR_PULL_ALLOC(ndr, r->out.needed);
24551 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24552 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24553 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24556 NDR_PULL_ALLOC(ndr, r->out.count);
24558 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24559 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24562 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24564 return NDR_ERR_SUCCESS;
24567 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
24569 uint32_t cntr_info_0;
24570 if (flags & NDR_IN) {
24571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24574 if (flags & NDR_OUT) {
24575 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24576 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24577 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24579 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24580 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24583 return NDR_ERR_SUCCESS;
24586 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
24588 uint32_t cntr_info_0;
24589 TALLOC_CTX *_mem_save_info_0;
24590 if (flags & NDR_IN) {
24591 ZERO_STRUCT(r->out);
24593 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24596 if (flags & NDR_OUT) {
24597 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24598 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24599 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24600 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24601 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24602 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24604 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24605 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24609 return NDR_ERR_SUCCESS;
24612 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
24614 uint32_t cntr_info_2;
24615 ndr_print_struct(ndr, name, "spoolss_EnumForms");
24617 if (flags & NDR_SET_VALUES) {
24618 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24620 if (flags & NDR_IN) {
24621 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
24623 ndr_print_ptr(ndr, "handle", r->in.handle);
24625 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24627 ndr_print_uint32(ndr, "level", r->in.level);
24628 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24630 if (r->in.buffer) {
24631 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24634 ndr_print_uint32(ndr, "offered", r->in.offered);
24637 if (flags & NDR_OUT) {
24638 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
24640 ndr_print_ptr(ndr, "count", r->out.count);
24642 ndr_print_uint32(ndr, "count", *r->out.count);
24644 ndr_print_ptr(ndr, "info", r->out.info);
24646 ndr_print_ptr(ndr, "info", *r->out.info);
24648 if (*r->out.info) {
24649 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24651 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24653 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24654 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24655 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24663 ndr_print_ptr(ndr, "needed", r->out.needed);
24665 ndr_print_uint32(ndr, "needed", *r->out.needed);
24667 ndr_print_WERROR(ndr, "result", r->out.result);
24673 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
24675 if (flags & NDR_IN) {
24676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24677 if (r->in.servername) {
24678 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24681 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24684 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24685 if (r->in.buffer) {
24686 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24690 if (flags & NDR_OUT) {
24691 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24693 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24695 if (r->out.needed == NULL) {
24696 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24699 if (r->out.count == NULL) {
24700 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24703 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24705 return NDR_ERR_SUCCESS;
24708 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
24710 uint32_t _ptr_servername;
24711 uint32_t _ptr_buffer;
24712 uint32_t _ptr_info;
24713 TALLOC_CTX *_mem_save_servername_0;
24714 TALLOC_CTX *_mem_save_buffer_0;
24715 TALLOC_CTX *_mem_save_info_0;
24716 TALLOC_CTX *_mem_save_needed_0;
24717 TALLOC_CTX *_mem_save_count_0;
24718 if (flags & NDR_IN) {
24719 ZERO_STRUCT(r->out);
24721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24722 if (_ptr_servername) {
24723 NDR_PULL_ALLOC(ndr, r->in.servername);
24725 r->in.servername = NULL;
24727 if (r->in.servername) {
24728 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24729 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24730 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24731 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24732 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24733 return 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));
24735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24736 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24742 NDR_PULL_ALLOC(ndr, r->in.buffer);
24744 r->in.buffer = NULL;
24746 if (r->in.buffer) {
24747 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24748 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24749 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24753 NDR_PULL_ALLOC(ndr, r->out.needed);
24754 ZERO_STRUCTP(r->out.needed);
24755 NDR_PULL_ALLOC(ndr, r->out.count);
24756 ZERO_STRUCTP(r->out.count);
24758 if (flags & NDR_OUT) {
24759 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24761 NDR_PULL_ALLOC(ndr, r->out.info);
24763 r->out.info = NULL;
24766 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24767 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24768 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24771 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24772 NDR_PULL_ALLOC(ndr, r->out.needed);
24774 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24775 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24778 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24779 NDR_PULL_ALLOC(ndr, r->out.count);
24781 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24782 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24785 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24787 return NDR_ERR_SUCCESS;
24790 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
24792 uint32_t cntr_info_0;
24793 if (flags & NDR_IN) {
24794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24797 if (flags & NDR_OUT) {
24798 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24799 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24800 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24802 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24803 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24806 return NDR_ERR_SUCCESS;
24809 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
24811 uint32_t cntr_info_0;
24812 TALLOC_CTX *_mem_save_info_0;
24813 if (flags & NDR_IN) {
24814 ZERO_STRUCT(r->out);
24816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24817 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24819 if (flags & NDR_OUT) {
24820 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
24821 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24822 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24823 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24824 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24825 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24827 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
24828 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24832 return NDR_ERR_SUCCESS;
24835 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
24837 uint32_t cntr_info_2;
24838 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
24840 if (flags & NDR_SET_VALUES) {
24841 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24843 if (flags & NDR_IN) {
24844 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
24846 ndr_print_ptr(ndr, "servername", r->in.servername);
24848 if (r->in.servername) {
24849 ndr_print_string(ndr, "servername", r->in.servername);
24852 ndr_print_uint32(ndr, "level", r->in.level);
24853 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24855 if (r->in.buffer) {
24856 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24859 ndr_print_uint32(ndr, "offered", r->in.offered);
24862 if (flags & NDR_OUT) {
24863 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
24865 ndr_print_ptr(ndr, "count", r->out.count);
24867 ndr_print_uint32(ndr, "count", *r->out.count);
24869 ndr_print_ptr(ndr, "info", r->out.info);
24871 ndr_print_ptr(ndr, "info", *r->out.info);
24873 if (*r->out.info) {
24874 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24876 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
24878 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
24879 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24880 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24888 ndr_print_ptr(ndr, "needed", r->out.needed);
24890 ndr_print_uint32(ndr, "needed", *r->out.needed);
24892 ndr_print_WERROR(ndr, "result", r->out.result);
24898 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
24900 if (flags & NDR_IN) {
24901 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
24902 if (r->in.servername) {
24903 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24904 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24905 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
24906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24909 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24910 if (r->in.buffer) {
24911 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24915 if (flags & NDR_OUT) {
24916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24918 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24920 if (r->out.needed == NULL) {
24921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24924 if (r->out.count == NULL) {
24925 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24930 return NDR_ERR_SUCCESS;
24933 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
24935 uint32_t _ptr_servername;
24936 uint32_t _ptr_buffer;
24937 uint32_t _ptr_info;
24938 TALLOC_CTX *_mem_save_servername_0;
24939 TALLOC_CTX *_mem_save_buffer_0;
24940 TALLOC_CTX *_mem_save_info_0;
24941 TALLOC_CTX *_mem_save_needed_0;
24942 TALLOC_CTX *_mem_save_count_0;
24943 if (flags & NDR_IN) {
24944 ZERO_STRUCT(r->out);
24946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
24947 if (_ptr_servername) {
24948 NDR_PULL_ALLOC(ndr, r->in.servername);
24950 r->in.servername = NULL;
24952 if (r->in.servername) {
24953 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24954 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
24955 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
24956 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
24957 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
24958 return 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));
24960 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
24961 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
24962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
24964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24967 NDR_PULL_ALLOC(ndr, r->in.buffer);
24969 r->in.buffer = NULL;
24971 if (r->in.buffer) {
24972 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24973 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24974 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24978 NDR_PULL_ALLOC(ndr, r->out.needed);
24979 ZERO_STRUCTP(r->out.needed);
24980 NDR_PULL_ALLOC(ndr, r->out.count);
24981 ZERO_STRUCTP(r->out.count);
24983 if (flags & NDR_OUT) {
24984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24986 NDR_PULL_ALLOC(ndr, r->out.info);
24988 r->out.info = NULL;
24991 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24992 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24993 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24997 NDR_PULL_ALLOC(ndr, r->out.needed);
24999 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25000 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25004 NDR_PULL_ALLOC(ndr, r->out.count);
25006 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25007 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25008 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25010 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25012 return NDR_ERR_SUCCESS;
25015 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
25017 uint32_t cntr_info_0;
25018 if (flags & NDR_IN) {
25019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25022 if (flags & NDR_OUT) {
25023 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25024 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25025 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25027 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25028 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25031 return NDR_ERR_SUCCESS;
25034 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
25036 uint32_t cntr_info_0;
25037 TALLOC_CTX *_mem_save_info_0;
25038 if (flags & NDR_IN) {
25039 ZERO_STRUCT(r->out);
25041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25044 if (flags & NDR_OUT) {
25045 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
25046 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25047 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25048 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25049 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25050 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25052 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25053 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25057 return NDR_ERR_SUCCESS;
25060 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
25062 uint32_t cntr_info_2;
25063 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
25065 if (flags & NDR_SET_VALUES) {
25066 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25068 if (flags & NDR_IN) {
25069 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
25071 ndr_print_ptr(ndr, "servername", r->in.servername);
25073 if (r->in.servername) {
25074 ndr_print_string(ndr, "servername", r->in.servername);
25077 ndr_print_uint32(ndr, "level", r->in.level);
25078 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25080 if (r->in.buffer) {
25081 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25084 ndr_print_uint32(ndr, "offered", r->in.offered);
25087 if (flags & NDR_OUT) {
25088 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
25090 ndr_print_ptr(ndr, "count", r->out.count);
25092 ndr_print_uint32(ndr, "count", *r->out.count);
25094 ndr_print_ptr(ndr, "info", r->out.info);
25096 ndr_print_ptr(ndr, "info", *r->out.info);
25098 if (*r->out.info) {
25099 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25101 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
25103 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
25104 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25105 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25113 ndr_print_ptr(ndr, "needed", r->out.needed);
25115 ndr_print_uint32(ndr, "needed", *r->out.needed);
25117 ndr_print_WERROR(ndr, "result", r->out.result);
25123 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
25125 if (flags & NDR_IN) {
25126 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
25127 if (r->in.server_name) {
25128 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25129 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
25131 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));
25133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
25134 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
25137 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));
25139 if (flags & NDR_OUT) {
25140 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25142 return NDR_ERR_SUCCESS;
25145 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
25147 uint32_t _ptr_server_name;
25148 TALLOC_CTX *_mem_save_server_name_0;
25149 if (flags & NDR_IN) {
25150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
25151 if (_ptr_server_name) {
25152 NDR_PULL_ALLOC(ndr, r->in.server_name);
25154 r->in.server_name = NULL;
25156 if (r->in.server_name) {
25157 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25158 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
25159 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
25160 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
25161 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
25162 return 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));
25164 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
25165 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));
25166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
25168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
25169 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
25170 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
25171 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
25172 return 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));
25174 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
25175 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));
25177 if (flags & NDR_OUT) {
25178 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25180 return NDR_ERR_SUCCESS;
25183 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
25185 ndr_print_struct(ndr, name, "spoolss_AddPort");
25187 if (flags & NDR_SET_VALUES) {
25188 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25190 if (flags & NDR_IN) {
25191 ndr_print_struct(ndr, "in", "spoolss_AddPort");
25193 ndr_print_ptr(ndr, "server_name", r->in.server_name);
25195 if (r->in.server_name) {
25196 ndr_print_string(ndr, "server_name", r->in.server_name);
25199 ndr_print_uint32(ndr, "unknown", r->in.unknown);
25200 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
25203 if (flags & NDR_OUT) {
25204 ndr_print_struct(ndr, "out", "spoolss_AddPort");
25206 ndr_print_WERROR(ndr, "result", r->out.result);
25212 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
25214 if (flags & NDR_IN) {
25216 if (flags & NDR_OUT) {
25217 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25219 return NDR_ERR_SUCCESS;
25222 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
25224 if (flags & NDR_IN) {
25226 if (flags & NDR_OUT) {
25227 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25229 return NDR_ERR_SUCCESS;
25232 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
25234 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
25236 if (flags & NDR_SET_VALUES) {
25237 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25239 if (flags & NDR_IN) {
25240 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
25244 if (flags & NDR_OUT) {
25245 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
25247 ndr_print_WERROR(ndr, "result", r->out.result);
25253 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
25255 if (flags & NDR_IN) {
25257 if (flags & NDR_OUT) {
25258 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25260 return NDR_ERR_SUCCESS;
25263 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
25265 if (flags & NDR_IN) {
25267 if (flags & NDR_OUT) {
25268 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25270 return NDR_ERR_SUCCESS;
25273 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
25275 ndr_print_struct(ndr, name, "spoolss_DeletePort");
25277 if (flags & NDR_SET_VALUES) {
25278 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25280 if (flags & NDR_IN) {
25281 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
25285 if (flags & NDR_OUT) {
25286 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
25288 ndr_print_WERROR(ndr, "result", r->out.result);
25294 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
25296 if (flags & NDR_IN) {
25297 if (r->in.handle == NULL) {
25298 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25300 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25301 if (r->in.devmode_ctr == NULL) {
25302 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25304 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25306 if (flags & NDR_OUT) {
25307 if (r->out.gdi_handle == NULL) {
25308 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25310 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25311 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25313 return NDR_ERR_SUCCESS;
25316 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
25318 TALLOC_CTX *_mem_save_handle_0;
25319 TALLOC_CTX *_mem_save_gdi_handle_0;
25320 TALLOC_CTX *_mem_save_devmode_ctr_0;
25321 if (flags & NDR_IN) {
25322 ZERO_STRUCT(r->out);
25324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25325 NDR_PULL_ALLOC(ndr, r->in.handle);
25327 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25328 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25329 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25331 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25332 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25334 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25335 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25336 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25338 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25339 ZERO_STRUCTP(r->out.gdi_handle);
25341 if (flags & NDR_OUT) {
25342 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25343 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25345 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25346 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25347 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25349 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25351 return NDR_ERR_SUCCESS;
25354 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
25356 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
25358 if (flags & NDR_SET_VALUES) {
25359 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25361 if (flags & NDR_IN) {
25362 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
25364 ndr_print_ptr(ndr, "handle", r->in.handle);
25366 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25368 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25370 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25374 if (flags & NDR_OUT) {
25375 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
25377 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25379 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25381 ndr_print_WERROR(ndr, "result", r->out.result);
25387 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25389 if (flags & NDR_IN) {
25391 if (flags & NDR_OUT) {
25392 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25394 return NDR_ERR_SUCCESS;
25397 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
25399 if (flags & NDR_IN) {
25401 if (flags & NDR_OUT) {
25402 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25404 return NDR_ERR_SUCCESS;
25407 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
25409 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
25411 if (flags & NDR_SET_VALUES) {
25412 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25414 if (flags & NDR_IN) {
25415 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
25419 if (flags & NDR_OUT) {
25420 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
25422 ndr_print_WERROR(ndr, "result", r->out.result);
25428 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
25430 if (flags & NDR_IN) {
25431 if (r->in.gdi_handle == NULL) {
25432 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25434 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25436 if (flags & NDR_OUT) {
25437 if (r->out.gdi_handle == NULL) {
25438 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25440 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25441 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25443 return NDR_ERR_SUCCESS;
25446 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
25448 TALLOC_CTX *_mem_save_gdi_handle_0;
25449 if (flags & NDR_IN) {
25450 ZERO_STRUCT(r->out);
25452 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25453 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
25455 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25456 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25457 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
25458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25459 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25460 *r->out.gdi_handle = *r->in.gdi_handle;
25462 if (flags & NDR_OUT) {
25463 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25464 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
25466 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25467 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
25468 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
25469 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
25470 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25472 return NDR_ERR_SUCCESS;
25475 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
25477 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
25479 if (flags & NDR_SET_VALUES) {
25480 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25482 if (flags & NDR_IN) {
25483 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
25485 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
25487 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
25491 if (flags & NDR_OUT) {
25492 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
25494 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
25496 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
25498 ndr_print_WERROR(ndr, "result", r->out.result);
25504 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
25506 if (flags & NDR_IN) {
25508 if (flags & NDR_OUT) {
25509 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25511 return NDR_ERR_SUCCESS;
25514 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
25516 if (flags & NDR_IN) {
25518 if (flags & NDR_OUT) {
25519 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25521 return NDR_ERR_SUCCESS;
25524 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
25526 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
25528 if (flags & NDR_SET_VALUES) {
25529 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25531 if (flags & NDR_IN) {
25532 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
25536 if (flags & NDR_OUT) {
25537 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
25539 ndr_print_WERROR(ndr, "result", r->out.result);
25545 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
25547 if (flags & NDR_IN) {
25549 if (flags & NDR_OUT) {
25550 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25552 return NDR_ERR_SUCCESS;
25555 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
25557 if (flags & NDR_IN) {
25559 if (flags & NDR_OUT) {
25560 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25562 return NDR_ERR_SUCCESS;
25565 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
25567 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
25569 if (flags & NDR_SET_VALUES) {
25570 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25572 if (flags & NDR_IN) {
25573 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
25577 if (flags & NDR_OUT) {
25578 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
25580 ndr_print_WERROR(ndr, "result", r->out.result);
25586 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
25588 if (flags & NDR_IN) {
25590 if (flags & NDR_OUT) {
25591 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25593 return NDR_ERR_SUCCESS;
25596 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
25598 if (flags & NDR_IN) {
25600 if (flags & NDR_OUT) {
25601 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25603 return NDR_ERR_SUCCESS;
25606 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
25608 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
25610 if (flags & NDR_SET_VALUES) {
25611 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25613 if (flags & NDR_IN) {
25614 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
25618 if (flags & NDR_OUT) {
25619 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
25621 ndr_print_WERROR(ndr, "result", r->out.result);
25627 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
25629 if (flags & NDR_IN) {
25631 if (flags & NDR_OUT) {
25632 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25634 return NDR_ERR_SUCCESS;
25637 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
25639 if (flags & NDR_IN) {
25641 if (flags & NDR_OUT) {
25642 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25644 return NDR_ERR_SUCCESS;
25647 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
25649 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
25651 if (flags & NDR_SET_VALUES) {
25652 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25654 if (flags & NDR_IN) {
25655 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
25659 if (flags & NDR_OUT) {
25660 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
25662 ndr_print_WERROR(ndr, "result", r->out.result);
25668 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
25670 if (flags & NDR_IN) {
25672 if (flags & NDR_OUT) {
25673 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25675 return NDR_ERR_SUCCESS;
25678 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
25680 if (flags & NDR_IN) {
25682 if (flags & NDR_OUT) {
25683 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25685 return NDR_ERR_SUCCESS;
25688 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
25690 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
25692 if (flags & NDR_SET_VALUES) {
25693 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25695 if (flags & NDR_IN) {
25696 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
25700 if (flags & NDR_OUT) {
25701 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
25703 ndr_print_WERROR(ndr, "result", r->out.result);
25709 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
25711 if (flags & NDR_IN) {
25713 if (flags & NDR_OUT) {
25714 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25716 return NDR_ERR_SUCCESS;
25719 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
25721 if (flags & NDR_IN) {
25723 if (flags & NDR_OUT) {
25724 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25726 return NDR_ERR_SUCCESS;
25729 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
25731 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
25733 if (flags & NDR_SET_VALUES) {
25734 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25736 if (flags & NDR_IN) {
25737 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
25741 if (flags & NDR_OUT) {
25742 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
25744 ndr_print_WERROR(ndr, "result", r->out.result);
25750 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
25752 if (flags & NDR_IN) {
25754 if (flags & NDR_OUT) {
25755 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25757 return NDR_ERR_SUCCESS;
25760 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
25762 if (flags & NDR_IN) {
25764 if (flags & NDR_OUT) {
25765 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25767 return NDR_ERR_SUCCESS;
25770 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
25772 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
25774 if (flags & NDR_SET_VALUES) {
25775 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25777 if (flags & NDR_IN) {
25778 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
25782 if (flags & NDR_OUT) {
25783 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
25785 ndr_print_WERROR(ndr, "result", r->out.result);
25791 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
25793 if (flags & NDR_IN) {
25795 if (flags & NDR_OUT) {
25796 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25798 return NDR_ERR_SUCCESS;
25801 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
25803 if (flags & NDR_IN) {
25805 if (flags & NDR_OUT) {
25806 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25808 return NDR_ERR_SUCCESS;
25811 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
25813 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
25815 if (flags & NDR_SET_VALUES) {
25816 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25818 if (flags & NDR_IN) {
25819 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
25823 if (flags & NDR_OUT) {
25824 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
25826 ndr_print_WERROR(ndr, "result", r->out.result);
25832 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
25834 if (flags & NDR_IN) {
25835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25836 if (r->in.servername) {
25837 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25838 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25840 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
25843 if (r->in.print_processor_name) {
25844 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25846 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
25847 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));
25849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25850 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25851 if (r->in.buffer) {
25852 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25856 if (flags & NDR_OUT) {
25857 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25859 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25861 if (r->out.needed == NULL) {
25862 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25865 if (r->out.count == NULL) {
25866 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25869 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25871 return NDR_ERR_SUCCESS;
25874 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
25876 uint32_t _ptr_servername;
25877 uint32_t _ptr_print_processor_name;
25878 uint32_t _ptr_buffer;
25879 uint32_t _ptr_info;
25880 TALLOC_CTX *_mem_save_servername_0;
25881 TALLOC_CTX *_mem_save_print_processor_name_0;
25882 TALLOC_CTX *_mem_save_buffer_0;
25883 TALLOC_CTX *_mem_save_info_0;
25884 TALLOC_CTX *_mem_save_needed_0;
25885 TALLOC_CTX *_mem_save_count_0;
25886 if (flags & NDR_IN) {
25887 ZERO_STRUCT(r->out);
25889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
25890 if (_ptr_servername) {
25891 NDR_PULL_ALLOC(ndr, r->in.servername);
25893 r->in.servername = NULL;
25895 if (r->in.servername) {
25896 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25897 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
25898 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
25899 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
25900 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
25901 return 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));
25903 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
25904 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
25905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
25907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
25908 if (_ptr_print_processor_name) {
25909 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
25911 r->in.print_processor_name = NULL;
25913 if (r->in.print_processor_name) {
25914 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
25915 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
25916 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
25917 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
25918 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
25919 return 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));
25921 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
25922 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));
25923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
25925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25928 NDR_PULL_ALLOC(ndr, r->in.buffer);
25930 r->in.buffer = NULL;
25932 if (r->in.buffer) {
25933 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25934 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25935 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25939 NDR_PULL_ALLOC(ndr, r->out.needed);
25940 ZERO_STRUCTP(r->out.needed);
25941 NDR_PULL_ALLOC(ndr, r->out.count);
25942 ZERO_STRUCTP(r->out.count);
25944 if (flags & NDR_OUT) {
25945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25947 NDR_PULL_ALLOC(ndr, r->out.info);
25949 r->out.info = NULL;
25952 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25953 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25954 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25957 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25958 NDR_PULL_ALLOC(ndr, r->out.needed);
25960 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25961 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25965 NDR_PULL_ALLOC(ndr, r->out.count);
25967 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25968 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25973 return NDR_ERR_SUCCESS;
25976 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
25978 uint32_t cntr_info_0;
25979 if (flags & NDR_IN) {
25980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25983 if (flags & NDR_OUT) {
25984 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25985 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25986 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25988 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
25989 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25992 return NDR_ERR_SUCCESS;
25995 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
25997 uint32_t cntr_info_0;
25998 TALLOC_CTX *_mem_save_info_0;
25999 if (flags & NDR_IN) {
26000 ZERO_STRUCT(r->out);
26002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26005 if (flags & NDR_OUT) {
26006 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
26007 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26008 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26009 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26010 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26011 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26013 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
26014 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26018 return NDR_ERR_SUCCESS;
26021 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
26023 uint32_t cntr_info_2;
26024 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
26026 if (flags & NDR_SET_VALUES) {
26027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26029 if (flags & NDR_IN) {
26030 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
26032 ndr_print_ptr(ndr, "servername", r->in.servername);
26034 if (r->in.servername) {
26035 ndr_print_string(ndr, "servername", r->in.servername);
26038 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
26040 if (r->in.print_processor_name) {
26041 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
26044 ndr_print_uint32(ndr, "level", r->in.level);
26045 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26047 if (r->in.buffer) {
26048 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26051 ndr_print_uint32(ndr, "offered", r->in.offered);
26054 if (flags & NDR_OUT) {
26055 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
26057 ndr_print_ptr(ndr, "count", r->out.count);
26059 ndr_print_uint32(ndr, "count", *r->out.count);
26061 ndr_print_ptr(ndr, "info", r->out.info);
26063 ndr_print_ptr(ndr, "info", *r->out.info);
26065 if (*r->out.info) {
26066 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
26068 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
26070 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
26071 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
26072 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
26080 ndr_print_ptr(ndr, "needed", r->out.needed);
26082 ndr_print_uint32(ndr, "needed", *r->out.needed);
26084 ndr_print_WERROR(ndr, "result", r->out.result);
26090 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
26092 if (flags & NDR_IN) {
26093 if (r->in.handle == NULL) {
26094 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26096 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
26098 if (r->in.data_type) {
26099 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26100 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26101 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
26102 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));
26104 if (r->in.devmode_ctr == NULL) {
26105 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26107 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26109 if (flags & NDR_OUT) {
26110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26112 return NDR_ERR_SUCCESS;
26115 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
26117 uint32_t _ptr_data_type;
26118 TALLOC_CTX *_mem_save_handle_0;
26119 TALLOC_CTX *_mem_save_data_type_0;
26120 TALLOC_CTX *_mem_save_devmode_ctr_0;
26121 if (flags & NDR_IN) {
26122 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26123 NDR_PULL_ALLOC(ndr, r->in.handle);
26125 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26126 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26127 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
26130 if (_ptr_data_type) {
26131 NDR_PULL_ALLOC(ndr, r->in.data_type);
26133 r->in.data_type = NULL;
26135 if (r->in.data_type) {
26136 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26137 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
26138 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
26139 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
26140 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
26141 return 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));
26143 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
26144 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));
26145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
26147 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26148 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
26150 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26151 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
26152 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
26153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26155 if (flags & NDR_OUT) {
26156 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26158 return NDR_ERR_SUCCESS;
26161 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
26163 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
26165 if (flags & NDR_SET_VALUES) {
26166 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26168 if (flags & NDR_IN) {
26169 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
26171 ndr_print_ptr(ndr, "handle", r->in.handle);
26173 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26175 ndr_print_ptr(ndr, "data_type", r->in.data_type);
26177 if (r->in.data_type) {
26178 ndr_print_string(ndr, "data_type", r->in.data_type);
26181 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
26183 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
26187 if (flags & NDR_OUT) {
26188 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
26190 ndr_print_WERROR(ndr, "result", r->out.result);
26196 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
26198 if (flags & NDR_IN) {
26199 if (r->in.handle == NULL) {
26200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26202 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
26204 if (r->in.architecture) {
26205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26206 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26207 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26208 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26211 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26212 if (r->in.buffer) {
26213 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
26217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
26219 if (flags & NDR_OUT) {
26220 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26223 struct ndr_push *_ndr_info;
26224 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26225 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26226 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26227 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26230 if (r->out.needed == NULL) {
26231 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26234 if (r->out.server_major_version == NULL) {
26235 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
26238 if (r->out.server_minor_version == NULL) {
26239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
26242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26244 return NDR_ERR_SUCCESS;
26247 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
26249 uint32_t _ptr_architecture;
26250 uint32_t _ptr_buffer;
26251 uint32_t _ptr_info;
26252 TALLOC_CTX *_mem_save_handle_0;
26253 TALLOC_CTX *_mem_save_architecture_0;
26254 TALLOC_CTX *_mem_save_buffer_0;
26255 TALLOC_CTX *_mem_save_info_0;
26256 TALLOC_CTX *_mem_save_needed_0;
26257 TALLOC_CTX *_mem_save_server_major_version_0;
26258 TALLOC_CTX *_mem_save_server_minor_version_0;
26259 if (flags & NDR_IN) {
26260 ZERO_STRUCT(r->out);
26262 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26263 NDR_PULL_ALLOC(ndr, r->in.handle);
26265 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26266 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26267 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
26270 if (_ptr_architecture) {
26271 NDR_PULL_ALLOC(ndr, r->in.architecture);
26273 r->in.architecture = NULL;
26275 if (r->in.architecture) {
26276 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
26277 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
26278 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26279 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26280 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26281 return 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));
26283 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26284 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
26287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26290 NDR_PULL_ALLOC(ndr, r->in.buffer);
26292 r->in.buffer = NULL;
26294 if (r->in.buffer) {
26295 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26296 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26297 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
26302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
26303 NDR_PULL_ALLOC(ndr, r->out.needed);
26304 ZERO_STRUCTP(r->out.needed);
26305 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26306 ZERO_STRUCTP(r->out.server_major_version);
26307 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26308 ZERO_STRUCTP(r->out.server_minor_version);
26310 if (flags & NDR_OUT) {
26311 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26313 NDR_PULL_ALLOC(ndr, r->out.info);
26315 r->out.info = NULL;
26318 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26319 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26321 struct ndr_pull *_ndr_info;
26322 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26323 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26324 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26325 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26329 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26330 NDR_PULL_ALLOC(ndr, r->out.needed);
26332 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26333 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26336 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26337 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
26339 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26340 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
26341 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
26342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
26343 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26344 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
26346 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
26347 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
26348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
26349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
26350 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26352 return NDR_ERR_SUCCESS;
26355 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
26357 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
26359 if (flags & NDR_SET_VALUES) {
26360 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26362 if (flags & NDR_IN) {
26363 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
26365 ndr_print_ptr(ndr, "handle", r->in.handle);
26367 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26369 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26371 if (r->in.architecture) {
26372 ndr_print_string(ndr, "architecture", r->in.architecture);
26375 ndr_print_uint32(ndr, "level", r->in.level);
26376 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26378 if (r->in.buffer) {
26379 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26382 ndr_print_uint32(ndr, "offered", r->in.offered);
26383 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
26384 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
26387 if (flags & NDR_OUT) {
26388 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
26390 ndr_print_ptr(ndr, "info", r->out.info);
26393 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26394 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26397 ndr_print_ptr(ndr, "needed", r->out.needed);
26399 ndr_print_uint32(ndr, "needed", *r->out.needed);
26401 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
26403 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
26405 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
26407 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
26409 ndr_print_WERROR(ndr, "result", r->out.result);
26415 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26417 if (flags & NDR_IN) {
26419 if (flags & NDR_OUT) {
26420 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26422 return NDR_ERR_SUCCESS;
26425 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
26427 if (flags & NDR_IN) {
26429 if (flags & NDR_OUT) {
26430 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26432 return NDR_ERR_SUCCESS;
26435 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
26437 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
26439 if (flags & NDR_SET_VALUES) {
26440 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26442 if (flags & NDR_IN) {
26443 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
26447 if (flags & NDR_OUT) {
26448 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
26450 ndr_print_WERROR(ndr, "result", r->out.result);
26456 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26458 if (flags & NDR_IN) {
26460 if (flags & NDR_OUT) {
26461 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26463 return NDR_ERR_SUCCESS;
26466 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
26468 if (flags & NDR_IN) {
26470 if (flags & NDR_OUT) {
26471 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26473 return NDR_ERR_SUCCESS;
26476 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
26478 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
26480 if (flags & NDR_SET_VALUES) {
26481 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26483 if (flags & NDR_IN) {
26484 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
26488 if (flags & NDR_OUT) {
26489 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
26491 ndr_print_WERROR(ndr, "result", r->out.result);
26497 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
26499 if (flags & NDR_IN) {
26500 if (r->in.handle == NULL) {
26501 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26503 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26505 if (flags & NDR_OUT) {
26506 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26508 return NDR_ERR_SUCCESS;
26511 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
26513 TALLOC_CTX *_mem_save_handle_0;
26514 if (flags & NDR_IN) {
26515 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26516 NDR_PULL_ALLOC(ndr, r->in.handle);
26518 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26519 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26520 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26523 if (flags & NDR_OUT) {
26524 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26526 return NDR_ERR_SUCCESS;
26529 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
26531 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
26533 if (flags & NDR_SET_VALUES) {
26534 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26536 if (flags & NDR_IN) {
26537 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
26539 ndr_print_ptr(ndr, "handle", r->in.handle);
26541 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26545 if (flags & NDR_OUT) {
26546 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
26548 ndr_print_WERROR(ndr, "result", r->out.result);
26554 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26556 if (flags & NDR_IN) {
26558 if (flags & NDR_OUT) {
26559 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26561 return NDR_ERR_SUCCESS;
26564 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26566 if (flags & NDR_IN) {
26568 if (flags & NDR_OUT) {
26569 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26571 return NDR_ERR_SUCCESS;
26574 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
26576 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26578 if (flags & NDR_SET_VALUES) {
26579 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26581 if (flags & NDR_IN) {
26582 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26586 if (flags & NDR_OUT) {
26587 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
26589 ndr_print_WERROR(ndr, "result", r->out.result);
26595 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
26597 if (flags & NDR_IN) {
26598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
26601 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));
26602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
26603 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
26604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26606 if (r->in.buffer) {
26607 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26608 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26611 if (flags & NDR_OUT) {
26612 if (r->out.handle == NULL) {
26613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26615 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26616 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26618 return NDR_ERR_SUCCESS;
26621 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
26623 uint32_t _ptr_buffer;
26624 TALLOC_CTX *_mem_save_buffer_0;
26625 TALLOC_CTX *_mem_save_handle_0;
26626 if (flags & NDR_IN) {
26627 ZERO_STRUCT(r->out);
26629 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
26630 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
26631 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
26632 return 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));
26634 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
26635 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));
26636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
26637 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
26638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26639 if (r->in.bufsize > 512) {
26640 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26644 NDR_PULL_ALLOC(ndr, r->in.buffer);
26646 r->in.buffer = NULL;
26648 if (r->in.buffer) {
26649 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26650 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26651 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26652 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26653 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26656 NDR_PULL_ALLOC(ndr, r->out.handle);
26657 ZERO_STRUCTP(r->out.handle);
26658 if (r->in.buffer) {
26659 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26662 if (flags & NDR_OUT) {
26663 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26664 NDR_PULL_ALLOC(ndr, r->out.handle);
26666 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26667 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26668 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26670 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26672 return NDR_ERR_SUCCESS;
26675 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
26677 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
26679 if (flags & NDR_SET_VALUES) {
26680 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26682 if (flags & NDR_IN) {
26683 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
26685 ndr_print_string(ndr, "server_name", r->in.server_name);
26686 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
26687 ndr_print_winreg_Type(ndr, "type", r->in.type);
26688 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26689 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26691 if (r->in.buffer) {
26692 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26697 if (flags & NDR_OUT) {
26698 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
26700 ndr_print_ptr(ndr, "handle", r->out.handle);
26702 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26704 ndr_print_WERROR(ndr, "result", r->out.result);
26710 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
26712 if (flags & NDR_IN) {
26713 if (r->in.handle == NULL) {
26714 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26716 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26717 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
26718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
26719 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26720 if (r->in.buffer) {
26721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
26722 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
26725 if (flags & NDR_OUT) {
26726 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26728 return NDR_ERR_SUCCESS;
26731 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
26733 uint32_t _ptr_buffer;
26734 TALLOC_CTX *_mem_save_handle_0;
26735 TALLOC_CTX *_mem_save_buffer_0;
26736 if (flags & NDR_IN) {
26737 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26738 NDR_PULL_ALLOC(ndr, r->in.handle);
26740 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26741 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26742 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26744 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
26745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
26746 if (r->in.bufsize > 512) {
26747 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
26749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26751 NDR_PULL_ALLOC(ndr, r->in.buffer);
26753 r->in.buffer = NULL;
26755 if (r->in.buffer) {
26756 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26757 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26758 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
26759 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
26760 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
26761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26763 if (r->in.buffer) {
26764 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
26767 if (flags & NDR_OUT) {
26768 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26770 return NDR_ERR_SUCCESS;
26773 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
26775 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
26777 if (flags & NDR_SET_VALUES) {
26778 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26780 if (flags & NDR_IN) {
26781 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
26783 ndr_print_ptr(ndr, "handle", r->in.handle);
26785 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26787 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
26788 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
26789 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26791 if (r->in.buffer) {
26792 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
26797 if (flags & NDR_OUT) {
26798 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
26800 ndr_print_WERROR(ndr, "result", r->out.result);
26806 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
26808 if (flags & NDR_IN) {
26809 if (r->in.handle == NULL) {
26810 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26812 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26814 if (flags & NDR_OUT) {
26815 if (r->out.handle == NULL) {
26816 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26818 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26819 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26821 return NDR_ERR_SUCCESS;
26824 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
26826 TALLOC_CTX *_mem_save_handle_0;
26827 if (flags & NDR_IN) {
26828 ZERO_STRUCT(r->out);
26830 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26831 NDR_PULL_ALLOC(ndr, r->in.handle);
26833 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26834 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26835 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26837 NDR_PULL_ALLOC(ndr, r->out.handle);
26838 *r->out.handle = *r->in.handle;
26840 if (flags & NDR_OUT) {
26841 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26842 NDR_PULL_ALLOC(ndr, r->out.handle);
26844 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26845 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
26846 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
26847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26848 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26850 return NDR_ERR_SUCCESS;
26853 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
26855 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
26857 if (flags & NDR_SET_VALUES) {
26858 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26860 if (flags & NDR_IN) {
26861 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
26863 ndr_print_ptr(ndr, "handle", r->in.handle);
26865 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26869 if (flags & NDR_OUT) {
26870 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
26872 ndr_print_ptr(ndr, "handle", r->out.handle);
26874 ndr_print_policy_handle(ndr, "handle", r->out.handle);
26876 ndr_print_WERROR(ndr, "result", r->out.result);
26882 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
26884 if (flags & NDR_IN) {
26886 if (flags & NDR_OUT) {
26887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26889 return NDR_ERR_SUCCESS;
26892 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
26894 if (flags & NDR_IN) {
26896 if (flags & NDR_OUT) {
26897 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26899 return NDR_ERR_SUCCESS;
26902 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
26904 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
26906 if (flags & NDR_SET_VALUES) {
26907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26909 if (flags & NDR_IN) {
26910 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
26914 if (flags & NDR_OUT) {
26915 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
26917 ndr_print_WERROR(ndr, "result", r->out.result);
26923 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26925 if (flags & NDR_IN) {
26927 if (flags & NDR_OUT) {
26928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26930 return NDR_ERR_SUCCESS;
26933 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26935 if (flags & NDR_IN) {
26937 if (flags & NDR_OUT) {
26938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26940 return NDR_ERR_SUCCESS;
26943 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
26945 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
26947 if (flags & NDR_SET_VALUES) {
26948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26950 if (flags & NDR_IN) {
26951 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
26955 if (flags & NDR_OUT) {
26956 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
26958 ndr_print_WERROR(ndr, "result", r->out.result);
26964 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
26966 if (flags & NDR_IN) {
26968 if (flags & NDR_OUT) {
26969 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26971 return NDR_ERR_SUCCESS;
26974 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
26976 if (flags & NDR_IN) {
26978 if (flags & NDR_OUT) {
26979 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26981 return NDR_ERR_SUCCESS;
26984 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
26986 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
26988 if (flags & NDR_SET_VALUES) {
26989 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26991 if (flags & NDR_IN) {
26992 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
26996 if (flags & NDR_OUT) {
26997 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
26999 ndr_print_WERROR(ndr, "result", r->out.result);
27005 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
27007 if (flags & NDR_IN) {
27009 if (flags & NDR_OUT) {
27010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27012 return NDR_ERR_SUCCESS;
27015 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
27017 if (flags & NDR_IN) {
27019 if (flags & NDR_OUT) {
27020 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27022 return NDR_ERR_SUCCESS;
27025 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
27027 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
27029 if (flags & NDR_SET_VALUES) {
27030 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27032 if (flags & NDR_IN) {
27033 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
27037 if (flags & NDR_OUT) {
27038 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
27040 ndr_print_WERROR(ndr, "result", r->out.result);
27046 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27048 if (flags & NDR_IN) {
27049 if (r->in.handle == NULL) {
27050 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27052 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27053 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
27055 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
27056 if (r->in.local_machine) {
27057 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27058 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27059 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
27060 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));
27062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
27063 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
27064 if (r->in.notify_options) {
27065 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27068 if (flags & NDR_OUT) {
27069 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27071 return NDR_ERR_SUCCESS;
27074 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27076 uint32_t _ptr_local_machine;
27077 uint32_t _ptr_notify_options;
27078 TALLOC_CTX *_mem_save_handle_0;
27079 TALLOC_CTX *_mem_save_local_machine_0;
27080 TALLOC_CTX *_mem_save_notify_options_0;
27081 if (flags & NDR_IN) {
27082 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27083 NDR_PULL_ALLOC(ndr, r->in.handle);
27085 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27086 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27087 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27089 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
27091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
27092 if (_ptr_local_machine) {
27093 NDR_PULL_ALLOC(ndr, r->in.local_machine);
27095 r->in.local_machine = NULL;
27097 if (r->in.local_machine) {
27098 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
27099 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
27100 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
27101 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
27102 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
27103 return 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));
27105 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
27106 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));
27107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
27109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
27110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
27111 if (_ptr_notify_options) {
27112 NDR_PULL_ALLOC(ndr, r->in.notify_options);
27114 r->in.notify_options = NULL;
27116 if (r->in.notify_options) {
27117 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27118 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
27119 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
27120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
27123 if (flags & NDR_OUT) {
27124 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27126 return NDR_ERR_SUCCESS;
27129 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
27131 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27133 if (flags & NDR_SET_VALUES) {
27134 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27136 if (flags & NDR_IN) {
27137 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27139 ndr_print_ptr(ndr, "handle", r->in.handle);
27141 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27143 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27144 ndr_print_uint32(ndr, "options", r->in.options);
27145 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
27147 if (r->in.local_machine) {
27148 ndr_print_string(ndr, "local_machine", r->in.local_machine);
27151 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
27152 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
27154 if (r->in.notify_options) {
27155 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
27160 if (flags & NDR_OUT) {
27161 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
27163 ndr_print_WERROR(ndr, "result", r->out.result);
27169 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27171 if (flags & NDR_IN) {
27172 if (r->in.handle == NULL) {
27173 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27175 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
27177 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
27178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
27179 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27180 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27182 if (flags & NDR_OUT) {
27183 if (r->out.reply_result == NULL) {
27184 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27186 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
27187 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27189 return NDR_ERR_SUCCESS;
27192 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
27194 TALLOC_CTX *_mem_save_handle_0;
27195 TALLOC_CTX *_mem_save_reply_result_0;
27196 if (flags & NDR_IN) {
27197 ZERO_STRUCT(r->out);
27199 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27200 NDR_PULL_ALLOC(ndr, r->in.handle);
27202 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27203 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27204 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
27207 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
27208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
27209 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
27210 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
27211 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27212 ZERO_STRUCTP(r->out.reply_result);
27214 if (flags & NDR_OUT) {
27215 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27216 NDR_PULL_ALLOC(ndr, r->out.reply_result);
27218 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
27219 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
27220 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
27221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
27222 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27224 return NDR_ERR_SUCCESS;
27227 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
27229 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
27231 if (flags & NDR_SET_VALUES) {
27232 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27234 if (flags & NDR_IN) {
27235 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
27237 ndr_print_ptr(ndr, "handle", r->in.handle);
27239 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27241 ndr_print_uint32(ndr, "color", r->in.color);
27242 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
27243 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
27244 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
27245 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
27248 if (flags & NDR_OUT) {
27249 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
27251 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
27253 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
27255 ndr_print_WERROR(ndr, "result", r->out.result);
27261 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27263 if (flags & NDR_IN) {
27264 if (r->in.handle == NULL) {
27265 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27267 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
27269 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
27270 if (r->in.options) {
27271 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27274 if (flags & NDR_OUT) {
27275 if (r->out.info == NULL) {
27276 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27278 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
27279 if (*r->out.info) {
27280 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27282 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27284 return NDR_ERR_SUCCESS;
27287 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
27289 uint32_t _ptr_options;
27290 uint32_t _ptr_info;
27291 TALLOC_CTX *_mem_save_handle_0;
27292 TALLOC_CTX *_mem_save_options_0;
27293 TALLOC_CTX *_mem_save_info_0;
27294 TALLOC_CTX *_mem_save_info_1;
27295 if (flags & NDR_IN) {
27296 ZERO_STRUCT(r->out);
27298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27299 NDR_PULL_ALLOC(ndr, r->in.handle);
27301 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27302 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27303 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
27306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
27307 if (_ptr_options) {
27308 NDR_PULL_ALLOC(ndr, r->in.options);
27310 r->in.options = NULL;
27312 if (r->in.options) {
27313 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
27314 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
27315 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
27316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
27318 NDR_PULL_ALLOC(ndr, r->out.info);
27319 ZERO_STRUCTP(r->out.info);
27321 if (flags & NDR_OUT) {
27322 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27323 NDR_PULL_ALLOC(ndr, r->out.info);
27325 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27326 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
27327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27329 NDR_PULL_ALLOC(ndr, *r->out.info);
27331 *r->out.info = NULL;
27333 if (*r->out.info) {
27334 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
27335 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
27336 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
27337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
27339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
27340 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27342 return NDR_ERR_SUCCESS;
27345 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
27347 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
27349 if (flags & NDR_SET_VALUES) {
27350 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27352 if (flags & NDR_IN) {
27353 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
27355 ndr_print_ptr(ndr, "handle", r->in.handle);
27357 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27359 ndr_print_uint32(ndr, "change_low", r->in.change_low);
27360 ndr_print_ptr(ndr, "options", r->in.options);
27362 if (r->in.options) {
27363 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
27368 if (flags & NDR_OUT) {
27369 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
27371 ndr_print_ptr(ndr, "info", r->out.info);
27373 ndr_print_ptr(ndr, "info", *r->out.info);
27375 if (*r->out.info) {
27376 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
27380 ndr_print_WERROR(ndr, "result", r->out.result);
27386 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
27388 if (flags & NDR_IN) {
27390 if (flags & NDR_OUT) {
27391 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27393 return NDR_ERR_SUCCESS;
27396 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
27398 if (flags & NDR_IN) {
27400 if (flags & NDR_OUT) {
27401 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27403 return NDR_ERR_SUCCESS;
27406 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
27408 ndr_print_struct(ndr, name, "spoolss_44");
27410 if (flags & NDR_SET_VALUES) {
27411 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27413 if (flags & NDR_IN) {
27414 ndr_print_struct(ndr, "in", "spoolss_44");
27418 if (flags & NDR_OUT) {
27419 ndr_print_struct(ndr, "out", "spoolss_44");
27421 ndr_print_WERROR(ndr, "result", r->out.result);
27427 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
27429 if (flags & NDR_IN) {
27430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
27431 if (r->in.printername) {
27432 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27433 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27434 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
27435 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27437 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
27438 if (r->in.datatype) {
27439 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27440 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
27442 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27444 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27445 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
27446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27447 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27448 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27450 if (flags & NDR_OUT) {
27451 if (r->out.handle == NULL) {
27452 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27454 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27455 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27457 return NDR_ERR_SUCCESS;
27460 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
27462 uint32_t _ptr_printername;
27463 uint32_t _ptr_datatype;
27464 TALLOC_CTX *_mem_save_printername_0;
27465 TALLOC_CTX *_mem_save_datatype_0;
27466 TALLOC_CTX *_mem_save_handle_0;
27467 if (flags & NDR_IN) {
27468 ZERO_STRUCT(r->out);
27470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
27471 if (_ptr_printername) {
27472 NDR_PULL_ALLOC(ndr, r->in.printername);
27474 r->in.printername = NULL;
27476 if (r->in.printername) {
27477 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27478 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
27479 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
27480 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
27481 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
27482 return 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));
27484 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
27485 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
27486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
27488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
27489 if (_ptr_datatype) {
27490 NDR_PULL_ALLOC(ndr, r->in.datatype);
27492 r->in.datatype = NULL;
27494 if (r->in.datatype) {
27495 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
27496 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
27497 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
27498 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
27499 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
27500 return 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));
27502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
27503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
27504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
27506 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
27507 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
27508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27509 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
27510 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
27511 NDR_PULL_ALLOC(ndr, r->out.handle);
27512 ZERO_STRUCTP(r->out.handle);
27514 if (flags & NDR_OUT) {
27515 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27516 NDR_PULL_ALLOC(ndr, r->out.handle);
27518 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27519 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27520 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27522 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27524 return NDR_ERR_SUCCESS;
27527 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
27529 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
27531 if (flags & NDR_SET_VALUES) {
27532 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27534 if (flags & NDR_IN) {
27535 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
27537 ndr_print_ptr(ndr, "printername", r->in.printername);
27539 if (r->in.printername) {
27540 ndr_print_string(ndr, "printername", r->in.printername);
27543 ndr_print_ptr(ndr, "datatype", r->in.datatype);
27545 if (r->in.datatype) {
27546 ndr_print_string(ndr, "datatype", r->in.datatype);
27549 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
27550 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
27551 ndr_print_uint32(ndr, "level", r->in.level);
27552 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
27553 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
27556 if (flags & NDR_OUT) {
27557 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
27559 ndr_print_ptr(ndr, "handle", r->out.handle);
27561 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27563 ndr_print_WERROR(ndr, "result", r->out.result);
27569 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
27571 if (flags & NDR_IN) {
27572 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27573 if (r->in.server) {
27574 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27575 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27576 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27577 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27579 if (r->in.info_ctr == NULL) {
27580 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27582 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27583 if (r->in.devmode_ctr == NULL) {
27584 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27586 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27587 if (r->in.secdesc_ctr == NULL) {
27588 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27590 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27591 if (r->in.userlevel_ctr == NULL) {
27592 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27594 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27596 if (flags & NDR_OUT) {
27597 if (r->out.handle == NULL) {
27598 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27600 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27601 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27603 return NDR_ERR_SUCCESS;
27606 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
27608 uint32_t _ptr_server;
27609 TALLOC_CTX *_mem_save_server_0;
27610 TALLOC_CTX *_mem_save_info_ctr_0;
27611 TALLOC_CTX *_mem_save_devmode_ctr_0;
27612 TALLOC_CTX *_mem_save_secdesc_ctr_0;
27613 TALLOC_CTX *_mem_save_userlevel_ctr_0;
27614 TALLOC_CTX *_mem_save_handle_0;
27615 if (flags & NDR_IN) {
27616 ZERO_STRUCT(r->out);
27618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27620 NDR_PULL_ALLOC(ndr, r->in.server);
27622 r->in.server = NULL;
27624 if (r->in.server) {
27625 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27626 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27627 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27628 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27629 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
27630 return 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));
27632 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
27633 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
27634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27636 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27637 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27639 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27640 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27641 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27642 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27643 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27644 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
27646 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27647 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
27648 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
27649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27650 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27651 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
27653 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27654 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
27655 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
27656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27657 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27658 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
27660 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27661 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
27662 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
27663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27664 NDR_PULL_ALLOC(ndr, r->out.handle);
27665 ZERO_STRUCTP(r->out.handle);
27667 if (flags & NDR_OUT) {
27668 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27669 NDR_PULL_ALLOC(ndr, r->out.handle);
27671 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27672 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
27673 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
27674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27675 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27677 return NDR_ERR_SUCCESS;
27680 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
27682 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
27684 if (flags & NDR_SET_VALUES) {
27685 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27687 if (flags & NDR_IN) {
27688 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
27690 ndr_print_ptr(ndr, "server", r->in.server);
27692 if (r->in.server) {
27693 ndr_print_string(ndr, "server", r->in.server);
27696 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27698 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27700 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
27702 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
27704 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27706 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
27708 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27710 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
27714 if (flags & NDR_OUT) {
27715 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
27717 ndr_print_ptr(ndr, "handle", r->out.handle);
27719 ndr_print_policy_handle(ndr, "handle", r->out.handle);
27721 ndr_print_WERROR(ndr, "result", r->out.result);
27727 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
27729 if (flags & NDR_IN) {
27731 if (flags & NDR_OUT) {
27732 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27734 return NDR_ERR_SUCCESS;
27737 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
27739 if (flags & NDR_IN) {
27741 if (flags & NDR_OUT) {
27742 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27744 return NDR_ERR_SUCCESS;
27747 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
27749 ndr_print_struct(ndr, name, "spoolss_47");
27751 if (flags & NDR_SET_VALUES) {
27752 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27754 if (flags & NDR_IN) {
27755 ndr_print_struct(ndr, "in", "spoolss_47");
27759 if (flags & NDR_OUT) {
27760 ndr_print_struct(ndr, "out", "spoolss_47");
27762 ndr_print_WERROR(ndr, "result", r->out.result);
27768 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
27770 if (flags & NDR_IN) {
27771 if (r->in.handle == NULL) {
27772 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27774 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
27776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
27777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
27779 if (flags & NDR_OUT) {
27780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
27781 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
27782 if (r->out.value_needed == NULL) {
27783 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
27786 if (r->out.type == NULL) {
27787 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27789 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
27791 uint32_t _flags_save_uint8 = ndr->flags;
27792 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27793 if (r->out.data == NULL) {
27794 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27796 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
27797 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
27798 ndr->flags = _flags_save_uint8;
27800 if (r->out.data_needed == NULL) {
27801 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
27804 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27806 return NDR_ERR_SUCCESS;
27809 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
27811 TALLOC_CTX *_mem_save_handle_0;
27812 TALLOC_CTX *_mem_save_value_needed_0;
27813 TALLOC_CTX *_mem_save_type_0;
27814 TALLOC_CTX *_mem_save_data_needed_0;
27815 if (flags & NDR_IN) {
27816 ZERO_STRUCT(r->out);
27818 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27819 NDR_PULL_ALLOC(ndr, r->in.handle);
27821 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27822 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27823 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
27826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
27827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
27828 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27829 ZERO_STRUCTP(r->out.value_needed);
27830 NDR_PULL_ALLOC(ndr, r->out.type);
27831 ZERO_STRUCTP(r->out.type);
27832 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
27833 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
27834 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27835 ZERO_STRUCTP(r->out.data_needed);
27837 if (flags & NDR_OUT) {
27838 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
27839 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));
27840 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27841 NDR_PULL_ALLOC(ndr, r->out.value_needed);
27843 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27844 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
27845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
27846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
27847 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27848 NDR_PULL_ALLOC(ndr, r->out.type);
27850 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
27851 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
27852 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
27853 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
27855 uint32_t _flags_save_uint8 = ndr->flags;
27856 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
27857 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27858 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27859 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
27861 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
27862 ndr->flags = _flags_save_uint8;
27864 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27865 NDR_PULL_ALLOC(ndr, r->out.data_needed);
27867 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27868 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
27869 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
27870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
27871 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27872 if (r->out.value_name) {
27873 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
27876 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
27879 return NDR_ERR_SUCCESS;
27882 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
27884 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
27886 if (flags & NDR_SET_VALUES) {
27887 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27889 if (flags & NDR_IN) {
27890 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
27892 ndr_print_ptr(ndr, "handle", r->in.handle);
27894 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27896 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
27897 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
27898 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
27901 if (flags & NDR_OUT) {
27902 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
27904 ndr_print_string(ndr, "value_name", r->out.value_name);
27905 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
27907 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
27909 ndr_print_ptr(ndr, "type", r->out.type);
27911 ndr_print_winreg_Type(ndr, "type", *r->out.type);
27913 ndr_print_ptr(ndr, "data", r->out.data);
27915 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
27917 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
27919 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
27921 ndr_print_WERROR(ndr, "result", r->out.result);
27927 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
27929 if (flags & NDR_IN) {
27930 if (r->in.handle == NULL) {
27931 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27933 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27934 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27935 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27936 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
27937 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));
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_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
27947 TALLOC_CTX *_mem_save_handle_0;
27948 if (flags & NDR_IN) {
27949 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27950 NDR_PULL_ALLOC(ndr, r->in.handle);
27952 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27953 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27954 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27956 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
27957 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
27958 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
27959 return 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));
27961 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
27962 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));
27964 if (flags & NDR_OUT) {
27965 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27967 return NDR_ERR_SUCCESS;
27970 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
27972 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
27974 if (flags & NDR_SET_VALUES) {
27975 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27977 if (flags & NDR_IN) {
27978 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
27980 ndr_print_ptr(ndr, "handle", r->in.handle);
27982 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27984 ndr_print_string(ndr, "value_name", r->in.value_name);
27987 if (flags & NDR_OUT) {
27988 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
27990 ndr_print_WERROR(ndr, "result", r->out.result);
27996 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
27998 if (flags & NDR_IN) {
28000 if (flags & NDR_OUT) {
28001 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28003 return NDR_ERR_SUCCESS;
28006 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
28008 if (flags & NDR_IN) {
28010 if (flags & NDR_OUT) {
28011 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28013 return NDR_ERR_SUCCESS;
28016 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
28018 ndr_print_struct(ndr, name, "spoolss_4a");
28020 if (flags & NDR_SET_VALUES) {
28021 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28023 if (flags & NDR_IN) {
28024 ndr_print_struct(ndr, "in", "spoolss_4a");
28028 if (flags & NDR_OUT) {
28029 ndr_print_struct(ndr, "out", "spoolss_4a");
28031 ndr_print_WERROR(ndr, "result", r->out.result);
28037 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
28039 if (flags & NDR_IN) {
28041 if (flags & NDR_OUT) {
28042 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28044 return NDR_ERR_SUCCESS;
28047 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
28049 if (flags & NDR_IN) {
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_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
28059 ndr_print_struct(ndr, name, "spoolss_4b");
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_4b");
28069 if (flags & NDR_OUT) {
28070 ndr_print_struct(ndr, "out", "spoolss_4b");
28072 ndr_print_WERROR(ndr, "result", r->out.result);
28078 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
28080 if (flags & NDR_IN) {
28082 if (flags & NDR_OUT) {
28083 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28085 return NDR_ERR_SUCCESS;
28088 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
28090 if (flags & NDR_IN) {
28092 if (flags & NDR_OUT) {
28093 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28095 return NDR_ERR_SUCCESS;
28098 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
28100 ndr_print_struct(ndr, name, "spoolss_4c");
28102 if (flags & NDR_SET_VALUES) {
28103 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28105 if (flags & NDR_IN) {
28106 ndr_print_struct(ndr, "in", "spoolss_4c");
28110 if (flags & NDR_OUT) {
28111 ndr_print_struct(ndr, "out", "spoolss_4c");
28113 ndr_print_WERROR(ndr, "result", r->out.result);
28119 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterDataEx *r)
28121 if (flags & NDR_IN) {
28122 if (r->in.handle == NULL) {
28123 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28125 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28127 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28128 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28129 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));
28130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28133 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));
28134 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28135 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
28136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
28138 if (flags & NDR_OUT) {
28139 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28141 return NDR_ERR_SUCCESS;
28144 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterDataEx *r)
28146 if (flags & NDR_IN) {
28147 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28149 if (flags & NDR_OUT) {
28150 if (r->out.data == NULL) {
28151 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28153 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28154 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28156 return NDR_ERR_SUCCESS;
28159 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
28161 TALLOC_CTX *_mem_save_handle_0;
28162 if (flags & NDR_IN) {
28163 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28164 NDR_PULL_ALLOC(ndr, r->in.handle);
28166 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28167 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28168 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28170 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28171 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28172 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28173 return 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));
28175 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28176 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));
28177 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28178 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28179 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28180 return 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));
28182 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28183 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));
28184 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28186 struct ndr_pull *_ndr_data;
28187 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
28188 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
28189 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
28190 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
28192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
28194 if (flags & NDR_OUT) {
28195 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28197 return NDR_ERR_SUCCESS;
28200 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
28202 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
28204 if (flags & NDR_SET_VALUES) {
28205 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28207 if (flags & NDR_IN) {
28208 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
28210 ndr_print_ptr(ndr, "handle", r->in.handle);
28212 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28214 ndr_print_string(ndr, "key_name", r->in.key_name);
28215 ndr_print_string(ndr, "value_name", r->in.value_name);
28216 ndr_print_winreg_Type(ndr, "type", r->in.type);
28217 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
28218 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
28219 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);
28222 if (flags & NDR_OUT) {
28223 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
28225 ndr_print_WERROR(ndr, "result", r->out.result);
28231 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterDataEx *r)
28233 if (flags & NDR_IN) {
28234 if (r->in.handle == NULL) {
28235 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28237 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28238 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28239 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28240 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28241 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));
28242 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28243 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28244 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28245 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));
28246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28248 if (flags & NDR_OUT) {
28249 if (r->out.type == NULL) {
28250 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28252 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28253 if (r->out.data == NULL) {
28254 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28256 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
28257 if (r->out.needed == NULL) {
28258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28263 return NDR_ERR_SUCCESS;
28266 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterDataEx *r)
28268 TALLOC_CTX *_mem_save_handle_0;
28269 TALLOC_CTX *_mem_save_type_0;
28270 TALLOC_CTX *_mem_save_data_0;
28271 TALLOC_CTX *_mem_save_needed_0;
28272 if (flags & NDR_IN) {
28273 ZERO_STRUCT(r->out);
28275 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28276 NDR_PULL_ALLOC(ndr, r->in.handle);
28278 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28279 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28280 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28282 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28283 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28284 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28285 return 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));
28287 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28288 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));
28289 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28290 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28291 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28292 return 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));
28294 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28295 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));
28296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28297 NDR_PULL_ALLOC(ndr, r->out.type);
28298 ZERO_STRUCTP(r->out.type);
28299 NDR_PULL_ALLOC(ndr, r->out.data);
28300 ZERO_STRUCTP(r->out.data);
28301 NDR_PULL_ALLOC(ndr, r->out.needed);
28302 ZERO_STRUCTP(r->out.needed);
28304 if (flags & NDR_OUT) {
28305 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28306 NDR_PULL_ALLOC(ndr, r->out.type);
28308 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28309 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28310 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28312 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28313 NDR_PULL_ALLOC(ndr, r->out.data);
28315 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28316 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28317 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
28318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28319 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28320 NDR_PULL_ALLOC(ndr, r->out.needed);
28322 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28323 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28326 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28328 return NDR_ERR_SUCCESS;
28331 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterDataEx *r)
28333 if (flags & NDR_IN) {
28334 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28336 if (flags & NDR_OUT) {
28337 if (r->out.data == NULL) {
28338 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28340 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
28341 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28343 return NDR_ERR_SUCCESS;
28346 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterDataEx *r)
28348 TALLOC_CTX *_mem_save_data_0;
28349 if (flags & NDR_IN) {
28350 ZERO_STRUCT(r->out);
28352 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28353 NDR_PULL_ALLOC(ndr, r->out.data);
28354 ZERO_STRUCTP(r->out.data);
28356 if (flags & NDR_OUT) {
28357 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28358 NDR_PULL_ALLOC(ndr, r->out.data);
28360 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
28361 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
28362 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
28363 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
28364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
28366 return NDR_ERR_SUCCESS;
28369 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
28371 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
28373 if (flags & NDR_SET_VALUES) {
28374 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28376 if (flags & NDR_IN) {
28377 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
28379 ndr_print_ptr(ndr, "handle", r->in.handle);
28381 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28383 ndr_print_string(ndr, "key_name", r->in.key_name);
28384 ndr_print_string(ndr, "value_name", r->in.value_name);
28385 ndr_print_uint32(ndr, "offered", r->in.offered);
28388 if (flags & NDR_OUT) {
28389 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
28391 ndr_print_ptr(ndr, "type", r->out.type);
28393 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28395 ndr_print_ptr(ndr, "data", r->out.data);
28397 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
28398 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
28400 ndr_print_ptr(ndr, "needed", r->out.needed);
28402 ndr_print_uint32(ndr, "needed", *r->out.needed);
28404 ndr_print_WERROR(ndr, "result", r->out.result);
28410 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
28412 if (flags & NDR_IN) {
28413 if (r->in.handle == NULL) {
28414 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28416 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28417 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28418 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28419 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28420 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));
28421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28423 if (flags & NDR_OUT) {
28424 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
28425 if (r->out.needed == NULL) {
28426 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28429 if (r->out.count == NULL) {
28430 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28433 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28435 return NDR_ERR_SUCCESS;
28438 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
28440 TALLOC_CTX *_mem_save_handle_0;
28441 TALLOC_CTX *_mem_save_needed_0;
28442 TALLOC_CTX *_mem_save_count_0;
28443 if (flags & NDR_IN) {
28444 ZERO_STRUCT(r->out);
28446 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28447 NDR_PULL_ALLOC(ndr, r->in.handle);
28449 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28450 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28451 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28453 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28454 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28455 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28456 return 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));
28458 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28459 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));
28460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28461 NDR_PULL_ALLOC(ndr, r->out.needed);
28462 ZERO_STRUCTP(r->out.needed);
28463 NDR_PULL_ALLOC(ndr, r->out.count);
28464 ZERO_STRUCTP(r->out.count);
28466 if (flags & NDR_OUT) {
28467 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
28468 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28469 NDR_PULL_ALLOC(ndr, r->out.needed);
28471 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28472 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28475 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28476 NDR_PULL_ALLOC(ndr, r->out.count);
28478 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
28479 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
28480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
28481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
28482 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28484 return NDR_ERR_SUCCESS;
28487 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
28489 uint32_t cntr_info_0;
28490 if (flags & NDR_IN) {
28491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
28493 if (flags & NDR_OUT) {
28494 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28495 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28497 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28498 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28501 return NDR_ERR_SUCCESS;
28504 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
28506 uint32_t cntr_info_0;
28507 TALLOC_CTX *_mem_save_info_0;
28508 if (flags & NDR_IN) {
28509 ZERO_STRUCT(r->out);
28511 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
28513 if (flags & NDR_OUT) {
28514 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
28515 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28516 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28517 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28518 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
28520 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
28521 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
28523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28525 return NDR_ERR_SUCCESS;
28528 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
28530 uint32_t cntr_info_2;
28531 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
28533 if (flags & NDR_SET_VALUES) {
28534 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28536 if (flags & NDR_IN) {
28537 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
28539 ndr_print_ptr(ndr, "handle", r->in.handle);
28541 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28543 ndr_print_string(ndr, "key_name", r->in.key_name);
28544 ndr_print_uint32(ndr, "offered", r->in.offered);
28547 if (flags & NDR_OUT) {
28548 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
28550 ndr_print_ptr(ndr, "count", r->out.count);
28552 ndr_print_uint32(ndr, "count", *r->out.count);
28554 ndr_print_ptr(ndr, "info", r->out.info);
28556 ndr_print_ptr(ndr, "info", *r->out.info);
28558 if (*r->out.info) {
28559 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
28561 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
28563 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
28564 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
28572 ndr_print_ptr(ndr, "needed", r->out.needed);
28574 ndr_print_uint32(ndr, "needed", *r->out.needed);
28576 ndr_print_WERROR(ndr, "result", r->out.result);
28582 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
28584 if (flags & NDR_IN) {
28585 if (r->in.handle == NULL) {
28586 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28588 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28589 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28591 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28592 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));
28593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28595 if (flags & NDR_OUT) {
28596 if (r->out._ndr_size == NULL) {
28597 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
28600 if (r->out.key_buffer == NULL) {
28601 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28604 struct ndr_push *_ndr_key_buffer;
28605 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28606 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28607 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28608 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28610 if (r->out.needed == NULL) {
28611 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28614 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28616 return NDR_ERR_SUCCESS;
28619 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
28621 TALLOC_CTX *_mem_save_handle_0;
28622 TALLOC_CTX *_mem_save__ndr_size_0;
28623 TALLOC_CTX *_mem_save_key_buffer_0;
28624 TALLOC_CTX *_mem_save_needed_0;
28625 if (flags & NDR_IN) {
28626 ZERO_STRUCT(r->out);
28628 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28629 NDR_PULL_ALLOC(ndr, r->in.handle);
28631 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28632 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28633 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28635 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28636 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28637 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28638 return 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));
28640 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28641 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));
28642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28643 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28644 ZERO_STRUCTP(r->out._ndr_size);
28645 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28646 ZERO_STRUCTP(r->out.key_buffer);
28647 NDR_PULL_ALLOC(ndr, r->out.needed);
28648 ZERO_STRUCTP(r->out.needed);
28650 if (flags & NDR_OUT) {
28651 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28652 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
28654 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
28655 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
28656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
28657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
28658 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28659 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
28661 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28662 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
28664 struct ndr_pull *_ndr_key_buffer;
28665 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
28666 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
28667 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
28668 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
28670 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
28671 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28672 NDR_PULL_ALLOC(ndr, r->out.needed);
28674 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28675 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28678 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28680 return NDR_ERR_SUCCESS;
28683 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
28685 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
28687 if (flags & NDR_SET_VALUES) {
28688 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28690 if (flags & NDR_IN) {
28691 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
28693 ndr_print_ptr(ndr, "handle", r->in.handle);
28695 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28697 ndr_print_string(ndr, "key_name", r->in.key_name);
28698 ndr_print_uint32(ndr, "offered", r->in.offered);
28701 if (flags & NDR_OUT) {
28702 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
28704 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
28706 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
28708 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
28710 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
28711 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
28713 ndr_print_ptr(ndr, "needed", r->out.needed);
28715 ndr_print_uint32(ndr, "needed", *r->out.needed);
28717 ndr_print_WERROR(ndr, "result", r->out.result);
28723 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
28725 if (flags & NDR_IN) {
28726 if (r->in.handle == NULL) {
28727 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28729 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28731 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28732 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28733 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));
28734 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28735 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28737 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));
28739 if (flags & NDR_OUT) {
28740 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28742 return NDR_ERR_SUCCESS;
28745 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
28747 TALLOC_CTX *_mem_save_handle_0;
28748 if (flags & NDR_IN) {
28749 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28750 NDR_PULL_ALLOC(ndr, r->in.handle);
28752 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28753 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28754 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28756 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28757 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28758 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28759 return 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));
28761 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28762 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));
28763 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28764 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28765 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
28766 return 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));
28768 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
28769 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));
28771 if (flags & NDR_OUT) {
28772 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28774 return NDR_ERR_SUCCESS;
28777 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
28779 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
28781 if (flags & NDR_SET_VALUES) {
28782 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28784 if (flags & NDR_IN) {
28785 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
28787 ndr_print_ptr(ndr, "handle", r->in.handle);
28789 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28791 ndr_print_string(ndr, "key_name", r->in.key_name);
28792 ndr_print_string(ndr, "value_name", r->in.value_name);
28795 if (flags & NDR_OUT) {
28796 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
28798 ndr_print_WERROR(ndr, "result", r->out.result);
28804 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
28806 if (flags & NDR_IN) {
28807 if (r->in.handle == NULL) {
28808 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28810 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28811 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28812 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
28814 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));
28816 if (flags & NDR_OUT) {
28817 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28819 return NDR_ERR_SUCCESS;
28822 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
28824 TALLOC_CTX *_mem_save_handle_0;
28825 if (flags & NDR_IN) {
28826 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28827 NDR_PULL_ALLOC(ndr, r->in.handle);
28829 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28830 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28831 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28833 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
28834 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
28835 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
28836 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
28838 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
28839 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));
28841 if (flags & NDR_OUT) {
28842 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28844 return NDR_ERR_SUCCESS;
28847 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
28849 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
28851 if (flags & NDR_SET_VALUES) {
28852 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28854 if (flags & NDR_IN) {
28855 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
28857 ndr_print_ptr(ndr, "handle", r->in.handle);
28859 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28861 ndr_print_string(ndr, "key_name", r->in.key_name);
28864 if (flags & NDR_OUT) {
28865 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
28867 ndr_print_WERROR(ndr, "result", r->out.result);
28873 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
28875 if (flags & NDR_IN) {
28877 if (flags & NDR_OUT) {
28878 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28880 return NDR_ERR_SUCCESS;
28883 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
28885 if (flags & NDR_IN) {
28887 if (flags & NDR_OUT) {
28888 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28890 return NDR_ERR_SUCCESS;
28893 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
28895 ndr_print_struct(ndr, name, "spoolss_53");
28897 if (flags & NDR_SET_VALUES) {
28898 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28900 if (flags & NDR_IN) {
28901 ndr_print_struct(ndr, "in", "spoolss_53");
28905 if (flags & NDR_OUT) {
28906 ndr_print_struct(ndr, "out", "spoolss_53");
28908 ndr_print_WERROR(ndr, "result", r->out.result);
28914 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28916 if (flags & NDR_IN) {
28917 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
28918 if (r->in.server) {
28919 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28920 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28921 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
28922 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28924 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28925 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28926 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
28927 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28928 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28929 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28930 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
28931 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
28932 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
28933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
28935 if (flags & NDR_OUT) {
28936 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28938 return NDR_ERR_SUCCESS;
28941 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
28943 uint32_t _ptr_server;
28944 TALLOC_CTX *_mem_save_server_0;
28945 if (flags & NDR_IN) {
28946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
28948 NDR_PULL_ALLOC(ndr, r->in.server);
28950 r->in.server = NULL;
28952 if (r->in.server) {
28953 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
28954 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
28955 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
28956 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
28957 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
28958 return 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));
28960 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
28961 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
28962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
28964 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
28965 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
28966 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
28967 return 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));
28969 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
28970 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
28971 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
28972 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
28973 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
28974 return 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));
28976 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
28977 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
28978 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
28979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
28981 if (flags & NDR_OUT) {
28982 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28984 return NDR_ERR_SUCCESS;
28987 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
28989 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
28991 if (flags & NDR_SET_VALUES) {
28992 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28994 if (flags & NDR_IN) {
28995 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
28997 ndr_print_ptr(ndr, "server", r->in.server);
28999 if (r->in.server) {
29000 ndr_print_string(ndr, "server", r->in.server);
29003 ndr_print_string(ndr, "architecture", r->in.architecture);
29004 ndr_print_string(ndr, "driver", r->in.driver);
29005 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
29006 ndr_print_uint32(ndr, "version", r->in.version);
29009 if (flags & NDR_OUT) {
29010 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
29012 ndr_print_WERROR(ndr, "result", r->out.result);
29018 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
29020 if (flags & NDR_IN) {
29022 if (flags & NDR_OUT) {
29023 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29025 return NDR_ERR_SUCCESS;
29028 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
29030 if (flags & NDR_IN) {
29032 if (flags & NDR_OUT) {
29033 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29035 return NDR_ERR_SUCCESS;
29038 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
29040 ndr_print_struct(ndr, name, "spoolss_55");
29042 if (flags & NDR_SET_VALUES) {
29043 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29045 if (flags & NDR_IN) {
29046 ndr_print_struct(ndr, "in", "spoolss_55");
29050 if (flags & NDR_OUT) {
29051 ndr_print_struct(ndr, "out", "spoolss_55");
29053 ndr_print_WERROR(ndr, "result", r->out.result);
29059 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
29061 if (flags & NDR_IN) {
29063 if (flags & NDR_OUT) {
29064 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29066 return NDR_ERR_SUCCESS;
29069 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
29071 if (flags & NDR_IN) {
29073 if (flags & NDR_OUT) {
29074 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29076 return NDR_ERR_SUCCESS;
29079 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
29081 ndr_print_struct(ndr, name, "spoolss_56");
29083 if (flags & NDR_SET_VALUES) {
29084 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29086 if (flags & NDR_IN) {
29087 ndr_print_struct(ndr, "in", "spoolss_56");
29091 if (flags & NDR_OUT) {
29092 ndr_print_struct(ndr, "out", "spoolss_56");
29094 ndr_print_WERROR(ndr, "result", r->out.result);
29100 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
29102 if (flags & NDR_IN) {
29104 if (flags & NDR_OUT) {
29105 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29107 return NDR_ERR_SUCCESS;
29110 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
29112 if (flags & NDR_IN) {
29114 if (flags & NDR_OUT) {
29115 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29117 return NDR_ERR_SUCCESS;
29120 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
29122 ndr_print_struct(ndr, name, "spoolss_57");
29124 if (flags & NDR_SET_VALUES) {
29125 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29127 if (flags & NDR_IN) {
29128 ndr_print_struct(ndr, "in", "spoolss_57");
29132 if (flags & NDR_OUT) {
29133 ndr_print_struct(ndr, "out", "spoolss_57");
29135 ndr_print_WERROR(ndr, "result", r->out.result);
29141 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
29143 if (flags & NDR_IN) {
29144 if (r->in.handle == NULL) {
29145 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29147 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29150 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
29151 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));
29152 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
29153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
29154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
29155 if (r->in.status_code == NULL) {
29156 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
29160 if (flags & NDR_OUT) {
29161 if (r->out.out_data == NULL) {
29162 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
29165 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
29166 if (r->out.needed == NULL) {
29167 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29170 if (r->out.status_code == NULL) {
29171 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
29174 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29176 return NDR_ERR_SUCCESS;
29179 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
29181 TALLOC_CTX *_mem_save_handle_0;
29182 TALLOC_CTX *_mem_save_needed_0;
29183 TALLOC_CTX *_mem_save_status_code_0;
29184 if (flags & NDR_IN) {
29185 ZERO_STRUCT(r->out);
29187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29188 NDR_PULL_ALLOC(ndr, r->in.handle);
29190 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29191 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29192 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29194 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
29195 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
29196 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
29197 return 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));
29199 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
29200 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));
29201 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
29202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
29203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
29204 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29205 NDR_PULL_ALLOC(ndr, r->in.status_code);
29207 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29208 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
29209 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
29210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29211 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
29212 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
29213 NDR_PULL_ALLOC(ndr, r->out.needed);
29214 ZERO_STRUCTP(r->out.needed);
29215 NDR_PULL_ALLOC(ndr, r->out.status_code);
29216 *r->out.status_code = *r->in.status_code;
29218 if (flags & NDR_OUT) {
29219 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
29220 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29221 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
29223 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
29224 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29225 NDR_PULL_ALLOC(ndr, r->out.needed);
29227 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29228 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29229 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29231 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29232 NDR_PULL_ALLOC(ndr, r->out.status_code);
29234 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
29235 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
29236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
29237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
29238 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29239 if (r->out.out_data) {
29240 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
29243 return NDR_ERR_SUCCESS;
29246 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
29248 ndr_print_struct(ndr, name, "spoolss_XcvData");
29250 if (flags & NDR_SET_VALUES) {
29251 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29253 if (flags & NDR_IN) {
29254 ndr_print_struct(ndr, "in", "spoolss_XcvData");
29256 ndr_print_ptr(ndr, "handle", r->in.handle);
29258 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29260 ndr_print_string(ndr, "function_name", r->in.function_name);
29261 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
29262 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
29263 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
29264 ndr_print_ptr(ndr, "status_code", r->in.status_code);
29266 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
29270 if (flags & NDR_OUT) {
29271 ndr_print_struct(ndr, "out", "spoolss_XcvData");
29273 ndr_print_ptr(ndr, "out_data", r->out.out_data);
29275 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
29277 ndr_print_ptr(ndr, "needed", r->out.needed);
29279 ndr_print_uint32(ndr, "needed", *r->out.needed);
29281 ndr_print_ptr(ndr, "status_code", r->out.status_code);
29283 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
29285 ndr_print_WERROR(ndr, "result", r->out.result);
29291 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
29293 if (flags & NDR_IN) {
29294 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29295 if (r->in.servername) {
29296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29301 if (r->in.info_ctr == NULL) {
29302 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29304 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29305 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
29307 if (flags & NDR_OUT) {
29308 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29310 return NDR_ERR_SUCCESS;
29313 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
29315 uint32_t _ptr_servername;
29316 TALLOC_CTX *_mem_save_servername_0;
29317 TALLOC_CTX *_mem_save_info_ctr_0;
29318 if (flags & NDR_IN) {
29319 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29320 if (_ptr_servername) {
29321 NDR_PULL_ALLOC(ndr, r->in.servername);
29323 r->in.servername = NULL;
29325 if (r->in.servername) {
29326 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29327 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29328 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29329 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29330 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29331 return 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));
29333 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29334 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29337 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29338 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
29340 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
29341 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
29342 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
29343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
29344 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
29346 if (flags & NDR_OUT) {
29347 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29349 return NDR_ERR_SUCCESS;
29352 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
29354 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
29356 if (flags & NDR_SET_VALUES) {
29357 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29359 if (flags & NDR_IN) {
29360 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
29362 ndr_print_ptr(ndr, "servername", r->in.servername);
29364 if (r->in.servername) {
29365 ndr_print_string(ndr, "servername", r->in.servername);
29368 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
29370 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
29372 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
29375 if (flags & NDR_OUT) {
29376 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
29378 ndr_print_WERROR(ndr, "result", r->out.result);
29384 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
29386 if (flags & NDR_IN) {
29388 if (flags & NDR_OUT) {
29389 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29391 return NDR_ERR_SUCCESS;
29394 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
29396 if (flags & NDR_IN) {
29398 if (flags & NDR_OUT) {
29399 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29401 return NDR_ERR_SUCCESS;
29404 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
29406 ndr_print_struct(ndr, name, "spoolss_5a");
29408 if (flags & NDR_SET_VALUES) {
29409 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29411 if (flags & NDR_IN) {
29412 ndr_print_struct(ndr, "in", "spoolss_5a");
29416 if (flags & NDR_OUT) {
29417 ndr_print_struct(ndr, "out", "spoolss_5a");
29419 ndr_print_WERROR(ndr, "result", r->out.result);
29425 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
29427 if (flags & NDR_IN) {
29429 if (flags & NDR_OUT) {
29430 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29432 return NDR_ERR_SUCCESS;
29435 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
29437 if (flags & NDR_IN) {
29439 if (flags & NDR_OUT) {
29440 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29442 return NDR_ERR_SUCCESS;
29445 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
29447 ndr_print_struct(ndr, name, "spoolss_5b");
29449 if (flags & NDR_SET_VALUES) {
29450 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29452 if (flags & NDR_IN) {
29453 ndr_print_struct(ndr, "in", "spoolss_5b");
29457 if (flags & NDR_OUT) {
29458 ndr_print_struct(ndr, "out", "spoolss_5b");
29460 ndr_print_WERROR(ndr, "result", r->out.result);
29466 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
29468 if (flags & NDR_IN) {
29470 if (flags & NDR_OUT) {
29471 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29473 return NDR_ERR_SUCCESS;
29476 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
29478 if (flags & NDR_IN) {
29480 if (flags & NDR_OUT) {
29481 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29483 return NDR_ERR_SUCCESS;
29486 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
29488 ndr_print_struct(ndr, name, "spoolss_5c");
29490 if (flags & NDR_SET_VALUES) {
29491 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29493 if (flags & NDR_IN) {
29494 ndr_print_struct(ndr, "in", "spoolss_5c");
29498 if (flags & NDR_OUT) {
29499 ndr_print_struct(ndr, "out", "spoolss_5c");
29501 ndr_print_WERROR(ndr, "result", r->out.result);
29507 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
29509 if (flags & NDR_IN) {
29511 if (flags & NDR_OUT) {
29512 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29514 return NDR_ERR_SUCCESS;
29517 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
29519 if (flags & NDR_IN) {
29521 if (flags & NDR_OUT) {
29522 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29524 return NDR_ERR_SUCCESS;
29527 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
29529 ndr_print_struct(ndr, name, "spoolss_5d");
29531 if (flags & NDR_SET_VALUES) {
29532 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29534 if (flags & NDR_IN) {
29535 ndr_print_struct(ndr, "in", "spoolss_5d");
29539 if (flags & NDR_OUT) {
29540 ndr_print_struct(ndr, "out", "spoolss_5d");
29542 ndr_print_WERROR(ndr, "result", r->out.result);
29548 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
29550 if (flags & NDR_IN) {
29552 if (flags & NDR_OUT) {
29553 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29555 return NDR_ERR_SUCCESS;
29558 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
29560 if (flags & NDR_IN) {
29562 if (flags & NDR_OUT) {
29563 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29565 return NDR_ERR_SUCCESS;
29568 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
29570 ndr_print_struct(ndr, name, "spoolss_5e");
29572 if (flags & NDR_SET_VALUES) {
29573 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29575 if (flags & NDR_IN) {
29576 ndr_print_struct(ndr, "in", "spoolss_5e");
29580 if (flags & NDR_OUT) {
29581 ndr_print_struct(ndr, "out", "spoolss_5e");
29583 ndr_print_WERROR(ndr, "result", r->out.result);
29589 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
29591 if (flags & NDR_IN) {
29593 if (flags & NDR_OUT) {
29594 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29596 return NDR_ERR_SUCCESS;
29599 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
29601 if (flags & NDR_IN) {
29603 if (flags & NDR_OUT) {
29604 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29606 return NDR_ERR_SUCCESS;
29609 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
29611 ndr_print_struct(ndr, name, "spoolss_5f");
29613 if (flags & NDR_SET_VALUES) {
29614 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29616 if (flags & NDR_IN) {
29617 ndr_print_struct(ndr, "in", "spoolss_5f");
29621 if (flags & NDR_OUT) {
29622 ndr_print_struct(ndr, "out", "spoolss_5f");
29624 ndr_print_WERROR(ndr, "result", r->out.result);
29630 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
29632 if (flags & NDR_IN) {
29634 if (flags & NDR_OUT) {
29635 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29637 return NDR_ERR_SUCCESS;
29640 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
29642 if (flags & NDR_IN) {
29644 if (flags & NDR_OUT) {
29645 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29647 return NDR_ERR_SUCCESS;
29650 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
29652 ndr_print_struct(ndr, name, "spoolss_60");
29654 if (flags & NDR_SET_VALUES) {
29655 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29657 if (flags & NDR_IN) {
29658 ndr_print_struct(ndr, "in", "spoolss_60");
29662 if (flags & NDR_OUT) {
29663 ndr_print_struct(ndr, "out", "spoolss_60");
29665 ndr_print_WERROR(ndr, "result", r->out.result);
29671 static enum ndr_err_code ndr_push_spoolss_61(struct ndr_push *ndr, int flags, const struct spoolss_61 *r)
29673 if (flags & NDR_IN) {
29675 if (flags & NDR_OUT) {
29676 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29678 return NDR_ERR_SUCCESS;
29681 static enum ndr_err_code ndr_pull_spoolss_61(struct ndr_pull *ndr, int flags, struct spoolss_61 *r)
29683 if (flags & NDR_IN) {
29685 if (flags & NDR_OUT) {
29686 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29688 return NDR_ERR_SUCCESS;
29691 _PUBLIC_ void ndr_print_spoolss_61(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_61 *r)
29693 ndr_print_struct(ndr, name, "spoolss_61");
29695 if (flags & NDR_SET_VALUES) {
29696 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29698 if (flags & NDR_IN) {
29699 ndr_print_struct(ndr, "in", "spoolss_61");
29703 if (flags & NDR_OUT) {
29704 ndr_print_struct(ndr, "out", "spoolss_61");
29706 ndr_print_WERROR(ndr, "result", r->out.result);
29712 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
29714 if (flags & NDR_IN) {
29716 if (flags & NDR_OUT) {
29717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29719 return NDR_ERR_SUCCESS;
29722 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
29724 if (flags & NDR_IN) {
29726 if (flags & NDR_OUT) {
29727 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29729 return NDR_ERR_SUCCESS;
29732 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
29734 ndr_print_struct(ndr, name, "spoolss_62");
29736 if (flags & NDR_SET_VALUES) {
29737 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29739 if (flags & NDR_IN) {
29740 ndr_print_struct(ndr, "in", "spoolss_62");
29744 if (flags & NDR_OUT) {
29745 ndr_print_struct(ndr, "out", "spoolss_62");
29747 ndr_print_WERROR(ndr, "result", r->out.result);
29753 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
29755 if (flags & NDR_IN) {
29757 if (flags & NDR_OUT) {
29758 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29760 return NDR_ERR_SUCCESS;
29763 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
29765 if (flags & NDR_IN) {
29767 if (flags & NDR_OUT) {
29768 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29770 return NDR_ERR_SUCCESS;
29773 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
29775 ndr_print_struct(ndr, name, "spoolss_63");
29777 if (flags & NDR_SET_VALUES) {
29778 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29780 if (flags & NDR_IN) {
29781 ndr_print_struct(ndr, "in", "spoolss_63");
29785 if (flags & NDR_OUT) {
29786 ndr_print_struct(ndr, "out", "spoolss_63");
29788 ndr_print_WERROR(ndr, "result", r->out.result);
29794 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
29796 if (flags & NDR_IN) {
29798 if (flags & NDR_OUT) {
29799 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29801 return NDR_ERR_SUCCESS;
29804 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
29806 if (flags & NDR_IN) {
29808 if (flags & NDR_OUT) {
29809 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29811 return NDR_ERR_SUCCESS;
29814 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
29816 ndr_print_struct(ndr, name, "spoolss_64");
29818 if (flags & NDR_SET_VALUES) {
29819 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29821 if (flags & NDR_IN) {
29822 ndr_print_struct(ndr, "in", "spoolss_64");
29826 if (flags & NDR_OUT) {
29827 ndr_print_struct(ndr, "out", "spoolss_64");
29829 ndr_print_WERROR(ndr, "result", r->out.result);
29835 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
29837 if (flags & NDR_IN) {
29839 if (flags & NDR_OUT) {
29840 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29842 return NDR_ERR_SUCCESS;
29845 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
29847 if (flags & NDR_IN) {
29849 if (flags & NDR_OUT) {
29850 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29852 return NDR_ERR_SUCCESS;
29855 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
29857 ndr_print_struct(ndr, name, "spoolss_65");
29859 if (flags & NDR_SET_VALUES) {
29860 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29862 if (flags & NDR_IN) {
29863 ndr_print_struct(ndr, "in", "spoolss_65");
29867 if (flags & NDR_OUT) {
29868 ndr_print_struct(ndr, "out", "spoolss_65");
29870 ndr_print_WERROR(ndr, "result", r->out.result);
29876 static enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29878 uint32_t cntr_core_printer_drivers_1;
29879 if (flags & NDR_IN) {
29880 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29881 if (r->in.servername) {
29882 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29883 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29884 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29885 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29887 if (r->in.architecture == NULL) {
29888 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29890 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29891 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29892 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
29893 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
29895 if (r->in.core_driver_dependencies == NULL) {
29896 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29898 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
29899 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
29900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29902 if (flags & NDR_OUT) {
29903 if (r->out.core_printer_drivers == NULL) {
29904 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29906 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
29907 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29908 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29910 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29912 return NDR_ERR_SUCCESS;
29915 static enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
29917 uint32_t _ptr_servername;
29918 uint32_t cntr_core_printer_drivers_1;
29919 TALLOC_CTX *_mem_save_servername_0;
29920 TALLOC_CTX *_mem_save_core_printer_drivers_1;
29921 if (flags & NDR_IN) {
29922 ZERO_STRUCT(r->out);
29924 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29925 if (_ptr_servername) {
29926 NDR_PULL_ALLOC(ndr, r->in.servername);
29928 r->in.servername = NULL;
29930 if (r->in.servername) {
29931 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29932 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29933 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29934 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29935 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
29936 return 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));
29938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
29939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
29940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29942 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
29943 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
29944 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
29945 return 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));
29947 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
29948 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
29949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
29950 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
29951 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));
29952 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
29953 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
29954 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
29955 if (r->in.core_driver_dependencies) {
29956 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
29959 if (flags & NDR_OUT) {
29960 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
29961 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29962 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, ndr_get_array_size(ndr, &r->out.core_printer_drivers));
29964 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
29965 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
29966 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < r->in.core_printer_driver_count; cntr_core_printer_drivers_1++) {
29967 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
29969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
29970 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29971 if (r->out.core_printer_drivers) {
29972 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
29975 return NDR_ERR_SUCCESS;
29978 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
29980 uint32_t cntr_core_printer_drivers_1;
29981 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
29983 if (flags & NDR_SET_VALUES) {
29984 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29986 if (flags & NDR_IN) {
29987 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
29989 ndr_print_ptr(ndr, "servername", r->in.servername);
29991 if (r->in.servername) {
29992 ndr_print_string(ndr, "servername", r->in.servername);
29995 ndr_print_ptr(ndr, "architecture", r->in.architecture);
29997 ndr_print_string(ndr, "architecture", r->in.architecture);
29999 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
30000 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30002 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
30004 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
30007 if (flags & NDR_OUT) {
30008 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
30010 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
30012 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
30014 for (cntr_core_printer_drivers_1=0;cntr_core_printer_drivers_1<r->in.core_printer_driver_count;cntr_core_printer_drivers_1++) {
30016 if (asprintf(&idx_1, "[%d]", cntr_core_printer_drivers_1) != -1) {
30017 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
30023 ndr_print_WERROR(ndr, "result", r->out.result);
30029 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
30031 if (flags & NDR_IN) {
30033 if (flags & NDR_OUT) {
30034 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30036 return NDR_ERR_SUCCESS;
30039 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
30041 if (flags & NDR_IN) {
30043 if (flags & NDR_OUT) {
30044 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30046 return NDR_ERR_SUCCESS;
30049 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
30051 ndr_print_struct(ndr, name, "spoolss_67");
30053 if (flags & NDR_SET_VALUES) {
30054 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30056 if (flags & NDR_IN) {
30057 ndr_print_struct(ndr, "in", "spoolss_67");
30061 if (flags & NDR_OUT) {
30062 ndr_print_struct(ndr, "out", "spoolss_67");
30064 ndr_print_WERROR(ndr, "result", r->out.result);
30070 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30072 if (flags & NDR_IN) {
30073 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30074 if (r->in.servername) {
30075 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30076 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30077 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30078 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30080 if (r->in.architecture == NULL) {
30081 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30083 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30084 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30086 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30087 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
30088 if (r->in.language) {
30089 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30090 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30091 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
30092 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30094 if (r->in.package_id == NULL) {
30095 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30097 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30098 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30099 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
30100 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));
30101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
30102 if (r->in.driver_package_cab) {
30103 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30104 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30108 if (flags & NDR_OUT) {
30109 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
30110 if (r->out.driver_package_cab) {
30111 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
30112 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
30114 if (r->out.required == NULL) {
30115 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
30118 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30120 return NDR_ERR_SUCCESS;
30123 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
30125 uint32_t _ptr_servername;
30126 uint32_t _ptr_language;
30127 uint32_t _ptr_driver_package_cab;
30128 TALLOC_CTX *_mem_save_servername_0;
30129 TALLOC_CTX *_mem_save_language_0;
30130 TALLOC_CTX *_mem_save_driver_package_cab_0;
30131 TALLOC_CTX *_mem_save_required_0;
30132 if (flags & NDR_IN) {
30133 ZERO_STRUCT(r->out);
30135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30136 if (_ptr_servername) {
30137 NDR_PULL_ALLOC(ndr, r->in.servername);
30139 r->in.servername = NULL;
30141 if (r->in.servername) {
30142 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30143 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30144 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30145 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30146 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
30147 return 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));
30149 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
30150 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
30151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30153 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30154 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30155 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
30156 return 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));
30158 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
30159 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
30160 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
30161 if (_ptr_language) {
30162 NDR_PULL_ALLOC(ndr, r->in.language);
30164 r->in.language = NULL;
30166 if (r->in.language) {
30167 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
30168 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
30169 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
30170 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
30171 if (ndr_get_array_length(ndr, &r->in.language) > ndr_get_array_size(ndr, &r->in.language)) {
30172 return 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));
30174 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t)));
30175 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, ndr_get_array_length(ndr, &r->in.language), sizeof(uint16_t), CH_UTF16));
30176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
30178 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
30179 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
30180 if (ndr_get_array_length(ndr, &r->in.package_id) > ndr_get_array_size(ndr, &r->in.package_id)) {
30181 return 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));
30183 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.package_id), sizeof(uint16_t)));
30184 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));
30185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30186 if (_ptr_driver_package_cab) {
30187 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
30189 r->in.driver_package_cab = NULL;
30191 if (r->in.driver_package_cab) {
30192 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30193 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
30194 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
30195 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));
30196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
30199 NDR_PULL_ALLOC(ndr, r->out.required);
30200 ZERO_STRUCTP(r->out.required);
30201 if (r->in.driver_package_cab) {
30202 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
30205 if (flags & NDR_OUT) {
30206 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
30207 if (_ptr_driver_package_cab) {
30208 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
30210 r->out.driver_package_cab = NULL;
30212 if (r->out.driver_package_cab) {
30213 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
30214 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
30215 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
30216 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));
30217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
30219 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30220 NDR_PULL_ALLOC(ndr, r->out.required);
30222 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
30223 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
30224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
30225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
30226 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30227 if (r->out.driver_package_cab) {
30228 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
30231 return NDR_ERR_SUCCESS;
30234 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
30236 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
30238 if (flags & NDR_SET_VALUES) {
30239 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30241 if (flags & NDR_IN) {
30242 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
30244 ndr_print_ptr(ndr, "servername", r->in.servername);
30246 if (r->in.servername) {
30247 ndr_print_string(ndr, "servername", r->in.servername);
30250 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30252 ndr_print_string(ndr, "architecture", r->in.architecture);
30254 ndr_print_ptr(ndr, "language", r->in.language);
30256 if (r->in.language) {
30257 ndr_print_string(ndr, "language", r->in.language);
30260 ndr_print_ptr(ndr, "package_id", r->in.package_id);
30262 ndr_print_string(ndr, "package_id", r->in.package_id);
30264 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
30266 if (r->in.driver_package_cab) {
30267 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
30270 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
30273 if (flags & NDR_OUT) {
30274 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
30276 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
30278 if (r->out.driver_package_cab) {
30279 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
30282 ndr_print_ptr(ndr, "required", r->out.required);
30284 ndr_print_uint32(ndr, "required", *r->out.required);
30286 ndr_print_WERROR(ndr, "result", r->out.result);
30292 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
30294 if (flags & NDR_IN) {
30296 if (flags & NDR_OUT) {
30297 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30299 return NDR_ERR_SUCCESS;
30302 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
30304 if (flags & NDR_IN) {
30306 if (flags & NDR_OUT) {
30307 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30309 return NDR_ERR_SUCCESS;
30312 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
30314 ndr_print_struct(ndr, name, "spoolss_69");
30316 if (flags & NDR_SET_VALUES) {
30317 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30319 if (flags & NDR_IN) {
30320 ndr_print_struct(ndr, "in", "spoolss_69");
30324 if (flags & NDR_OUT) {
30325 ndr_print_struct(ndr, "out", "spoolss_69");
30327 ndr_print_WERROR(ndr, "result", r->out.result);
30333 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
30335 if (flags & NDR_IN) {
30337 if (flags & NDR_OUT) {
30338 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30340 return NDR_ERR_SUCCESS;
30343 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
30345 if (flags & NDR_IN) {
30347 if (flags & NDR_OUT) {
30348 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30350 return NDR_ERR_SUCCESS;
30353 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
30355 ndr_print_struct(ndr, name, "spoolss_6a");
30357 if (flags & NDR_SET_VALUES) {
30358 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30360 if (flags & NDR_IN) {
30361 ndr_print_struct(ndr, "in", "spoolss_6a");
30365 if (flags & NDR_OUT) {
30366 ndr_print_struct(ndr, "out", "spoolss_6a");
30368 ndr_print_WERROR(ndr, "result", r->out.result);
30374 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
30376 if (flags & NDR_IN) {
30378 if (flags & NDR_OUT) {
30379 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30381 return NDR_ERR_SUCCESS;
30384 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
30386 if (flags & NDR_IN) {
30388 if (flags & NDR_OUT) {
30389 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30391 return NDR_ERR_SUCCESS;
30394 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
30396 ndr_print_struct(ndr, name, "spoolss_6b");
30398 if (flags & NDR_SET_VALUES) {
30399 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30401 if (flags & NDR_IN) {
30402 ndr_print_struct(ndr, "in", "spoolss_6b");
30406 if (flags & NDR_OUT) {
30407 ndr_print_struct(ndr, "out", "spoolss_6b");
30409 ndr_print_WERROR(ndr, "result", r->out.result);
30415 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
30417 if (flags & NDR_IN) {
30419 if (flags & NDR_OUT) {
30420 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30422 return NDR_ERR_SUCCESS;
30425 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
30427 if (flags & NDR_IN) {
30429 if (flags & NDR_OUT) {
30430 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30432 return NDR_ERR_SUCCESS;
30435 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
30437 ndr_print_struct(ndr, name, "spoolss_6c");
30439 if (flags & NDR_SET_VALUES) {
30440 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30442 if (flags & NDR_IN) {
30443 ndr_print_struct(ndr, "in", "spoolss_6c");
30447 if (flags & NDR_OUT) {
30448 ndr_print_struct(ndr, "out", "spoolss_6c");
30450 ndr_print_WERROR(ndr, "result", r->out.result);
30456 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
30458 if (flags & NDR_IN) {
30460 if (flags & NDR_OUT) {
30461 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30463 return NDR_ERR_SUCCESS;
30466 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
30468 if (flags & NDR_IN) {
30470 if (flags & NDR_OUT) {
30471 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30473 return NDR_ERR_SUCCESS;
30476 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
30478 ndr_print_struct(ndr, name, "spoolss_6d");
30480 if (flags & NDR_SET_VALUES) {
30481 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30483 if (flags & NDR_IN) {
30484 ndr_print_struct(ndr, "in", "spoolss_6d");
30488 if (flags & NDR_OUT) {
30489 ndr_print_struct(ndr, "out", "spoolss_6d");
30491 ndr_print_WERROR(ndr, "result", r->out.result);
30497 static const struct ndr_interface_call spoolss_calls[] = {
30499 "spoolss_EnumPrinters",
30500 sizeof(struct spoolss_EnumPrinters),
30501 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
30502 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
30503 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
30507 "spoolss_OpenPrinter",
30508 sizeof(struct spoolss_OpenPrinter),
30509 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
30510 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
30511 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
30516 sizeof(struct spoolss_SetJob),
30517 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
30518 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
30519 (ndr_print_function_t) ndr_print_spoolss_SetJob,
30524 sizeof(struct spoolss_GetJob),
30525 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
30526 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
30527 (ndr_print_function_t) ndr_print_spoolss_GetJob,
30531 "spoolss_EnumJobs",
30532 sizeof(struct spoolss_EnumJobs),
30533 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
30534 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
30535 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
30539 "spoolss_AddPrinter",
30540 sizeof(struct spoolss_AddPrinter),
30541 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
30542 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
30543 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
30547 "spoolss_DeletePrinter",
30548 sizeof(struct spoolss_DeletePrinter),
30549 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
30550 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
30551 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
30555 "spoolss_SetPrinter",
30556 sizeof(struct spoolss_SetPrinter),
30557 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
30558 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
30559 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
30563 "spoolss_GetPrinter",
30564 sizeof(struct spoolss_GetPrinter),
30565 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
30566 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
30567 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
30571 "spoolss_AddPrinterDriver",
30572 sizeof(struct spoolss_AddPrinterDriver),
30573 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
30574 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
30575 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
30579 "spoolss_EnumPrinterDrivers",
30580 sizeof(struct spoolss_EnumPrinterDrivers),
30581 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
30582 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
30583 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
30587 "spoolss_GetPrinterDriver",
30588 sizeof(struct spoolss_GetPrinterDriver),
30589 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
30590 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
30591 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
30595 "spoolss_GetPrinterDriverDirectory",
30596 sizeof(struct spoolss_GetPrinterDriverDirectory),
30597 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
30598 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
30599 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
30603 "spoolss_DeletePrinterDriver",
30604 sizeof(struct spoolss_DeletePrinterDriver),
30605 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
30606 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
30607 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
30611 "spoolss_AddPrintProcessor",
30612 sizeof(struct spoolss_AddPrintProcessor),
30613 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
30614 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
30615 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
30619 "spoolss_EnumPrintProcessors",
30620 sizeof(struct spoolss_EnumPrintProcessors),
30621 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
30622 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
30623 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
30627 "spoolss_GetPrintProcessorDirectory",
30628 sizeof(struct spoolss_GetPrintProcessorDirectory),
30629 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
30630 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
30631 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
30635 "spoolss_StartDocPrinter",
30636 sizeof(struct spoolss_StartDocPrinter),
30637 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
30638 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
30639 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
30643 "spoolss_StartPagePrinter",
30644 sizeof(struct spoolss_StartPagePrinter),
30645 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
30646 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
30647 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
30651 "spoolss_WritePrinter",
30652 sizeof(struct spoolss_WritePrinter),
30653 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
30654 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
30655 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
30659 "spoolss_EndPagePrinter",
30660 sizeof(struct spoolss_EndPagePrinter),
30661 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
30662 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
30663 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
30667 "spoolss_AbortPrinter",
30668 sizeof(struct spoolss_AbortPrinter),
30669 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
30670 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
30671 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
30675 "spoolss_ReadPrinter",
30676 sizeof(struct spoolss_ReadPrinter),
30677 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
30678 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
30679 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
30683 "spoolss_EndDocPrinter",
30684 sizeof(struct spoolss_EndDocPrinter),
30685 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
30686 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
30687 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
30692 sizeof(struct spoolss_AddJob),
30693 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
30694 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
30695 (ndr_print_function_t) ndr_print_spoolss_AddJob,
30699 "spoolss_ScheduleJob",
30700 sizeof(struct spoolss_ScheduleJob),
30701 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
30702 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
30703 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
30707 "spoolss_GetPrinterData",
30708 sizeof(struct spoolss_GetPrinterData),
30709 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
30710 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
30711 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
30715 "spoolss_SetPrinterData",
30716 sizeof(struct spoolss_SetPrinterData),
30717 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
30718 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
30719 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
30723 "spoolss_WaitForPrinterChange",
30724 sizeof(struct spoolss_WaitForPrinterChange),
30725 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
30726 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
30727 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
30731 "spoolss_ClosePrinter",
30732 sizeof(struct spoolss_ClosePrinter),
30733 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
30734 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
30735 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
30740 sizeof(struct spoolss_AddForm),
30741 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
30742 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
30743 (ndr_print_function_t) ndr_print_spoolss_AddForm,
30747 "spoolss_DeleteForm",
30748 sizeof(struct spoolss_DeleteForm),
30749 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
30750 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
30751 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
30756 sizeof(struct spoolss_GetForm),
30757 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
30758 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
30759 (ndr_print_function_t) ndr_print_spoolss_GetForm,
30764 sizeof(struct spoolss_SetForm),
30765 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
30766 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
30767 (ndr_print_function_t) ndr_print_spoolss_SetForm,
30771 "spoolss_EnumForms",
30772 sizeof(struct spoolss_EnumForms),
30773 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
30774 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
30775 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
30779 "spoolss_EnumPorts",
30780 sizeof(struct spoolss_EnumPorts),
30781 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
30782 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
30783 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
30787 "spoolss_EnumMonitors",
30788 sizeof(struct spoolss_EnumMonitors),
30789 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
30790 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
30791 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
30796 sizeof(struct spoolss_AddPort),
30797 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
30798 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
30799 (ndr_print_function_t) ndr_print_spoolss_AddPort,
30803 "spoolss_ConfigurePort",
30804 sizeof(struct spoolss_ConfigurePort),
30805 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
30806 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
30807 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
30811 "spoolss_DeletePort",
30812 sizeof(struct spoolss_DeletePort),
30813 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
30814 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
30815 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
30819 "spoolss_CreatePrinterIC",
30820 sizeof(struct spoolss_CreatePrinterIC),
30821 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
30822 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
30823 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
30827 "spoolss_PlayGDIScriptOnPrinterIC",
30828 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
30829 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
30830 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
30831 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
30835 "spoolss_DeletePrinterIC",
30836 sizeof(struct spoolss_DeletePrinterIC),
30837 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
30838 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
30839 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
30843 "spoolss_AddPrinterConnection",
30844 sizeof(struct spoolss_AddPrinterConnection),
30845 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
30846 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
30847 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
30851 "spoolss_DeletePrinterConnection",
30852 sizeof(struct spoolss_DeletePrinterConnection),
30853 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
30854 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
30855 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
30859 "spoolss_PrinterMessageBox",
30860 sizeof(struct spoolss_PrinterMessageBox),
30861 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
30862 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
30863 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
30867 "spoolss_AddMonitor",
30868 sizeof(struct spoolss_AddMonitor),
30869 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
30870 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
30871 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
30875 "spoolss_DeleteMonitor",
30876 sizeof(struct spoolss_DeleteMonitor),
30877 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
30878 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
30879 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
30883 "spoolss_DeletePrintProcessor",
30884 sizeof(struct spoolss_DeletePrintProcessor),
30885 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
30886 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
30887 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
30891 "spoolss_AddPrintProvidor",
30892 sizeof(struct spoolss_AddPrintProvidor),
30893 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
30894 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
30895 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
30899 "spoolss_DeletePrintProvidor",
30900 sizeof(struct spoolss_DeletePrintProvidor),
30901 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
30902 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
30903 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
30907 "spoolss_EnumPrintProcDataTypes",
30908 sizeof(struct spoolss_EnumPrintProcDataTypes),
30909 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
30910 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
30911 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
30915 "spoolss_ResetPrinter",
30916 sizeof(struct spoolss_ResetPrinter),
30917 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
30918 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
30919 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
30923 "spoolss_GetPrinterDriver2",
30924 sizeof(struct spoolss_GetPrinterDriver2),
30925 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
30926 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
30927 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
30931 "spoolss_FindFirstPrinterChangeNotification",
30932 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
30933 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
30934 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
30935 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
30939 "spoolss_FindNextPrinterChangeNotification",
30940 sizeof(struct spoolss_FindNextPrinterChangeNotification),
30941 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
30942 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
30943 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
30947 "spoolss_FindClosePrinterNotify",
30948 sizeof(struct spoolss_FindClosePrinterNotify),
30949 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
30950 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
30951 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
30955 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
30956 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
30957 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30958 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30959 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
30963 "spoolss_ReplyOpenPrinter",
30964 sizeof(struct spoolss_ReplyOpenPrinter),
30965 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
30966 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
30967 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
30971 "spoolss_RouterReplyPrinter",
30972 sizeof(struct spoolss_RouterReplyPrinter),
30973 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
30974 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
30975 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
30979 "spoolss_ReplyClosePrinter",
30980 sizeof(struct spoolss_ReplyClosePrinter),
30981 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
30982 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
30983 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
30987 "spoolss_AddPortEx",
30988 sizeof(struct spoolss_AddPortEx),
30989 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
30990 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
30991 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
30995 "spoolss_RouterFindFirstPrinterChangeNotification",
30996 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
30997 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
30998 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
30999 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
31003 "spoolss_SpoolerInit",
31004 sizeof(struct spoolss_SpoolerInit),
31005 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
31006 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
31007 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
31011 "spoolss_ResetPrinterEx",
31012 sizeof(struct spoolss_ResetPrinterEx),
31013 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
31014 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
31015 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
31019 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
31020 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
31021 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31022 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31023 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
31027 "spoolss_RouterReplyPrinterEx",
31028 sizeof(struct spoolss_RouterReplyPrinterEx),
31029 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
31030 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
31031 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
31035 "spoolss_RouterRefreshPrinterChangeNotify",
31036 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
31037 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
31038 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
31039 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
31044 sizeof(struct spoolss_44),
31045 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
31046 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
31047 (ndr_print_function_t) ndr_print_spoolss_44,
31051 "spoolss_OpenPrinterEx",
31052 sizeof(struct spoolss_OpenPrinterEx),
31053 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
31054 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
31055 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
31059 "spoolss_AddPrinterEx",
31060 sizeof(struct spoolss_AddPrinterEx),
31061 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
31062 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
31063 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
31068 sizeof(struct spoolss_47),
31069 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
31070 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
31071 (ndr_print_function_t) ndr_print_spoolss_47,
31075 "spoolss_EnumPrinterData",
31076 sizeof(struct spoolss_EnumPrinterData),
31077 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
31078 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
31079 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
31083 "spoolss_DeletePrinterData",
31084 sizeof(struct spoolss_DeletePrinterData),
31085 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
31086 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
31087 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
31092 sizeof(struct spoolss_4a),
31093 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
31094 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
31095 (ndr_print_function_t) ndr_print_spoolss_4a,
31100 sizeof(struct spoolss_4b),
31101 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
31102 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
31103 (ndr_print_function_t) ndr_print_spoolss_4b,
31108 sizeof(struct spoolss_4c),
31109 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
31110 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
31111 (ndr_print_function_t) ndr_print_spoolss_4c,
31115 "spoolss_SetPrinterDataEx",
31116 sizeof(struct spoolss_SetPrinterDataEx),
31117 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
31118 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
31119 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
31123 "spoolss_GetPrinterDataEx",
31124 sizeof(struct spoolss_GetPrinterDataEx),
31125 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
31126 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
31127 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
31131 "spoolss_EnumPrinterDataEx",
31132 sizeof(struct spoolss_EnumPrinterDataEx),
31133 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
31134 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
31135 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
31139 "spoolss_EnumPrinterKey",
31140 sizeof(struct spoolss_EnumPrinterKey),
31141 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
31142 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
31143 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
31147 "spoolss_DeletePrinterDataEx",
31148 sizeof(struct spoolss_DeletePrinterDataEx),
31149 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
31150 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
31151 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
31155 "spoolss_DeletePrinterKey",
31156 sizeof(struct spoolss_DeletePrinterKey),
31157 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
31158 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
31159 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
31164 sizeof(struct spoolss_53),
31165 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
31166 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
31167 (ndr_print_function_t) ndr_print_spoolss_53,
31171 "spoolss_DeletePrinterDriverEx",
31172 sizeof(struct spoolss_DeletePrinterDriverEx),
31173 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
31174 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
31175 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
31180 sizeof(struct spoolss_55),
31181 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
31182 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
31183 (ndr_print_function_t) ndr_print_spoolss_55,
31188 sizeof(struct spoolss_56),
31189 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
31190 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
31191 (ndr_print_function_t) ndr_print_spoolss_56,
31196 sizeof(struct spoolss_57),
31197 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
31198 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
31199 (ndr_print_function_t) ndr_print_spoolss_57,
31204 sizeof(struct spoolss_XcvData),
31205 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
31206 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
31207 (ndr_print_function_t) ndr_print_spoolss_XcvData,
31211 "spoolss_AddPrinterDriverEx",
31212 sizeof(struct spoolss_AddPrinterDriverEx),
31213 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
31214 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
31215 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
31220 sizeof(struct spoolss_5a),
31221 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
31222 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
31223 (ndr_print_function_t) ndr_print_spoolss_5a,
31228 sizeof(struct spoolss_5b),
31229 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
31230 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
31231 (ndr_print_function_t) ndr_print_spoolss_5b,
31236 sizeof(struct spoolss_5c),
31237 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
31238 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
31239 (ndr_print_function_t) ndr_print_spoolss_5c,
31244 sizeof(struct spoolss_5d),
31245 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
31246 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
31247 (ndr_print_function_t) ndr_print_spoolss_5d,
31252 sizeof(struct spoolss_5e),
31253 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
31254 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
31255 (ndr_print_function_t) ndr_print_spoolss_5e,
31260 sizeof(struct spoolss_5f),
31261 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
31262 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
31263 (ndr_print_function_t) ndr_print_spoolss_5f,
31268 sizeof(struct spoolss_60),
31269 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
31270 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
31271 (ndr_print_function_t) ndr_print_spoolss_60,
31276 sizeof(struct spoolss_61),
31277 (ndr_push_flags_fn_t) ndr_push_spoolss_61,
31278 (ndr_pull_flags_fn_t) ndr_pull_spoolss_61,
31279 (ndr_print_function_t) ndr_print_spoolss_61,
31284 sizeof(struct spoolss_62),
31285 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
31286 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
31287 (ndr_print_function_t) ndr_print_spoolss_62,
31292 sizeof(struct spoolss_63),
31293 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
31294 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
31295 (ndr_print_function_t) ndr_print_spoolss_63,
31300 sizeof(struct spoolss_64),
31301 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
31302 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
31303 (ndr_print_function_t) ndr_print_spoolss_64,
31308 sizeof(struct spoolss_65),
31309 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
31310 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
31311 (ndr_print_function_t) ndr_print_spoolss_65,
31315 "spoolss_GetCorePrinterDrivers",
31316 sizeof(struct spoolss_GetCorePrinterDrivers),
31317 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
31318 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
31319 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
31324 sizeof(struct spoolss_67),
31325 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
31326 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
31327 (ndr_print_function_t) ndr_print_spoolss_67,
31331 "spoolss_GetPrinterDriverPackagePath",
31332 sizeof(struct spoolss_GetPrinterDriverPackagePath),
31333 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
31334 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
31335 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
31340 sizeof(struct spoolss_69),
31341 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
31342 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
31343 (ndr_print_function_t) ndr_print_spoolss_69,
31348 sizeof(struct spoolss_6a),
31349 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
31350 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
31351 (ndr_print_function_t) ndr_print_spoolss_6a,
31356 sizeof(struct spoolss_6b),
31357 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
31358 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
31359 (ndr_print_function_t) ndr_print_spoolss_6b,
31364 sizeof(struct spoolss_6c),
31365 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
31366 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
31367 (ndr_print_function_t) ndr_print_spoolss_6c,
31372 sizeof(struct spoolss_6d),
31373 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
31374 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
31375 (ndr_print_function_t) ndr_print_spoolss_6d,
31378 { NULL, 0, NULL, NULL, NULL, false }
31381 static const char * const spoolss_endpoint_strings[] = {
31382 "ncacn_np:[\\pipe\\spoolss]",
31385 static const struct ndr_interface_string_array spoolss_endpoints = {
31387 .names = spoolss_endpoint_strings
31390 static const char * const spoolss_authservice_strings[] = {
31394 static const struct ndr_interface_string_array spoolss_authservices = {
31396 .names = spoolss_authservice_strings
31400 const struct ndr_interface_table ndr_table_spoolss = {
31403 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
31404 NDR_SPOOLSS_VERSION
31406 .helpstring = NDR_SPOOLSS_HELPSTRING,
31408 .calls = spoolss_calls,
31409 .endpoints = &spoolss_endpoints,
31410 .authservices = &spoolss_authservices