1 /* parser auto-generated by pidl */
4 #include "bin/default/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 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12 if (ndr_flags & NDR_SCALARS) {
13 NDR_CHECK(ndr_push_align(ndr, 2));
14 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
15 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
16 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
17 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
18 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
19 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
20 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
21 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
22 NDR_CHECK(ndr_push_trailer_align(ndr, 2));
24 if (ndr_flags & NDR_BUFFERS) {
26 return NDR_ERR_SUCCESS;
29 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
31 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
32 if (ndr_flags & NDR_SCALARS) {
33 NDR_CHECK(ndr_pull_align(ndr, 2));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
39 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
40 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
41 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
42 NDR_CHECK(ndr_pull_trailer_align(ndr, 2));
44 if (ndr_flags & NDR_BUFFERS) {
46 return NDR_ERR_SUCCESS;
49 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, int flags)
51 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time);
54 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
56 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
57 if (ndr_flags & NDR_SCALARS) {
58 NDR_CHECK(ndr_push_align(ndr, 5));
59 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->flags)));
60 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
61 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
63 if (ndr_flags & NDR_BUFFERS) {
65 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
68 return NDR_ERR_SUCCESS;
71 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
74 TALLOC_CTX *_mem_save_time_0 = NULL;
75 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
76 if (ndr_flags & NDR_SCALARS) {
77 NDR_CHECK(ndr_pull_align(ndr, 5));
78 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
79 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
81 NDR_PULL_ALLOC(ndr, r->time);
85 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
87 if (ndr_flags & NDR_BUFFERS) {
89 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
90 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
91 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
92 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
95 return NDR_ERR_SUCCESS;
98 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
100 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
101 if (r == NULL) { ndr_print_null(ndr); return; }
103 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->flags):r->size);
104 ndr_print_ptr(ndr, "time", r->time);
107 ndr_print_spoolss_Time(ndr, "time", r->time);
113 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
115 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
116 return NDR_ERR_SUCCESS;
119 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
122 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
124 return NDR_ERR_SUCCESS;
127 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
129 const char *val = NULL;
132 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
133 case PROCESSOR_ARCHITECTURE_ARM: val = "PROCESSOR_ARCHITECTURE_ARM"; break;
134 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
135 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
137 ndr_print_enum(ndr, name, "ENUM", val, r);
140 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
142 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
143 return NDR_ERR_SUCCESS;
146 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
149 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
151 return NDR_ERR_SUCCESS;
154 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
156 const char *val = NULL;
159 case PROCESSOR_ARM: val = "PROCESSOR_ARM"; break;
160 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
161 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
162 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
163 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
164 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
166 ndr_print_enum(ndr, name, "ENUM", val, r);
169 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
171 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
172 return NDR_ERR_SUCCESS;
175 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
178 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
180 return NDR_ERR_SUCCESS;
183 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
185 const char *val = NULL;
188 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
189 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
190 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
192 ndr_print_enum(ndr, name, "ENUM", val, r);
195 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
197 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
198 return NDR_ERR_SUCCESS;
201 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
204 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
206 return NDR_ERR_SUCCESS;
209 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
211 const char *val = NULL;
214 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
215 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
216 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
217 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
218 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
220 ndr_print_enum(ndr, name, "ENUM", val, r);
223 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
226 return NDR_ERR_SUCCESS;
229 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
234 return NDR_ERR_SUCCESS;
237 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
239 ndr_print_uint32(ndr, name, r);
241 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
242 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
243 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
244 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
269 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
271 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
272 return NDR_ERR_SUCCESS;
275 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
280 return NDR_ERR_SUCCESS;
283 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
285 ndr_print_uint32(ndr, name, r);
287 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
288 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
289 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
290 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
293 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
294 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
303 static enum ndr_err_code ndr_push_spoolss_Build(struct ndr_push *ndr, int ndr_flags, enum spoolss_Build r)
305 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
306 return NDR_ERR_SUCCESS;
309 static enum ndr_err_code ndr_pull_spoolss_Build(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Build *r)
312 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
314 return NDR_ERR_SUCCESS;
317 _PUBLIC_ void ndr_print_spoolss_Build(struct ndr_print *ndr, const char *name, enum spoolss_Build r)
319 const char *val = NULL;
322 case SPOOLSS_DEBUGGING_BUILD: val = "SPOOLSS_DEBUGGING_BUILD"; break;
323 case SPOOLSS_RELEASE_BUILD: val = "SPOOLSS_RELEASE_BUILD"; break;
325 ndr_print_enum(ndr, name, "ENUM", val, r);
328 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
330 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
331 if (ndr_flags & NDR_SCALARS) {
332 NDR_CHECK(ndr_push_align(ndr, 5));
334 uint32_t _flags_save_string = ndr->flags;
335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
336 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
337 ndr->flags = _flags_save_string;
340 uint32_t _flags_save_string = ndr->flags;
341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
342 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
343 ndr->flags = _flags_save_string;
345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
348 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
352 NDR_CHECK(ndr_push_spoolss_Build(ndr, NDR_SCALARS, r->free_build));
353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
358 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
360 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
363 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
364 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
367 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
368 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
372 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
374 if (ndr_flags & NDR_BUFFERS) {
376 uint32_t _flags_save_string = ndr->flags;
377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
378 if (r->printername) {
379 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
380 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
381 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
383 ndr->flags = _flags_save_string;
386 uint32_t _flags_save_string = ndr->flags;
387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
389 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
390 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
391 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
393 ndr->flags = _flags_save_string;
396 return NDR_ERR_SUCCESS;
399 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
401 uint32_t _ptr_printername;
402 TALLOC_CTX *_mem_save_printername_0 = NULL;
403 uint32_t _ptr_servername;
404 TALLOC_CTX *_mem_save_servername_0 = NULL;
405 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
406 if (ndr_flags & NDR_SCALARS) {
407 NDR_CHECK(ndr_pull_align(ndr, 5));
409 uint32_t _flags_save_string = ndr->flags;
410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
412 if (_ptr_printername) {
413 NDR_PULL_ALLOC(ndr, r->printername);
414 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
416 r->printername = NULL;
418 ndr->flags = _flags_save_string;
421 uint32_t _flags_save_string = ndr->flags;
422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
424 if (_ptr_servername) {
425 NDR_PULL_ALLOC(ndr, r->servername);
426 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
428 r->servername = NULL;
430 ndr->flags = _flags_save_string;
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
434 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
435 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
439 NDR_CHECK(ndr_pull_spoolss_Build(ndr, NDR_SCALARS, &r->free_build));
440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
441 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
445 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
447 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
450 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
451 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
454 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
455 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
459 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
461 if (ndr_flags & NDR_BUFFERS) {
463 uint32_t _flags_save_string = ndr->flags;
464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
465 if (r->printername) {
466 uint32_t _relative_save_offset;
467 _relative_save_offset = ndr->offset;
468 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
469 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
470 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
471 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
473 if (ndr->offset > ndr->relative_highest_offset) {
474 ndr->relative_highest_offset = ndr->offset;
476 ndr->offset = _relative_save_offset;
478 ndr->flags = _flags_save_string;
481 uint32_t _flags_save_string = ndr->flags;
482 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
484 uint32_t _relative_save_offset;
485 _relative_save_offset = ndr->offset;
486 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
487 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
488 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
489 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
491 if (ndr->offset > ndr->relative_highest_offset) {
492 ndr->relative_highest_offset = ndr->offset;
494 ndr->offset = _relative_save_offset;
496 ndr->flags = _flags_save_string;
499 return NDR_ERR_SUCCESS;
502 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
504 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
505 if (r == NULL) { ndr_print_null(ndr); return; }
507 ndr_print_ptr(ndr, "printername", r->printername);
509 if (r->printername) {
510 ndr_print_string(ndr, "printername", r->printername);
513 ndr_print_ptr(ndr, "servername", r->servername);
516 ndr_print_string(ndr, "servername", r->servername);
519 ndr_print_uint32(ndr, "cjobs", r->cjobs);
520 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
521 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
522 ndr_print_spoolss_Time(ndr, "time", &r->time);
523 ndr_print_uint32(ndr, "global_counter", r->global_counter);
524 ndr_print_uint32(ndr, "total_pages", r->total_pages);
525 ndr_print_uint32(ndr, "version", r->version);
526 ndr_print_spoolss_Build(ndr, "free_build", r->free_build);
527 ndr_print_uint32(ndr, "spooling", r->spooling);
528 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
529 ndr_print_uint32(ndr, "session_counter", r->session_counter);
530 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
531 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
532 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
533 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
534 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
535 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
536 ndr_print_uint32(ndr, "change_id", r->change_id);
537 ndr_print_WERROR(ndr, "last_error", r->last_error);
538 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
539 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
540 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
541 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
542 ndr_print_uint16(ndr, "processor_level", r->processor_level);
543 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
544 ndr_print_uint32(ndr, "reserved2", r->reserved2);
545 ndr_print_uint32(ndr, "reserved3", r->reserved3);
549 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, int flags)
551 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0);
554 static enum ndr_err_code ndr_push_spoolss_DM_Signature(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_Signature r)
556 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
557 return NDR_ERR_SUCCESS;
560 static enum ndr_err_code ndr_pull_spoolss_DM_Signature(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_Signature *r)
563 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
565 return NDR_ERR_SUCCESS;
568 _PUBLIC_ void ndr_print_spoolss_DM_Signature(struct ndr_print *ndr, const char *name, enum spoolss_DM_Signature r)
570 const char *val = NULL;
573 case SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA: val = "SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA"; break;
574 case SPOOLSS_DM_SIGNATURE_JTEXP: val = "SPOOLSS_DM_SIGNATURE_JTEXP"; break;
575 case SPOOLSS_DM_SIGNATURE_PSEXTRA: val = "SPOOLSS_DM_SIGNATURE_PSEXTRA"; break;
577 ndr_print_enum(ndr, name, "ENUM", val, r);
580 static enum ndr_err_code ndr_push_spoolss_DM_Layout(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_Layout r)
582 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
583 return NDR_ERR_SUCCESS;
586 static enum ndr_err_code ndr_pull_spoolss_DM_Layout(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_Layout *r)
589 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
591 return NDR_ERR_SUCCESS;
594 _PUBLIC_ void ndr_print_spoolss_DM_Layout(struct ndr_print *ndr, const char *name, enum spoolss_DM_Layout r)
596 const char *val = NULL;
599 case SPOOLSS_DM_LAYOUT_NUP_DISABLED: val = "SPOOLSS_DM_LAYOUT_NUP_DISABLED"; break;
600 case SPOOLSS_DM_LAYOUT_NUP_2: val = "SPOOLSS_DM_LAYOUT_NUP_2"; break;
601 case SPOOLSS_DM_LAYOUT_NUP_4: val = "SPOOLSS_DM_LAYOUT_NUP_4"; break;
602 case SPOOLSS_DM_LAYOUT_NUP_6: val = "SPOOLSS_DM_LAYOUT_NUP_6"; break;
603 case SPOOLSS_DM_LAYOUT_NUP_9: val = "SPOOLSS_DM_LAYOUT_NUP_9"; break;
604 case SPOOLSS_DM_LAYOUT_NUP_16: val = "SPOOLSS_DM_LAYOUT_NUP_16"; break;
605 case SPOOLSS_DM_LAYOUT_BOOKLET: val = "SPOOLSS_DM_LAYOUT_BOOKLET"; break;
607 ndr_print_enum(ndr, name, "ENUM", val, r);
610 static enum ndr_err_code ndr_push_spoolss_DM_NupDirection(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_NupDirection r)
612 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
613 return NDR_ERR_SUCCESS;
616 static enum ndr_err_code ndr_pull_spoolss_DM_NupDirection(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_NupDirection *r)
619 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
621 return NDR_ERR_SUCCESS;
624 _PUBLIC_ void ndr_print_spoolss_DM_NupDirection(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupDirection r)
626 const char *val = NULL;
629 case SPOOLSS_DM_NUP_DIRECTION_L2R_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_L2R_T2B"; break;
630 case SPOOLSS_DM_NUP_DIRECTION_T2B_L2R: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_L2R"; break;
631 case SPOOLSS_DM_NUP_DIRECTION_R2L_T2B: val = "SPOOLSS_DM_NUP_DIRECTION_R2L_T2B"; break;
632 case SPOOLSS_DM_NUP_DIRECTION_T2B_R2L: val = "SPOOLSS_DM_NUP_DIRECTION_T2B_R2L"; break;
634 ndr_print_enum(ndr, name, "ENUM", val, r);
637 static enum ndr_err_code ndr_push_spoolss_DM_NupBorderFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_NupBorderFlags r)
639 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
640 return NDR_ERR_SUCCESS;
643 static enum ndr_err_code ndr_pull_spoolss_DM_NupBorderFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_NupBorderFlags *r)
646 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
648 return NDR_ERR_SUCCESS;
651 _PUBLIC_ void ndr_print_spoolss_DM_NupBorderFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_NupBorderFlags r)
653 const char *val = NULL;
656 case SPOOLSS_DM_NUP_BORDER_PRINT: val = "SPOOLSS_DM_NUP_BORDER_PRINT"; break;
657 case SPOOLSS_DM_NUP_BORDER_NONE: val = "SPOOLSS_DM_NUP_BORDER_NONE"; break;
659 ndr_print_enum(ndr, name, "ENUM", val, r);
662 static enum ndr_err_code ndr_push_spoolss_DM_BookletFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_DM_BookletFlags r)
664 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
665 return NDR_ERR_SUCCESS;
668 static enum ndr_err_code ndr_pull_spoolss_DM_BookletFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DM_BookletFlags *r)
671 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
673 return NDR_ERR_SUCCESS;
676 _PUBLIC_ void ndr_print_spoolss_DM_BookletFlags(struct ndr_print *ndr, const char *name, enum spoolss_DM_BookletFlags r)
678 const char *val = NULL;
681 case SPOOLSS_DM_BOOKLET_LEFT_FLIP: val = "SPOOLSS_DM_BOOKLET_LEFT_FLIP"; break;
682 case SPOOLSS_DM_BOOKLET_RIGHT_FLIP: val = "SPOOLSS_DM_BOOKLET_RIGHT_FLIP"; break;
684 ndr_print_enum(ndr, name, "ENUM", val, r);
687 static enum ndr_err_code ndr_push_spoolss_DMUNI_Quality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DMUNI_Quality r)
689 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
690 return NDR_ERR_SUCCESS;
693 static enum ndr_err_code ndr_pull_spoolss_DMUNI_Quality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DMUNI_Quality *r)
696 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
698 return NDR_ERR_SUCCESS;
701 _PUBLIC_ void ndr_print_spoolss_DMUNI_Quality(struct ndr_print *ndr, const char *name, enum spoolss_DMUNI_Quality r)
703 const char *val = NULL;
706 case SPOOLSS_DM_UNI_QUALITY_BEST: val = "SPOOLSS_DM_UNI_QUALITY_BEST"; break;
707 case SPOOLSS_DM_UNI_QUALITY_MEDIUM: val = "SPOOLSS_DM_UNI_QUALITY_MEDIUM"; break;
708 case SPOOLSS_DM_UNI_QUALITY_DRAFT: val = "SPOOLSS_DM_UNI_QUALITY_DRAFT"; break;
710 ndr_print_enum(ndr, name, "ENUM", val, r);
713 static enum ndr_err_code ndr_push_spoolss_DMUNI_Flags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
716 return NDR_ERR_SUCCESS;
719 static enum ndr_err_code ndr_pull_spoolss_DMUNI_Flags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
724 return NDR_ERR_SUCCESS;
727 _PUBLIC_ void ndr_print_spoolss_DMUNI_Flags(struct ndr_print *ndr, const char *name, uint32_t r)
729 ndr_print_uint32(ndr, name, r);
731 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS", SPOOLSS_DM_UNI_FLAGS_PRINT_TEXT_AS_GRAPHICS, r);
732 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL", SPOOLSS_DM_UNI_FLAGS_AVOID_EMFSPOOL, r);
733 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING", SPOOLSS_DM_UNI_FLAGS_CUSTOM_HALFTONING, r);
737 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_UNIDRVEXTRA(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UNIDRVEXTRA *r)
739 uint32_t cntr_wReserved_0;
740 uint32_t cntr_aOptions_0;
741 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
742 if (ndr_flags & NDR_SCALARS) {
743 NDR_CHECK(ndr_push_align(ndr, 4));
744 NDR_CHECK(ndr_push_spoolss_DM_Signature(ndr, NDR_SCALARS, SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA));
745 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, 0x0022));
746 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wCoreJTExpSize));
747 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, ndr_size_spoolss_UNIDRVEXTRA(r, ndr->flags) + r->wCoreJTExpSize));
748 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wOEMExtra));
749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwChecksum32));
750 NDR_CHECK(ndr_push_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, r->dwFlags));
751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bReversePrint));
752 NDR_CHECK(ndr_push_spoolss_DM_Layout(ndr, NDR_SCALARS, r->iLayout));
753 NDR_CHECK(ndr_push_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, r->iQuality));
754 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (6); cntr_wReserved_0++) {
755 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->wReserved[cntr_wReserved_0]));
757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwOptions));
758 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (128); cntr_aOptions_0++) {
759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->aOptions[cntr_aOptions_0]));
761 NDR_CHECK(ndr_push_spoolss_DM_NupDirection(ndr, NDR_SCALARS, r->dwNupDirection));
762 NDR_CHECK(ndr_push_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, r->dwNupBorderFlags));
763 NDR_CHECK(ndr_push_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, r->dwBookletFlags));
764 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
766 if (ndr_flags & NDR_BUFFERS) {
768 return NDR_ERR_SUCCESS;
771 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_UNIDRVEXTRA(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UNIDRVEXTRA *r)
773 uint32_t size_wReserved_0 = 0;
774 uint32_t cntr_wReserved_0;
775 uint32_t size_aOptions_0 = 0;
776 uint32_t cntr_aOptions_0;
777 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
778 if (ndr_flags & NDR_SCALARS) {
779 NDR_CHECK(ndr_pull_align(ndr, 4));
780 NDR_CHECK(ndr_pull_spoolss_DM_Signature(ndr, NDR_SCALARS, &r->dwSignature));
781 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wVer));
782 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreJTExpSize));
783 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wCoreFullSize));
784 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wOEMExtra));
785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwChecksum32));
786 NDR_CHECK(ndr_pull_spoolss_DMUNI_Flags(ndr, NDR_SCALARS, &r->dwFlags));
787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bReversePrint));
788 NDR_CHECK(ndr_pull_spoolss_DM_Layout(ndr, NDR_SCALARS, &r->iLayout));
789 NDR_CHECK(ndr_pull_spoolss_DMUNI_Quality(ndr, NDR_SCALARS, &r->iQuality));
790 size_wReserved_0 = 6;
791 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (size_wReserved_0); cntr_wReserved_0++) {
792 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->wReserved[cntr_wReserved_0]));
794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwOptions));
795 size_aOptions_0 = 128;
796 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (size_aOptions_0); cntr_aOptions_0++) {
797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->aOptions[cntr_aOptions_0]));
799 NDR_CHECK(ndr_pull_spoolss_DM_NupDirection(ndr, NDR_SCALARS, &r->dwNupDirection));
800 NDR_CHECK(ndr_pull_spoolss_DM_NupBorderFlags(ndr, NDR_SCALARS, &r->dwNupBorderFlags));
801 NDR_CHECK(ndr_pull_spoolss_DM_BookletFlags(ndr, NDR_SCALARS, &r->dwBookletFlags));
802 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
804 if (ndr_flags & NDR_BUFFERS) {
806 return NDR_ERR_SUCCESS;
809 _PUBLIC_ void ndr_print_spoolss_UNIDRVEXTRA(struct ndr_print *ndr, const char *name, const struct spoolss_UNIDRVEXTRA *r)
811 uint32_t cntr_wReserved_0;
812 uint32_t cntr_aOptions_0;
813 ndr_print_struct(ndr, name, "spoolss_UNIDRVEXTRA");
814 if (r == NULL) { ndr_print_null(ndr); return; }
816 ndr_print_spoolss_DM_Signature(ndr, "dwSignature", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?SPOOLSS_DM_SIGNATURE_UNIDRVEXTRA:r->dwSignature);
817 ndr_print_uint16(ndr, "wVer", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x0022:r->wVer);
818 ndr_print_uint16(ndr, "wCoreJTExpSize", r->wCoreJTExpSize);
819 ndr_print_uint16(ndr, "wCoreFullSize", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_UNIDRVEXTRA(r, ndr->flags) + r->wCoreJTExpSize:r->wCoreFullSize);
820 ndr_print_uint16(ndr, "wOEMExtra", r->wOEMExtra);
821 ndr_print_uint32(ndr, "dwChecksum32", r->dwChecksum32);
822 ndr_print_spoolss_DMUNI_Flags(ndr, "dwFlags", r->dwFlags);
823 ndr_print_uint32(ndr, "bReversePrint", r->bReversePrint);
824 ndr_print_spoolss_DM_Layout(ndr, "iLayout", r->iLayout);
825 ndr_print_spoolss_DMUNI_Quality(ndr, "iQuality", r->iQuality);
826 ndr->print(ndr, "%s: ARRAY(%d)", "wReserved", (int)6);
828 for (cntr_wReserved_0 = 0; cntr_wReserved_0 < (6); cntr_wReserved_0++) {
829 ndr_print_uint16(ndr, "wReserved", r->wReserved[cntr_wReserved_0]);
832 ndr_print_uint32(ndr, "dwOptions", r->dwOptions);
833 ndr->print(ndr, "%s: ARRAY(%d)", "aOptions", (int)128);
835 for (cntr_aOptions_0 = 0; cntr_aOptions_0 < (128); cntr_aOptions_0++) {
836 ndr_print_uint32(ndr, "aOptions", r->aOptions[cntr_aOptions_0]);
839 ndr_print_spoolss_DM_NupDirection(ndr, "dwNupDirection", r->dwNupDirection);
840 ndr_print_spoolss_DM_NupBorderFlags(ndr, "dwNupBorderFlags", r->dwNupBorderFlags);
841 ndr_print_spoolss_DM_BookletFlags(ndr, "dwBookletFlags", r->dwBookletFlags);
845 _PUBLIC_ size_t ndr_size_spoolss_UNIDRVEXTRA(const struct spoolss_UNIDRVEXTRA *r, int flags)
847 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_UNIDRVEXTRA);
850 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
853 return NDR_ERR_SUCCESS;
856 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
861 return NDR_ERR_SUCCESS;
864 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
866 ndr_print_uint32(ndr, name, r);
868 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
869 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
870 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
871 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
872 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
873 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
874 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
875 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
877 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
878 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
885 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
886 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
887 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
888 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
889 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
890 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
891 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
892 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
893 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
894 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
895 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
899 static enum ndr_err_code ndr_push_spoolss_DeviceModeSpecVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion r)
901 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
902 return NDR_ERR_SUCCESS;
905 static enum ndr_err_code ndr_pull_spoolss_DeviceModeSpecVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeSpecVersion *r)
908 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
910 return NDR_ERR_SUCCESS;
913 _PUBLIC_ void ndr_print_spoolss_DeviceModeSpecVersion(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeSpecVersion r)
915 const char *val = NULL;
918 case DMSPEC_NT3: val = "DMSPEC_NT3"; break;
919 case DMSPEC_WIN95_98_ME: val = "DMSPEC_WIN95_98_ME"; break;
920 case DMSPEC_NT4_AND_ABOVE: val = "DMSPEC_NT4_AND_ABOVE"; break;
922 ndr_print_enum(ndr, name, "ENUM", val, r);
925 static enum ndr_err_code ndr_push_spoolss_DeviceModeOrientation(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation r)
927 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
928 return NDR_ERR_SUCCESS;
931 static enum ndr_err_code ndr_pull_spoolss_DeviceModeOrientation(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeOrientation *r)
934 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
936 return NDR_ERR_SUCCESS;
939 _PUBLIC_ void ndr_print_spoolss_DeviceModeOrientation(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeOrientation r)
941 const char *val = NULL;
944 case DMORIENT_PORTRAIT: val = "DMORIENT_PORTRAIT"; break;
945 case DMORIENT_LANDSCAPE: val = "DMORIENT_LANDSCAPE"; break;
947 ndr_print_enum(ndr, name, "ENUM", val, r);
950 static enum ndr_err_code ndr_push_spoolss_DeviceModePaperSize(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize r)
952 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
953 return NDR_ERR_SUCCESS;
956 static enum ndr_err_code ndr_pull_spoolss_DeviceModePaperSize(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePaperSize *r)
959 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
961 return NDR_ERR_SUCCESS;
964 _PUBLIC_ void ndr_print_spoolss_DeviceModePaperSize(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePaperSize r)
966 const char *val = NULL;
969 case DMPAPER_LETTER: val = "DMPAPER_LETTER"; break;
970 case DMPAPER_LETTERSMALL: val = "DMPAPER_LETTERSMALL"; break;
971 case DMPAPER_TABLOID: val = "DMPAPER_TABLOID"; break;
972 case DMPAPER_LEDGER: val = "DMPAPER_LEDGER"; break;
973 case DMPAPER_LEGAL: val = "DMPAPER_LEGAL"; break;
974 case DMPAPER_STATEMENT: val = "DMPAPER_STATEMENT"; break;
975 case DMPAPER_EXECUTIVE: val = "DMPAPER_EXECUTIVE"; break;
976 case DMPAPER_A3: val = "DMPAPER_A3"; break;
977 case DMPAPER_A4: val = "DMPAPER_A4"; break;
978 case DMPAPER_A4SMALL: val = "DMPAPER_A4SMALL"; break;
979 case DMPAPER_A5: val = "DMPAPER_A5"; break;
980 case DMPAPER_B4: val = "DMPAPER_B4"; break;
981 case DMPAPER_B5: val = "DMPAPER_B5"; break;
982 case DMPAPER_FOLIO: val = "DMPAPER_FOLIO"; break;
983 case DMPAPER_QUARTO: val = "DMPAPER_QUARTO"; break;
984 case DMPAPER_10X14: val = "DMPAPER_10X14"; break;
985 case DMPAPER_11X17: val = "DMPAPER_11X17"; break;
986 case DMPAPER_NOTE: val = "DMPAPER_NOTE"; break;
987 case DMPAPER_ENV_9: val = "DMPAPER_ENV_9"; break;
988 case DMPAPER_ENV_10: val = "DMPAPER_ENV_10"; break;
989 case DMPAPER_ENV_11: val = "DMPAPER_ENV_11"; break;
990 case DMPAPER_ENV_12: val = "DMPAPER_ENV_12"; break;
991 case DMPAPER_ENV_14: val = "DMPAPER_ENV_14"; break;
992 case DMPAPER_CSHEET: val = "DMPAPER_CSHEET"; break;
993 case DMPAPER_DSHEET: val = "DMPAPER_DSHEET"; break;
994 case DMPAPER_ESHEET: val = "DMPAPER_ESHEET"; break;
995 case DMPAPER_ENV_DL: val = "DMPAPER_ENV_DL"; break;
996 case DMPAPER_ENV_C5: val = "DMPAPER_ENV_C5"; break;
997 case DMPAPER_ENV_C3: val = "DMPAPER_ENV_C3"; break;
998 case DMPAPER_ENV_C4: val = "DMPAPER_ENV_C4"; break;
999 case DMPAPER_ENV_C6: val = "DMPAPER_ENV_C6"; break;
1000 case DMPAPER_ENV_C65: val = "DMPAPER_ENV_C65"; break;
1001 case DMPAPER_ENV_B4: val = "DMPAPER_ENV_B4"; break;
1002 case DMPAPER_ENV_B5: val = "DMPAPER_ENV_B5"; break;
1003 case DMPAPER_ENV_B6: val = "DMPAPER_ENV_B6"; break;
1004 case DMPAPER_ENV_ITALY: val = "DMPAPER_ENV_ITALY"; break;
1005 case DMPAPER_ENV_MONARCH: val = "DMPAPER_ENV_MONARCH"; break;
1006 case DMPAPER_ENV_PERSONAL: val = "DMPAPER_ENV_PERSONAL"; break;
1007 case DMPAPER_FANFOLD_US: val = "DMPAPER_FANFOLD_US"; break;
1008 case DMPAPER_FANFOLD_STD_GERMAN: val = "DMPAPER_FANFOLD_STD_GERMAN"; break;
1009 case DMPAPER_FANFOLD_LGL_GERMAN: val = "DMPAPER_FANFOLD_LGL_GERMAN"; break;
1010 case DMPAPER_DBL_JAPANESE_POSTCARD: val = "DMPAPER_DBL_JAPANESE_POSTCARD"; break;
1011 case DMPAPER_A6: val = "DMPAPER_A6"; break;
1012 case DMPAPER_JENV_KAKU2: val = "DMPAPER_JENV_KAKU2"; break;
1013 case DMPAPER_JENV_KAKU3: val = "DMPAPER_JENV_KAKU3"; break;
1014 case DMPAPER_JENV_CHOU3: val = "DMPAPER_JENV_CHOU3"; break;
1015 case DMPAPER_JENV_CHOU4: val = "DMPAPER_JENV_CHOU4"; break;
1016 case DMPAPER_LETTER_ROTATED: val = "DMPAPER_LETTER_ROTATED"; break;
1017 case DMPAPER_A3_ROTATED: val = "DMPAPER_A3_ROTATED"; break;
1018 case DMPAPER_A4_ROTATED: val = "DMPAPER_A4_ROTATED"; break;
1019 case DMPAPER_A5_ROTATED: val = "DMPAPER_A5_ROTATED"; break;
1020 case DMPAPER_B4_JIS_ROTATED: val = "DMPAPER_B4_JIS_ROTATED"; break;
1021 case DMPAPER_B5_JIS_ROTATED: val = "DMPAPER_B5_JIS_ROTATED"; break;
1022 case DMPAPER_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_JAPANESE_POSTCARD_ROTATED"; break;
1023 case DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED: val = "DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED"; break;
1024 case DMPAPER_A6_ROTATED: val = "DMPAPER_A6_ROTATED"; break;
1025 case DMPAPER_JENV_KAKU2_ROTATED: val = "DMPAPER_JENV_KAKU2_ROTATED"; break;
1026 case DMPAPER_JENV_KAKU3_ROTATED: val = "DMPAPER_JENV_KAKU3_ROTATED"; break;
1027 case DMPAPER_JENV_CHOU3_ROTATED: val = "DMPAPER_JENV_CHOU3_ROTATED"; break;
1028 case DMPAPER_JENV_CHOU4_ROTATED: val = "DMPAPER_JENV_CHOU4_ROTATED"; break;
1029 case DMPAPER_B6_JIS: val = "DMPAPER_B6_JIS"; break;
1030 case DMPAPER_B6_JIS_ROTATED: val = "DMPAPER_B6_JIS_ROTATED"; break;
1031 case DMPAPER_12X11: val = "DMPAPER_12X11"; break;
1032 case DMPAPER_JENV_YOU4: val = "DMPAPER_JENV_YOU4"; break;
1033 case DMPAPER_JENV_YOU4_ROTATED: val = "DMPAPER_JENV_YOU4_ROTATED"; break;
1034 case DMPAPER_P16K: val = "DMPAPER_P16K"; break;
1035 case DMPAPER_P32K: val = "DMPAPER_P32K"; break;
1036 case DMPAPER_P32KBIG: val = "DMPAPER_P32KBIG"; break;
1037 case DMPAPER_PENV_1: val = "DMPAPER_PENV_1"; break;
1038 case DMPAPER_PENV_2: val = "DMPAPER_PENV_2"; break;
1039 case DMPAPER_PENV_3: val = "DMPAPER_PENV_3"; break;
1040 case DMPAPER_PENV_4: val = "DMPAPER_PENV_4"; break;
1041 case DMPAPER_PENV_5: val = "DMPAPER_PENV_5"; break;
1042 case DMPAPER_PENV_6: val = "DMPAPER_PENV_6"; break;
1043 case DMPAPER_PENV_7: val = "DMPAPER_PENV_7"; break;
1044 case DMPAPER_PENV_8: val = "DMPAPER_PENV_8"; break;
1045 case DMPAPER_PENV_9: val = "DMPAPER_PENV_9"; break;
1046 case DMPAPER_PENV_10: val = "DMPAPER_PENV_10"; break;
1047 case DMPAPER_P16K_ROTATED: val = "DMPAPER_P16K_ROTATED"; break;
1048 case DMPAPER_P32K_ROTATED: val = "DMPAPER_P32K_ROTATED"; break;
1049 case DMPAPER_P32KBIG_ROTATED: val = "DMPAPER_P32KBIG_ROTATED"; break;
1050 case DMPAPER_PENV_1_ROTATED: val = "DMPAPER_PENV_1_ROTATED"; break;
1051 case DMPAPER_PENV_2_ROTATED: val = "DMPAPER_PENV_2_ROTATED"; break;
1052 case DMPAPER_PENV_3_ROTATED: val = "DMPAPER_PENV_3_ROTATED"; break;
1053 case DMPAPER_PENV_4_ROTATED: val = "DMPAPER_PENV_4_ROTATED"; break;
1054 case DMPAPER_PENV_5_ROTATED: val = "DMPAPER_PENV_5_ROTATED"; break;
1055 case DMPAPER_PENV_6_ROTATED: val = "DMPAPER_PENV_6_ROTATED"; break;
1056 case DMPAPER_PENV_7_ROTATED: val = "DMPAPER_PENV_7_ROTATED"; break;
1057 case DMPAPER_PENV_8_ROTATED: val = "DMPAPER_PENV_8_ROTATED"; break;
1058 case DMPAPER_PENV_9_ROTATED: val = "DMPAPER_PENV_9_ROTATED"; break;
1059 case DMPAPER_PENV_10_ROTATED: val = "DMPAPER_PENV_10_ROTATED"; break;
1061 ndr_print_enum(ndr, name, "ENUM", val, r);
1064 static enum ndr_err_code ndr_push_spoolss_DeviceModeDefaultSource(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource r)
1066 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1067 return NDR_ERR_SUCCESS;
1070 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDefaultSource(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDefaultSource *r)
1073 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1075 return NDR_ERR_SUCCESS;
1078 _PUBLIC_ void ndr_print_spoolss_DeviceModeDefaultSource(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDefaultSource r)
1080 const char *val = NULL;
1083 case DMBIN_UPPER: val = "DMBIN_UPPER"; break;
1084 case DMBIN_LOWER: val = "DMBIN_LOWER"; break;
1085 case DMBIN_MIDDLE: val = "DMBIN_MIDDLE"; break;
1086 case DMBIN_MANUAL: val = "DMBIN_MANUAL"; break;
1087 case DMBIN_ENVELOPE: val = "DMBIN_ENVELOPE"; break;
1088 case DMBIN_ENVMANUAL: val = "DMBIN_ENVMANUAL"; break;
1089 case DMBIN_AUTO: val = "DMBIN_AUTO"; break;
1090 case DMBIN_TRACTOR: val = "DMBIN_TRACTOR"; break;
1091 case DMBIN_SMALLFMT: val = "DMBIN_SMALLFMT"; break;
1092 case DMBIN_LARGEFMT: val = "DMBIN_LARGEFMT"; break;
1093 case DMBIN_LARGECAPACITY: val = "DMBIN_LARGECAPACITY"; break;
1094 case DMBIN_CASSETTE: val = "DMBIN_CASSETTE"; break;
1095 case DMBIN_FORMSOURCE: val = "DMBIN_FORMSOURCE"; break;
1097 ndr_print_enum(ndr, name, "ENUM", val, r);
1100 static enum ndr_err_code ndr_push_spoolss_DeviceModePrintQuality(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality r)
1102 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1103 return NDR_ERR_SUCCESS;
1106 static enum ndr_err_code ndr_pull_spoolss_DeviceModePrintQuality(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModePrintQuality *r)
1109 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1111 return NDR_ERR_SUCCESS;
1114 _PUBLIC_ void ndr_print_spoolss_DeviceModePrintQuality(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModePrintQuality r)
1116 const char *val = NULL;
1119 case DMRES_HIGH: val = "DMRES_HIGH"; break;
1120 case DMRES_MEDIUM: val = "DMRES_MEDIUM"; break;
1121 case DMRES_LOW: val = "DMRES_LOW"; break;
1122 case DMRES_DRAFT: val = "DMRES_DRAFT"; break;
1124 ndr_print_enum(ndr, name, "ENUM", val, r);
1127 static enum ndr_err_code ndr_push_spoolss_DeviceModeColor(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeColor r)
1129 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1130 return NDR_ERR_SUCCESS;
1133 static enum ndr_err_code ndr_pull_spoolss_DeviceModeColor(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeColor *r)
1136 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1138 return NDR_ERR_SUCCESS;
1141 _PUBLIC_ void ndr_print_spoolss_DeviceModeColor(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeColor r)
1143 const char *val = NULL;
1146 case DMRES_MONOCHROME: val = "DMRES_MONOCHROME"; break;
1147 case DMRES_COLOR: val = "DMRES_COLOR"; break;
1149 ndr_print_enum(ndr, name, "ENUM", val, r);
1152 static enum ndr_err_code ndr_push_spoolss_DeviceModeDuplex(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex r)
1154 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1155 return NDR_ERR_SUCCESS;
1158 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDuplex(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDuplex *r)
1161 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1163 return NDR_ERR_SUCCESS;
1166 _PUBLIC_ void ndr_print_spoolss_DeviceModeDuplex(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDuplex r)
1168 const char *val = NULL;
1171 case DMDUP_SIMPLEX: val = "DMDUP_SIMPLEX"; break;
1172 case DMDUP_VERTICAL: val = "DMDUP_VERTICAL"; break;
1173 case DMDUP_HORIZONTAL: val = "DMDUP_HORIZONTAL"; break;
1175 ndr_print_enum(ndr, name, "ENUM", val, r);
1178 static enum ndr_err_code ndr_push_spoolss_DeviceModeTTOption(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption r)
1180 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1181 return NDR_ERR_SUCCESS;
1184 static enum ndr_err_code ndr_pull_spoolss_DeviceModeTTOption(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeTTOption *r)
1187 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1189 return NDR_ERR_SUCCESS;
1192 _PUBLIC_ void ndr_print_spoolss_DeviceModeTTOption(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeTTOption r)
1194 const char *val = NULL;
1197 case DMTT_BITMAP: val = "DMTT_BITMAP"; break;
1198 case DMTT_DOWNLOAD: val = "DMTT_DOWNLOAD"; break;
1199 case DMTT_SUBDEV: val = "DMTT_SUBDEV"; break;
1200 case DMTT_DOWNLOAD_OUTLINE: val = "DMTT_DOWNLOAD_OUTLINE"; break;
1202 ndr_print_enum(ndr, name, "ENUM", val, r);
1205 static enum ndr_err_code ndr_push_spoolss_DeviceModeCollate(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeCollate r)
1207 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
1208 return NDR_ERR_SUCCESS;
1211 static enum ndr_err_code ndr_pull_spoolss_DeviceModeCollate(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeCollate *r)
1214 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
1216 return NDR_ERR_SUCCESS;
1219 _PUBLIC_ void ndr_print_spoolss_DeviceModeCollate(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeCollate r)
1221 const char *val = NULL;
1224 case DMCOLLATE_FALSE: val = "DMCOLLATE_FALSE"; break;
1225 case DMCOLLATE_TRUE: val = "DMCOLLATE_TRUE"; break;
1227 ndr_print_enum(ndr, name, "ENUM", val, r);
1230 static enum ndr_err_code ndr_push_spoolss_DeviceModeNUp(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeNUp r)
1232 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1233 return NDR_ERR_SUCCESS;
1236 static enum ndr_err_code ndr_pull_spoolss_DeviceModeNUp(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeNUp *r)
1239 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1241 return NDR_ERR_SUCCESS;
1244 _PUBLIC_ void ndr_print_spoolss_DeviceModeNUp(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeNUp r)
1246 const char *val = NULL;
1249 case DMNUP_SYSTEM: val = "DMNUP_SYSTEM"; break;
1250 case DMNUP_ONEUP: val = "DMNUP_ONEUP"; break;
1252 ndr_print_enum(ndr, name, "ENUM", val, r);
1255 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMMethod(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod r)
1257 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1258 return NDR_ERR_SUCCESS;
1261 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMMethod(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMMethod *r)
1264 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1266 return NDR_ERR_SUCCESS;
1269 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMMethod(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMMethod r)
1271 const char *val = NULL;
1274 case DMICMMETHOD_NONE: val = "DMICMMETHOD_NONE"; break;
1275 case DMICMMETHOD_SYSTEM: val = "DMICMMETHOD_SYSTEM"; break;
1276 case DMICMMETHOD_DRIVER: val = "DMICMMETHOD_DRIVER"; break;
1277 case DMICMMETHOD_DEVICE: val = "DMICMMETHOD_DEVICE"; break;
1279 ndr_print_enum(ndr, name, "ENUM", val, r);
1282 static enum ndr_err_code ndr_push_spoolss_DeviceModeICMIntent(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent r)
1284 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1285 return NDR_ERR_SUCCESS;
1288 static enum ndr_err_code ndr_pull_spoolss_DeviceModeICMIntent(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeICMIntent *r)
1291 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1293 return NDR_ERR_SUCCESS;
1296 _PUBLIC_ void ndr_print_spoolss_DeviceModeICMIntent(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeICMIntent r)
1298 const char *val = NULL;
1301 case DMICM_SATURATE: val = "DMICM_SATURATE"; break;
1302 case DMICM_CONTRAST: val = "DMICM_CONTRAST"; break;
1303 case DMICM_COLORIMETRIC: val = "DMICM_COLORIMETRIC"; break;
1304 case DMICM_ABS_COLORIMETRIC: val = "DMICM_ABS_COLORIMETRIC"; break;
1306 ndr_print_enum(ndr, name, "ENUM", val, r);
1309 static enum ndr_err_code ndr_push_spoolss_DeviceModeMediaType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType r)
1311 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1312 return NDR_ERR_SUCCESS;
1315 static enum ndr_err_code ndr_pull_spoolss_DeviceModeMediaType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeMediaType *r)
1318 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1320 return NDR_ERR_SUCCESS;
1323 _PUBLIC_ void ndr_print_spoolss_DeviceModeMediaType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeMediaType r)
1325 const char *val = NULL;
1328 case DMMEDIA_STANDARD: val = "DMMEDIA_STANDARD"; break;
1329 case DMMEDIA_TRANSPARENCY: val = "DMMEDIA_TRANSPARENCY"; break;
1330 case DMMEDIA_GLOSSY: val = "DMMEDIA_GLOSSY"; break;
1332 ndr_print_enum(ndr, name, "ENUM", val, r);
1335 static enum ndr_err_code ndr_push_spoolss_DeviceModeDitherType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType r)
1337 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
1338 return NDR_ERR_SUCCESS;
1341 static enum ndr_err_code ndr_pull_spoolss_DeviceModeDitherType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DeviceModeDitherType *r)
1344 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
1346 return NDR_ERR_SUCCESS;
1349 _PUBLIC_ void ndr_print_spoolss_DeviceModeDitherType(struct ndr_print *ndr, const char *name, enum spoolss_DeviceModeDitherType r)
1351 const char *val = NULL;
1354 case DMDITHER_NONE: val = "DMDITHER_NONE"; break;
1355 case DMDITHER_COARSE: val = "DMDITHER_COARSE"; break;
1356 case DMDITHER_FINE: val = "DMDITHER_FINE"; break;
1357 case DMDITHER_LINEART: val = "DMDITHER_LINEART"; break;
1358 case DMDITHER_ERRORDIFFUSION: val = "DMDITHER_ERRORDIFFUSION"; break;
1359 case DMDITHER_RESERVED6: val = "DMDITHER_RESERVED6"; break;
1360 case DMDITHER_RESERVED7: val = "DMDITHER_RESERVED7"; break;
1361 case DMDITHER_RESERVED8: val = "DMDITHER_RESERVED8"; break;
1362 case DMDITHER_RESERVED9: val = "DMDITHER_RESERVED9"; break;
1363 case DMDITHER_GRAYSCALE: val = "DMDITHER_GRAYSCALE"; break;
1365 ndr_print_enum(ndr, name, "ENUM", val, r);
1368 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
1370 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1371 if (ndr_flags & NDR_SCALARS) {
1372 NDR_CHECK(ndr_push_align(ndr, 4));
1373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1374 NDR_CHECK(ndr_push_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, r->specversion));
1375 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
1376 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
1377 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
1378 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
1379 NDR_CHECK(ndr_push_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, r->orientation));
1380 NDR_CHECK(ndr_push_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, r->papersize));
1381 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
1382 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
1383 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
1384 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
1385 NDR_CHECK(ndr_push_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, r->defaultsource));
1386 NDR_CHECK(ndr_push_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, r->printquality));
1387 NDR_CHECK(ndr_push_spoolss_DeviceModeColor(ndr, NDR_SCALARS, r->color));
1388 NDR_CHECK(ndr_push_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, r->duplex));
1389 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
1390 NDR_CHECK(ndr_push_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, r->ttoption));
1391 NDR_CHECK(ndr_push_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, r->collate));
1392 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, MAXDEVICENAME, sizeof(uint16_t), CH_UTF16));
1393 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
1394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
1395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
1396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
1397 NDR_CHECK(ndr_push_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, r->displayflags));
1398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
1399 NDR_CHECK(ndr_push_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, r->icmmethod));
1400 NDR_CHECK(ndr_push_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, r->icmintent));
1401 NDR_CHECK(ndr_push_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, r->mediatype));
1402 NDR_CHECK(ndr_push_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, r->dithertype));
1403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
1404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
1405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
1406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
1408 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1411 struct ndr_push *_ndr_driverextra_data;
1412 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
1413 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
1414 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
1416 ndr->flags = _flags_save_DATA_BLOB;
1418 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
1420 if (ndr_flags & NDR_BUFFERS) {
1422 return NDR_ERR_SUCCESS;
1425 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
1427 uint32_t size_devicename_0 = 0;
1428 uint32_t size_formname_0 = 0;
1429 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1430 if (ndr_flags & NDR_SCALARS) {
1431 NDR_CHECK(ndr_pull_align(ndr, 4));
1432 size_devicename_0 = MAXDEVICENAME;
1433 NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->devicename, size_devicename_0, sizeof(uint16_t), CH_UTF16));
1434 NDR_CHECK(ndr_pull_spoolss_DeviceModeSpecVersion(ndr, NDR_SCALARS, &r->specversion));
1435 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
1436 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
1437 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
1438 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
1439 NDR_CHECK(ndr_pull_spoolss_DeviceModeOrientation(ndr, NDR_SCALARS, &r->orientation));
1440 NDR_CHECK(ndr_pull_spoolss_DeviceModePaperSize(ndr, NDR_SCALARS, &r->papersize));
1441 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
1442 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
1443 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
1444 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
1445 NDR_CHECK(ndr_pull_spoolss_DeviceModeDefaultSource(ndr, NDR_SCALARS, &r->defaultsource));
1446 NDR_CHECK(ndr_pull_spoolss_DeviceModePrintQuality(ndr, NDR_SCALARS, &r->printquality));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceModeColor(ndr, NDR_SCALARS, &r->color));
1448 NDR_CHECK(ndr_pull_spoolss_DeviceModeDuplex(ndr, NDR_SCALARS, &r->duplex));
1449 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
1450 NDR_CHECK(ndr_pull_spoolss_DeviceModeTTOption(ndr, NDR_SCALARS, &r->ttoption));
1451 NDR_CHECK(ndr_pull_spoolss_DeviceModeCollate(ndr, NDR_SCALARS, &r->collate));
1452 size_formname_0 = MAXDEVICENAME;
1453 NDR_CHECK(ndr_pull_charset_to_null(ndr, NDR_SCALARS, &r->formname, size_formname_0, sizeof(uint16_t), CH_UTF16));
1454 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
1455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
1456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
1457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
1458 NDR_CHECK(ndr_pull_spoolss_DeviceModeNUp(ndr, NDR_SCALARS, &r->displayflags));
1459 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
1460 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMMethod(ndr, NDR_SCALARS, &r->icmmethod));
1461 NDR_CHECK(ndr_pull_spoolss_DeviceModeICMIntent(ndr, NDR_SCALARS, &r->icmintent));
1462 NDR_CHECK(ndr_pull_spoolss_DeviceModeMediaType(ndr, NDR_SCALARS, &r->mediatype));
1463 NDR_CHECK(ndr_pull_spoolss_DeviceModeDitherType(ndr, NDR_SCALARS, &r->dithertype));
1464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
1465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
1466 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
1467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
1469 uint32_t _flags_save_DATA_BLOB = ndr->flags;
1470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
1472 struct ndr_pull *_ndr_driverextra_data;
1473 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
1474 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
1475 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
1477 ndr->flags = _flags_save_DATA_BLOB;
1479 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
1481 if (ndr_flags & NDR_BUFFERS) {
1483 return NDR_ERR_SUCCESS;
1486 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
1488 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
1489 if (r == NULL) { ndr_print_null(ndr); return; }
1491 ndr_print_string(ndr, "devicename", r->devicename);
1492 ndr_print_spoolss_DeviceModeSpecVersion(ndr, "specversion", r->specversion);
1493 ndr_print_uint16(ndr, "driverversion", r->driverversion);
1494 ndr_print_uint16(ndr, "size", r->size);
1495 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
1496 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
1497 ndr_print_spoolss_DeviceModeOrientation(ndr, "orientation", r->orientation);
1498 ndr_print_spoolss_DeviceModePaperSize(ndr, "papersize", r->papersize);
1499 ndr_print_uint16(ndr, "paperlength", r->paperlength);
1500 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
1501 ndr_print_uint16(ndr, "scale", r->scale);
1502 ndr_print_uint16(ndr, "copies", r->copies);
1503 ndr_print_spoolss_DeviceModeDefaultSource(ndr, "defaultsource", r->defaultsource);
1504 ndr_print_spoolss_DeviceModePrintQuality(ndr, "printquality", r->printquality);
1505 ndr_print_spoolss_DeviceModeColor(ndr, "color", r->color);
1506 ndr_print_spoolss_DeviceModeDuplex(ndr, "duplex", r->duplex);
1507 ndr_print_uint16(ndr, "yresolution", r->yresolution);
1508 ndr_print_spoolss_DeviceModeTTOption(ndr, "ttoption", r->ttoption);
1509 ndr_print_spoolss_DeviceModeCollate(ndr, "collate", r->collate);
1510 ndr_print_string(ndr, "formname", r->formname);
1511 ndr_print_uint16(ndr, "logpixels", r->logpixels);
1512 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
1513 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
1514 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
1515 ndr_print_spoolss_DeviceModeNUp(ndr, "displayflags", r->displayflags);
1516 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
1517 ndr_print_spoolss_DeviceModeICMMethod(ndr, "icmmethod", r->icmmethod);
1518 ndr_print_spoolss_DeviceModeICMIntent(ndr, "icmintent", r->icmintent);
1519 ndr_print_spoolss_DeviceModeMediaType(ndr, "mediatype", r->mediatype);
1520 ndr_print_spoolss_DeviceModeDitherType(ndr, "dithertype", r->dithertype);
1521 ndr_print_uint32(ndr, "reserved1", r->reserved1);
1522 ndr_print_uint32(ndr, "reserved2", r->reserved2);
1523 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
1524 ndr_print_uint32(ndr, "panningheight", r->panningheight);
1525 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
1529 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, int flags)
1531 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode);
1534 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1537 return NDR_ERR_SUCCESS;
1540 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1545 return NDR_ERR_SUCCESS;
1548 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
1550 ndr_print_uint32(ndr, name, r);
1552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
1553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
1554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
1555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
1556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
1557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
1558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
1559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
1560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
1561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
1562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
1563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
1564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
1565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
1566 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
1567 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
1568 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
1569 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
1570 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
1574 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1577 return NDR_ERR_SUCCESS;
1580 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1583 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1585 return NDR_ERR_SUCCESS;
1588 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
1590 ndr_print_uint32(ndr, name, r);
1592 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
1593 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
1594 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
1595 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
1596 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
1597 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
1598 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
1599 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
1600 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
1601 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
1602 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
1603 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
1604 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
1605 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
1606 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
1607 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
1611 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
1613 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
1614 if (ndr_flags & NDR_SCALARS) {
1615 NDR_CHECK(ndr_push_align(ndr, 5));
1616 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
1618 uint32_t _flags_save_string = ndr->flags;
1619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1620 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
1621 ndr->flags = _flags_save_string;
1624 uint32_t _flags_save_string = ndr->flags;
1625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1626 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
1627 ndr->flags = _flags_save_string;
1630 uint32_t _flags_save_string = ndr->flags;
1631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1632 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1633 ndr->flags = _flags_save_string;
1635 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
1637 if (ndr_flags & NDR_BUFFERS) {
1639 uint32_t _flags_save_string = ndr->flags;
1640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1641 if (r->description) {
1642 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
1643 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
1644 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
1646 ndr->flags = _flags_save_string;
1649 uint32_t _flags_save_string = ndr->flags;
1650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1652 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name));
1653 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
1654 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name));
1656 ndr->flags = _flags_save_string;
1659 uint32_t _flags_save_string = ndr->flags;
1660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1662 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->comment));
1663 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1664 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->comment));
1666 ndr->flags = _flags_save_string;
1669 return NDR_ERR_SUCCESS;
1672 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
1674 uint32_t _ptr_description;
1675 TALLOC_CTX *_mem_save_description_0 = NULL;
1677 TALLOC_CTX *_mem_save_name_0 = NULL;
1678 uint32_t _ptr_comment;
1679 TALLOC_CTX *_mem_save_comment_0 = NULL;
1680 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1681 if (ndr_flags & NDR_SCALARS) {
1682 NDR_CHECK(ndr_pull_align(ndr, 5));
1683 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
1685 uint32_t _flags_save_string = ndr->flags;
1686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
1688 if (_ptr_description) {
1689 NDR_PULL_ALLOC(ndr, r->description);
1690 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
1692 r->description = NULL;
1694 ndr->flags = _flags_save_string;
1697 uint32_t _flags_save_string = ndr->flags;
1698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
1701 NDR_PULL_ALLOC(ndr, r->name);
1702 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
1706 ndr->flags = _flags_save_string;
1709 uint32_t _flags_save_string = ndr->flags;
1710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1713 NDR_PULL_ALLOC(ndr, r->comment);
1714 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1718 ndr->flags = _flags_save_string;
1720 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
1722 if (ndr_flags & NDR_BUFFERS) {
1724 uint32_t _flags_save_string = ndr->flags;
1725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1726 if (r->description) {
1727 uint32_t _relative_save_offset;
1728 _relative_save_offset = ndr->offset;
1729 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
1730 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
1731 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
1732 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
1733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
1734 if (ndr->offset > ndr->relative_highest_offset) {
1735 ndr->relative_highest_offset = ndr->offset;
1737 ndr->offset = _relative_save_offset;
1739 ndr->flags = _flags_save_string;
1742 uint32_t _flags_save_string = ndr->flags;
1743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1745 uint32_t _relative_save_offset;
1746 _relative_save_offset = ndr->offset;
1747 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
1748 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
1749 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
1750 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
1751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
1752 if (ndr->offset > ndr->relative_highest_offset) {
1753 ndr->relative_highest_offset = ndr->offset;
1755 ndr->offset = _relative_save_offset;
1757 ndr->flags = _flags_save_string;
1760 uint32_t _flags_save_string = ndr->flags;
1761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1763 uint32_t _relative_save_offset;
1764 _relative_save_offset = ndr->offset;
1765 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1766 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1767 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1768 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1770 if (ndr->offset > ndr->relative_highest_offset) {
1771 ndr->relative_highest_offset = ndr->offset;
1773 ndr->offset = _relative_save_offset;
1775 ndr->flags = _flags_save_string;
1778 return NDR_ERR_SUCCESS;
1781 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
1783 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
1784 if (r == NULL) { ndr_print_null(ndr); return; }
1786 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
1787 ndr_print_ptr(ndr, "description", r->description);
1789 if (r->description) {
1790 ndr_print_string(ndr, "description", r->description);
1793 ndr_print_ptr(ndr, "name", r->name);
1796 ndr_print_string(ndr, "name", r->name);
1799 ndr_print_ptr(ndr, "comment", r->comment);
1802 ndr_print_string(ndr, "comment", r->comment);
1808 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, int flags)
1810 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1);
1813 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1815 uint32_t _ptr_servername;
1816 TALLOC_CTX *_mem_save_servername_0 = NULL;
1817 uint32_t _ptr_printername;
1818 TALLOC_CTX *_mem_save_printername_0 = NULL;
1819 uint32_t _ptr_sharename;
1820 TALLOC_CTX *_mem_save_sharename_0 = NULL;
1821 uint32_t _ptr_portname;
1822 TALLOC_CTX *_mem_save_portname_0 = NULL;
1823 uint32_t _ptr_drivername;
1824 TALLOC_CTX *_mem_save_drivername_0 = NULL;
1825 uint32_t _ptr_comment;
1826 TALLOC_CTX *_mem_save_comment_0 = NULL;
1827 uint32_t _ptr_location;
1828 TALLOC_CTX *_mem_save_location_0 = NULL;
1829 uint32_t _ptr_devmode;
1830 TALLOC_CTX *_mem_save_devmode_0 = NULL;
1831 uint32_t _ptr_sepfile;
1832 TALLOC_CTX *_mem_save_sepfile_0 = NULL;
1833 uint32_t _ptr_printprocessor;
1834 TALLOC_CTX *_mem_save_printprocessor_0 = NULL;
1835 uint32_t _ptr_datatype;
1836 TALLOC_CTX *_mem_save_datatype_0 = NULL;
1837 uint32_t _ptr_parameters;
1838 TALLOC_CTX *_mem_save_parameters_0 = NULL;
1839 uint32_t _ptr_secdesc;
1840 TALLOC_CTX *_mem_save_secdesc_0 = NULL;
1841 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
1842 if (ndr_flags & NDR_SCALARS) {
1843 NDR_CHECK(ndr_pull_align(ndr, 5));
1845 uint32_t _flags_save_string = ndr->flags;
1846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1848 if (_ptr_servername) {
1849 NDR_PULL_ALLOC(ndr, r->servername);
1850 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1852 r->servername = NULL;
1854 ndr->flags = _flags_save_string;
1857 uint32_t _flags_save_string = ndr->flags;
1858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1860 if (_ptr_printername) {
1861 NDR_PULL_ALLOC(ndr, r->printername);
1862 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1864 r->printername = NULL;
1866 ndr->flags = _flags_save_string;
1869 uint32_t _flags_save_string = ndr->flags;
1870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1872 if (_ptr_sharename) {
1873 NDR_PULL_ALLOC(ndr, r->sharename);
1874 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1876 r->sharename = NULL;
1878 ndr->flags = _flags_save_string;
1881 uint32_t _flags_save_string = ndr->flags;
1882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1884 if (_ptr_portname) {
1885 NDR_PULL_ALLOC(ndr, r->portname);
1886 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1890 ndr->flags = _flags_save_string;
1893 uint32_t _flags_save_string = ndr->flags;
1894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1896 if (_ptr_drivername) {
1897 NDR_PULL_ALLOC(ndr, r->drivername);
1898 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1900 r->drivername = NULL;
1902 ndr->flags = _flags_save_string;
1905 uint32_t _flags_save_string = ndr->flags;
1906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1909 NDR_PULL_ALLOC(ndr, r->comment);
1910 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1914 ndr->flags = _flags_save_string;
1917 uint32_t _flags_save_string = ndr->flags;
1918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1920 if (_ptr_location) {
1921 NDR_PULL_ALLOC(ndr, r->location);
1922 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1926 ndr->flags = _flags_save_string;
1929 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
1930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1933 NDR_PULL_ALLOC(ndr, r->devmode);
1934 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1938 ndr->flags = _flags_save_spoolss_DeviceMode;
1941 uint32_t _flags_save_string = ndr->flags;
1942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1945 NDR_PULL_ALLOC(ndr, r->sepfile);
1946 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1950 ndr->flags = _flags_save_string;
1953 uint32_t _flags_save_string = ndr->flags;
1954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1956 if (_ptr_printprocessor) {
1957 NDR_PULL_ALLOC(ndr, r->printprocessor);
1958 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1960 r->printprocessor = NULL;
1962 ndr->flags = _flags_save_string;
1965 uint32_t _flags_save_string = ndr->flags;
1966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1968 if (_ptr_datatype) {
1969 NDR_PULL_ALLOC(ndr, r->datatype);
1970 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1974 ndr->flags = _flags_save_string;
1977 uint32_t _flags_save_string = ndr->flags;
1978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
1979 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1980 if (_ptr_parameters) {
1981 NDR_PULL_ALLOC(ndr, r->parameters);
1982 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1984 r->parameters = NULL;
1986 ndr->flags = _flags_save_string;
1989 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
1990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
1991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1993 NDR_PULL_ALLOC(ndr, r->secdesc);
1994 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1998 ndr->flags = _flags_save_spoolss_security_descriptor;
2000 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2001 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2002 if (r->priority > 99) {
2003 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
2005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
2006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
2007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
2008 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
2010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
2011 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2013 if (ndr_flags & NDR_BUFFERS) {
2015 uint32_t _flags_save_string = ndr->flags;
2016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2017 if (r->servername) {
2018 uint32_t _relative_save_offset;
2019 _relative_save_offset = ndr->offset;
2020 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2021 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2022 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2023 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2025 if (ndr->offset > ndr->relative_highest_offset) {
2026 ndr->relative_highest_offset = ndr->offset;
2028 ndr->offset = _relative_save_offset;
2030 ndr->flags = _flags_save_string;
2033 uint32_t _flags_save_string = ndr->flags;
2034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2035 if (r->printername) {
2036 uint32_t _relative_save_offset;
2037 _relative_save_offset = ndr->offset;
2038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2039 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2040 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2043 if (ndr->offset > ndr->relative_highest_offset) {
2044 ndr->relative_highest_offset = ndr->offset;
2046 ndr->offset = _relative_save_offset;
2048 ndr->flags = _flags_save_string;
2051 uint32_t _flags_save_string = ndr->flags;
2052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2054 uint32_t _relative_save_offset;
2055 _relative_save_offset = ndr->offset;
2056 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
2057 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
2058 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
2059 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
2060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
2061 if (ndr->offset > ndr->relative_highest_offset) {
2062 ndr->relative_highest_offset = ndr->offset;
2064 ndr->offset = _relative_save_offset;
2066 ndr->flags = _flags_save_string;
2069 uint32_t _flags_save_string = ndr->flags;
2070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2072 uint32_t _relative_save_offset;
2073 _relative_save_offset = ndr->offset;
2074 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2075 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2076 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2077 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2079 if (ndr->offset > ndr->relative_highest_offset) {
2080 ndr->relative_highest_offset = ndr->offset;
2082 ndr->offset = _relative_save_offset;
2084 ndr->flags = _flags_save_string;
2087 uint32_t _flags_save_string = ndr->flags;
2088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2089 if (r->drivername) {
2090 uint32_t _relative_save_offset;
2091 _relative_save_offset = ndr->offset;
2092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
2093 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2094 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
2095 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
2096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
2097 if (ndr->offset > ndr->relative_highest_offset) {
2098 ndr->relative_highest_offset = ndr->offset;
2100 ndr->offset = _relative_save_offset;
2102 ndr->flags = _flags_save_string;
2105 uint32_t _flags_save_string = ndr->flags;
2106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2108 uint32_t _relative_save_offset;
2109 _relative_save_offset = ndr->offset;
2110 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
2111 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
2112 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
2113 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
2114 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
2115 if (ndr->offset > ndr->relative_highest_offset) {
2116 ndr->relative_highest_offset = ndr->offset;
2118 ndr->offset = _relative_save_offset;
2120 ndr->flags = _flags_save_string;
2123 uint32_t _flags_save_string = ndr->flags;
2124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2126 uint32_t _relative_save_offset;
2127 _relative_save_offset = ndr->offset;
2128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
2129 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
2130 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
2131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
2132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
2133 if (ndr->offset > ndr->relative_highest_offset) {
2134 ndr->relative_highest_offset = ndr->offset;
2136 ndr->offset = _relative_save_offset;
2138 ndr->flags = _flags_save_string;
2141 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2144 uint32_t _relative_save_offset;
2145 _relative_save_offset = ndr->offset;
2146 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2147 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2148 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2150 struct ndr_pull *_ndr_devmode;
2151 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2152 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2153 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2156 if (ndr->offset > ndr->relative_highest_offset) {
2157 ndr->relative_highest_offset = ndr->offset;
2159 ndr->offset = _relative_save_offset;
2161 ndr->flags = _flags_save_spoolss_DeviceMode;
2164 uint32_t _flags_save_string = ndr->flags;
2165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2167 uint32_t _relative_save_offset;
2168 _relative_save_offset = ndr->offset;
2169 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
2170 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
2171 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
2172 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
2173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
2174 if (ndr->offset > ndr->relative_highest_offset) {
2175 ndr->relative_highest_offset = ndr->offset;
2177 ndr->offset = _relative_save_offset;
2179 ndr->flags = _flags_save_string;
2182 uint32_t _flags_save_string = ndr->flags;
2183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2184 if (r->printprocessor) {
2185 uint32_t _relative_save_offset;
2186 _relative_save_offset = ndr->offset;
2187 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
2188 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
2189 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
2190 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
2191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
2192 if (ndr->offset > ndr->relative_highest_offset) {
2193 ndr->relative_highest_offset = ndr->offset;
2195 ndr->offset = _relative_save_offset;
2197 ndr->flags = _flags_save_string;
2200 uint32_t _flags_save_string = ndr->flags;
2201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2203 uint32_t _relative_save_offset;
2204 _relative_save_offset = ndr->offset;
2205 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
2206 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
2207 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
2208 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
2209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
2210 if (ndr->offset > ndr->relative_highest_offset) {
2211 ndr->relative_highest_offset = ndr->offset;
2213 ndr->offset = _relative_save_offset;
2215 ndr->flags = _flags_save_string;
2218 uint32_t _flags_save_string = ndr->flags;
2219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2220 if (r->parameters) {
2221 uint32_t _relative_save_offset;
2222 _relative_save_offset = ndr->offset;
2223 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
2224 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
2225 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
2226 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
2227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
2228 if (ndr->offset > ndr->relative_highest_offset) {
2229 ndr->relative_highest_offset = ndr->offset;
2231 ndr->offset = _relative_save_offset;
2233 ndr->flags = _flags_save_string;
2236 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2239 uint32_t _relative_save_offset;
2240 _relative_save_offset = ndr->offset;
2241 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2242 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2243 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2245 struct ndr_pull *_ndr_secdesc;
2246 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2247 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2248 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2251 if (ndr->offset > ndr->relative_highest_offset) {
2252 ndr->relative_highest_offset = ndr->offset;
2254 ndr->offset = _relative_save_offset;
2256 ndr->flags = _flags_save_spoolss_security_descriptor;
2259 return NDR_ERR_SUCCESS;
2262 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
2264 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
2265 if (r == NULL) { ndr_print_null(ndr); return; }
2267 ndr_print_ptr(ndr, "servername", r->servername);
2269 if (r->servername) {
2270 ndr_print_string(ndr, "servername", r->servername);
2273 ndr_print_ptr(ndr, "printername", r->printername);
2275 if (r->printername) {
2276 ndr_print_string(ndr, "printername", r->printername);
2279 ndr_print_ptr(ndr, "sharename", r->sharename);
2282 ndr_print_string(ndr, "sharename", r->sharename);
2285 ndr_print_ptr(ndr, "portname", r->portname);
2288 ndr_print_string(ndr, "portname", r->portname);
2291 ndr_print_ptr(ndr, "drivername", r->drivername);
2293 if (r->drivername) {
2294 ndr_print_string(ndr, "drivername", r->drivername);
2297 ndr_print_ptr(ndr, "comment", r->comment);
2300 ndr_print_string(ndr, "comment", r->comment);
2303 ndr_print_ptr(ndr, "location", r->location);
2306 ndr_print_string(ndr, "location", r->location);
2309 ndr_print_ptr(ndr, "devmode", r->devmode);
2312 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2315 ndr_print_ptr(ndr, "sepfile", r->sepfile);
2318 ndr_print_string(ndr, "sepfile", r->sepfile);
2321 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
2323 if (r->printprocessor) {
2324 ndr_print_string(ndr, "printprocessor", r->printprocessor);
2327 ndr_print_ptr(ndr, "datatype", r->datatype);
2330 ndr_print_string(ndr, "datatype", r->datatype);
2333 ndr_print_ptr(ndr, "parameters", r->parameters);
2335 if (r->parameters) {
2336 ndr_print_string(ndr, "parameters", r->parameters);
2339 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2342 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2345 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2346 ndr_print_uint32(ndr, "priority", r->priority);
2347 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
2348 ndr_print_uint32(ndr, "starttime", r->starttime);
2349 ndr_print_uint32(ndr, "untiltime", r->untiltime);
2350 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2351 ndr_print_uint32(ndr, "cjobs", r->cjobs);
2352 ndr_print_uint32(ndr, "averageppm", r->averageppm);
2356 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, int flags)
2358 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2);
2361 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
2363 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2364 if (ndr_flags & NDR_SCALARS) {
2365 NDR_CHECK(ndr_push_align(ndr, 5));
2367 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2369 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2370 ndr->flags = _flags_save_spoolss_security_descriptor;
2372 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2374 if (ndr_flags & NDR_BUFFERS) {
2376 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2379 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
2381 struct ndr_push *_ndr_secdesc;
2382 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2383 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2384 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2386 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
2388 ndr->flags = _flags_save_spoolss_security_descriptor;
2391 return NDR_ERR_SUCCESS;
2394 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
2396 uint32_t _ptr_secdesc;
2397 TALLOC_CTX *_mem_save_secdesc_0 = NULL;
2398 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2399 if (ndr_flags & NDR_SCALARS) {
2400 NDR_CHECK(ndr_pull_align(ndr, 5));
2402 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
2406 NDR_PULL_ALLOC(ndr, r->secdesc);
2407 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
2411 ndr->flags = _flags_save_spoolss_security_descriptor;
2413 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2415 if (ndr_flags & NDR_BUFFERS) {
2417 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
2418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2420 uint32_t _relative_save_offset;
2421 _relative_save_offset = ndr->offset;
2422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
2423 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
2424 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
2426 struct ndr_pull *_ndr_secdesc;
2427 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
2428 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
2429 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
2431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
2432 if (ndr->offset > ndr->relative_highest_offset) {
2433 ndr->relative_highest_offset = ndr->offset;
2435 ndr->offset = _relative_save_offset;
2437 ndr->flags = _flags_save_spoolss_security_descriptor;
2440 return NDR_ERR_SUCCESS;
2443 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
2445 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
2446 if (r == NULL) { ndr_print_null(ndr); return; }
2448 ndr_print_ptr(ndr, "secdesc", r->secdesc);
2451 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
2457 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, int flags)
2459 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3);
2462 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
2464 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2465 if (ndr_flags & NDR_SCALARS) {
2466 NDR_CHECK(ndr_push_align(ndr, 5));
2468 uint32_t _flags_save_string = ndr->flags;
2469 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2470 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2471 ndr->flags = _flags_save_string;
2474 uint32_t _flags_save_string = ndr->flags;
2475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2476 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
2477 ndr->flags = _flags_save_string;
2479 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2480 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2482 if (ndr_flags & NDR_BUFFERS) {
2484 uint32_t _flags_save_string = ndr->flags;
2485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2486 if (r->printername) {
2487 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2488 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2489 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2491 ndr->flags = _flags_save_string;
2494 uint32_t _flags_save_string = ndr->flags;
2495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2496 if (r->servername) {
2497 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->servername));
2498 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
2499 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->servername));
2501 ndr->flags = _flags_save_string;
2504 return NDR_ERR_SUCCESS;
2507 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
2509 uint32_t _ptr_printername;
2510 TALLOC_CTX *_mem_save_printername_0 = NULL;
2511 uint32_t _ptr_servername;
2512 TALLOC_CTX *_mem_save_servername_0 = NULL;
2513 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2514 if (ndr_flags & NDR_SCALARS) {
2515 NDR_CHECK(ndr_pull_align(ndr, 5));
2517 uint32_t _flags_save_string = ndr->flags;
2518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2520 if (_ptr_printername) {
2521 NDR_PULL_ALLOC(ndr, r->printername);
2522 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2524 r->printername = NULL;
2526 ndr->flags = _flags_save_string;
2529 uint32_t _flags_save_string = ndr->flags;
2530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2531 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
2532 if (_ptr_servername) {
2533 NDR_PULL_ALLOC(ndr, r->servername);
2534 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
2536 r->servername = NULL;
2538 ndr->flags = _flags_save_string;
2540 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2541 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2543 if (ndr_flags & NDR_BUFFERS) {
2545 uint32_t _flags_save_string = ndr->flags;
2546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2547 if (r->printername) {
2548 uint32_t _relative_save_offset;
2549 _relative_save_offset = ndr->offset;
2550 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2551 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2552 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2553 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2555 if (ndr->offset > ndr->relative_highest_offset) {
2556 ndr->relative_highest_offset = ndr->offset;
2558 ndr->offset = _relative_save_offset;
2560 ndr->flags = _flags_save_string;
2563 uint32_t _flags_save_string = ndr->flags;
2564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2565 if (r->servername) {
2566 uint32_t _relative_save_offset;
2567 _relative_save_offset = ndr->offset;
2568 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
2569 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2570 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
2571 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
2572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
2573 if (ndr->offset > ndr->relative_highest_offset) {
2574 ndr->relative_highest_offset = ndr->offset;
2576 ndr->offset = _relative_save_offset;
2578 ndr->flags = _flags_save_string;
2581 return NDR_ERR_SUCCESS;
2584 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
2586 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
2587 if (r == NULL) { ndr_print_null(ndr); return; }
2589 ndr_print_ptr(ndr, "printername", r->printername);
2591 if (r->printername) {
2592 ndr_print_string(ndr, "printername", r->printername);
2595 ndr_print_ptr(ndr, "servername", r->servername);
2597 if (r->servername) {
2598 ndr_print_string(ndr, "servername", r->servername);
2601 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2605 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, int flags)
2607 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4);
2610 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
2612 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2613 if (ndr_flags & NDR_SCALARS) {
2614 NDR_CHECK(ndr_push_align(ndr, 5));
2616 uint32_t _flags_save_string = ndr->flags;
2617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2618 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
2619 ndr->flags = _flags_save_string;
2622 uint32_t _flags_save_string = ndr->flags;
2623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2624 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
2625 ndr->flags = _flags_save_string;
2627 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
2628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
2629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
2630 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2632 if (ndr_flags & NDR_BUFFERS) {
2634 uint32_t _flags_save_string = ndr->flags;
2635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2636 if (r->printername) {
2637 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printername));
2638 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
2639 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printername));
2641 ndr->flags = _flags_save_string;
2644 uint32_t _flags_save_string = ndr->flags;
2645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2647 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->portname));
2648 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
2649 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->portname));
2651 ndr->flags = _flags_save_string;
2654 return NDR_ERR_SUCCESS;
2657 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
2659 uint32_t _ptr_printername;
2660 TALLOC_CTX *_mem_save_printername_0 = NULL;
2661 uint32_t _ptr_portname;
2662 TALLOC_CTX *_mem_save_portname_0 = NULL;
2663 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2664 if (ndr_flags & NDR_SCALARS) {
2665 NDR_CHECK(ndr_pull_align(ndr, 5));
2667 uint32_t _flags_save_string = ndr->flags;
2668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
2670 if (_ptr_printername) {
2671 NDR_PULL_ALLOC(ndr, r->printername);
2672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
2674 r->printername = NULL;
2676 ndr->flags = _flags_save_string;
2679 uint32_t _flags_save_string = ndr->flags;
2680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
2682 if (_ptr_portname) {
2683 NDR_PULL_ALLOC(ndr, r->portname);
2684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
2688 ndr->flags = _flags_save_string;
2690 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
2691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
2692 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
2693 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2695 if (ndr_flags & NDR_BUFFERS) {
2697 uint32_t _flags_save_string = ndr->flags;
2698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2699 if (r->printername) {
2700 uint32_t _relative_save_offset;
2701 _relative_save_offset = ndr->offset;
2702 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
2703 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
2704 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
2705 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
2706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
2707 if (ndr->offset > ndr->relative_highest_offset) {
2708 ndr->relative_highest_offset = ndr->offset;
2710 ndr->offset = _relative_save_offset;
2712 ndr->flags = _flags_save_string;
2715 uint32_t _flags_save_string = ndr->flags;
2716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2718 uint32_t _relative_save_offset;
2719 _relative_save_offset = ndr->offset;
2720 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
2721 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
2722 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
2723 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
2724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
2725 if (ndr->offset > ndr->relative_highest_offset) {
2726 ndr->relative_highest_offset = ndr->offset;
2728 ndr->offset = _relative_save_offset;
2730 ndr->flags = _flags_save_string;
2733 return NDR_ERR_SUCCESS;
2736 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
2738 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
2739 if (r == NULL) { ndr_print_null(ndr); return; }
2741 ndr_print_ptr(ndr, "printername", r->printername);
2743 if (r->printername) {
2744 ndr_print_string(ndr, "printername", r->printername);
2747 ndr_print_ptr(ndr, "portname", r->portname);
2750 ndr_print_string(ndr, "portname", r->portname);
2753 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2754 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2755 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2759 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, int flags)
2761 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5);
2764 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2766 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2767 if (ndr_flags & NDR_SCALARS) {
2768 NDR_CHECK(ndr_push_align(ndr, 4));
2769 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2770 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
2772 if (ndr_flags & NDR_BUFFERS) {
2774 return NDR_ERR_SUCCESS;
2777 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2779 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2780 if (ndr_flags & NDR_SCALARS) {
2781 NDR_CHECK(ndr_pull_align(ndr, 4));
2782 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2783 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
2785 if (ndr_flags & NDR_BUFFERS) {
2787 return NDR_ERR_SUCCESS;
2790 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2792 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2793 if (r == NULL) { ndr_print_null(ndr); return; }
2795 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2799 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, int flags)
2801 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6);
2804 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2807 return NDR_ERR_SUCCESS;
2810 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2815 return NDR_ERR_SUCCESS;
2818 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2820 ndr_print_uint32(ndr, name, r);
2822 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2823 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2824 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2825 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2826 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2830 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2832 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2833 if (ndr_flags & NDR_SCALARS) {
2834 NDR_CHECK(ndr_push_align(ndr, 5));
2836 uint32_t _flags_save_string = ndr->flags;
2837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2839 ndr->flags = _flags_save_string;
2841 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2842 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2844 if (ndr_flags & NDR_BUFFERS) {
2846 uint32_t _flags_save_string = ndr->flags;
2847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2849 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->guid));
2850 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2851 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->guid));
2853 ndr->flags = _flags_save_string;
2856 return NDR_ERR_SUCCESS;
2859 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2862 TALLOC_CTX *_mem_save_guid_0 = NULL;
2863 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2864 if (ndr_flags & NDR_SCALARS) {
2865 NDR_CHECK(ndr_pull_align(ndr, 5));
2867 uint32_t _flags_save_string = ndr->flags;
2868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2871 NDR_PULL_ALLOC(ndr, r->guid);
2872 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2876 ndr->flags = _flags_save_string;
2878 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2879 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2881 if (ndr_flags & NDR_BUFFERS) {
2883 uint32_t _flags_save_string = ndr->flags;
2884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
2886 uint32_t _relative_save_offset;
2887 _relative_save_offset = ndr->offset;
2888 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2889 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2890 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2891 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2893 if (ndr->offset > ndr->relative_highest_offset) {
2894 ndr->relative_highest_offset = ndr->offset;
2896 ndr->offset = _relative_save_offset;
2898 ndr->flags = _flags_save_string;
2901 return NDR_ERR_SUCCESS;
2904 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2906 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2907 if (r == NULL) { ndr_print_null(ndr); return; }
2909 ndr_print_ptr(ndr, "guid", r->guid);
2912 ndr_print_string(ndr, "guid", r->guid);
2915 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2919 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, int flags)
2921 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7);
2924 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2926 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
2927 if (ndr_flags & NDR_SCALARS) {
2928 NDR_CHECK(ndr_push_align(ndr, 5));
2930 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2932 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2933 ndr->flags = _flags_save_spoolss_DeviceMode;
2935 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
2937 if (ndr_flags & NDR_BUFFERS) {
2939 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2942 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
2944 struct ndr_push *_ndr_devmode;
2945 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2946 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2947 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2949 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
2951 ndr->flags = _flags_save_spoolss_DeviceMode;
2954 return NDR_ERR_SUCCESS;
2957 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2959 uint32_t _ptr_devmode;
2960 TALLOC_CTX *_mem_save_devmode_0 = NULL;
2961 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
2962 if (ndr_flags & NDR_SCALARS) {
2963 NDR_CHECK(ndr_pull_align(ndr, 5));
2965 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2969 NDR_PULL_ALLOC(ndr, r->devmode);
2970 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2974 ndr->flags = _flags_save_spoolss_DeviceMode;
2976 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
2978 if (ndr_flags & NDR_BUFFERS) {
2980 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
2981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
2983 uint32_t _relative_save_offset;
2984 _relative_save_offset = ndr->offset;
2985 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2986 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2987 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2989 struct ndr_pull *_ndr_devmode;
2990 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2991 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2992 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2994 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2995 if (ndr->offset > ndr->relative_highest_offset) {
2996 ndr->relative_highest_offset = ndr->offset;
2998 ndr->offset = _relative_save_offset;
3000 ndr->flags = _flags_save_spoolss_DeviceMode;
3003 return NDR_ERR_SUCCESS;
3006 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
3008 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
3009 if (r == NULL) { ndr_print_null(ndr); return; }
3011 ndr_print_ptr(ndr, "devmode", r->devmode);
3014 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3020 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
3022 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
3024 uint32_t _flags_save_UNION = ndr->flags;
3025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3026 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3027 if (ndr_flags & NDR_SCALARS) {
3028 uint32_t level = ndr_push_get_switch_value(ndr, r);
3029 NDR_CHECK(ndr_push_union_align(ndr, 5));
3032 NDR_CHECK(ndr_push_align(ndr, 5));
3033 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3034 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
3038 NDR_CHECK(ndr_push_align(ndr, 5));
3039 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3040 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
3044 NDR_CHECK(ndr_push_align(ndr, 5));
3045 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3046 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
3050 NDR_CHECK(ndr_push_align(ndr, 5));
3051 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3052 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3056 NDR_CHECK(ndr_push_align(ndr, 5));
3057 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3058 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3062 NDR_CHECK(ndr_push_align(ndr, 5));
3063 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3064 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3068 NDR_CHECK(ndr_push_align(ndr, 4));
3069 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3070 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3074 NDR_CHECK(ndr_push_align(ndr, 5));
3075 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3076 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3080 NDR_CHECK(ndr_push_align(ndr, 5));
3081 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3082 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3086 NDR_CHECK(ndr_push_align(ndr, 5));
3087 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
3088 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3096 if (ndr_flags & NDR_BUFFERS) {
3097 uint32_t level = ndr_push_get_switch_value(ndr, r);
3098 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
3101 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3105 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3109 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3113 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3117 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3121 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3128 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3132 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3136 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3144 ndr->flags = _flags_save_UNION;
3146 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
3147 return NDR_ERR_SUCCESS;
3150 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
3152 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
3155 uint32_t _flags_save_UNION = ndr->flags;
3156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3157 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3158 if (ndr_flags & NDR_SCALARS) {
3159 level = ndr_pull_get_switch_value(ndr, r);
3160 NDR_CHECK(ndr_pull_union_align(ndr, 5));
3163 NDR_CHECK(ndr_pull_align(ndr, 5));
3164 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3165 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
3169 NDR_CHECK(ndr_pull_align(ndr, 5));
3170 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3171 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
3175 NDR_CHECK(ndr_pull_align(ndr, 5));
3176 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3177 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
3181 NDR_CHECK(ndr_pull_align(ndr, 5));
3182 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3183 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
3187 NDR_CHECK(ndr_pull_align(ndr, 5));
3188 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3189 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
3193 NDR_CHECK(ndr_pull_align(ndr, 5));
3194 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3195 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
3199 NDR_CHECK(ndr_pull_align(ndr, 4));
3200 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3201 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
3205 NDR_CHECK(ndr_pull_align(ndr, 5));
3206 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3207 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
3211 NDR_CHECK(ndr_pull_align(ndr, 5));
3212 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3213 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
3217 NDR_CHECK(ndr_pull_align(ndr, 5));
3218 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
3219 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
3227 if (ndr_flags & NDR_BUFFERS) {
3228 /* The token is not needed after this. */
3229 level = ndr_pull_steal_switch_value(ndr, r);
3230 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
3233 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
3237 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
3241 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
3245 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
3249 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
3253 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
3260 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
3264 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
3268 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
3276 ndr->flags = _flags_save_UNION;
3278 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
3279 return NDR_ERR_SUCCESS;
3282 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
3286 uint32_t _flags_save_UNION = ndr->flags;
3287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
3288 level = ndr_print_get_switch_value(ndr, r);
3289 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
3292 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
3296 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
3300 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
3304 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
3308 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
3312 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
3316 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
3320 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
3324 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
3328 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
3335 ndr->flags = _flags_save_UNION;
3339 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, int flags)
3341 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
3342 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo);
3345 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
3347 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3348 if (ndr_flags & NDR_SCALARS) {
3349 NDR_CHECK(ndr_push_align(ndr, 5));
3350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
3351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3352 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3354 if (ndr_flags & NDR_BUFFERS) {
3357 struct ndr_push *_ndr_devmode;
3358 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
3359 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3360 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags)));
3364 return NDR_ERR_SUCCESS;
3367 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
3369 uint32_t _ptr_devmode;
3370 TALLOC_CTX *_mem_save_devmode_0 = NULL;
3371 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3372 if (ndr_flags & NDR_SCALARS) {
3373 NDR_CHECK(ndr_pull_align(ndr, 5));
3374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
3375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3377 NDR_PULL_ALLOC(ndr, r->devmode);
3381 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3383 if (ndr_flags & NDR_BUFFERS) {
3385 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3386 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3388 struct ndr_pull *_ndr_devmode;
3389 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
3390 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3391 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
3393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3396 return NDR_ERR_SUCCESS;
3399 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
3401 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
3402 if (r == NULL) { ndr_print_null(ndr); return; }
3404 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->flags):r->_ndr_size);
3405 ndr_print_ptr(ndr, "devmode", r->devmode);
3408 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3414 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
3416 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3417 if (ndr_flags & NDR_SCALARS) {
3418 NDR_CHECK(ndr_push_align(ndr, 5));
3419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3421 uint32_t _flags_save_string = ndr->flags;
3422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3423 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3424 ndr->flags = _flags_save_string;
3427 uint32_t _flags_save_string = ndr->flags;
3428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3429 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3430 ndr->flags = _flags_save_string;
3433 uint32_t _flags_save_string = ndr->flags;
3434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3435 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3436 ndr->flags = _flags_save_string;
3439 uint32_t _flags_save_string = ndr->flags;
3440 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3441 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3442 ndr->flags = _flags_save_string;
3445 uint32_t _flags_save_string = ndr->flags;
3446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3447 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3448 ndr->flags = _flags_save_string;
3451 uint32_t _flags_save_string = ndr->flags;
3452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3453 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3454 ndr->flags = _flags_save_string;
3456 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3461 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3462 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3464 if (ndr_flags & NDR_BUFFERS) {
3466 uint32_t _flags_save_string = ndr->flags;
3467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3468 if (r->printer_name) {
3469 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3470 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3471 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3473 ndr->flags = _flags_save_string;
3476 uint32_t _flags_save_string = ndr->flags;
3477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3478 if (r->server_name) {
3479 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3480 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3481 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3483 ndr->flags = _flags_save_string;
3486 uint32_t _flags_save_string = ndr->flags;
3487 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3489 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3490 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3491 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3493 ndr->flags = _flags_save_string;
3496 uint32_t _flags_save_string = ndr->flags;
3497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3498 if (r->document_name) {
3499 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3500 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3501 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3503 ndr->flags = _flags_save_string;
3506 uint32_t _flags_save_string = ndr->flags;
3507 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3509 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3510 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3511 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3513 ndr->flags = _flags_save_string;
3516 uint32_t _flags_save_string = ndr->flags;
3517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3518 if (r->text_status) {
3519 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
3520 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3521 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
3523 ndr->flags = _flags_save_string;
3526 return NDR_ERR_SUCCESS;
3529 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
3531 uint32_t _ptr_printer_name;
3532 TALLOC_CTX *_mem_save_printer_name_0 = NULL;
3533 uint32_t _ptr_server_name;
3534 TALLOC_CTX *_mem_save_server_name_0 = NULL;
3535 uint32_t _ptr_user_name;
3536 TALLOC_CTX *_mem_save_user_name_0 = NULL;
3537 uint32_t _ptr_document_name;
3538 TALLOC_CTX *_mem_save_document_name_0 = NULL;
3539 uint32_t _ptr_data_type;
3540 TALLOC_CTX *_mem_save_data_type_0 = NULL;
3541 uint32_t _ptr_text_status;
3542 TALLOC_CTX *_mem_save_text_status_0 = NULL;
3543 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
3544 if (ndr_flags & NDR_SCALARS) {
3545 NDR_CHECK(ndr_pull_align(ndr, 5));
3546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3548 uint32_t _flags_save_string = ndr->flags;
3549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3550 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3551 if (_ptr_printer_name) {
3552 NDR_PULL_ALLOC(ndr, r->printer_name);
3553 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3555 r->printer_name = NULL;
3557 ndr->flags = _flags_save_string;
3560 uint32_t _flags_save_string = ndr->flags;
3561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3563 if (_ptr_server_name) {
3564 NDR_PULL_ALLOC(ndr, r->server_name);
3565 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3567 r->server_name = NULL;
3569 ndr->flags = _flags_save_string;
3572 uint32_t _flags_save_string = ndr->flags;
3573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3574 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3575 if (_ptr_user_name) {
3576 NDR_PULL_ALLOC(ndr, r->user_name);
3577 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3579 r->user_name = NULL;
3581 ndr->flags = _flags_save_string;
3584 uint32_t _flags_save_string = ndr->flags;
3585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3586 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3587 if (_ptr_document_name) {
3588 NDR_PULL_ALLOC(ndr, r->document_name);
3589 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3591 r->document_name = NULL;
3593 ndr->flags = _flags_save_string;
3596 uint32_t _flags_save_string = ndr->flags;
3597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3599 if (_ptr_data_type) {
3600 NDR_PULL_ALLOC(ndr, r->data_type);
3601 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3603 r->data_type = NULL;
3605 ndr->flags = _flags_save_string;
3608 uint32_t _flags_save_string = ndr->flags;
3609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3611 if (_ptr_text_status) {
3612 NDR_PULL_ALLOC(ndr, r->text_status);
3613 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3615 r->text_status = NULL;
3617 ndr->flags = _flags_save_string;
3619 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3621 if (r->priority > 99) {
3622 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
3624 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3625 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3626 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3627 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3628 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
3630 if (ndr_flags & NDR_BUFFERS) {
3632 uint32_t _flags_save_string = ndr->flags;
3633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3634 if (r->printer_name) {
3635 uint32_t _relative_save_offset;
3636 _relative_save_offset = ndr->offset;
3637 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3638 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3639 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3640 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3642 if (ndr->offset > ndr->relative_highest_offset) {
3643 ndr->relative_highest_offset = ndr->offset;
3645 ndr->offset = _relative_save_offset;
3647 ndr->flags = _flags_save_string;
3650 uint32_t _flags_save_string = ndr->flags;
3651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3652 if (r->server_name) {
3653 uint32_t _relative_save_offset;
3654 _relative_save_offset = ndr->offset;
3655 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3656 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3657 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3658 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3660 if (ndr->offset > ndr->relative_highest_offset) {
3661 ndr->relative_highest_offset = ndr->offset;
3663 ndr->offset = _relative_save_offset;
3665 ndr->flags = _flags_save_string;
3668 uint32_t _flags_save_string = ndr->flags;
3669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3671 uint32_t _relative_save_offset;
3672 _relative_save_offset = ndr->offset;
3673 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3674 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3675 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3676 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3678 if (ndr->offset > ndr->relative_highest_offset) {
3679 ndr->relative_highest_offset = ndr->offset;
3681 ndr->offset = _relative_save_offset;
3683 ndr->flags = _flags_save_string;
3686 uint32_t _flags_save_string = ndr->flags;
3687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3688 if (r->document_name) {
3689 uint32_t _relative_save_offset;
3690 _relative_save_offset = ndr->offset;
3691 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3692 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3693 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3694 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3696 if (ndr->offset > ndr->relative_highest_offset) {
3697 ndr->relative_highest_offset = ndr->offset;
3699 ndr->offset = _relative_save_offset;
3701 ndr->flags = _flags_save_string;
3704 uint32_t _flags_save_string = ndr->flags;
3705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3707 uint32_t _relative_save_offset;
3708 _relative_save_offset = ndr->offset;
3709 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3710 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3711 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3712 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3714 if (ndr->offset > ndr->relative_highest_offset) {
3715 ndr->relative_highest_offset = ndr->offset;
3717 ndr->offset = _relative_save_offset;
3719 ndr->flags = _flags_save_string;
3722 uint32_t _flags_save_string = ndr->flags;
3723 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3724 if (r->text_status) {
3725 uint32_t _relative_save_offset;
3726 _relative_save_offset = ndr->offset;
3727 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3728 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3729 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3730 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3731 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3732 if (ndr->offset > ndr->relative_highest_offset) {
3733 ndr->relative_highest_offset = ndr->offset;
3735 ndr->offset = _relative_save_offset;
3737 ndr->flags = _flags_save_string;
3740 return NDR_ERR_SUCCESS;
3743 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
3745 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
3746 if (r == NULL) { ndr_print_null(ndr); return; }
3748 ndr_print_uint32(ndr, "job_id", r->job_id);
3749 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3751 if (r->printer_name) {
3752 ndr_print_string(ndr, "printer_name", r->printer_name);
3755 ndr_print_ptr(ndr, "server_name", r->server_name);
3757 if (r->server_name) {
3758 ndr_print_string(ndr, "server_name", r->server_name);
3761 ndr_print_ptr(ndr, "user_name", r->user_name);
3764 ndr_print_string(ndr, "user_name", r->user_name);
3767 ndr_print_ptr(ndr, "document_name", r->document_name);
3769 if (r->document_name) {
3770 ndr_print_string(ndr, "document_name", r->document_name);
3773 ndr_print_ptr(ndr, "data_type", r->data_type);
3776 ndr_print_string(ndr, "data_type", r->data_type);
3779 ndr_print_ptr(ndr, "text_status", r->text_status);
3781 if (r->text_status) {
3782 ndr_print_string(ndr, "text_status", r->text_status);
3785 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3786 ndr_print_uint32(ndr, "priority", r->priority);
3787 ndr_print_uint32(ndr, "position", r->position);
3788 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3789 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3790 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3794 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, int flags)
3796 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1);
3799 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
3801 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
3802 if (ndr_flags & NDR_SCALARS) {
3803 NDR_CHECK(ndr_push_align(ndr, 5));
3804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3806 uint32_t _flags_save_string = ndr->flags;
3807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3808 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3809 ndr->flags = _flags_save_string;
3812 uint32_t _flags_save_string = ndr->flags;
3813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3814 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3815 ndr->flags = _flags_save_string;
3818 uint32_t _flags_save_string = ndr->flags;
3819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3820 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3821 ndr->flags = _flags_save_string;
3824 uint32_t _flags_save_string = ndr->flags;
3825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3826 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3827 ndr->flags = _flags_save_string;
3830 uint32_t _flags_save_string = ndr->flags;
3831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3833 ndr->flags = _flags_save_string;
3836 uint32_t _flags_save_string = ndr->flags;
3837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3839 ndr->flags = _flags_save_string;
3842 uint32_t _flags_save_string = ndr->flags;
3843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3844 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3845 ndr->flags = _flags_save_string;
3848 uint32_t _flags_save_string = ndr->flags;
3849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3850 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3851 ndr->flags = _flags_save_string;
3854 uint32_t _flags_save_string = ndr->flags;
3855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3856 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3857 ndr->flags = _flags_save_string;
3860 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3862 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3863 ndr->flags = _flags_save_spoolss_DeviceMode;
3866 uint32_t _flags_save_string = ndr->flags;
3867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3868 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3869 ndr->flags = _flags_save_string;
3872 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
3873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3874 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3875 ndr->flags = _flags_save_spoolss_security_descriptor;
3877 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3883 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3884 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3887 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
3889 if (ndr_flags & NDR_BUFFERS) {
3891 uint32_t _flags_save_string = ndr->flags;
3892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3893 if (r->printer_name) {
3894 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
3895 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3896 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
3898 ndr->flags = _flags_save_string;
3901 uint32_t _flags_save_string = ndr->flags;
3902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3903 if (r->server_name) {
3904 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
3905 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3906 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
3908 ndr->flags = _flags_save_string;
3911 uint32_t _flags_save_string = ndr->flags;
3912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3914 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
3915 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3916 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
3918 ndr->flags = _flags_save_string;
3921 uint32_t _flags_save_string = ndr->flags;
3922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3923 if (r->document_name) {
3924 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
3925 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3926 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
3928 ndr->flags = _flags_save_string;
3931 uint32_t _flags_save_string = ndr->flags;
3932 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3933 if (r->notify_name) {
3934 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
3935 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3936 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
3938 ndr->flags = _flags_save_string;
3941 uint32_t _flags_save_string = ndr->flags;
3942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3944 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
3945 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3946 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
3948 ndr->flags = _flags_save_string;
3951 uint32_t _flags_save_string = ndr->flags;
3952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3953 if (r->print_processor) {
3954 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
3955 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3956 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
3958 ndr->flags = _flags_save_string;
3961 uint32_t _flags_save_string = ndr->flags;
3962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3963 if (r->parameters) {
3964 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
3965 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3966 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
3968 ndr->flags = _flags_save_string;
3971 uint32_t _flags_save_string = ndr->flags;
3972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3973 if (r->driver_name) {
3974 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
3975 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3976 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
3978 ndr->flags = _flags_save_string;
3981 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
3982 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
3984 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
3986 struct ndr_push *_ndr_devmode;
3987 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3988 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3989 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3991 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
3993 ndr->flags = _flags_save_spoolss_DeviceMode;
3996 uint32_t _flags_save_string = ndr->flags;
3997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
3998 if (r->text_status) {
3999 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4000 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4001 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4003 ndr->flags = _flags_save_string;
4006 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4009 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4011 struct ndr_push *_ndr_secdesc;
4012 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4013 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4014 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4016 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4018 ndr->flags = _flags_save_spoolss_security_descriptor;
4021 return NDR_ERR_SUCCESS;
4024 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
4026 uint32_t _ptr_printer_name;
4027 TALLOC_CTX *_mem_save_printer_name_0 = NULL;
4028 uint32_t _ptr_server_name;
4029 TALLOC_CTX *_mem_save_server_name_0 = NULL;
4030 uint32_t _ptr_user_name;
4031 TALLOC_CTX *_mem_save_user_name_0 = NULL;
4032 uint32_t _ptr_document_name;
4033 TALLOC_CTX *_mem_save_document_name_0 = NULL;
4034 uint32_t _ptr_notify_name;
4035 TALLOC_CTX *_mem_save_notify_name_0 = NULL;
4036 uint32_t _ptr_data_type;
4037 TALLOC_CTX *_mem_save_data_type_0 = NULL;
4038 uint32_t _ptr_print_processor;
4039 TALLOC_CTX *_mem_save_print_processor_0 = NULL;
4040 uint32_t _ptr_parameters;
4041 TALLOC_CTX *_mem_save_parameters_0 = NULL;
4042 uint32_t _ptr_driver_name;
4043 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
4044 uint32_t _ptr_devmode;
4045 TALLOC_CTX *_mem_save_devmode_0 = NULL;
4046 uint32_t _ptr_text_status;
4047 TALLOC_CTX *_mem_save_text_status_0 = NULL;
4048 uint32_t _ptr_secdesc;
4049 TALLOC_CTX *_mem_save_secdesc_0 = NULL;
4050 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4051 if (ndr_flags & NDR_SCALARS) {
4052 NDR_CHECK(ndr_pull_align(ndr, 5));
4053 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4055 uint32_t _flags_save_string = ndr->flags;
4056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4058 if (_ptr_printer_name) {
4059 NDR_PULL_ALLOC(ndr, r->printer_name);
4060 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4062 r->printer_name = NULL;
4064 ndr->flags = _flags_save_string;
4067 uint32_t _flags_save_string = ndr->flags;
4068 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4069 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4070 if (_ptr_server_name) {
4071 NDR_PULL_ALLOC(ndr, r->server_name);
4072 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4074 r->server_name = NULL;
4076 ndr->flags = _flags_save_string;
4079 uint32_t _flags_save_string = ndr->flags;
4080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4082 if (_ptr_user_name) {
4083 NDR_PULL_ALLOC(ndr, r->user_name);
4084 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4086 r->user_name = NULL;
4088 ndr->flags = _flags_save_string;
4091 uint32_t _flags_save_string = ndr->flags;
4092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4094 if (_ptr_document_name) {
4095 NDR_PULL_ALLOC(ndr, r->document_name);
4096 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4098 r->document_name = NULL;
4100 ndr->flags = _flags_save_string;
4103 uint32_t _flags_save_string = ndr->flags;
4104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4106 if (_ptr_notify_name) {
4107 NDR_PULL_ALLOC(ndr, r->notify_name);
4108 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4110 r->notify_name = NULL;
4112 ndr->flags = _flags_save_string;
4115 uint32_t _flags_save_string = ndr->flags;
4116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4118 if (_ptr_data_type) {
4119 NDR_PULL_ALLOC(ndr, r->data_type);
4120 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4122 r->data_type = NULL;
4124 ndr->flags = _flags_save_string;
4127 uint32_t _flags_save_string = ndr->flags;
4128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4130 if (_ptr_print_processor) {
4131 NDR_PULL_ALLOC(ndr, r->print_processor);
4132 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4134 r->print_processor = NULL;
4136 ndr->flags = _flags_save_string;
4139 uint32_t _flags_save_string = ndr->flags;
4140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4142 if (_ptr_parameters) {
4143 NDR_PULL_ALLOC(ndr, r->parameters);
4144 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4146 r->parameters = NULL;
4148 ndr->flags = _flags_save_string;
4151 uint32_t _flags_save_string = ndr->flags;
4152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4154 if (_ptr_driver_name) {
4155 NDR_PULL_ALLOC(ndr, r->driver_name);
4156 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4158 r->driver_name = NULL;
4160 ndr->flags = _flags_save_string;
4163 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4167 NDR_PULL_ALLOC(ndr, r->devmode);
4168 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4172 ndr->flags = _flags_save_spoolss_DeviceMode;
4175 uint32_t _flags_save_string = ndr->flags;
4176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4178 if (_ptr_text_status) {
4179 NDR_PULL_ALLOC(ndr, r->text_status);
4180 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4182 r->text_status = NULL;
4184 ndr->flags = _flags_save_string;
4187 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4191 NDR_PULL_ALLOC(ndr, r->secdesc);
4192 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4196 ndr->flags = _flags_save_spoolss_security_descriptor;
4198 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4200 if (r->priority > 99) {
4201 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4204 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4207 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4208 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4209 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4211 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
4213 if (ndr_flags & NDR_BUFFERS) {
4215 uint32_t _flags_save_string = ndr->flags;
4216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4217 if (r->printer_name) {
4218 uint32_t _relative_save_offset;
4219 _relative_save_offset = ndr->offset;
4220 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
4221 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4222 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4223 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
4224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4225 if (ndr->offset > ndr->relative_highest_offset) {
4226 ndr->relative_highest_offset = ndr->offset;
4228 ndr->offset = _relative_save_offset;
4230 ndr->flags = _flags_save_string;
4233 uint32_t _flags_save_string = ndr->flags;
4234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4235 if (r->server_name) {
4236 uint32_t _relative_save_offset;
4237 _relative_save_offset = ndr->offset;
4238 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4239 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4240 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4241 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4243 if (ndr->offset > ndr->relative_highest_offset) {
4244 ndr->relative_highest_offset = ndr->offset;
4246 ndr->offset = _relative_save_offset;
4248 ndr->flags = _flags_save_string;
4251 uint32_t _flags_save_string = ndr->flags;
4252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4254 uint32_t _relative_save_offset;
4255 _relative_save_offset = ndr->offset;
4256 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4257 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4258 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4259 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4261 if (ndr->offset > ndr->relative_highest_offset) {
4262 ndr->relative_highest_offset = ndr->offset;
4264 ndr->offset = _relative_save_offset;
4266 ndr->flags = _flags_save_string;
4269 uint32_t _flags_save_string = ndr->flags;
4270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4271 if (r->document_name) {
4272 uint32_t _relative_save_offset;
4273 _relative_save_offset = ndr->offset;
4274 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4275 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4276 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4277 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4279 if (ndr->offset > ndr->relative_highest_offset) {
4280 ndr->relative_highest_offset = ndr->offset;
4282 ndr->offset = _relative_save_offset;
4284 ndr->flags = _flags_save_string;
4287 uint32_t _flags_save_string = ndr->flags;
4288 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4289 if (r->notify_name) {
4290 uint32_t _relative_save_offset;
4291 _relative_save_offset = ndr->offset;
4292 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4293 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4294 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4295 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4297 if (ndr->offset > ndr->relative_highest_offset) {
4298 ndr->relative_highest_offset = ndr->offset;
4300 ndr->offset = _relative_save_offset;
4302 ndr->flags = _flags_save_string;
4305 uint32_t _flags_save_string = ndr->flags;
4306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4308 uint32_t _relative_save_offset;
4309 _relative_save_offset = ndr->offset;
4310 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4311 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4312 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4313 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4315 if (ndr->offset > ndr->relative_highest_offset) {
4316 ndr->relative_highest_offset = ndr->offset;
4318 ndr->offset = _relative_save_offset;
4320 ndr->flags = _flags_save_string;
4323 uint32_t _flags_save_string = ndr->flags;
4324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4325 if (r->print_processor) {
4326 uint32_t _relative_save_offset;
4327 _relative_save_offset = ndr->offset;
4328 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4329 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4330 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4331 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4333 if (ndr->offset > ndr->relative_highest_offset) {
4334 ndr->relative_highest_offset = ndr->offset;
4336 ndr->offset = _relative_save_offset;
4338 ndr->flags = _flags_save_string;
4341 uint32_t _flags_save_string = ndr->flags;
4342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4343 if (r->parameters) {
4344 uint32_t _relative_save_offset;
4345 _relative_save_offset = ndr->offset;
4346 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4347 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4348 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4349 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4351 if (ndr->offset > ndr->relative_highest_offset) {
4352 ndr->relative_highest_offset = ndr->offset;
4354 ndr->offset = _relative_save_offset;
4356 ndr->flags = _flags_save_string;
4359 uint32_t _flags_save_string = ndr->flags;
4360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4361 if (r->driver_name) {
4362 uint32_t _relative_save_offset;
4363 _relative_save_offset = ndr->offset;
4364 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4365 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4366 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4367 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4369 if (ndr->offset > ndr->relative_highest_offset) {
4370 ndr->relative_highest_offset = ndr->offset;
4372 ndr->offset = _relative_save_offset;
4374 ndr->flags = _flags_save_string;
4377 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4380 uint32_t _relative_save_offset;
4381 _relative_save_offset = ndr->offset;
4382 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4383 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4384 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4386 struct ndr_pull *_ndr_devmode;
4387 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4388 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4389 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
4391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4392 if (ndr->offset > ndr->relative_highest_offset) {
4393 ndr->relative_highest_offset = ndr->offset;
4395 ndr->offset = _relative_save_offset;
4397 ndr->flags = _flags_save_spoolss_DeviceMode;
4400 uint32_t _flags_save_string = ndr->flags;
4401 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4402 if (r->text_status) {
4403 uint32_t _relative_save_offset;
4404 _relative_save_offset = ndr->offset;
4405 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4406 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4407 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4408 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4410 if (ndr->offset > ndr->relative_highest_offset) {
4411 ndr->relative_highest_offset = ndr->offset;
4413 ndr->offset = _relative_save_offset;
4415 ndr->flags = _flags_save_string;
4418 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4421 uint32_t _relative_save_offset;
4422 _relative_save_offset = ndr->offset;
4423 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4424 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4425 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4427 struct ndr_pull *_ndr_secdesc;
4428 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4429 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4430 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4433 if (ndr->offset > ndr->relative_highest_offset) {
4434 ndr->relative_highest_offset = ndr->offset;
4436 ndr->offset = _relative_save_offset;
4438 ndr->flags = _flags_save_spoolss_security_descriptor;
4441 return NDR_ERR_SUCCESS;
4444 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
4446 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
4447 if (r == NULL) { ndr_print_null(ndr); return; }
4449 ndr_print_uint32(ndr, "job_id", r->job_id);
4450 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4452 if (r->printer_name) {
4453 ndr_print_string(ndr, "printer_name", r->printer_name);
4456 ndr_print_ptr(ndr, "server_name", r->server_name);
4458 if (r->server_name) {
4459 ndr_print_string(ndr, "server_name", r->server_name);
4462 ndr_print_ptr(ndr, "user_name", r->user_name);
4465 ndr_print_string(ndr, "user_name", r->user_name);
4468 ndr_print_ptr(ndr, "document_name", r->document_name);
4470 if (r->document_name) {
4471 ndr_print_string(ndr, "document_name", r->document_name);
4474 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4476 if (r->notify_name) {
4477 ndr_print_string(ndr, "notify_name", r->notify_name);
4480 ndr_print_ptr(ndr, "data_type", r->data_type);
4483 ndr_print_string(ndr, "data_type", r->data_type);
4486 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4488 if (r->print_processor) {
4489 ndr_print_string(ndr, "print_processor", r->print_processor);
4492 ndr_print_ptr(ndr, "parameters", r->parameters);
4494 if (r->parameters) {
4495 ndr_print_string(ndr, "parameters", r->parameters);
4498 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4500 if (r->driver_name) {
4501 ndr_print_string(ndr, "driver_name", r->driver_name);
4504 ndr_print_ptr(ndr, "devmode", r->devmode);
4507 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4510 ndr_print_ptr(ndr, "text_status", r->text_status);
4512 if (r->text_status) {
4513 ndr_print_string(ndr, "text_status", r->text_status);
4516 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4519 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
4522 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4523 ndr_print_uint32(ndr, "priority", r->priority);
4524 ndr_print_uint32(ndr, "position", r->position);
4525 ndr_print_uint32(ndr, "start_time", r->start_time);
4526 ndr_print_uint32(ndr, "until_time", r->until_time);
4527 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4528 ndr_print_uint32(ndr, "size", r->size);
4529 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4530 ndr_print_uint32(ndr, "time", r->time);
4531 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4535 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, int flags)
4537 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2);
4540 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
4542 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4543 if (ndr_flags & NDR_SCALARS) {
4544 NDR_CHECK(ndr_push_align(ndr, 4));
4545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
4547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
4548 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
4550 if (ndr_flags & NDR_BUFFERS) {
4552 return NDR_ERR_SUCCESS;
4555 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
4557 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4558 if (ndr_flags & NDR_SCALARS) {
4559 NDR_CHECK(ndr_pull_align(ndr, 4));
4560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
4562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
4563 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
4565 if (ndr_flags & NDR_BUFFERS) {
4567 return NDR_ERR_SUCCESS;
4570 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
4572 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
4573 if (r == NULL) { ndr_print_null(ndr); return; }
4575 ndr_print_uint32(ndr, "job_id", r->job_id);
4576 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
4577 ndr_print_uint32(ndr, "reserved", r->reserved);
4581 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, int flags)
4583 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3);
4586 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
4588 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
4589 if (ndr_flags & NDR_SCALARS) {
4590 NDR_CHECK(ndr_push_align(ndr, 5));
4591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4593 uint32_t _flags_save_string = ndr->flags;
4594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4595 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
4596 ndr->flags = _flags_save_string;
4599 uint32_t _flags_save_string = ndr->flags;
4600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4601 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
4602 ndr->flags = _flags_save_string;
4605 uint32_t _flags_save_string = ndr->flags;
4606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4607 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
4608 ndr->flags = _flags_save_string;
4611 uint32_t _flags_save_string = ndr->flags;
4612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4613 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
4614 ndr->flags = _flags_save_string;
4617 uint32_t _flags_save_string = ndr->flags;
4618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
4620 ndr->flags = _flags_save_string;
4623 uint32_t _flags_save_string = ndr->flags;
4624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4625 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
4626 ndr->flags = _flags_save_string;
4629 uint32_t _flags_save_string = ndr->flags;
4630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4631 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
4632 ndr->flags = _flags_save_string;
4635 uint32_t _flags_save_string = ndr->flags;
4636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
4638 ndr->flags = _flags_save_string;
4641 uint32_t _flags_save_string = ndr->flags;
4642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
4644 ndr->flags = _flags_save_string;
4647 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4649 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
4650 ndr->flags = _flags_save_spoolss_DeviceMode;
4653 uint32_t _flags_save_string = ndr->flags;
4654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4655 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
4656 ndr->flags = _flags_save_string;
4659 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4661 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
4662 ndr->flags = _flags_save_spoolss_security_descriptor;
4664 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4671 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
4675 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
4677 if (ndr_flags & NDR_BUFFERS) {
4679 uint32_t _flags_save_string = ndr->flags;
4680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4681 if (r->printer_name) {
4682 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->printer_name));
4683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
4684 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->printer_name));
4686 ndr->flags = _flags_save_string;
4689 uint32_t _flags_save_string = ndr->flags;
4690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4691 if (r->server_name) {
4692 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->server_name));
4693 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
4694 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->server_name));
4696 ndr->flags = _flags_save_string;
4699 uint32_t _flags_save_string = ndr->flags;
4700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4702 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->user_name));
4703 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
4704 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->user_name));
4706 ndr->flags = _flags_save_string;
4709 uint32_t _flags_save_string = ndr->flags;
4710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4711 if (r->document_name) {
4712 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->document_name));
4713 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
4714 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->document_name));
4716 ndr->flags = _flags_save_string;
4719 uint32_t _flags_save_string = ndr->flags;
4720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4721 if (r->notify_name) {
4722 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->notify_name));
4723 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
4724 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->notify_name));
4726 ndr->flags = _flags_save_string;
4729 uint32_t _flags_save_string = ndr->flags;
4730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4732 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_type));
4733 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
4734 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_type));
4736 ndr->flags = _flags_save_string;
4739 uint32_t _flags_save_string = ndr->flags;
4740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4741 if (r->print_processor) {
4742 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
4743 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
4744 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
4746 ndr->flags = _flags_save_string;
4749 uint32_t _flags_save_string = ndr->flags;
4750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4751 if (r->parameters) {
4752 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->parameters));
4753 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
4754 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->parameters));
4756 ndr->flags = _flags_save_string;
4759 uint32_t _flags_save_string = ndr->flags;
4760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4761 if (r->driver_name) {
4762 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
4763 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
4764 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
4766 ndr->flags = _flags_save_string;
4769 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4772 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->devmode));
4774 struct ndr_push *_ndr_devmode;
4775 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
4776 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
4777 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
4779 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->devmode));
4781 ndr->flags = _flags_save_spoolss_DeviceMode;
4784 uint32_t _flags_save_string = ndr->flags;
4785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4786 if (r->text_status) {
4787 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->text_status));
4788 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
4789 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->text_status));
4791 ndr->flags = _flags_save_string;
4794 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4797 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->secdesc));
4799 struct ndr_push *_ndr_secdesc;
4800 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
4801 NDR_CHECK(ndr_push_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4802 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
4804 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->secdesc));
4806 ndr->flags = _flags_save_spoolss_security_descriptor;
4809 return NDR_ERR_SUCCESS;
4812 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
4814 uint32_t _ptr_printer_name;
4815 TALLOC_CTX *_mem_save_printer_name_0 = NULL;
4816 uint32_t _ptr_server_name;
4817 TALLOC_CTX *_mem_save_server_name_0 = NULL;
4818 uint32_t _ptr_user_name;
4819 TALLOC_CTX *_mem_save_user_name_0 = NULL;
4820 uint32_t _ptr_document_name;
4821 TALLOC_CTX *_mem_save_document_name_0 = NULL;
4822 uint32_t _ptr_notify_name;
4823 TALLOC_CTX *_mem_save_notify_name_0 = NULL;
4824 uint32_t _ptr_data_type;
4825 TALLOC_CTX *_mem_save_data_type_0 = NULL;
4826 uint32_t _ptr_print_processor;
4827 TALLOC_CTX *_mem_save_print_processor_0 = NULL;
4828 uint32_t _ptr_parameters;
4829 TALLOC_CTX *_mem_save_parameters_0 = NULL;
4830 uint32_t _ptr_driver_name;
4831 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
4832 uint32_t _ptr_devmode;
4833 TALLOC_CTX *_mem_save_devmode_0 = NULL;
4834 uint32_t _ptr_text_status;
4835 TALLOC_CTX *_mem_save_text_status_0 = NULL;
4836 uint32_t _ptr_secdesc;
4837 TALLOC_CTX *_mem_save_secdesc_0 = NULL;
4838 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
4839 if (ndr_flags & NDR_SCALARS) {
4840 NDR_CHECK(ndr_pull_align(ndr, 5));
4841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4843 uint32_t _flags_save_string = ndr->flags;
4844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4846 if (_ptr_printer_name) {
4847 NDR_PULL_ALLOC(ndr, r->printer_name);
4848 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
4850 r->printer_name = NULL;
4852 ndr->flags = _flags_save_string;
4855 uint32_t _flags_save_string = ndr->flags;
4856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4858 if (_ptr_server_name) {
4859 NDR_PULL_ALLOC(ndr, r->server_name);
4860 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
4862 r->server_name = NULL;
4864 ndr->flags = _flags_save_string;
4867 uint32_t _flags_save_string = ndr->flags;
4868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4870 if (_ptr_user_name) {
4871 NDR_PULL_ALLOC(ndr, r->user_name);
4872 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
4874 r->user_name = NULL;
4876 ndr->flags = _flags_save_string;
4879 uint32_t _flags_save_string = ndr->flags;
4880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4882 if (_ptr_document_name) {
4883 NDR_PULL_ALLOC(ndr, r->document_name);
4884 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
4886 r->document_name = NULL;
4888 ndr->flags = _flags_save_string;
4891 uint32_t _flags_save_string = ndr->flags;
4892 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4894 if (_ptr_notify_name) {
4895 NDR_PULL_ALLOC(ndr, r->notify_name);
4896 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
4898 r->notify_name = NULL;
4900 ndr->flags = _flags_save_string;
4903 uint32_t _flags_save_string = ndr->flags;
4904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4906 if (_ptr_data_type) {
4907 NDR_PULL_ALLOC(ndr, r->data_type);
4908 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
4910 r->data_type = NULL;
4912 ndr->flags = _flags_save_string;
4915 uint32_t _flags_save_string = ndr->flags;
4916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4918 if (_ptr_print_processor) {
4919 NDR_PULL_ALLOC(ndr, r->print_processor);
4920 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
4922 r->print_processor = NULL;
4924 ndr->flags = _flags_save_string;
4927 uint32_t _flags_save_string = ndr->flags;
4928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4930 if (_ptr_parameters) {
4931 NDR_PULL_ALLOC(ndr, r->parameters);
4932 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
4934 r->parameters = NULL;
4936 ndr->flags = _flags_save_string;
4939 uint32_t _flags_save_string = ndr->flags;
4940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4942 if (_ptr_driver_name) {
4943 NDR_PULL_ALLOC(ndr, r->driver_name);
4944 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
4946 r->driver_name = NULL;
4948 ndr->flags = _flags_save_string;
4951 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
4952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
4955 NDR_PULL_ALLOC(ndr, r->devmode);
4956 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
4960 ndr->flags = _flags_save_spoolss_DeviceMode;
4963 uint32_t _flags_save_string = ndr->flags;
4964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
4965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4966 if (_ptr_text_status) {
4967 NDR_PULL_ALLOC(ndr, r->text_status);
4968 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
4970 r->text_status = NULL;
4972 ndr->flags = _flags_save_string;
4975 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
4976 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
4977 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
4979 NDR_PULL_ALLOC(ndr, r->secdesc);
4980 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
4984 ndr->flags = _flags_save_spoolss_security_descriptor;
4986 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4988 if (r->priority > 99) {
4989 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
4991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4996 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4998 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5000 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5002 if (ndr_flags & NDR_BUFFERS) {
5004 uint32_t _flags_save_string = ndr->flags;
5005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5006 if (r->printer_name) {
5007 uint32_t _relative_save_offset;
5008 _relative_save_offset = ndr->offset;
5009 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
5010 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5011 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5012 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
5013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5014 if (ndr->offset > ndr->relative_highest_offset) {
5015 ndr->relative_highest_offset = ndr->offset;
5017 ndr->offset = _relative_save_offset;
5019 ndr->flags = _flags_save_string;
5022 uint32_t _flags_save_string = ndr->flags;
5023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5024 if (r->server_name) {
5025 uint32_t _relative_save_offset;
5026 _relative_save_offset = ndr->offset;
5027 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
5028 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5029 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5030 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
5031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5032 if (ndr->offset > ndr->relative_highest_offset) {
5033 ndr->relative_highest_offset = ndr->offset;
5035 ndr->offset = _relative_save_offset;
5037 ndr->flags = _flags_save_string;
5040 uint32_t _flags_save_string = ndr->flags;
5041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5043 uint32_t _relative_save_offset;
5044 _relative_save_offset = ndr->offset;
5045 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
5046 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5047 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5048 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
5049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5050 if (ndr->offset > ndr->relative_highest_offset) {
5051 ndr->relative_highest_offset = ndr->offset;
5053 ndr->offset = _relative_save_offset;
5055 ndr->flags = _flags_save_string;
5058 uint32_t _flags_save_string = ndr->flags;
5059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5060 if (r->document_name) {
5061 uint32_t _relative_save_offset;
5062 _relative_save_offset = ndr->offset;
5063 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
5064 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5065 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5066 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
5067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5068 if (ndr->offset > ndr->relative_highest_offset) {
5069 ndr->relative_highest_offset = ndr->offset;
5071 ndr->offset = _relative_save_offset;
5073 ndr->flags = _flags_save_string;
5076 uint32_t _flags_save_string = ndr->flags;
5077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5078 if (r->notify_name) {
5079 uint32_t _relative_save_offset;
5080 _relative_save_offset = ndr->offset;
5081 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
5082 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5083 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5084 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
5085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5086 if (ndr->offset > ndr->relative_highest_offset) {
5087 ndr->relative_highest_offset = ndr->offset;
5089 ndr->offset = _relative_save_offset;
5091 ndr->flags = _flags_save_string;
5094 uint32_t _flags_save_string = ndr->flags;
5095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5097 uint32_t _relative_save_offset;
5098 _relative_save_offset = ndr->offset;
5099 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
5100 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5101 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5102 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
5103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5104 if (ndr->offset > ndr->relative_highest_offset) {
5105 ndr->relative_highest_offset = ndr->offset;
5107 ndr->offset = _relative_save_offset;
5109 ndr->flags = _flags_save_string;
5112 uint32_t _flags_save_string = ndr->flags;
5113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5114 if (r->print_processor) {
5115 uint32_t _relative_save_offset;
5116 _relative_save_offset = ndr->offset;
5117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
5118 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5119 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5120 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
5121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5122 if (ndr->offset > ndr->relative_highest_offset) {
5123 ndr->relative_highest_offset = ndr->offset;
5125 ndr->offset = _relative_save_offset;
5127 ndr->flags = _flags_save_string;
5130 uint32_t _flags_save_string = ndr->flags;
5131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5132 if (r->parameters) {
5133 uint32_t _relative_save_offset;
5134 _relative_save_offset = ndr->offset;
5135 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
5136 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5137 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5138 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
5139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5140 if (ndr->offset > ndr->relative_highest_offset) {
5141 ndr->relative_highest_offset = ndr->offset;
5143 ndr->offset = _relative_save_offset;
5145 ndr->flags = _flags_save_string;
5148 uint32_t _flags_save_string = ndr->flags;
5149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5150 if (r->driver_name) {
5151 uint32_t _relative_save_offset;
5152 _relative_save_offset = ndr->offset;
5153 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
5154 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5155 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5156 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
5157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5158 if (ndr->offset > ndr->relative_highest_offset) {
5159 ndr->relative_highest_offset = ndr->offset;
5161 ndr->offset = _relative_save_offset;
5163 ndr->flags = _flags_save_string;
5166 uint32_t _flags_save_spoolss_DeviceMode = ndr->flags;
5167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5169 uint32_t _relative_save_offset;
5170 _relative_save_offset = ndr->offset;
5171 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
5172 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
5173 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
5175 struct ndr_pull *_ndr_devmode;
5176 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
5177 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
5178 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
5180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
5181 if (ndr->offset > ndr->relative_highest_offset) {
5182 ndr->relative_highest_offset = ndr->offset;
5184 ndr->offset = _relative_save_offset;
5186 ndr->flags = _flags_save_spoolss_DeviceMode;
5189 uint32_t _flags_save_string = ndr->flags;
5190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
5191 if (r->text_status) {
5192 uint32_t _relative_save_offset;
5193 _relative_save_offset = ndr->offset;
5194 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
5195 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5196 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5197 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
5198 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5199 if (ndr->offset > ndr->relative_highest_offset) {
5200 ndr->relative_highest_offset = ndr->offset;
5202 ndr->offset = _relative_save_offset;
5204 ndr->flags = _flags_save_string;
5207 uint32_t _flags_save_spoolss_security_descriptor = ndr->flags;
5208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_ALIGN4);
5210 uint32_t _relative_save_offset;
5211 _relative_save_offset = ndr->offset;
5212 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
5213 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
5214 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
5216 struct ndr_pull *_ndr_secdesc;
5217 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
5218 NDR_CHECK(ndr_pull_spoolss_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
5219 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
5221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
5222 if (ndr->offset > ndr->relative_highest_offset) {
5223 ndr->relative_highest_offset = ndr->offset;
5225 ndr->offset = _relative_save_offset;
5227 ndr->flags = _flags_save_spoolss_security_descriptor;
5230 return NDR_ERR_SUCCESS;
5233 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
5235 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
5236 if (r == NULL) { ndr_print_null(ndr); return; }
5238 ndr_print_uint32(ndr, "job_id", r->job_id);
5239 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5241 if (r->printer_name) {
5242 ndr_print_string(ndr, "printer_name", r->printer_name);
5245 ndr_print_ptr(ndr, "server_name", r->server_name);
5247 if (r->server_name) {
5248 ndr_print_string(ndr, "server_name", r->server_name);
5251 ndr_print_ptr(ndr, "user_name", r->user_name);
5254 ndr_print_string(ndr, "user_name", r->user_name);
5257 ndr_print_ptr(ndr, "document_name", r->document_name);
5259 if (r->document_name) {
5260 ndr_print_string(ndr, "document_name", r->document_name);
5263 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5265 if (r->notify_name) {
5266 ndr_print_string(ndr, "notify_name", r->notify_name);
5269 ndr_print_ptr(ndr, "data_type", r->data_type);
5272 ndr_print_string(ndr, "data_type", r->data_type);
5275 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5277 if (r->print_processor) {
5278 ndr_print_string(ndr, "print_processor", r->print_processor);
5281 ndr_print_ptr(ndr, "parameters", r->parameters);
5283 if (r->parameters) {
5284 ndr_print_string(ndr, "parameters", r->parameters);
5287 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5289 if (r->driver_name) {
5290 ndr_print_string(ndr, "driver_name", r->driver_name);
5293 ndr_print_ptr(ndr, "devmode", r->devmode);
5296 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
5299 ndr_print_ptr(ndr, "text_status", r->text_status);
5301 if (r->text_status) {
5302 ndr_print_string(ndr, "text_status", r->text_status);
5305 ndr_print_ptr(ndr, "secdesc", r->secdesc);
5308 ndr_print_spoolss_security_descriptor(ndr, "secdesc", r->secdesc);
5311 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5312 ndr_print_uint32(ndr, "priority", r->priority);
5313 ndr_print_uint32(ndr, "position", r->position);
5314 ndr_print_uint32(ndr, "start_time", r->start_time);
5315 ndr_print_uint32(ndr, "until_time", r->until_time);
5316 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5317 ndr_print_uint32(ndr, "size", r->size);
5318 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5319 ndr_print_uint32(ndr, "time", r->time);
5320 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5321 ndr_print_uint32(ndr, "size_high", r->size_high);
5325 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, int flags)
5327 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4);
5330 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
5332 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
5334 uint32_t _flags_save_UNION = ndr->flags;
5335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5336 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5337 if (ndr_flags & NDR_SCALARS) {
5338 uint32_t level = ndr_push_get_switch_value(ndr, r);
5339 NDR_CHECK(ndr_push_union_align(ndr, 5));
5342 NDR_CHECK(ndr_push_align(ndr, 5));
5343 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5344 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5348 NDR_CHECK(ndr_push_align(ndr, 5));
5349 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5350 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5354 NDR_CHECK(ndr_push_align(ndr, 4));
5355 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5356 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5360 NDR_CHECK(ndr_push_align(ndr, 5));
5361 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
5362 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5370 if (ndr_flags & NDR_BUFFERS) {
5371 uint32_t level = ndr_push_get_switch_value(ndr, r);
5372 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
5375 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5379 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5386 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5394 ndr->flags = _flags_save_UNION;
5396 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
5397 return NDR_ERR_SUCCESS;
5400 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
5402 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
5405 uint32_t _flags_save_UNION = ndr->flags;
5406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5407 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5408 if (ndr_flags & NDR_SCALARS) {
5409 level = ndr_pull_get_switch_value(ndr, r);
5410 NDR_CHECK(ndr_pull_union_align(ndr, 5));
5413 NDR_CHECK(ndr_pull_align(ndr, 5));
5414 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5415 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
5419 NDR_CHECK(ndr_pull_align(ndr, 5));
5420 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5421 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
5425 NDR_CHECK(ndr_pull_align(ndr, 4));
5426 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5427 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
5431 NDR_CHECK(ndr_pull_align(ndr, 5));
5432 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
5433 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
5441 if (ndr_flags & NDR_BUFFERS) {
5442 /* The token is not needed after this. */
5443 level = ndr_pull_steal_switch_value(ndr, r);
5444 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
5447 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
5451 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
5458 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
5466 ndr->flags = _flags_save_UNION;
5468 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
5469 return NDR_ERR_SUCCESS;
5472 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
5476 uint32_t _flags_save_UNION = ndr->flags;
5477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
5478 level = ndr_print_get_switch_value(ndr, r);
5479 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
5482 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
5486 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
5490 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
5494 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
5501 ndr->flags = _flags_save_UNION;
5505 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, int flags)
5507 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
5508 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo);
5511 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
5513 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5514 if (ndr_flags & NDR_SCALARS) {
5515 NDR_CHECK(ndr_push_align(ndr, 5));
5516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5518 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5519 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5520 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5521 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5522 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5523 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5528 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5529 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5531 if (ndr_flags & NDR_BUFFERS) {
5532 if (r->printer_name) {
5533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5534 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5536 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5538 if (r->server_name) {
5539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5540 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5541 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5542 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5548 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5550 if (r->document_name) {
5551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5552 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5553 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5554 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5557 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5558 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5559 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5560 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5562 if (r->text_status) {
5563 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5564 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5565 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5566 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5569 return NDR_ERR_SUCCESS;
5572 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
5574 uint32_t _ptr_printer_name;
5575 uint32_t size_printer_name_1 = 0;
5576 uint32_t length_printer_name_1 = 0;
5577 TALLOC_CTX *_mem_save_printer_name_0 = NULL;
5578 uint32_t _ptr_server_name;
5579 uint32_t size_server_name_1 = 0;
5580 uint32_t length_server_name_1 = 0;
5581 TALLOC_CTX *_mem_save_server_name_0 = NULL;
5582 uint32_t _ptr_user_name;
5583 uint32_t size_user_name_1 = 0;
5584 uint32_t length_user_name_1 = 0;
5585 TALLOC_CTX *_mem_save_user_name_0 = NULL;
5586 uint32_t _ptr_document_name;
5587 uint32_t size_document_name_1 = 0;
5588 uint32_t length_document_name_1 = 0;
5589 TALLOC_CTX *_mem_save_document_name_0 = NULL;
5590 uint32_t _ptr_data_type;
5591 uint32_t size_data_type_1 = 0;
5592 uint32_t length_data_type_1 = 0;
5593 TALLOC_CTX *_mem_save_data_type_0 = NULL;
5594 uint32_t _ptr_text_status;
5595 uint32_t size_text_status_1 = 0;
5596 uint32_t length_text_status_1 = 0;
5597 TALLOC_CTX *_mem_save_text_status_0 = NULL;
5598 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5599 if (ndr_flags & NDR_SCALARS) {
5600 NDR_CHECK(ndr_pull_align(ndr, 5));
5601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5602 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5603 if (_ptr_printer_name) {
5604 NDR_PULL_ALLOC(ndr, r->printer_name);
5606 r->printer_name = NULL;
5608 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5609 if (_ptr_server_name) {
5610 NDR_PULL_ALLOC(ndr, r->server_name);
5612 r->server_name = NULL;
5614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5615 if (_ptr_user_name) {
5616 NDR_PULL_ALLOC(ndr, r->user_name);
5618 r->user_name = NULL;
5620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5621 if (_ptr_document_name) {
5622 NDR_PULL_ALLOC(ndr, r->document_name);
5624 r->document_name = NULL;
5626 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5627 if (_ptr_data_type) {
5628 NDR_PULL_ALLOC(ndr, r->data_type);
5630 r->data_type = NULL;
5632 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5633 if (_ptr_text_status) {
5634 NDR_PULL_ALLOC(ndr, r->text_status);
5636 r->text_status = NULL;
5638 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5640 if (r->priority > 99) {
5641 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
5643 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5646 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5647 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
5649 if (ndr_flags & NDR_BUFFERS) {
5650 if (r->printer_name) {
5651 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5652 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5653 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5654 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5655 size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
5656 length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
5657 if (length_printer_name_1 > size_printer_name_1) {
5658 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
5660 NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
5661 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
5662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5664 if (r->server_name) {
5665 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5666 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5667 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5668 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5669 size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
5670 length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
5671 if (length_server_name_1 > size_server_name_1) {
5672 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
5674 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
5675 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
5676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5679 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5680 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5681 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5682 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5683 size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
5684 length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
5685 if (length_user_name_1 > size_user_name_1) {
5686 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
5688 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
5689 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
5690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5692 if (r->document_name) {
5693 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5694 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5695 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5696 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5697 size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
5698 length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
5699 if (length_document_name_1 > size_document_name_1) {
5700 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
5702 NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
5703 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
5704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5707 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5708 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5709 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5710 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5711 size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
5712 length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
5713 if (length_data_type_1 > size_data_type_1) {
5714 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
5716 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
5717 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
5718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5720 if (r->text_status) {
5721 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5722 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5723 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5724 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5725 size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
5726 length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
5727 if (length_text_status_1 > size_text_status_1) {
5728 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
5730 NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
5731 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
5732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5735 return NDR_ERR_SUCCESS;
5738 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
5740 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
5741 if (r == NULL) { ndr_print_null(ndr); return; }
5743 ndr_print_uint32(ndr, "job_id", r->job_id);
5744 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5746 if (r->printer_name) {
5747 ndr_print_string(ndr, "printer_name", r->printer_name);
5750 ndr_print_ptr(ndr, "server_name", r->server_name);
5752 if (r->server_name) {
5753 ndr_print_string(ndr, "server_name", r->server_name);
5756 ndr_print_ptr(ndr, "user_name", r->user_name);
5759 ndr_print_string(ndr, "user_name", r->user_name);
5762 ndr_print_ptr(ndr, "document_name", r->document_name);
5764 if (r->document_name) {
5765 ndr_print_string(ndr, "document_name", r->document_name);
5768 ndr_print_ptr(ndr, "data_type", r->data_type);
5771 ndr_print_string(ndr, "data_type", r->data_type);
5774 ndr_print_ptr(ndr, "text_status", r->text_status);
5776 if (r->text_status) {
5777 ndr_print_string(ndr, "text_status", r->text_status);
5780 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5781 ndr_print_uint32(ndr, "priority", r->priority);
5782 ndr_print_uint32(ndr, "position", r->position);
5783 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5784 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5785 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5789 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
5791 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
5792 if (ndr_flags & NDR_SCALARS) {
5793 NDR_CHECK(ndr_push_align(ndr, 5));
5794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5795 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5796 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5798 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5799 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5800 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5801 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5802 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->_devmode_ptr));
5805 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->_secdesc_ptr));
5807 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5814 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5817 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
5819 if (ndr_flags & NDR_BUFFERS) {
5820 if (r->printer_name) {
5821 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5822 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5823 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5824 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5826 if (r->server_name) {
5827 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5828 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5829 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5830 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5833 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5834 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5835 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5838 if (r->document_name) {
5839 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5840 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5841 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5844 if (r->notify_name) {
5845 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5846 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5847 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5852 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5853 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5854 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5856 if (r->print_processor) {
5857 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5862 if (r->parameters) {
5863 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5866 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5868 if (r->driver_name) {
5869 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5871 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5872 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5874 if (r->_devmode_ptr) {
5875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->_devmode_ptr));
5877 if (r->text_status) {
5878 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5879 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
5880 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5881 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5883 if (r->_secdesc_ptr) {
5884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->_secdesc_ptr));
5887 return NDR_ERR_SUCCESS;
5890 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
5892 uint32_t _ptr_printer_name;
5893 uint32_t size_printer_name_1 = 0;
5894 uint32_t length_printer_name_1 = 0;
5895 TALLOC_CTX *_mem_save_printer_name_0 = NULL;
5896 uint32_t _ptr_server_name;
5897 uint32_t size_server_name_1 = 0;
5898 uint32_t length_server_name_1 = 0;
5899 TALLOC_CTX *_mem_save_server_name_0 = NULL;
5900 uint32_t _ptr_user_name;
5901 uint32_t size_user_name_1 = 0;
5902 uint32_t length_user_name_1 = 0;
5903 TALLOC_CTX *_mem_save_user_name_0 = NULL;
5904 uint32_t _ptr_document_name;
5905 uint32_t size_document_name_1 = 0;
5906 uint32_t length_document_name_1 = 0;
5907 TALLOC_CTX *_mem_save_document_name_0 = NULL;
5908 uint32_t _ptr_notify_name;
5909 uint32_t size_notify_name_1 = 0;
5910 uint32_t length_notify_name_1 = 0;
5911 TALLOC_CTX *_mem_save_notify_name_0 = NULL;
5912 uint32_t _ptr_data_type;
5913 uint32_t size_data_type_1 = 0;
5914 uint32_t length_data_type_1 = 0;
5915 TALLOC_CTX *_mem_save_data_type_0 = NULL;
5916 uint32_t _ptr_print_processor;
5917 uint32_t size_print_processor_1 = 0;
5918 uint32_t length_print_processor_1 = 0;
5919 TALLOC_CTX *_mem_save_print_processor_0 = NULL;
5920 uint32_t _ptr_parameters;
5921 uint32_t size_parameters_1 = 0;
5922 uint32_t length_parameters_1 = 0;
5923 TALLOC_CTX *_mem_save_parameters_0 = NULL;
5924 uint32_t _ptr_driver_name;
5925 uint32_t size_driver_name_1 = 0;
5926 uint32_t length_driver_name_1 = 0;
5927 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
5928 uint32_t _ptr__devmode_ptr;
5929 TALLOC_CTX *_mem_save__devmode_ptr_0 = NULL;
5930 uint32_t _ptr_text_status;
5931 uint32_t size_text_status_1 = 0;
5932 uint32_t length_text_status_1 = 0;
5933 TALLOC_CTX *_mem_save_text_status_0 = NULL;
5934 uint32_t _ptr__secdesc_ptr;
5935 TALLOC_CTX *_mem_save__secdesc_ptr_0 = NULL;
5936 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
5937 if (ndr_flags & NDR_SCALARS) {
5938 NDR_CHECK(ndr_pull_align(ndr, 5));
5939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5941 if (_ptr_printer_name) {
5942 NDR_PULL_ALLOC(ndr, r->printer_name);
5944 r->printer_name = NULL;
5946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5947 if (_ptr_server_name) {
5948 NDR_PULL_ALLOC(ndr, r->server_name);
5950 r->server_name = NULL;
5952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5953 if (_ptr_user_name) {
5954 NDR_PULL_ALLOC(ndr, r->user_name);
5956 r->user_name = NULL;
5958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5959 if (_ptr_document_name) {
5960 NDR_PULL_ALLOC(ndr, r->document_name);
5962 r->document_name = NULL;
5964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5965 if (_ptr_notify_name) {
5966 NDR_PULL_ALLOC(ndr, r->notify_name);
5968 r->notify_name = NULL;
5970 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5971 if (_ptr_data_type) {
5972 NDR_PULL_ALLOC(ndr, r->data_type);
5974 r->data_type = NULL;
5976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5977 if (_ptr_print_processor) {
5978 NDR_PULL_ALLOC(ndr, r->print_processor);
5980 r->print_processor = NULL;
5982 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5983 if (_ptr_parameters) {
5984 NDR_PULL_ALLOC(ndr, r->parameters);
5986 r->parameters = NULL;
5988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5989 if (_ptr_driver_name) {
5990 NDR_PULL_ALLOC(ndr, r->driver_name);
5992 r->driver_name = NULL;
5994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr__devmode_ptr));
5995 if (_ptr__devmode_ptr) {
5996 NDR_PULL_ALLOC(ndr, r->_devmode_ptr);
5998 r->_devmode_ptr = NULL;
6000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
6001 if (_ptr_text_status) {
6002 NDR_PULL_ALLOC(ndr, r->text_status);
6004 r->text_status = NULL;
6006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr__secdesc_ptr));
6007 if (_ptr__secdesc_ptr) {
6008 NDR_PULL_ALLOC(ndr, r->_secdesc_ptr);
6010 r->_secdesc_ptr = NULL;
6012 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
6013 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6014 if (r->priority > 99) {
6015 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
6018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
6019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
6020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6021 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
6022 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
6024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
6025 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6027 if (ndr_flags & NDR_BUFFERS) {
6028 if (r->printer_name) {
6029 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6030 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6031 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6032 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6033 size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
6034 length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
6035 if (length_printer_name_1 > size_printer_name_1) {
6036 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
6038 NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
6039 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
6040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6042 if (r->server_name) {
6043 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6044 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6045 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6046 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6047 size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
6048 length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
6049 if (length_server_name_1 > size_server_name_1) {
6050 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
6052 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
6053 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
6054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6057 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6058 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6059 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6060 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6061 size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
6062 length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
6063 if (length_user_name_1 > size_user_name_1) {
6064 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
6066 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
6067 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
6068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6070 if (r->document_name) {
6071 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6072 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6073 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6074 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6075 size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
6076 length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
6077 if (length_document_name_1 > size_document_name_1) {
6078 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
6080 NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
6081 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
6082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6084 if (r->notify_name) {
6085 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6086 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6087 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6088 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6089 size_notify_name_1 = ndr_get_array_size(ndr, &r->notify_name);
6090 length_notify_name_1 = ndr_get_array_length(ndr, &r->notify_name);
6091 if (length_notify_name_1 > size_notify_name_1) {
6092 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_notify_name_1, length_notify_name_1);
6094 NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
6095 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
6096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6099 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6100 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6101 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6102 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6103 size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
6104 length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
6105 if (length_data_type_1 > size_data_type_1) {
6106 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
6108 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
6109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
6110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6112 if (r->print_processor) {
6113 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6114 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6115 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6116 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6117 size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
6118 length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
6119 if (length_print_processor_1 > size_print_processor_1) {
6120 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
6122 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
6123 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
6124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6126 if (r->parameters) {
6127 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6128 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6129 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6130 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6131 size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
6132 length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
6133 if (length_parameters_1 > size_parameters_1) {
6134 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
6136 NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
6137 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
6138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6140 if (r->driver_name) {
6141 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6142 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6143 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6144 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6145 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
6146 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
6147 if (length_driver_name_1 > size_driver_name_1) {
6148 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
6150 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
6151 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
6152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6154 if (r->_devmode_ptr) {
6155 _mem_save__devmode_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
6156 NDR_PULL_SET_MEM_CTX(ndr, r->_devmode_ptr, 0);
6157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
6158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__devmode_ptr_0, 0);
6160 if (r->text_status) {
6161 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6162 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6163 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6164 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6165 size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
6166 length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
6167 if (length_text_status_1 > size_text_status_1) {
6168 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
6170 NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
6171 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
6172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6174 if (r->_secdesc_ptr) {
6175 _mem_save__secdesc_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
6176 NDR_PULL_SET_MEM_CTX(ndr, r->_secdesc_ptr, 0);
6177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
6178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__secdesc_ptr_0, 0);
6181 return NDR_ERR_SUCCESS;
6184 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
6186 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
6187 if (r == NULL) { ndr_print_null(ndr); return; }
6189 ndr_print_uint32(ndr, "job_id", r->job_id);
6190 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6192 if (r->printer_name) {
6193 ndr_print_string(ndr, "printer_name", r->printer_name);
6196 ndr_print_ptr(ndr, "server_name", r->server_name);
6198 if (r->server_name) {
6199 ndr_print_string(ndr, "server_name", r->server_name);
6202 ndr_print_ptr(ndr, "user_name", r->user_name);
6205 ndr_print_string(ndr, "user_name", r->user_name);
6208 ndr_print_ptr(ndr, "document_name", r->document_name);
6210 if (r->document_name) {
6211 ndr_print_string(ndr, "document_name", r->document_name);
6214 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6216 if (r->notify_name) {
6217 ndr_print_string(ndr, "notify_name", r->notify_name);
6220 ndr_print_ptr(ndr, "data_type", r->data_type);
6223 ndr_print_string(ndr, "data_type", r->data_type);
6226 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6228 if (r->print_processor) {
6229 ndr_print_string(ndr, "print_processor", r->print_processor);
6232 ndr_print_ptr(ndr, "parameters", r->parameters);
6234 if (r->parameters) {
6235 ndr_print_string(ndr, "parameters", r->parameters);
6238 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6240 if (r->driver_name) {
6241 ndr_print_string(ndr, "driver_name", r->driver_name);
6244 ndr_print_ptr(ndr, "_devmode_ptr", r->_devmode_ptr);
6246 if (r->_devmode_ptr) {
6247 ndr_print_uint32(ndr, "_devmode_ptr", *r->_devmode_ptr);
6250 ndr_print_ptr(ndr, "text_status", r->text_status);
6252 if (r->text_status) {
6253 ndr_print_string(ndr, "text_status", r->text_status);
6256 ndr_print_ptr(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6258 if (r->_secdesc_ptr) {
6259 ndr_print_uint32(ndr, "_secdesc_ptr", *r->_secdesc_ptr);
6262 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6263 ndr_print_uint32(ndr, "priority", r->priority);
6264 ndr_print_uint32(ndr, "position", r->position);
6265 ndr_print_uint32(ndr, "start_time", r->start_time);
6266 ndr_print_uint32(ndr, "until_time", r->until_time);
6267 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6268 ndr_print_uint32(ndr, "size", r->size);
6269 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6270 ndr_print_uint32(ndr, "time", r->time);
6271 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6275 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
6277 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6278 if (ndr_flags & NDR_SCALARS) {
6279 NDR_CHECK(ndr_push_align(ndr, 5));
6280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
6281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
6282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
6283 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
6284 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
6285 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
6286 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
6287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6288 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6290 NDR_CHECK(ndr_push_unique_ptr(ndr, r->_devmode_ptr));
6291 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
6292 NDR_CHECK(ndr_push_unique_ptr(ndr, r->_secdesc_ptr));
6293 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
6294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
6296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
6297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
6298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
6299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
6300 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
6302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
6303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
6304 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
6306 if (ndr_flags & NDR_BUFFERS) {
6307 if (r->printer_name) {
6308 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6309 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6310 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
6311 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6313 if (r->server_name) {
6314 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6315 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6316 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
6317 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6320 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6321 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6322 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
6323 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6325 if (r->document_name) {
6326 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6327 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6328 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
6329 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6331 if (r->notify_name) {
6332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6333 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6334 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
6335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6338 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6339 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6340 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
6341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6343 if (r->print_processor) {
6344 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6345 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6346 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6347 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6349 if (r->parameters) {
6350 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6351 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6352 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6353 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6355 if (r->driver_name) {
6356 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6357 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6359 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6361 if (r->_devmode_ptr) {
6362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->_devmode_ptr));
6364 if (r->text_status) {
6365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6366 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
6367 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
6368 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6370 if (r->_secdesc_ptr) {
6371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->_secdesc_ptr));
6374 return NDR_ERR_SUCCESS;
6377 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
6379 uint32_t _ptr_printer_name;
6380 uint32_t size_printer_name_1 = 0;
6381 uint32_t length_printer_name_1 = 0;
6382 TALLOC_CTX *_mem_save_printer_name_0 = NULL;
6383 uint32_t _ptr_server_name;
6384 uint32_t size_server_name_1 = 0;
6385 uint32_t length_server_name_1 = 0;
6386 TALLOC_CTX *_mem_save_server_name_0 = NULL;
6387 uint32_t _ptr_user_name;
6388 uint32_t size_user_name_1 = 0;
6389 uint32_t length_user_name_1 = 0;
6390 TALLOC_CTX *_mem_save_user_name_0 = NULL;
6391 uint32_t _ptr_document_name;
6392 uint32_t size_document_name_1 = 0;
6393 uint32_t length_document_name_1 = 0;
6394 TALLOC_CTX *_mem_save_document_name_0 = NULL;
6395 uint32_t _ptr_notify_name;
6396 uint32_t size_notify_name_1 = 0;
6397 uint32_t length_notify_name_1 = 0;
6398 TALLOC_CTX *_mem_save_notify_name_0 = NULL;
6399 uint32_t _ptr_data_type;
6400 uint32_t size_data_type_1 = 0;
6401 uint32_t length_data_type_1 = 0;
6402 TALLOC_CTX *_mem_save_data_type_0 = NULL;
6403 uint32_t _ptr_print_processor;
6404 uint32_t size_print_processor_1 = 0;
6405 uint32_t length_print_processor_1 = 0;
6406 TALLOC_CTX *_mem_save_print_processor_0 = NULL;
6407 uint32_t _ptr_parameters;
6408 uint32_t size_parameters_1 = 0;
6409 uint32_t length_parameters_1 = 0;
6410 TALLOC_CTX *_mem_save_parameters_0 = NULL;
6411 uint32_t _ptr_driver_name;
6412 uint32_t size_driver_name_1 = 0;
6413 uint32_t length_driver_name_1 = 0;
6414 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
6415 uint32_t _ptr__devmode_ptr;
6416 TALLOC_CTX *_mem_save__devmode_ptr_0 = NULL;
6417 uint32_t _ptr_text_status;
6418 uint32_t size_text_status_1 = 0;
6419 uint32_t length_text_status_1 = 0;
6420 TALLOC_CTX *_mem_save_text_status_0 = NULL;
6421 uint32_t _ptr__secdesc_ptr;
6422 TALLOC_CTX *_mem_save__secdesc_ptr_0 = NULL;
6423 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6424 if (ndr_flags & NDR_SCALARS) {
6425 NDR_CHECK(ndr_pull_align(ndr, 5));
6426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
6427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
6428 if (_ptr_printer_name) {
6429 NDR_PULL_ALLOC(ndr, r->printer_name);
6431 r->printer_name = NULL;
6433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
6434 if (_ptr_server_name) {
6435 NDR_PULL_ALLOC(ndr, r->server_name);
6437 r->server_name = NULL;
6439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
6440 if (_ptr_user_name) {
6441 NDR_PULL_ALLOC(ndr, r->user_name);
6443 r->user_name = NULL;
6445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
6446 if (_ptr_document_name) {
6447 NDR_PULL_ALLOC(ndr, r->document_name);
6449 r->document_name = NULL;
6451 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
6452 if (_ptr_notify_name) {
6453 NDR_PULL_ALLOC(ndr, r->notify_name);
6455 r->notify_name = NULL;
6457 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
6458 if (_ptr_data_type) {
6459 NDR_PULL_ALLOC(ndr, r->data_type);
6461 r->data_type = NULL;
6463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6464 if (_ptr_print_processor) {
6465 NDR_PULL_ALLOC(ndr, r->print_processor);
6467 r->print_processor = NULL;
6469 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6470 if (_ptr_parameters) {
6471 NDR_PULL_ALLOC(ndr, r->parameters);
6473 r->parameters = NULL;
6475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6476 if (_ptr_driver_name) {
6477 NDR_PULL_ALLOC(ndr, r->driver_name);
6479 r->driver_name = NULL;
6481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr__devmode_ptr));
6482 if (_ptr__devmode_ptr) {
6483 NDR_PULL_ALLOC(ndr, r->_devmode_ptr);
6485 r->_devmode_ptr = NULL;
6487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
6488 if (_ptr_text_status) {
6489 NDR_PULL_ALLOC(ndr, r->text_status);
6491 r->text_status = NULL;
6493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr__secdesc_ptr));
6494 if (_ptr__secdesc_ptr) {
6495 NDR_PULL_ALLOC(ndr, r->_secdesc_ptr);
6497 r->_secdesc_ptr = NULL;
6499 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
6500 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6501 if (r->priority > 99) {
6502 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
6504 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
6505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
6506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
6507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
6508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
6509 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
6510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
6511 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
6512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
6513 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
6515 if (ndr_flags & NDR_BUFFERS) {
6516 if (r->printer_name) {
6517 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6518 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
6519 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
6520 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
6521 size_printer_name_1 = ndr_get_array_size(ndr, &r->printer_name);
6522 length_printer_name_1 = ndr_get_array_length(ndr, &r->printer_name);
6523 if (length_printer_name_1 > size_printer_name_1) {
6524 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printer_name_1, length_printer_name_1);
6526 NDR_CHECK(ndr_check_string_terminator(ndr, length_printer_name_1, sizeof(uint16_t)));
6527 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, length_printer_name_1, sizeof(uint16_t), CH_UTF16));
6528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
6530 if (r->server_name) {
6531 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6532 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
6533 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
6534 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
6535 size_server_name_1 = ndr_get_array_size(ndr, &r->server_name);
6536 length_server_name_1 = ndr_get_array_length(ndr, &r->server_name);
6537 if (length_server_name_1 > size_server_name_1) {
6538 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
6540 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
6541 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
6542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
6545 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6546 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
6547 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
6548 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
6549 size_user_name_1 = ndr_get_array_size(ndr, &r->user_name);
6550 length_user_name_1 = ndr_get_array_length(ndr, &r->user_name);
6551 if (length_user_name_1 > size_user_name_1) {
6552 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_name_1, length_user_name_1);
6554 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_name_1, sizeof(uint16_t)));
6555 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, length_user_name_1, sizeof(uint16_t), CH_UTF16));
6556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
6558 if (r->document_name) {
6559 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6560 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
6561 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
6562 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
6563 size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
6564 length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
6565 if (length_document_name_1 > size_document_name_1) {
6566 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
6568 NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
6569 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
6570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
6572 if (r->notify_name) {
6573 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6574 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
6575 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
6576 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
6577 size_notify_name_1 = ndr_get_array_size(ndr, &r->notify_name);
6578 length_notify_name_1 = ndr_get_array_length(ndr, &r->notify_name);
6579 if (length_notify_name_1 > size_notify_name_1) {
6580 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_notify_name_1, length_notify_name_1);
6582 NDR_CHECK(ndr_check_string_terminator(ndr, length_notify_name_1, sizeof(uint16_t)));
6583 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, length_notify_name_1, sizeof(uint16_t), CH_UTF16));
6584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
6587 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
6588 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
6589 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
6590 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
6591 size_data_type_1 = ndr_get_array_size(ndr, &r->data_type);
6592 length_data_type_1 = ndr_get_array_length(ndr, &r->data_type);
6593 if (length_data_type_1 > size_data_type_1) {
6594 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
6596 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
6597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
6598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
6600 if (r->print_processor) {
6601 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6602 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6603 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6604 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6605 size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
6606 length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
6607 if (length_print_processor_1 > size_print_processor_1) {
6608 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
6610 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
6611 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
6612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6614 if (r->parameters) {
6615 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6616 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6617 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6618 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6619 size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
6620 length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
6621 if (length_parameters_1 > size_parameters_1) {
6622 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
6624 NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
6625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
6626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6628 if (r->driver_name) {
6629 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6630 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6631 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6632 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6633 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
6634 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
6635 if (length_driver_name_1 > size_driver_name_1) {
6636 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
6638 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
6639 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
6640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6642 if (r->_devmode_ptr) {
6643 _mem_save__devmode_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
6644 NDR_PULL_SET_MEM_CTX(ndr, r->_devmode_ptr, 0);
6645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
6646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__devmode_ptr_0, 0);
6648 if (r->text_status) {
6649 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
6650 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
6651 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
6652 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
6653 size_text_status_1 = ndr_get_array_size(ndr, &r->text_status);
6654 length_text_status_1 = ndr_get_array_length(ndr, &r->text_status);
6655 if (length_text_status_1 > size_text_status_1) {
6656 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_text_status_1, length_text_status_1);
6658 NDR_CHECK(ndr_check_string_terminator(ndr, length_text_status_1, sizeof(uint16_t)));
6659 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, length_text_status_1, sizeof(uint16_t), CH_UTF16));
6660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
6662 if (r->_secdesc_ptr) {
6663 _mem_save__secdesc_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
6664 NDR_PULL_SET_MEM_CTX(ndr, r->_secdesc_ptr, 0);
6665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
6666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__secdesc_ptr_0, 0);
6669 return NDR_ERR_SUCCESS;
6672 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
6674 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
6675 if (r == NULL) { ndr_print_null(ndr); return; }
6677 ndr_print_uint32(ndr, "job_id", r->job_id);
6678 ndr_print_ptr(ndr, "printer_name", r->printer_name);
6680 if (r->printer_name) {
6681 ndr_print_string(ndr, "printer_name", r->printer_name);
6684 ndr_print_ptr(ndr, "server_name", r->server_name);
6686 if (r->server_name) {
6687 ndr_print_string(ndr, "server_name", r->server_name);
6690 ndr_print_ptr(ndr, "user_name", r->user_name);
6693 ndr_print_string(ndr, "user_name", r->user_name);
6696 ndr_print_ptr(ndr, "document_name", r->document_name);
6698 if (r->document_name) {
6699 ndr_print_string(ndr, "document_name", r->document_name);
6702 ndr_print_ptr(ndr, "notify_name", r->notify_name);
6704 if (r->notify_name) {
6705 ndr_print_string(ndr, "notify_name", r->notify_name);
6708 ndr_print_ptr(ndr, "data_type", r->data_type);
6711 ndr_print_string(ndr, "data_type", r->data_type);
6714 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6716 if (r->print_processor) {
6717 ndr_print_string(ndr, "print_processor", r->print_processor);
6720 ndr_print_ptr(ndr, "parameters", r->parameters);
6722 if (r->parameters) {
6723 ndr_print_string(ndr, "parameters", r->parameters);
6726 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6728 if (r->driver_name) {
6729 ndr_print_string(ndr, "driver_name", r->driver_name);
6732 ndr_print_ptr(ndr, "_devmode_ptr", r->_devmode_ptr);
6734 if (r->_devmode_ptr) {
6735 ndr_print_uint32(ndr, "_devmode_ptr", *r->_devmode_ptr);
6738 ndr_print_ptr(ndr, "text_status", r->text_status);
6740 if (r->text_status) {
6741 ndr_print_string(ndr, "text_status", r->text_status);
6744 ndr_print_ptr(ndr, "_secdesc_ptr", r->_secdesc_ptr);
6746 if (r->_secdesc_ptr) {
6747 ndr_print_uint32(ndr, "_secdesc_ptr", *r->_secdesc_ptr);
6750 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
6751 ndr_print_uint32(ndr, "priority", r->priority);
6752 ndr_print_uint32(ndr, "position", r->position);
6753 ndr_print_uint32(ndr, "start_time", r->start_time);
6754 ndr_print_uint32(ndr, "until_time", r->until_time);
6755 ndr_print_uint32(ndr, "total_pages", r->total_pages);
6756 ndr_print_uint32(ndr, "size", r->size);
6757 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
6758 ndr_print_uint32(ndr, "time", r->time);
6759 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
6760 ndr_print_uint32(ndr, "size_high", r->size_high);
6764 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
6766 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6767 if (ndr_flags & NDR_SCALARS) {
6768 uint32_t level = ndr_push_get_switch_value(ndr, r);
6769 NDR_CHECK(ndr_push_union_align(ndr, 5));
6770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6771 /* ms_union is always aligned to the largest union arm*/
6772 NDR_CHECK(ndr_push_align(ndr, 5));
6775 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6795 if (ndr_flags & NDR_BUFFERS) {
6796 uint32_t level = ndr_push_get_switch_value(ndr, r);
6800 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6806 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6812 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6818 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6827 return NDR_ERR_SUCCESS;
6830 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
6834 TALLOC_CTX *_mem_save_info1_0 = NULL;
6835 uint32_t _ptr_info1;
6836 TALLOC_CTX *_mem_save_info2_0 = NULL;
6837 uint32_t _ptr_info2;
6838 TALLOC_CTX *_mem_save_info3_0 = NULL;
6839 uint32_t _ptr_info3;
6840 TALLOC_CTX *_mem_save_info4_0 = NULL;
6841 uint32_t _ptr_info4;
6842 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
6843 if (ndr_flags & NDR_SCALARS) {
6844 level = ndr_pull_get_switch_value(ndr, r);
6845 NDR_CHECK(ndr_pull_union_align(ndr, 5));
6846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6847 if (_level != level) {
6848 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
6850 /* ms_union is always aligned to the largest union arm*/
6851 NDR_CHECK(ndr_pull_align(ndr, 5));
6854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6856 NDR_PULL_ALLOC(ndr, r->info1);
6863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6865 NDR_PULL_ALLOC(ndr, r->info2);
6872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6874 NDR_PULL_ALLOC(ndr, r->info3);
6881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6883 NDR_PULL_ALLOC(ndr, r->info4);
6894 if (ndr_flags & NDR_BUFFERS) {
6895 /* The token is not needed after this. */
6896 level = ndr_pull_steal_switch_value(ndr, r);
6900 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6901 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6902 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6909 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6910 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6911 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6918 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6919 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6920 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
6921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6927 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6928 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6929 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6939 return NDR_ERR_SUCCESS;
6942 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
6945 level = ndr_print_get_switch_value(ndr, r);
6946 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
6949 ndr_print_ptr(ndr, "info1", r->info1);
6952 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
6958 ndr_print_ptr(ndr, "info2", r->info2);
6961 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
6967 ndr_print_ptr(ndr, "info3", r->info3);
6970 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
6976 ndr_print_ptr(ndr, "info4", r->info4);
6979 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
6990 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
6992 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
6993 if (ndr_flags & NDR_SCALARS) {
6994 NDR_CHECK(ndr_push_align(ndr, 5));
6995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
6996 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
6997 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
6998 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7000 if (ndr_flags & NDR_BUFFERS) {
7001 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
7003 return NDR_ERR_SUCCESS;
7006 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
7008 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7009 if (ndr_flags & NDR_SCALARS) {
7010 NDR_CHECK(ndr_pull_align(ndr, 5));
7011 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7012 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7013 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
7014 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7016 if (ndr_flags & NDR_BUFFERS) {
7017 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
7019 return NDR_ERR_SUCCESS;
7022 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
7024 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
7025 if (r == NULL) { ndr_print_null(ndr); return; }
7027 ndr_print_uint32(ndr, "level", r->level);
7028 ndr_print_set_switch_value(ndr, &r->info, r->level);
7029 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
7033 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
7035 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
7036 return NDR_ERR_SUCCESS;
7039 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
7042 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
7044 return NDR_ERR_SUCCESS;
7047 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
7049 const char *val = NULL;
7052 case SPOOLSS_JOB_CONTROL_NOOP: val = "SPOOLSS_JOB_CONTROL_NOOP"; break;
7053 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
7054 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
7055 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
7056 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
7057 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
7058 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
7059 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
7060 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
7061 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
7063 ndr_print_enum(ndr, name, "ENUM", val, r);
7066 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
7068 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
7069 return NDR_ERR_SUCCESS;
7072 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
7075 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
7077 return NDR_ERR_SUCCESS;
7080 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
7082 const char *val = NULL;
7085 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
7086 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
7087 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
7088 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
7089 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
7091 ndr_print_enum(ndr, name, "ENUM", val, r);
7094 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
7096 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7097 if (ndr_flags & NDR_SCALARS) {
7098 NDR_CHECK(ndr_push_align(ndr, 5));
7099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
7102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
7103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
7104 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
7105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
7106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
7107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
7108 NDR_CHECK(ndr_push_spoolss_Build(ndr, NDR_SCALARS, r->free_build));
7109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
7110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
7111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
7112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
7113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
7114 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
7115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
7116 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
7117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
7118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
7119 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
7120 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
7122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
7123 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
7124 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
7125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
7126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
7127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
7128 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7130 if (ndr_flags & NDR_BUFFERS) {
7131 if (r->servername) {
7132 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7133 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7134 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7135 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7137 if (r->printername) {
7138 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7139 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7140 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7141 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7144 return NDR_ERR_SUCCESS;
7147 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
7149 uint32_t _ptr_servername;
7150 uint32_t size_servername_1 = 0;
7151 uint32_t length_servername_1 = 0;
7152 TALLOC_CTX *_mem_save_servername_0 = NULL;
7153 uint32_t _ptr_printername;
7154 uint32_t size_printername_1 = 0;
7155 uint32_t length_printername_1 = 0;
7156 TALLOC_CTX *_mem_save_printername_0 = NULL;
7157 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7158 if (ndr_flags & NDR_SCALARS) {
7159 NDR_CHECK(ndr_pull_align(ndr, 5));
7160 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7161 if (_ptr_servername) {
7162 NDR_PULL_ALLOC(ndr, r->servername);
7164 r->servername = NULL;
7166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7167 if (_ptr_printername) {
7168 NDR_PULL_ALLOC(ndr, r->printername);
7170 r->printername = NULL;
7172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
7174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
7175 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
7176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
7177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
7178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
7179 NDR_CHECK(ndr_pull_spoolss_Build(ndr, NDR_SCALARS, &r->free_build));
7180 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
7181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
7182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
7183 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
7184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
7185 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
7186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
7187 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
7188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
7189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
7190 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
7191 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
7193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
7194 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
7195 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
7196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
7197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
7198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
7199 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7201 if (ndr_flags & NDR_BUFFERS) {
7202 if (r->servername) {
7203 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7204 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7205 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7206 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7207 size_servername_1 = ndr_get_array_size(ndr, &r->servername);
7208 length_servername_1 = ndr_get_array_length(ndr, &r->servername);
7209 if (length_servername_1 > size_servername_1) {
7210 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
7212 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
7213 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
7214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7216 if (r->printername) {
7217 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7218 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7219 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7220 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7221 size_printername_1 = ndr_get_array_size(ndr, &r->printername);
7222 length_printername_1 = ndr_get_array_length(ndr, &r->printername);
7223 if (length_printername_1 > size_printername_1) {
7224 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
7226 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
7227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
7228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7231 return NDR_ERR_SUCCESS;
7234 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
7236 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
7237 if (r == NULL) { ndr_print_null(ndr); return; }
7239 ndr_print_ptr(ndr, "servername", r->servername);
7241 if (r->servername) {
7242 ndr_print_string(ndr, "servername", r->servername);
7245 ndr_print_ptr(ndr, "printername", r->printername);
7247 if (r->printername) {
7248 ndr_print_string(ndr, "printername", r->printername);
7251 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7252 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
7253 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
7254 ndr_print_spoolss_Time(ndr, "time", &r->time);
7255 ndr_print_uint32(ndr, "global_counter", r->global_counter);
7256 ndr_print_uint32(ndr, "total_pages", r->total_pages);
7257 ndr_print_uint32(ndr, "version", r->version);
7258 ndr_print_spoolss_Build(ndr, "free_build", r->free_build);
7259 ndr_print_uint32(ndr, "spooling", r->spooling);
7260 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
7261 ndr_print_uint32(ndr, "session_counter", r->session_counter);
7262 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
7263 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
7264 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
7265 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
7266 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
7267 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
7268 ndr_print_uint32(ndr, "change_id", r->change_id);
7269 ndr_print_WERROR(ndr, "last_error", r->last_error);
7270 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7271 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
7272 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
7273 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
7274 ndr_print_uint16(ndr, "processor_level", r->processor_level);
7275 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
7276 ndr_print_uint32(ndr, "reserved2", r->reserved2);
7277 ndr_print_uint32(ndr, "reserved3", r->reserved3);
7281 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
7283 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7284 if (ndr_flags & NDR_SCALARS) {
7285 NDR_CHECK(ndr_push_align(ndr, 5));
7286 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->flags));
7287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
7288 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
7289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
7290 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7292 if (ndr_flags & NDR_BUFFERS) {
7293 if (r->description) {
7294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
7295 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
7297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7300 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
7301 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7302 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
7303 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7306 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7307 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7308 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7309 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7312 return NDR_ERR_SUCCESS;
7315 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
7317 uint32_t _ptr_description;
7318 uint32_t size_description_1 = 0;
7319 uint32_t length_description_1 = 0;
7320 TALLOC_CTX *_mem_save_description_0 = NULL;
7322 uint32_t size_name_1 = 0;
7323 uint32_t length_name_1 = 0;
7324 TALLOC_CTX *_mem_save_name_0 = NULL;
7325 uint32_t _ptr_comment;
7326 uint32_t size_comment_1 = 0;
7327 uint32_t length_comment_1 = 0;
7328 TALLOC_CTX *_mem_save_comment_0 = NULL;
7329 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7330 if (ndr_flags & NDR_SCALARS) {
7331 NDR_CHECK(ndr_pull_align(ndr, 5));
7332 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->flags));
7333 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
7334 if (_ptr_description) {
7335 NDR_PULL_ALLOC(ndr, r->description);
7337 r->description = NULL;
7339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
7341 NDR_PULL_ALLOC(ndr, r->name);
7345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7347 NDR_PULL_ALLOC(ndr, r->comment);
7351 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7353 if (ndr_flags & NDR_BUFFERS) {
7354 if (r->description) {
7355 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
7356 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
7357 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
7358 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
7359 size_description_1 = ndr_get_array_size(ndr, &r->description);
7360 length_description_1 = ndr_get_array_length(ndr, &r->description);
7361 if (length_description_1 > size_description_1) {
7362 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_description_1, length_description_1);
7364 NDR_CHECK(ndr_check_string_terminator(ndr, length_description_1, sizeof(uint16_t)));
7365 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, length_description_1, sizeof(uint16_t), CH_UTF16));
7366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
7369 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7370 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
7371 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
7372 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
7373 size_name_1 = ndr_get_array_size(ndr, &r->name);
7374 length_name_1 = ndr_get_array_length(ndr, &r->name);
7375 if (length_name_1 > size_name_1) {
7376 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_name_1, length_name_1);
7378 NDR_CHECK(ndr_check_string_terminator(ndr, length_name_1, sizeof(uint16_t)));
7379 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, length_name_1, sizeof(uint16_t), CH_UTF16));
7380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
7383 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7384 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7385 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7386 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7387 size_comment_1 = ndr_get_array_size(ndr, &r->comment);
7388 length_comment_1 = ndr_get_array_length(ndr, &r->comment);
7389 if (length_comment_1 > size_comment_1) {
7390 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1);
7392 NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
7393 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
7394 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7397 return NDR_ERR_SUCCESS;
7400 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
7402 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
7403 if (r == NULL) { ndr_print_null(ndr); return; }
7405 ndr_print_spoolss_PrinterAttributes(ndr, "flags", r->flags);
7406 ndr_print_ptr(ndr, "description", r->description);
7408 if (r->description) {
7409 ndr_print_string(ndr, "description", r->description);
7412 ndr_print_ptr(ndr, "name", r->name);
7415 ndr_print_string(ndr, "name", r->name);
7418 ndr_print_ptr(ndr, "comment", r->comment);
7421 ndr_print_string(ndr, "comment", r->comment);
7427 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
7429 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7430 if (ndr_flags & NDR_SCALARS) {
7431 NDR_CHECK(ndr_push_align(ndr, 5));
7432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
7433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
7434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
7435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
7436 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
7437 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
7438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
7439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode_ptr));
7440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
7441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
7442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
7443 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
7444 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc_ptr));
7445 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
7446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
7447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
7448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
7449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
7450 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
7451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
7452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
7453 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7455 if (ndr_flags & NDR_BUFFERS) {
7456 if (r->servername) {
7457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7458 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7459 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
7460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7462 if (r->printername) {
7463 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7464 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7465 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
7466 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7469 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7470 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7471 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
7472 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7475 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7476 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7477 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
7478 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7480 if (r->drivername) {
7481 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7482 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7483 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
7484 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7489 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
7490 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
7496 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7498 if (r->devmode_ptr) {
7499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->devmode_ptr));
7502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
7505 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7507 if (r->printprocessor) {
7508 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
7511 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7514 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7515 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7516 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
7517 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7519 if (r->parameters) {
7520 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7521 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
7522 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
7523 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7525 if (r->secdesc_ptr) {
7526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->secdesc_ptr));
7529 return NDR_ERR_SUCCESS;
7532 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
7534 uint32_t _ptr_servername;
7535 uint32_t size_servername_1 = 0;
7536 uint32_t length_servername_1 = 0;
7537 TALLOC_CTX *_mem_save_servername_0 = NULL;
7538 uint32_t _ptr_printername;
7539 uint32_t size_printername_1 = 0;
7540 uint32_t length_printername_1 = 0;
7541 TALLOC_CTX *_mem_save_printername_0 = NULL;
7542 uint32_t _ptr_sharename;
7543 uint32_t size_sharename_1 = 0;
7544 uint32_t length_sharename_1 = 0;
7545 TALLOC_CTX *_mem_save_sharename_0 = NULL;
7546 uint32_t _ptr_portname;
7547 uint32_t size_portname_1 = 0;
7548 uint32_t length_portname_1 = 0;
7549 TALLOC_CTX *_mem_save_portname_0 = NULL;
7550 uint32_t _ptr_drivername;
7551 uint32_t size_drivername_1 = 0;
7552 uint32_t length_drivername_1 = 0;
7553 TALLOC_CTX *_mem_save_drivername_0 = NULL;
7554 uint32_t _ptr_comment;
7555 uint32_t size_comment_1 = 0;
7556 uint32_t length_comment_1 = 0;
7557 TALLOC_CTX *_mem_save_comment_0 = NULL;
7558 uint32_t _ptr_location;
7559 uint32_t size_location_1 = 0;
7560 uint32_t length_location_1 = 0;
7561 TALLOC_CTX *_mem_save_location_0 = NULL;
7562 uint32_t _ptr_devmode_ptr;
7563 TALLOC_CTX *_mem_save_devmode_ptr_0 = NULL;
7564 uint32_t _ptr_sepfile;
7565 uint32_t size_sepfile_1 = 0;
7566 uint32_t length_sepfile_1 = 0;
7567 TALLOC_CTX *_mem_save_sepfile_0 = NULL;
7568 uint32_t _ptr_printprocessor;
7569 uint32_t size_printprocessor_1 = 0;
7570 uint32_t length_printprocessor_1 = 0;
7571 TALLOC_CTX *_mem_save_printprocessor_0 = NULL;
7572 uint32_t _ptr_datatype;
7573 uint32_t size_datatype_1 = 0;
7574 uint32_t length_datatype_1 = 0;
7575 TALLOC_CTX *_mem_save_datatype_0 = NULL;
7576 uint32_t _ptr_parameters;
7577 uint32_t size_parameters_1 = 0;
7578 uint32_t length_parameters_1 = 0;
7579 TALLOC_CTX *_mem_save_parameters_0 = NULL;
7580 uint32_t _ptr_secdesc_ptr;
7581 TALLOC_CTX *_mem_save_secdesc_ptr_0 = NULL;
7582 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7583 if (ndr_flags & NDR_SCALARS) {
7584 NDR_CHECK(ndr_pull_align(ndr, 5));
7585 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
7586 if (_ptr_servername) {
7587 NDR_PULL_ALLOC(ndr, r->servername);
7589 r->servername = NULL;
7591 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
7592 if (_ptr_printername) {
7593 NDR_PULL_ALLOC(ndr, r->printername);
7595 r->printername = NULL;
7597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
7598 if (_ptr_sharename) {
7599 NDR_PULL_ALLOC(ndr, r->sharename);
7601 r->sharename = NULL;
7603 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
7604 if (_ptr_portname) {
7605 NDR_PULL_ALLOC(ndr, r->portname);
7609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
7610 if (_ptr_drivername) {
7611 NDR_PULL_ALLOC(ndr, r->drivername);
7613 r->drivername = NULL;
7615 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
7617 NDR_PULL_ALLOC(ndr, r->comment);
7621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
7622 if (_ptr_location) {
7623 NDR_PULL_ALLOC(ndr, r->location);
7627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode_ptr));
7628 if (_ptr_devmode_ptr) {
7629 NDR_PULL_ALLOC(ndr, r->devmode_ptr);
7631 r->devmode_ptr = NULL;
7633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
7635 NDR_PULL_ALLOC(ndr, r->sepfile);
7639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
7640 if (_ptr_printprocessor) {
7641 NDR_PULL_ALLOC(ndr, r->printprocessor);
7643 r->printprocessor = NULL;
7645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
7646 if (_ptr_datatype) {
7647 NDR_PULL_ALLOC(ndr, r->datatype);
7651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
7652 if (_ptr_parameters) {
7653 NDR_PULL_ALLOC(ndr, r->parameters);
7655 r->parameters = NULL;
7657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc_ptr));
7658 if (_ptr_secdesc_ptr) {
7659 NDR_PULL_ALLOC(ndr, r->secdesc_ptr);
7661 r->secdesc_ptr = NULL;
7663 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
7664 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
7665 if (r->priority > 99) {
7666 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
7668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
7669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
7670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
7671 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
7672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
7673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
7674 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7676 if (ndr_flags & NDR_BUFFERS) {
7677 if (r->servername) {
7678 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7679 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
7680 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
7681 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
7682 size_servername_1 = ndr_get_array_size(ndr, &r->servername);
7683 length_servername_1 = ndr_get_array_length(ndr, &r->servername);
7684 if (length_servername_1 > size_servername_1) {
7685 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
7687 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
7688 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
7689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
7691 if (r->printername) {
7692 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7693 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
7694 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
7695 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
7696 size_printername_1 = ndr_get_array_size(ndr, &r->printername);
7697 length_printername_1 = ndr_get_array_length(ndr, &r->printername);
7698 if (length_printername_1 > size_printername_1) {
7699 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
7701 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
7702 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
7703 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
7706 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
7707 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
7708 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
7709 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
7710 size_sharename_1 = ndr_get_array_size(ndr, &r->sharename);
7711 length_sharename_1 = ndr_get_array_length(ndr, &r->sharename);
7712 if (length_sharename_1 > size_sharename_1) {
7713 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sharename_1, length_sharename_1);
7715 NDR_CHECK(ndr_check_string_terminator(ndr, length_sharename_1, sizeof(uint16_t)));
7716 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, length_sharename_1, sizeof(uint16_t), CH_UTF16));
7717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
7720 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
7721 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
7722 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
7723 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
7724 size_portname_1 = ndr_get_array_size(ndr, &r->portname);
7725 length_portname_1 = ndr_get_array_length(ndr, &r->portname);
7726 if (length_portname_1 > size_portname_1) {
7727 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_portname_1, length_portname_1);
7729 NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
7730 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
7731 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
7733 if (r->drivername) {
7734 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
7735 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
7736 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
7737 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
7738 size_drivername_1 = ndr_get_array_size(ndr, &r->drivername);
7739 length_drivername_1 = ndr_get_array_length(ndr, &r->drivername);
7740 if (length_drivername_1 > size_drivername_1) {
7741 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_drivername_1, length_drivername_1);
7743 NDR_CHECK(ndr_check_string_terminator(ndr, length_drivername_1, sizeof(uint16_t)));
7744 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, length_drivername_1, sizeof(uint16_t), CH_UTF16));
7745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
7748 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
7749 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
7750 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
7751 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
7752 size_comment_1 = ndr_get_array_size(ndr, &r->comment);
7753 length_comment_1 = ndr_get_array_length(ndr, &r->comment);
7754 if (length_comment_1 > size_comment_1) {
7755 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_comment_1, length_comment_1);
7757 NDR_CHECK(ndr_check_string_terminator(ndr, length_comment_1, sizeof(uint16_t)));
7758 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, length_comment_1, sizeof(uint16_t), CH_UTF16));
7759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
7762 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
7763 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
7764 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
7765 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
7766 size_location_1 = ndr_get_array_size(ndr, &r->location);
7767 length_location_1 = ndr_get_array_length(ndr, &r->location);
7768 if (length_location_1 > size_location_1) {
7769 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_location_1, length_location_1);
7771 NDR_CHECK(ndr_check_string_terminator(ndr, length_location_1, sizeof(uint16_t)));
7772 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, length_location_1, sizeof(uint16_t), CH_UTF16));
7773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
7775 if (r->devmode_ptr) {
7776 _mem_save_devmode_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
7777 NDR_PULL_SET_MEM_CTX(ndr, r->devmode_ptr, 0);
7778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
7779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ptr_0, 0);
7782 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
7783 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
7784 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
7785 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
7786 size_sepfile_1 = ndr_get_array_size(ndr, &r->sepfile);
7787 length_sepfile_1 = ndr_get_array_length(ndr, &r->sepfile);
7788 if (length_sepfile_1 > size_sepfile_1) {
7789 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sepfile_1, length_sepfile_1);
7791 NDR_CHECK(ndr_check_string_terminator(ndr, length_sepfile_1, sizeof(uint16_t)));
7792 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, length_sepfile_1, sizeof(uint16_t), CH_UTF16));
7793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
7795 if (r->printprocessor) {
7796 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
7797 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
7798 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
7799 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
7800 size_printprocessor_1 = ndr_get_array_size(ndr, &r->printprocessor);
7801 length_printprocessor_1 = ndr_get_array_length(ndr, &r->printprocessor);
7802 if (length_printprocessor_1 > size_printprocessor_1) {
7803 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printprocessor_1, length_printprocessor_1);
7805 NDR_CHECK(ndr_check_string_terminator(ndr, length_printprocessor_1, sizeof(uint16_t)));
7806 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, length_printprocessor_1, sizeof(uint16_t), CH_UTF16));
7807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
7810 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7811 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
7812 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
7813 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
7814 size_datatype_1 = ndr_get_array_size(ndr, &r->datatype);
7815 length_datatype_1 = ndr_get_array_length(ndr, &r->datatype);
7816 if (length_datatype_1 > size_datatype_1) {
7817 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
7819 NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
7820 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
7821 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
7823 if (r->parameters) {
7824 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
7825 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
7826 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
7827 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
7828 size_parameters_1 = ndr_get_array_size(ndr, &r->parameters);
7829 length_parameters_1 = ndr_get_array_length(ndr, &r->parameters);
7830 if (length_parameters_1 > size_parameters_1) {
7831 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_parameters_1, length_parameters_1);
7833 NDR_CHECK(ndr_check_string_terminator(ndr, length_parameters_1, sizeof(uint16_t)));
7834 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, length_parameters_1, sizeof(uint16_t), CH_UTF16));
7835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
7837 if (r->secdesc_ptr) {
7838 _mem_save_secdesc_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
7839 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc_ptr, 0);
7840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->secdesc_ptr));
7841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ptr_0, 0);
7844 return NDR_ERR_SUCCESS;
7847 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
7849 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
7850 if (r == NULL) { ndr_print_null(ndr); return; }
7852 ndr_print_ptr(ndr, "servername", r->servername);
7854 if (r->servername) {
7855 ndr_print_string(ndr, "servername", r->servername);
7858 ndr_print_ptr(ndr, "printername", r->printername);
7860 if (r->printername) {
7861 ndr_print_string(ndr, "printername", r->printername);
7864 ndr_print_ptr(ndr, "sharename", r->sharename);
7867 ndr_print_string(ndr, "sharename", r->sharename);
7870 ndr_print_ptr(ndr, "portname", r->portname);
7873 ndr_print_string(ndr, "portname", r->portname);
7876 ndr_print_ptr(ndr, "drivername", r->drivername);
7878 if (r->drivername) {
7879 ndr_print_string(ndr, "drivername", r->drivername);
7882 ndr_print_ptr(ndr, "comment", r->comment);
7885 ndr_print_string(ndr, "comment", r->comment);
7888 ndr_print_ptr(ndr, "location", r->location);
7891 ndr_print_string(ndr, "location", r->location);
7894 ndr_print_ptr(ndr, "devmode_ptr", r->devmode_ptr);
7896 if (r->devmode_ptr) {
7897 ndr_print_uint32(ndr, "devmode_ptr", *r->devmode_ptr);
7900 ndr_print_ptr(ndr, "sepfile", r->sepfile);
7903 ndr_print_string(ndr, "sepfile", r->sepfile);
7906 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
7908 if (r->printprocessor) {
7909 ndr_print_string(ndr, "printprocessor", r->printprocessor);
7912 ndr_print_ptr(ndr, "datatype", r->datatype);
7915 ndr_print_string(ndr, "datatype", r->datatype);
7918 ndr_print_ptr(ndr, "parameters", r->parameters);
7920 if (r->parameters) {
7921 ndr_print_string(ndr, "parameters", r->parameters);
7924 ndr_print_ptr(ndr, "secdesc_ptr", r->secdesc_ptr);
7926 if (r->secdesc_ptr) {
7927 ndr_print_uint32(ndr, "secdesc_ptr", *r->secdesc_ptr);
7930 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
7931 ndr_print_uint32(ndr, "priority", r->priority);
7932 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
7933 ndr_print_uint32(ndr, "starttime", r->starttime);
7934 ndr_print_uint32(ndr, "untiltime", r->untiltime);
7935 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
7936 ndr_print_uint32(ndr, "cjobs", r->cjobs);
7937 ndr_print_uint32(ndr, "averageppm", r->averageppm);
7941 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
7943 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
7944 if (ndr_flags & NDR_SCALARS) {
7945 NDR_CHECK(ndr_push_align(ndr, 5));
7946 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sec_desc_ptr));
7947 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
7949 if (ndr_flags & NDR_BUFFERS) {
7950 if (r->sec_desc_ptr) {
7951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->sec_desc_ptr));
7954 return NDR_ERR_SUCCESS;
7957 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
7959 uint32_t _ptr_sec_desc_ptr;
7960 TALLOC_CTX *_mem_save_sec_desc_ptr_0 = NULL;
7961 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
7962 if (ndr_flags & NDR_SCALARS) {
7963 NDR_CHECK(ndr_pull_align(ndr, 5));
7964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sec_desc_ptr));
7965 if (_ptr_sec_desc_ptr) {
7966 NDR_PULL_ALLOC(ndr, r->sec_desc_ptr);
7968 r->sec_desc_ptr = NULL;
7970 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
7972 if (ndr_flags & NDR_BUFFERS) {
7973 if (r->sec_desc_ptr) {
7974 _mem_save_sec_desc_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
7975 NDR_PULL_SET_MEM_CTX(ndr, r->sec_desc_ptr, 0);
7976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
7977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sec_desc_ptr_0, 0);
7980 return NDR_ERR_SUCCESS;
7983 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
7985 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
7986 if (r == NULL) { ndr_print_null(ndr); return; }
7988 ndr_print_ptr(ndr, "sec_desc_ptr", r->sec_desc_ptr);
7990 if (r->sec_desc_ptr) {
7991 ndr_print_uint32(ndr, "sec_desc_ptr", *r->sec_desc_ptr);
7997 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
7999 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8000 if (ndr_flags & NDR_SCALARS) {
8001 NDR_CHECK(ndr_push_align(ndr, 5));
8002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
8003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
8004 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
8005 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8007 if (ndr_flags & NDR_BUFFERS) {
8008 if (r->printername) {
8009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
8010 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8011 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
8012 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8014 if (r->servername) {
8015 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
8016 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8017 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
8018 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8021 return NDR_ERR_SUCCESS;
8024 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
8026 uint32_t _ptr_printername;
8027 uint32_t size_printername_1 = 0;
8028 uint32_t length_printername_1 = 0;
8029 TALLOC_CTX *_mem_save_printername_0 = NULL;
8030 uint32_t _ptr_servername;
8031 uint32_t size_servername_1 = 0;
8032 uint32_t length_servername_1 = 0;
8033 TALLOC_CTX *_mem_save_servername_0 = NULL;
8034 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8035 if (ndr_flags & NDR_SCALARS) {
8036 NDR_CHECK(ndr_pull_align(ndr, 5));
8037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
8038 if (_ptr_printername) {
8039 NDR_PULL_ALLOC(ndr, r->printername);
8041 r->printername = NULL;
8043 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
8044 if (_ptr_servername) {
8045 NDR_PULL_ALLOC(ndr, r->servername);
8047 r->servername = NULL;
8049 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
8050 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8052 if (ndr_flags & NDR_BUFFERS) {
8053 if (r->printername) {
8054 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8055 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
8056 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
8057 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
8058 size_printername_1 = ndr_get_array_size(ndr, &r->printername);
8059 length_printername_1 = ndr_get_array_length(ndr, &r->printername);
8060 if (length_printername_1 > size_printername_1) {
8061 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
8063 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
8064 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
8065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
8067 if (r->servername) {
8068 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8069 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
8070 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
8071 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
8072 size_servername_1 = ndr_get_array_size(ndr, &r->servername);
8073 length_servername_1 = ndr_get_array_length(ndr, &r->servername);
8074 if (length_servername_1 > size_servername_1) {
8075 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
8077 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
8078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
8079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
8082 return NDR_ERR_SUCCESS;
8085 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
8087 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
8088 if (r == NULL) { ndr_print_null(ndr); return; }
8090 ndr_print_ptr(ndr, "printername", r->printername);
8092 if (r->printername) {
8093 ndr_print_string(ndr, "printername", r->printername);
8096 ndr_print_ptr(ndr, "servername", r->servername);
8098 if (r->servername) {
8099 ndr_print_string(ndr, "servername", r->servername);
8102 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
8106 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
8108 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8109 if (ndr_flags & NDR_SCALARS) {
8110 NDR_CHECK(ndr_push_align(ndr, 5));
8111 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
8112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
8113 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
8114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
8115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
8116 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8118 if (ndr_flags & NDR_BUFFERS) {
8119 if (r->printername) {
8120 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
8121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8122 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
8123 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8126 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
8127 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8128 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
8129 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8132 return NDR_ERR_SUCCESS;
8135 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
8137 uint32_t _ptr_printername;
8138 uint32_t size_printername_1 = 0;
8139 uint32_t length_printername_1 = 0;
8140 TALLOC_CTX *_mem_save_printername_0 = NULL;
8141 uint32_t _ptr_portname;
8142 uint32_t size_portname_1 = 0;
8143 uint32_t length_portname_1 = 0;
8144 TALLOC_CTX *_mem_save_portname_0 = NULL;
8145 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8146 if (ndr_flags & NDR_SCALARS) {
8147 NDR_CHECK(ndr_pull_align(ndr, 5));
8148 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
8149 if (_ptr_printername) {
8150 NDR_PULL_ALLOC(ndr, r->printername);
8152 r->printername = NULL;
8154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
8155 if (_ptr_portname) {
8156 NDR_PULL_ALLOC(ndr, r->portname);
8160 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
8161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
8162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
8163 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8165 if (ndr_flags & NDR_BUFFERS) {
8166 if (r->printername) {
8167 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
8168 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
8169 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
8170 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
8171 size_printername_1 = ndr_get_array_size(ndr, &r->printername);
8172 length_printername_1 = ndr_get_array_length(ndr, &r->printername);
8173 if (length_printername_1 > size_printername_1) {
8174 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
8176 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
8177 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
8178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
8181 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
8182 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
8183 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
8184 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
8185 size_portname_1 = ndr_get_array_size(ndr, &r->portname);
8186 length_portname_1 = ndr_get_array_length(ndr, &r->portname);
8187 if (length_portname_1 > size_portname_1) {
8188 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_portname_1, length_portname_1);
8190 NDR_CHECK(ndr_check_string_terminator(ndr, length_portname_1, sizeof(uint16_t)));
8191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, length_portname_1, sizeof(uint16_t), CH_UTF16));
8192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
8195 return NDR_ERR_SUCCESS;
8198 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
8200 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
8201 if (r == NULL) { ndr_print_null(ndr); return; }
8203 ndr_print_ptr(ndr, "printername", r->printername);
8205 if (r->printername) {
8206 ndr_print_string(ndr, "printername", r->printername);
8209 ndr_print_ptr(ndr, "portname", r->portname);
8212 ndr_print_string(ndr, "portname", r->portname);
8215 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
8216 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
8217 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
8221 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
8223 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8224 if (ndr_flags & NDR_SCALARS) {
8225 NDR_CHECK(ndr_push_align(ndr, 4));
8226 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
8227 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8229 if (ndr_flags & NDR_BUFFERS) {
8231 return NDR_ERR_SUCCESS;
8234 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
8236 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8237 if (ndr_flags & NDR_SCALARS) {
8238 NDR_CHECK(ndr_pull_align(ndr, 4));
8239 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
8240 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8242 if (ndr_flags & NDR_BUFFERS) {
8244 return NDR_ERR_SUCCESS;
8247 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
8249 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
8250 if (r == NULL) { ndr_print_null(ndr); return; }
8252 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
8256 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
8258 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8259 if (ndr_flags & NDR_SCALARS) {
8260 NDR_CHECK(ndr_push_align(ndr, 5));
8261 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
8262 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
8263 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8265 if (ndr_flags & NDR_BUFFERS) {
8267 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
8268 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
8269 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
8270 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8273 return NDR_ERR_SUCCESS;
8276 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
8279 uint32_t size_guid_1 = 0;
8280 uint32_t length_guid_1 = 0;
8281 TALLOC_CTX *_mem_save_guid_0 = NULL;
8282 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8283 if (ndr_flags & NDR_SCALARS) {
8284 NDR_CHECK(ndr_pull_align(ndr, 5));
8285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
8287 NDR_PULL_ALLOC(ndr, r->guid);
8291 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
8292 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8294 if (ndr_flags & NDR_BUFFERS) {
8296 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
8297 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
8298 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
8299 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
8300 size_guid_1 = ndr_get_array_size(ndr, &r->guid);
8301 length_guid_1 = ndr_get_array_length(ndr, &r->guid);
8302 if (length_guid_1 > size_guid_1) {
8303 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_guid_1, length_guid_1);
8305 NDR_CHECK(ndr_check_string_terminator(ndr, length_guid_1, sizeof(uint16_t)));
8306 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, length_guid_1, sizeof(uint16_t), CH_UTF16));
8307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
8310 return NDR_ERR_SUCCESS;
8313 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
8315 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
8316 if (r == NULL) { ndr_print_null(ndr); return; }
8318 ndr_print_ptr(ndr, "guid", r->guid);
8321 ndr_print_string(ndr, "guid", r->guid);
8324 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
8328 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo8 *r)
8330 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8331 if (ndr_flags & NDR_SCALARS) {
8332 NDR_CHECK(ndr_push_align(ndr, 5));
8333 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode_ptr));
8334 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8336 if (ndr_flags & NDR_BUFFERS) {
8337 if (r->devmode_ptr) {
8338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->devmode_ptr));
8341 return NDR_ERR_SUCCESS;
8344 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo8 *r)
8346 uint32_t _ptr_devmode_ptr;
8347 TALLOC_CTX *_mem_save_devmode_ptr_0 = NULL;
8348 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8349 if (ndr_flags & NDR_SCALARS) {
8350 NDR_CHECK(ndr_pull_align(ndr, 5));
8351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode_ptr));
8352 if (_ptr_devmode_ptr) {
8353 NDR_PULL_ALLOC(ndr, r->devmode_ptr);
8355 r->devmode_ptr = NULL;
8357 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8359 if (ndr_flags & NDR_BUFFERS) {
8360 if (r->devmode_ptr) {
8361 _mem_save_devmode_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
8362 NDR_PULL_SET_MEM_CTX(ndr, r->devmode_ptr, 0);
8363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
8364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ptr_0, 0);
8367 return NDR_ERR_SUCCESS;
8370 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo8 *r)
8372 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo8");
8373 if (r == NULL) { ndr_print_null(ndr); return; }
8375 ndr_print_ptr(ndr, "devmode_ptr", r->devmode_ptr);
8377 if (r->devmode_ptr) {
8378 ndr_print_uint32(ndr, "devmode_ptr", *r->devmode_ptr);
8384 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo9(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo9 *r)
8386 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8387 if (ndr_flags & NDR_SCALARS) {
8388 NDR_CHECK(ndr_push_align(ndr, 5));
8389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode_ptr));
8390 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8392 if (ndr_flags & NDR_BUFFERS) {
8393 if (r->devmode_ptr) {
8394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->devmode_ptr));
8397 return NDR_ERR_SUCCESS;
8400 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo9(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo9 *r)
8402 uint32_t _ptr_devmode_ptr;
8403 TALLOC_CTX *_mem_save_devmode_ptr_0 = NULL;
8404 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8405 if (ndr_flags & NDR_SCALARS) {
8406 NDR_CHECK(ndr_pull_align(ndr, 5));
8407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode_ptr));
8408 if (_ptr_devmode_ptr) {
8409 NDR_PULL_ALLOC(ndr, r->devmode_ptr);
8411 r->devmode_ptr = NULL;
8413 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8415 if (ndr_flags & NDR_BUFFERS) {
8416 if (r->devmode_ptr) {
8417 _mem_save_devmode_ptr_0 = NDR_PULL_GET_MEM_CTX(ndr);
8418 NDR_PULL_SET_MEM_CTX(ndr, r->devmode_ptr, 0);
8419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->devmode_ptr));
8420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ptr_0, 0);
8423 return NDR_ERR_SUCCESS;
8426 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo9(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo9 *r)
8428 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo9");
8429 if (r == NULL) { ndr_print_null(ndr); return; }
8431 ndr_print_ptr(ndr, "devmode_ptr", r->devmode_ptr);
8433 if (r->devmode_ptr) {
8434 ndr_print_uint32(ndr, "devmode_ptr", *r->devmode_ptr);
8440 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
8442 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8443 if (ndr_flags & NDR_SCALARS) {
8444 uint32_t level = ndr_push_get_switch_value(ndr, r);
8445 NDR_CHECK(ndr_push_union_align(ndr, 5));
8446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
8447 /* ms_union is always aligned to the largest union arm*/
8448 NDR_CHECK(ndr_push_align(ndr, 5));
8451 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
8455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
8459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
8463 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
8467 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
8471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
8475 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
8479 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
8483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
8487 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
8495 if (ndr_flags & NDR_BUFFERS) {
8496 uint32_t level = ndr_push_get_switch_value(ndr, r);
8500 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
8506 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8512 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8518 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
8524 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
8530 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
8536 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
8542 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
8548 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
8554 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
8563 return NDR_ERR_SUCCESS;
8566 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
8570 TALLOC_CTX *_mem_save_info0_0 = NULL;
8571 uint32_t _ptr_info0;
8572 TALLOC_CTX *_mem_save_info1_0 = NULL;
8573 uint32_t _ptr_info1;
8574 TALLOC_CTX *_mem_save_info2_0 = NULL;
8575 uint32_t _ptr_info2;
8576 TALLOC_CTX *_mem_save_info3_0 = NULL;
8577 uint32_t _ptr_info3;
8578 TALLOC_CTX *_mem_save_info4_0 = NULL;
8579 uint32_t _ptr_info4;
8580 TALLOC_CTX *_mem_save_info5_0 = NULL;
8581 uint32_t _ptr_info5;
8582 TALLOC_CTX *_mem_save_info6_0 = NULL;
8583 uint32_t _ptr_info6;
8584 TALLOC_CTX *_mem_save_info7_0 = NULL;
8585 uint32_t _ptr_info7;
8586 TALLOC_CTX *_mem_save_info8_0 = NULL;
8587 uint32_t _ptr_info8;
8588 TALLOC_CTX *_mem_save_info9_0 = NULL;
8589 uint32_t _ptr_info9;
8590 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8591 if (ndr_flags & NDR_SCALARS) {
8592 level = ndr_pull_get_switch_value(ndr, r);
8593 NDR_CHECK(ndr_pull_union_align(ndr, 5));
8594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
8595 if (_level != level) {
8596 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
8598 /* ms_union is always aligned to the largest union arm*/
8599 NDR_CHECK(ndr_pull_align(ndr, 5));
8602 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
8604 NDR_PULL_ALLOC(ndr, r->info0);
8611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
8613 NDR_PULL_ALLOC(ndr, r->info1);
8620 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
8622 NDR_PULL_ALLOC(ndr, r->info2);
8629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
8631 NDR_PULL_ALLOC(ndr, r->info3);
8638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
8640 NDR_PULL_ALLOC(ndr, r->info4);
8647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
8649 NDR_PULL_ALLOC(ndr, r->info5);
8656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
8658 NDR_PULL_ALLOC(ndr, r->info6);
8665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
8667 NDR_PULL_ALLOC(ndr, r->info7);
8674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
8676 NDR_PULL_ALLOC(ndr, r->info8);
8683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
8685 NDR_PULL_ALLOC(ndr, r->info9);
8696 if (ndr_flags & NDR_BUFFERS) {
8697 /* The token is not needed after this. */
8698 level = ndr_pull_steal_switch_value(ndr, r);
8702 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
8703 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
8704 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
8705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
8711 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
8712 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
8713 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
8714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
8720 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
8721 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
8722 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
8723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
8729 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
8730 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
8731 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
8732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
8738 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
8739 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
8740 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
8741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
8747 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
8748 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
8749 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
8750 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
8756 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
8757 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
8758 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
8759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
8765 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
8766 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
8767 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
8768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
8774 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
8775 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
8776 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
8777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
8783 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
8784 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
8785 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo9(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
8786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
8795 return NDR_ERR_SUCCESS;
8798 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
8801 level = ndr_print_get_switch_value(ndr, r);
8802 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
8805 ndr_print_ptr(ndr, "info0", r->info0);
8808 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
8814 ndr_print_ptr(ndr, "info1", r->info1);
8817 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
8823 ndr_print_ptr(ndr, "info2", r->info2);
8826 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
8832 ndr_print_ptr(ndr, "info3", r->info3);
8835 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
8841 ndr_print_ptr(ndr, "info4", r->info4);
8844 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
8850 ndr_print_ptr(ndr, "info5", r->info5);
8853 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
8859 ndr_print_ptr(ndr, "info6", r->info6);
8862 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
8868 ndr_print_ptr(ndr, "info7", r->info7);
8871 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
8877 ndr_print_ptr(ndr, "info8", r->info8);
8880 ndr_print_spoolss_SetPrinterInfo8(ndr, "info8", r->info8);
8886 ndr_print_ptr(ndr, "info9", r->info9);
8889 ndr_print_spoolss_SetPrinterInfo9(ndr, "info9", r->info9);
8900 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
8902 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8903 if (ndr_flags & NDR_SCALARS) {
8904 NDR_CHECK(ndr_push_align(ndr, 5));
8905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
8906 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
8907 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8908 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8910 if (ndr_flags & NDR_BUFFERS) {
8911 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8913 return NDR_ERR_SUCCESS;
8916 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
8918 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8919 if (ndr_flags & NDR_SCALARS) {
8920 NDR_CHECK(ndr_pull_align(ndr, 5));
8921 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
8922 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
8923 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
8924 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
8926 if (ndr_flags & NDR_BUFFERS) {
8927 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
8929 return NDR_ERR_SUCCESS;
8932 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
8934 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
8935 if (r == NULL) { ndr_print_null(ndr); return; }
8937 ndr_print_uint32(ndr, "level", r->level);
8938 ndr_print_set_switch_value(ndr, &r->info, r->level);
8939 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
8943 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
8945 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8946 if (ndr_flags & NDR_SCALARS) {
8947 NDR_CHECK(ndr_push_align(ndr, 4));
8948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->flags) - 4) / 2));
8950 uint32_t _flags_save_string_array = ndr->flags;
8951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
8952 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
8953 ndr->flags = _flags_save_string_array;
8955 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
8957 if (ndr_flags & NDR_BUFFERS) {
8959 return NDR_ERR_SUCCESS;
8962 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
8964 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
8965 if (ndr_flags & NDR_SCALARS) {
8966 NDR_CHECK(ndr_pull_align(ndr, 4));
8967 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
8969 uint32_t _flags_save_string_array = ndr->flags;
8970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
8971 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
8972 ndr->flags = _flags_save_string_array;
8974 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
8976 if (ndr_flags & NDR_BUFFERS) {
8978 return NDR_ERR_SUCCESS;
8981 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
8983 ndr_print_struct(ndr, name, "spoolss_StringArray");
8984 if (r == NULL) { ndr_print_null(ndr); return; }
8986 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->flags) - 4) / 2:r->_ndr_size);
8987 ndr_print_string_array(ndr, "string", r->string);
8991 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
8993 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
8994 if (ndr_flags & NDR_SCALARS) {
8995 NDR_CHECK(ndr_push_align(ndr, 5));
8996 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8997 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
8999 if (ndr_flags & NDR_BUFFERS) {
9000 if (r->driver_name) {
9001 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9004 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9007 return NDR_ERR_SUCCESS;
9010 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
9012 uint32_t _ptr_driver_name;
9013 uint32_t size_driver_name_1 = 0;
9014 uint32_t length_driver_name_1 = 0;
9015 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
9016 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9017 if (ndr_flags & NDR_SCALARS) {
9018 NDR_CHECK(ndr_pull_align(ndr, 5));
9019 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9020 if (_ptr_driver_name) {
9021 NDR_PULL_ALLOC(ndr, r->driver_name);
9023 r->driver_name = NULL;
9025 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9027 if (ndr_flags & NDR_BUFFERS) {
9028 if (r->driver_name) {
9029 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9030 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9031 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9032 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9033 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
9034 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
9035 if (length_driver_name_1 > size_driver_name_1) {
9036 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
9038 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
9039 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9043 return NDR_ERR_SUCCESS;
9046 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
9048 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
9049 if (r == NULL) { ndr_print_null(ndr); return; }
9051 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9053 if (r->driver_name) {
9054 ndr_print_string(ndr, "driver_name", r->driver_name);
9060 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
9062 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
9063 return NDR_ERR_SUCCESS;
9066 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
9069 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
9071 return NDR_ERR_SUCCESS;
9074 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
9076 const char *val = NULL;
9079 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
9080 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
9081 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
9082 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
9083 case SPOOLSS_DRIVER_VERSION_2012: val = "SPOOLSS_DRIVER_VERSION_2012"; break;
9085 ndr_print_enum(ndr, name, "ENUM", val, r);
9088 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
9090 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9091 if (ndr_flags & NDR_SCALARS) {
9092 NDR_CHECK(ndr_push_align(ndr, 5));
9093 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9095 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9099 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9101 if (ndr_flags & NDR_BUFFERS) {
9102 if (r->driver_name) {
9103 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9104 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9105 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9106 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9108 if (r->architecture) {
9109 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9110 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9111 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9112 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9114 if (r->driver_path) {
9115 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9116 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9118 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9121 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9122 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9123 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9126 if (r->config_file) {
9127 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9128 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9129 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9130 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9133 return NDR_ERR_SUCCESS;
9136 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
9138 uint32_t _ptr_driver_name;
9139 uint32_t size_driver_name_1 = 0;
9140 uint32_t length_driver_name_1 = 0;
9141 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
9142 uint32_t _ptr_architecture;
9143 uint32_t size_architecture_1 = 0;
9144 uint32_t length_architecture_1 = 0;
9145 TALLOC_CTX *_mem_save_architecture_0 = NULL;
9146 uint32_t _ptr_driver_path;
9147 uint32_t size_driver_path_1 = 0;
9148 uint32_t length_driver_path_1 = 0;
9149 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
9150 uint32_t _ptr_data_file;
9151 uint32_t size_data_file_1 = 0;
9152 uint32_t length_data_file_1 = 0;
9153 TALLOC_CTX *_mem_save_data_file_0 = NULL;
9154 uint32_t _ptr_config_file;
9155 uint32_t size_config_file_1 = 0;
9156 uint32_t length_config_file_1 = 0;
9157 TALLOC_CTX *_mem_save_config_file_0 = NULL;
9158 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9159 if (ndr_flags & NDR_SCALARS) {
9160 NDR_CHECK(ndr_pull_align(ndr, 5));
9161 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9162 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9163 if (_ptr_driver_name) {
9164 NDR_PULL_ALLOC(ndr, r->driver_name);
9166 r->driver_name = NULL;
9168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9169 if (_ptr_architecture) {
9170 NDR_PULL_ALLOC(ndr, r->architecture);
9172 r->architecture = NULL;
9174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9175 if (_ptr_driver_path) {
9176 NDR_PULL_ALLOC(ndr, r->driver_path);
9178 r->driver_path = NULL;
9180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9181 if (_ptr_data_file) {
9182 NDR_PULL_ALLOC(ndr, r->data_file);
9184 r->data_file = NULL;
9186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9187 if (_ptr_config_file) {
9188 NDR_PULL_ALLOC(ndr, r->config_file);
9190 r->config_file = NULL;
9192 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9194 if (ndr_flags & NDR_BUFFERS) {
9195 if (r->driver_name) {
9196 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9197 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9198 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9199 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9200 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
9201 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
9202 if (length_driver_name_1 > size_driver_name_1) {
9203 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
9205 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
9206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9209 if (r->architecture) {
9210 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9211 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9212 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9213 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9214 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
9215 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
9216 if (length_architecture_1 > size_architecture_1) {
9217 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
9219 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
9220 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
9221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9223 if (r->driver_path) {
9224 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9225 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9226 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9227 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9228 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
9229 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
9230 if (length_driver_path_1 > size_driver_path_1) {
9231 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
9233 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
9234 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
9235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9238 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9239 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9240 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9241 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9242 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
9243 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
9244 if (length_data_file_1 > size_data_file_1) {
9245 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
9247 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
9248 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
9249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9251 if (r->config_file) {
9252 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9253 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9254 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9255 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9256 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
9257 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
9258 if (length_config_file_1 > size_config_file_1) {
9259 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
9261 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
9262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
9263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9266 return NDR_ERR_SUCCESS;
9269 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
9271 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
9272 if (r == NULL) { ndr_print_null(ndr); return; }
9274 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9275 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9277 if (r->driver_name) {
9278 ndr_print_string(ndr, "driver_name", r->driver_name);
9281 ndr_print_ptr(ndr, "architecture", r->architecture);
9283 if (r->architecture) {
9284 ndr_print_string(ndr, "architecture", r->architecture);
9287 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9289 if (r->driver_path) {
9290 ndr_print_string(ndr, "driver_path", r->driver_path);
9293 ndr_print_ptr(ndr, "data_file", r->data_file);
9296 ndr_print_string(ndr, "data_file", r->data_file);
9299 ndr_print_ptr(ndr, "config_file", r->config_file);
9301 if (r->config_file) {
9302 ndr_print_string(ndr, "config_file", r->config_file);
9308 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
9310 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9311 if (ndr_flags & NDR_SCALARS) {
9312 NDR_CHECK(ndr_push_align(ndr, 5));
9313 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9314 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9315 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9316 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9317 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9318 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9319 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9320 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9321 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9322 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
9323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9324 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9326 if (ndr_flags & NDR_BUFFERS) {
9327 if (r->driver_name) {
9328 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9329 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9330 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9331 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9333 if (r->architecture) {
9334 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9335 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9336 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9337 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9339 if (r->driver_path) {
9340 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9341 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9342 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9343 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9346 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9347 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9348 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9349 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9351 if (r->config_file) {
9352 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9353 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9354 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9355 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9358 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9359 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9360 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9361 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9363 if (r->monitor_name) {
9364 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9365 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9366 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9367 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9369 if (r->default_datatype) {
9370 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9371 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9372 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9375 if (r->dependent_files) {
9376 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9379 return NDR_ERR_SUCCESS;
9382 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
9384 uint32_t _ptr_driver_name;
9385 uint32_t size_driver_name_1 = 0;
9386 uint32_t length_driver_name_1 = 0;
9387 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
9388 uint32_t _ptr_architecture;
9389 uint32_t size_architecture_1 = 0;
9390 uint32_t length_architecture_1 = 0;
9391 TALLOC_CTX *_mem_save_architecture_0 = NULL;
9392 uint32_t _ptr_driver_path;
9393 uint32_t size_driver_path_1 = 0;
9394 uint32_t length_driver_path_1 = 0;
9395 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
9396 uint32_t _ptr_data_file;
9397 uint32_t size_data_file_1 = 0;
9398 uint32_t length_data_file_1 = 0;
9399 TALLOC_CTX *_mem_save_data_file_0 = NULL;
9400 uint32_t _ptr_config_file;
9401 uint32_t size_config_file_1 = 0;
9402 uint32_t length_config_file_1 = 0;
9403 TALLOC_CTX *_mem_save_config_file_0 = NULL;
9404 uint32_t _ptr_help_file;
9405 uint32_t size_help_file_1 = 0;
9406 uint32_t length_help_file_1 = 0;
9407 TALLOC_CTX *_mem_save_help_file_0 = NULL;
9408 uint32_t _ptr_monitor_name;
9409 uint32_t size_monitor_name_1 = 0;
9410 uint32_t length_monitor_name_1 = 0;
9411 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
9412 uint32_t _ptr_default_datatype;
9413 uint32_t size_default_datatype_1 = 0;
9414 uint32_t length_default_datatype_1 = 0;
9415 TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
9416 uint32_t _ptr_dependent_files;
9417 TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
9418 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9419 if (ndr_flags & NDR_SCALARS) {
9420 NDR_CHECK(ndr_pull_align(ndr, 5));
9421 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9422 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9423 if (_ptr_driver_name) {
9424 NDR_PULL_ALLOC(ndr, r->driver_name);
9426 r->driver_name = NULL;
9428 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9429 if (_ptr_architecture) {
9430 NDR_PULL_ALLOC(ndr, r->architecture);
9432 r->architecture = NULL;
9434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9435 if (_ptr_driver_path) {
9436 NDR_PULL_ALLOC(ndr, r->driver_path);
9438 r->driver_path = NULL;
9440 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9441 if (_ptr_data_file) {
9442 NDR_PULL_ALLOC(ndr, r->data_file);
9444 r->data_file = NULL;
9446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9447 if (_ptr_config_file) {
9448 NDR_PULL_ALLOC(ndr, r->config_file);
9450 r->config_file = NULL;
9452 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9453 if (_ptr_help_file) {
9454 NDR_PULL_ALLOC(ndr, r->help_file);
9456 r->help_file = NULL;
9458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9459 if (_ptr_monitor_name) {
9460 NDR_PULL_ALLOC(ndr, r->monitor_name);
9462 r->monitor_name = NULL;
9464 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9465 if (_ptr_default_datatype) {
9466 NDR_PULL_ALLOC(ndr, r->default_datatype);
9468 r->default_datatype = NULL;
9470 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9471 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9472 if (_ptr_dependent_files) {
9473 NDR_PULL_ALLOC(ndr, r->dependent_files);
9475 r->dependent_files = NULL;
9477 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9479 if (ndr_flags & NDR_BUFFERS) {
9480 if (r->driver_name) {
9481 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9482 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9483 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9484 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9485 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
9486 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
9487 if (length_driver_name_1 > size_driver_name_1) {
9488 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
9490 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
9491 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9494 if (r->architecture) {
9495 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9496 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9497 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9498 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9499 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
9500 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
9501 if (length_architecture_1 > size_architecture_1) {
9502 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
9504 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
9505 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
9506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9508 if (r->driver_path) {
9509 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9510 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9511 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9512 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9513 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
9514 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
9515 if (length_driver_path_1 > size_driver_path_1) {
9516 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
9518 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
9519 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
9520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9523 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9524 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9525 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9526 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9527 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
9528 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
9529 if (length_data_file_1 > size_data_file_1) {
9530 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
9532 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
9533 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
9534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9536 if (r->config_file) {
9537 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9538 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9539 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9540 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9541 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
9542 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
9543 if (length_config_file_1 > size_config_file_1) {
9544 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
9546 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
9547 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
9548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9551 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9552 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9553 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9554 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9555 size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
9556 length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
9557 if (length_help_file_1 > size_help_file_1) {
9558 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
9560 NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
9561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
9562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9564 if (r->monitor_name) {
9565 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9566 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9567 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9568 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9569 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
9570 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
9571 if (length_monitor_name_1 > size_monitor_name_1) {
9572 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
9574 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
9575 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
9576 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9578 if (r->default_datatype) {
9579 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9580 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9581 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9582 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9583 size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
9584 length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
9585 if (length_default_datatype_1 > size_default_datatype_1) {
9586 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
9588 NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
9589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
9590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9592 if (r->dependent_files) {
9593 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9594 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9595 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9599 return NDR_ERR_SUCCESS;
9602 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
9604 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
9605 if (r == NULL) { ndr_print_null(ndr); return; }
9607 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9608 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9610 if (r->driver_name) {
9611 ndr_print_string(ndr, "driver_name", r->driver_name);
9614 ndr_print_ptr(ndr, "architecture", r->architecture);
9616 if (r->architecture) {
9617 ndr_print_string(ndr, "architecture", r->architecture);
9620 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9622 if (r->driver_path) {
9623 ndr_print_string(ndr, "driver_path", r->driver_path);
9626 ndr_print_ptr(ndr, "data_file", r->data_file);
9629 ndr_print_string(ndr, "data_file", r->data_file);
9632 ndr_print_ptr(ndr, "config_file", r->config_file);
9634 if (r->config_file) {
9635 ndr_print_string(ndr, "config_file", r->config_file);
9638 ndr_print_ptr(ndr, "help_file", r->help_file);
9641 ndr_print_string(ndr, "help_file", r->help_file);
9644 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9646 if (r->monitor_name) {
9647 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9650 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9652 if (r->default_datatype) {
9653 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9656 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9657 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9659 if (r->dependent_files) {
9660 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9666 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
9668 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
9669 if (ndr_flags & NDR_SCALARS) {
9670 NDR_CHECK(ndr_push_align(ndr, 5));
9671 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9672 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
9673 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
9674 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
9675 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
9676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
9677 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
9678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
9679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
9680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
9681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
9682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
9683 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
9684 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
9686 if (ndr_flags & NDR_BUFFERS) {
9687 if (r->driver_name) {
9688 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9689 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
9691 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9693 if (r->architecture) {
9694 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9695 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
9697 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9699 if (r->driver_path) {
9700 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9701 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9702 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
9703 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9707 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9708 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
9709 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9711 if (r->config_file) {
9712 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9713 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
9715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9718 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9719 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
9721 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9723 if (r->monitor_name) {
9724 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9725 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9726 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
9727 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9729 if (r->default_datatype) {
9730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9731 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
9732 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
9733 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9735 if (r->dependent_files) {
9736 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9738 if (r->previous_names) {
9739 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9742 return NDR_ERR_SUCCESS;
9745 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
9747 uint32_t _ptr_driver_name;
9748 uint32_t size_driver_name_1 = 0;
9749 uint32_t length_driver_name_1 = 0;
9750 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
9751 uint32_t _ptr_architecture;
9752 uint32_t size_architecture_1 = 0;
9753 uint32_t length_architecture_1 = 0;
9754 TALLOC_CTX *_mem_save_architecture_0 = NULL;
9755 uint32_t _ptr_driver_path;
9756 uint32_t size_driver_path_1 = 0;
9757 uint32_t length_driver_path_1 = 0;
9758 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
9759 uint32_t _ptr_data_file;
9760 uint32_t size_data_file_1 = 0;
9761 uint32_t length_data_file_1 = 0;
9762 TALLOC_CTX *_mem_save_data_file_0 = NULL;
9763 uint32_t _ptr_config_file;
9764 uint32_t size_config_file_1 = 0;
9765 uint32_t length_config_file_1 = 0;
9766 TALLOC_CTX *_mem_save_config_file_0 = NULL;
9767 uint32_t _ptr_help_file;
9768 uint32_t size_help_file_1 = 0;
9769 uint32_t length_help_file_1 = 0;
9770 TALLOC_CTX *_mem_save_help_file_0 = NULL;
9771 uint32_t _ptr_monitor_name;
9772 uint32_t size_monitor_name_1 = 0;
9773 uint32_t length_monitor_name_1 = 0;
9774 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
9775 uint32_t _ptr_default_datatype;
9776 uint32_t size_default_datatype_1 = 0;
9777 uint32_t length_default_datatype_1 = 0;
9778 TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
9779 uint32_t _ptr_dependent_files;
9780 TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
9781 uint32_t _ptr_previous_names;
9782 TALLOC_CTX *_mem_save_previous_names_0 = NULL;
9783 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
9784 if (ndr_flags & NDR_SCALARS) {
9785 NDR_CHECK(ndr_pull_align(ndr, 5));
9786 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9788 if (_ptr_driver_name) {
9789 NDR_PULL_ALLOC(ndr, r->driver_name);
9791 r->driver_name = NULL;
9793 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9794 if (_ptr_architecture) {
9795 NDR_PULL_ALLOC(ndr, r->architecture);
9797 r->architecture = NULL;
9799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9800 if (_ptr_driver_path) {
9801 NDR_PULL_ALLOC(ndr, r->driver_path);
9803 r->driver_path = NULL;
9805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9806 if (_ptr_data_file) {
9807 NDR_PULL_ALLOC(ndr, r->data_file);
9809 r->data_file = NULL;
9811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9812 if (_ptr_config_file) {
9813 NDR_PULL_ALLOC(ndr, r->config_file);
9815 r->config_file = NULL;
9817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9818 if (_ptr_help_file) {
9819 NDR_PULL_ALLOC(ndr, r->help_file);
9821 r->help_file = NULL;
9823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9824 if (_ptr_monitor_name) {
9825 NDR_PULL_ALLOC(ndr, r->monitor_name);
9827 r->monitor_name = NULL;
9829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9830 if (_ptr_default_datatype) {
9831 NDR_PULL_ALLOC(ndr, r->default_datatype);
9833 r->default_datatype = NULL;
9835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9837 if (_ptr_dependent_files) {
9838 NDR_PULL_ALLOC(ndr, r->dependent_files);
9840 r->dependent_files = NULL;
9842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9844 if (_ptr_previous_names) {
9845 NDR_PULL_ALLOC(ndr, r->previous_names);
9847 r->previous_names = NULL;
9849 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
9851 if (ndr_flags & NDR_BUFFERS) {
9852 if (r->driver_name) {
9853 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9854 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9855 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9856 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9857 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
9858 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
9859 if (length_driver_name_1 > size_driver_name_1) {
9860 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
9862 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
9863 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
9864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9866 if (r->architecture) {
9867 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9868 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9869 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9870 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9871 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
9872 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
9873 if (length_architecture_1 > size_architecture_1) {
9874 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
9876 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
9877 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
9878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9880 if (r->driver_path) {
9881 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9882 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9883 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9884 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9885 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
9886 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
9887 if (length_driver_path_1 > size_driver_path_1) {
9888 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
9890 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
9891 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
9892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9895 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9896 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9897 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9898 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9899 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
9900 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
9901 if (length_data_file_1 > size_data_file_1) {
9902 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
9904 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
9905 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
9906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9908 if (r->config_file) {
9909 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9910 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9911 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9912 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9913 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
9914 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
9915 if (length_config_file_1 > size_config_file_1) {
9916 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
9918 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
9919 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
9920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9923 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9924 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9925 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9926 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9927 size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
9928 length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
9929 if (length_help_file_1 > size_help_file_1) {
9930 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
9932 NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
9933 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
9934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9936 if (r->monitor_name) {
9937 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9938 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9939 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9940 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9941 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
9942 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
9943 if (length_monitor_name_1 > size_monitor_name_1) {
9944 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
9946 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
9947 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
9948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9950 if (r->default_datatype) {
9951 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9952 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9953 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9954 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9955 size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
9956 length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
9957 if (length_default_datatype_1 > size_default_datatype_1) {
9958 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
9960 NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
9961 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
9962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9964 if (r->dependent_files) {
9965 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9966 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9967 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9970 if (r->previous_names) {
9971 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9972 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9973 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9977 return NDR_ERR_SUCCESS;
9980 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
9982 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
9983 if (r == NULL) { ndr_print_null(ndr); return; }
9985 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9986 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9988 if (r->driver_name) {
9989 ndr_print_string(ndr, "driver_name", r->driver_name);
9992 ndr_print_ptr(ndr, "architecture", r->architecture);
9994 if (r->architecture) {
9995 ndr_print_string(ndr, "architecture", r->architecture);
9998 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10000 if (r->driver_path) {
10001 ndr_print_string(ndr, "driver_path", r->driver_path);
10004 ndr_print_ptr(ndr, "data_file", r->data_file);
10006 if (r->data_file) {
10007 ndr_print_string(ndr, "data_file", r->data_file);
10010 ndr_print_ptr(ndr, "config_file", r->config_file);
10012 if (r->config_file) {
10013 ndr_print_string(ndr, "config_file", r->config_file);
10016 ndr_print_ptr(ndr, "help_file", r->help_file);
10018 if (r->help_file) {
10019 ndr_print_string(ndr, "help_file", r->help_file);
10022 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10024 if (r->monitor_name) {
10025 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10028 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10030 if (r->default_datatype) {
10031 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10034 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
10035 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10037 if (r->dependent_files) {
10038 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10041 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
10042 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10044 if (r->previous_names) {
10045 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10051 static enum ndr_err_code ndr_push_spoolss_DriverAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
10053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10054 return NDR_ERR_SUCCESS;
10057 static enum ndr_err_code ndr_pull_spoolss_DriverAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
10060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
10062 return NDR_ERR_SUCCESS;
10065 _PUBLIC_ void ndr_print_spoolss_DriverAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
10067 ndr_print_uint32(ndr, name, r);
10069 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_PACKAGE_AWARE", PRINTER_DRIVER_PACKAGE_AWARE, r);
10070 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_XPS", PRINTER_DRIVER_XPS, r);
10071 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_SANDBOX_ENABLED", PRINTER_DRIVER_SANDBOX_ENABLED, r);
10072 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CLASS", PRINTER_DRIVER_CLASS, r);
10073 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_DERIVED", PRINTER_DRIVER_DERIVED, r);
10074 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_NOT_SHAREABLE", PRINTER_DRIVER_NOT_SHAREABLE, r);
10075 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_FAX", PRINTER_DRIVER_CATEGORY_FAX, r);
10076 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_FILE", PRINTER_DRIVER_CATEGORY_FILE, r);
10077 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_VIRTUAL", PRINTER_DRIVER_CATEGORY_VIRTUAL, r);
10078 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_CATEGORY_SERVICE", PRINTER_DRIVER_CATEGORY_SERVICE, r);
10079 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_DRIVER_SOFT_RESET_REQUIRED", PRINTER_DRIVER_SOFT_RESET_REQUIRED, r);
10083 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
10085 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10086 if (ndr_flags & NDR_SCALARS) {
10087 NDR_CHECK(ndr_push_align(ndr, 8));
10088 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10089 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
10090 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
10091 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
10092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
10093 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
10094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
10095 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
10096 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
10097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
10098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
10099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
10100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
10101 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
10102 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
10103 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
10104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
10105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
10106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
10107 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10109 if (ndr_flags & NDR_BUFFERS) {
10110 if (r->driver_name) {
10111 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
10112 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10113 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
10114 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10116 if (r->architecture) {
10117 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10118 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10119 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10122 if (r->driver_path) {
10123 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10124 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10125 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10128 if (r->data_file) {
10129 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10130 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10131 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10134 if (r->config_file) {
10135 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10136 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10137 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10138 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10140 if (r->help_file) {
10141 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10142 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10143 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10144 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10146 if (r->monitor_name) {
10147 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10148 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10149 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10150 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10152 if (r->default_datatype) {
10153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10154 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10155 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10156 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10158 if (r->dependent_files) {
10159 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10161 if (r->previous_names) {
10162 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10164 if (r->manufacturer_name) {
10165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10167 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10168 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10170 if (r->manufacturer_url) {
10171 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10172 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10173 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10174 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10176 if (r->hardware_id) {
10177 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10178 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10179 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10180 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10185 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10186 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10189 return NDR_ERR_SUCCESS;
10192 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
10194 uint32_t _ptr_driver_name;
10195 uint32_t size_driver_name_1 = 0;
10196 uint32_t length_driver_name_1 = 0;
10197 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
10198 uint32_t _ptr_architecture;
10199 uint32_t size_architecture_1 = 0;
10200 uint32_t length_architecture_1 = 0;
10201 TALLOC_CTX *_mem_save_architecture_0 = NULL;
10202 uint32_t _ptr_driver_path;
10203 uint32_t size_driver_path_1 = 0;
10204 uint32_t length_driver_path_1 = 0;
10205 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
10206 uint32_t _ptr_data_file;
10207 uint32_t size_data_file_1 = 0;
10208 uint32_t length_data_file_1 = 0;
10209 TALLOC_CTX *_mem_save_data_file_0 = NULL;
10210 uint32_t _ptr_config_file;
10211 uint32_t size_config_file_1 = 0;
10212 uint32_t length_config_file_1 = 0;
10213 TALLOC_CTX *_mem_save_config_file_0 = NULL;
10214 uint32_t _ptr_help_file;
10215 uint32_t size_help_file_1 = 0;
10216 uint32_t length_help_file_1 = 0;
10217 TALLOC_CTX *_mem_save_help_file_0 = NULL;
10218 uint32_t _ptr_monitor_name;
10219 uint32_t size_monitor_name_1 = 0;
10220 uint32_t length_monitor_name_1 = 0;
10221 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
10222 uint32_t _ptr_default_datatype;
10223 uint32_t size_default_datatype_1 = 0;
10224 uint32_t length_default_datatype_1 = 0;
10225 TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
10226 uint32_t _ptr_dependent_files;
10227 TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
10228 uint32_t _ptr_previous_names;
10229 TALLOC_CTX *_mem_save_previous_names_0 = NULL;
10230 uint32_t _ptr_manufacturer_name;
10231 uint32_t size_manufacturer_name_1 = 0;
10232 uint32_t length_manufacturer_name_1 = 0;
10233 TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
10234 uint32_t _ptr_manufacturer_url;
10235 uint32_t size_manufacturer_url_1 = 0;
10236 uint32_t length_manufacturer_url_1 = 0;
10237 TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
10238 uint32_t _ptr_hardware_id;
10239 uint32_t size_hardware_id_1 = 0;
10240 uint32_t length_hardware_id_1 = 0;
10241 TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
10242 uint32_t _ptr_provider;
10243 uint32_t size_provider_1 = 0;
10244 uint32_t length_provider_1 = 0;
10245 TALLOC_CTX *_mem_save_provider_0 = NULL;
10246 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10247 if (ndr_flags & NDR_SCALARS) {
10248 NDR_CHECK(ndr_pull_align(ndr, 8));
10249 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10251 if (_ptr_driver_name) {
10252 NDR_PULL_ALLOC(ndr, r->driver_name);
10254 r->driver_name = NULL;
10256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10257 if (_ptr_architecture) {
10258 NDR_PULL_ALLOC(ndr, r->architecture);
10260 r->architecture = NULL;
10262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10263 if (_ptr_driver_path) {
10264 NDR_PULL_ALLOC(ndr, r->driver_path);
10266 r->driver_path = NULL;
10268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10269 if (_ptr_data_file) {
10270 NDR_PULL_ALLOC(ndr, r->data_file);
10272 r->data_file = NULL;
10274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10275 if (_ptr_config_file) {
10276 NDR_PULL_ALLOC(ndr, r->config_file);
10278 r->config_file = NULL;
10280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10281 if (_ptr_help_file) {
10282 NDR_PULL_ALLOC(ndr, r->help_file);
10284 r->help_file = NULL;
10286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10287 if (_ptr_monitor_name) {
10288 NDR_PULL_ALLOC(ndr, r->monitor_name);
10290 r->monitor_name = NULL;
10292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10293 if (_ptr_default_datatype) {
10294 NDR_PULL_ALLOC(ndr, r->default_datatype);
10296 r->default_datatype = NULL;
10298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
10299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10300 if (_ptr_dependent_files) {
10301 NDR_PULL_ALLOC(ndr, r->dependent_files);
10303 r->dependent_files = NULL;
10305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
10306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10307 if (_ptr_previous_names) {
10308 NDR_PULL_ALLOC(ndr, r->previous_names);
10310 r->previous_names = NULL;
10312 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
10313 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10314 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10315 if (_ptr_manufacturer_name) {
10316 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10318 r->manufacturer_name = NULL;
10320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10321 if (_ptr_manufacturer_url) {
10322 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10324 r->manufacturer_url = NULL;
10326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10327 if (_ptr_hardware_id) {
10328 NDR_PULL_ALLOC(ndr, r->hardware_id);
10330 r->hardware_id = NULL;
10332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10333 if (_ptr_provider) {
10334 NDR_PULL_ALLOC(ndr, r->provider);
10336 r->provider = NULL;
10338 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10340 if (ndr_flags & NDR_BUFFERS) {
10341 if (r->driver_name) {
10342 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10343 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10344 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
10345 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
10346 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
10347 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
10348 if (length_driver_name_1 > size_driver_name_1) {
10349 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
10351 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
10352 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
10353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10355 if (r->architecture) {
10356 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10357 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10358 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
10359 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
10360 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
10361 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
10362 if (length_architecture_1 > size_architecture_1) {
10363 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
10365 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
10366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
10367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10369 if (r->driver_path) {
10370 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10371 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10372 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
10373 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
10374 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
10375 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
10376 if (length_driver_path_1 > size_driver_path_1) {
10377 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
10379 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
10380 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
10381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10383 if (r->data_file) {
10384 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10385 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10386 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
10387 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
10388 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
10389 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
10390 if (length_data_file_1 > size_data_file_1) {
10391 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
10393 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
10394 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
10395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10397 if (r->config_file) {
10398 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10399 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10400 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
10401 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
10402 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
10403 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
10404 if (length_config_file_1 > size_config_file_1) {
10405 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
10407 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
10408 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
10409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10411 if (r->help_file) {
10412 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10413 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10414 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
10415 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
10416 size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
10417 length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
10418 if (length_help_file_1 > size_help_file_1) {
10419 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
10421 NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
10422 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
10423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10425 if (r->monitor_name) {
10426 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10427 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10428 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
10429 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
10430 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
10431 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
10432 if (length_monitor_name_1 > size_monitor_name_1) {
10433 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
10435 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
10436 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
10437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10439 if (r->default_datatype) {
10440 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10441 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10442 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
10443 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
10444 size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
10445 length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
10446 if (length_default_datatype_1 > size_default_datatype_1) {
10447 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
10449 NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
10450 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
10451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10453 if (r->dependent_files) {
10454 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10455 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10456 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10459 if (r->previous_names) {
10460 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10461 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10462 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10465 if (r->manufacturer_name) {
10466 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10467 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10468 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
10469 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
10470 size_manufacturer_name_1 = ndr_get_array_size(ndr, &r->manufacturer_name);
10471 length_manufacturer_name_1 = ndr_get_array_length(ndr, &r->manufacturer_name);
10472 if (length_manufacturer_name_1 > size_manufacturer_name_1) {
10473 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_name_1, length_manufacturer_name_1);
10475 NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
10476 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
10477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10479 if (r->manufacturer_url) {
10480 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10481 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10482 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
10483 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
10484 size_manufacturer_url_1 = ndr_get_array_size(ndr, &r->manufacturer_url);
10485 length_manufacturer_url_1 = ndr_get_array_length(ndr, &r->manufacturer_url);
10486 if (length_manufacturer_url_1 > size_manufacturer_url_1) {
10487 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_url_1, length_manufacturer_url_1);
10489 NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
10490 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
10491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10493 if (r->hardware_id) {
10494 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10495 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10496 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
10497 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
10498 size_hardware_id_1 = ndr_get_array_size(ndr, &r->hardware_id);
10499 length_hardware_id_1 = ndr_get_array_length(ndr, &r->hardware_id);
10500 if (length_hardware_id_1 > size_hardware_id_1) {
10501 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_hardware_id_1, length_hardware_id_1);
10503 NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
10504 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
10505 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10508 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10509 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10510 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
10511 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
10512 size_provider_1 = ndr_get_array_size(ndr, &r->provider);
10513 length_provider_1 = ndr_get_array_length(ndr, &r->provider);
10514 if (length_provider_1 > size_provider_1) {
10515 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_provider_1, length_provider_1);
10517 NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
10518 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
10519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10522 return NDR_ERR_SUCCESS;
10525 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
10527 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
10528 if (r == NULL) { ndr_print_null(ndr); return; }
10530 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10531 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10533 if (r->driver_name) {
10534 ndr_print_string(ndr, "driver_name", r->driver_name);
10537 ndr_print_ptr(ndr, "architecture", r->architecture);
10539 if (r->architecture) {
10540 ndr_print_string(ndr, "architecture", r->architecture);
10543 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10545 if (r->driver_path) {
10546 ndr_print_string(ndr, "driver_path", r->driver_path);
10549 ndr_print_ptr(ndr, "data_file", r->data_file);
10551 if (r->data_file) {
10552 ndr_print_string(ndr, "data_file", r->data_file);
10555 ndr_print_ptr(ndr, "config_file", r->config_file);
10557 if (r->config_file) {
10558 ndr_print_string(ndr, "config_file", r->config_file);
10561 ndr_print_ptr(ndr, "help_file", r->help_file);
10563 if (r->help_file) {
10564 ndr_print_string(ndr, "help_file", r->help_file);
10567 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10569 if (r->monitor_name) {
10570 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10573 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10575 if (r->default_datatype) {
10576 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10579 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
10580 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10582 if (r->dependent_files) {
10583 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
10586 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
10587 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10589 if (r->previous_names) {
10590 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
10593 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10594 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10595 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10597 if (r->manufacturer_name) {
10598 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10601 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10603 if (r->manufacturer_url) {
10604 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10607 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10609 if (r->hardware_id) {
10610 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10613 ndr_print_ptr(ndr, "provider", r->provider);
10616 ndr_print_string(ndr, "provider", r->provider);
10622 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
10624 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
10625 if (ndr_flags & NDR_SCALARS) {
10626 NDR_CHECK(ndr_push_align(ndr, 8));
10627 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10628 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
10629 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
10630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
10631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
10632 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
10633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
10634 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
10635 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
10636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2)));
10637 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
10638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2)));
10639 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
10640 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
10641 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
10642 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
10643 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
10644 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
10645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
10646 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
10647 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
10648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->flags) - 4) / 2)));
10649 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
10650 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
10651 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->printer_driver_attributes));
10652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->flags) - 4) / 2)));
10653 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
10654 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
10655 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
10656 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
10658 if (ndr_flags & NDR_BUFFERS) {
10659 if (r->driver_name) {
10660 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
10661 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
10663 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10665 if (r->architecture) {
10666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10668 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
10669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10671 if (r->driver_path) {
10672 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10673 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10674 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
10675 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10677 if (r->data_file) {
10678 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
10681 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10683 if (r->config_file) {
10684 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10685 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10686 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
10687 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10689 if (r->help_file) {
10690 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10691 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10692 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
10693 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10695 if (r->monitor_name) {
10696 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10697 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10698 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
10699 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10701 if (r->default_datatype) {
10702 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10703 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
10705 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10707 if (r->dependent_files) {
10708 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
10710 if (r->previous_names) {
10711 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
10713 if (r->manufacturer_name) {
10714 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
10717 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10719 if (r->manufacturer_url) {
10720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
10723 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10725 if (r->hardware_id) {
10726 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10727 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10728 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
10729 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10732 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10733 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10734 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
10735 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10737 if (r->print_processor) {
10738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
10739 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10740 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
10741 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10743 if (r->vendor_setup) {
10744 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
10745 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10746 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
10747 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10749 if (r->color_profiles) {
10750 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
10753 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
10754 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
10755 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
10756 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10758 if (r->core_driver_dependencies) {
10759 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
10762 return NDR_ERR_SUCCESS;
10765 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
10767 uint32_t _ptr_driver_name;
10768 uint32_t size_driver_name_1 = 0;
10769 uint32_t length_driver_name_1 = 0;
10770 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
10771 uint32_t _ptr_architecture;
10772 uint32_t size_architecture_1 = 0;
10773 uint32_t length_architecture_1 = 0;
10774 TALLOC_CTX *_mem_save_architecture_0 = NULL;
10775 uint32_t _ptr_driver_path;
10776 uint32_t size_driver_path_1 = 0;
10777 uint32_t length_driver_path_1 = 0;
10778 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
10779 uint32_t _ptr_data_file;
10780 uint32_t size_data_file_1 = 0;
10781 uint32_t length_data_file_1 = 0;
10782 TALLOC_CTX *_mem_save_data_file_0 = NULL;
10783 uint32_t _ptr_config_file;
10784 uint32_t size_config_file_1 = 0;
10785 uint32_t length_config_file_1 = 0;
10786 TALLOC_CTX *_mem_save_config_file_0 = NULL;
10787 uint32_t _ptr_help_file;
10788 uint32_t size_help_file_1 = 0;
10789 uint32_t length_help_file_1 = 0;
10790 TALLOC_CTX *_mem_save_help_file_0 = NULL;
10791 uint32_t _ptr_monitor_name;
10792 uint32_t size_monitor_name_1 = 0;
10793 uint32_t length_monitor_name_1 = 0;
10794 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
10795 uint32_t _ptr_default_datatype;
10796 uint32_t size_default_datatype_1 = 0;
10797 uint32_t length_default_datatype_1 = 0;
10798 TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
10799 uint32_t _ptr_dependent_files;
10800 TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
10801 uint32_t _ptr_previous_names;
10802 TALLOC_CTX *_mem_save_previous_names_0 = NULL;
10803 uint32_t _ptr_manufacturer_name;
10804 uint32_t size_manufacturer_name_1 = 0;
10805 uint32_t length_manufacturer_name_1 = 0;
10806 TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
10807 uint32_t _ptr_manufacturer_url;
10808 uint32_t size_manufacturer_url_1 = 0;
10809 uint32_t length_manufacturer_url_1 = 0;
10810 TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
10811 uint32_t _ptr_hardware_id;
10812 uint32_t size_hardware_id_1 = 0;
10813 uint32_t length_hardware_id_1 = 0;
10814 TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
10815 uint32_t _ptr_provider;
10816 uint32_t size_provider_1 = 0;
10817 uint32_t length_provider_1 = 0;
10818 TALLOC_CTX *_mem_save_provider_0 = NULL;
10819 uint32_t _ptr_print_processor;
10820 uint32_t size_print_processor_1 = 0;
10821 uint32_t length_print_processor_1 = 0;
10822 TALLOC_CTX *_mem_save_print_processor_0 = NULL;
10823 uint32_t _ptr_vendor_setup;
10824 uint32_t size_vendor_setup_1 = 0;
10825 uint32_t length_vendor_setup_1 = 0;
10826 TALLOC_CTX *_mem_save_vendor_setup_0 = NULL;
10827 uint32_t _ptr_color_profiles;
10828 TALLOC_CTX *_mem_save_color_profiles_0 = NULL;
10829 uint32_t _ptr_inf_path;
10830 uint32_t size_inf_path_1 = 0;
10831 uint32_t length_inf_path_1 = 0;
10832 TALLOC_CTX *_mem_save_inf_path_0 = NULL;
10833 uint32_t _ptr_core_driver_dependencies;
10834 TALLOC_CTX *_mem_save_core_driver_dependencies_0 = NULL;
10835 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
10836 if (ndr_flags & NDR_SCALARS) {
10837 NDR_CHECK(ndr_pull_align(ndr, 8));
10838 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10840 if (_ptr_driver_name) {
10841 NDR_PULL_ALLOC(ndr, r->driver_name);
10843 r->driver_name = NULL;
10845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10846 if (_ptr_architecture) {
10847 NDR_PULL_ALLOC(ndr, r->architecture);
10849 r->architecture = NULL;
10851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10852 if (_ptr_driver_path) {
10853 NDR_PULL_ALLOC(ndr, r->driver_path);
10855 r->driver_path = NULL;
10857 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10858 if (_ptr_data_file) {
10859 NDR_PULL_ALLOC(ndr, r->data_file);
10861 r->data_file = NULL;
10863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10864 if (_ptr_config_file) {
10865 NDR_PULL_ALLOC(ndr, r->config_file);
10867 r->config_file = NULL;
10869 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10870 if (_ptr_help_file) {
10871 NDR_PULL_ALLOC(ndr, r->help_file);
10873 r->help_file = NULL;
10875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10876 if (_ptr_monitor_name) {
10877 NDR_PULL_ALLOC(ndr, r->monitor_name);
10879 r->monitor_name = NULL;
10881 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10882 if (_ptr_default_datatype) {
10883 NDR_PULL_ALLOC(ndr, r->default_datatype);
10885 r->default_datatype = NULL;
10887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
10888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10889 if (_ptr_dependent_files) {
10890 NDR_PULL_ALLOC(ndr, r->dependent_files);
10892 r->dependent_files = NULL;
10894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
10895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10896 if (_ptr_previous_names) {
10897 NDR_PULL_ALLOC(ndr, r->previous_names);
10899 r->previous_names = NULL;
10901 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
10902 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10904 if (_ptr_manufacturer_name) {
10905 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10907 r->manufacturer_name = NULL;
10909 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10910 if (_ptr_manufacturer_url) {
10911 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10913 r->manufacturer_url = NULL;
10915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10916 if (_ptr_hardware_id) {
10917 NDR_PULL_ALLOC(ndr, r->hardware_id);
10919 r->hardware_id = NULL;
10921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10922 if (_ptr_provider) {
10923 NDR_PULL_ALLOC(ndr, r->provider);
10925 r->provider = NULL;
10927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10928 if (_ptr_print_processor) {
10929 NDR_PULL_ALLOC(ndr, r->print_processor);
10931 r->print_processor = NULL;
10933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10934 if (_ptr_vendor_setup) {
10935 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10937 r->vendor_setup = NULL;
10939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
10940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10941 if (_ptr_color_profiles) {
10942 NDR_PULL_ALLOC(ndr, r->color_profiles);
10944 r->color_profiles = NULL;
10946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10947 if (_ptr_inf_path) {
10948 NDR_PULL_ALLOC(ndr, r->inf_path);
10950 r->inf_path = NULL;
10952 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10953 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
10954 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10955 if (_ptr_core_driver_dependencies) {
10956 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10958 r->core_driver_dependencies = NULL;
10960 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10961 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10962 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
10964 if (ndr_flags & NDR_BUFFERS) {
10965 if (r->driver_name) {
10966 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10967 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10968 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
10969 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
10970 size_driver_name_1 = ndr_get_array_size(ndr, &r->driver_name);
10971 length_driver_name_1 = ndr_get_array_length(ndr, &r->driver_name);
10972 if (length_driver_name_1 > size_driver_name_1) {
10973 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_name_1, length_driver_name_1);
10975 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_name_1, sizeof(uint16_t)));
10976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, length_driver_name_1, sizeof(uint16_t), CH_UTF16));
10977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10979 if (r->architecture) {
10980 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10981 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10982 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
10983 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
10984 size_architecture_1 = ndr_get_array_size(ndr, &r->architecture);
10985 length_architecture_1 = ndr_get_array_length(ndr, &r->architecture);
10986 if (length_architecture_1 > size_architecture_1) {
10987 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
10989 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
10990 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
10991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10993 if (r->driver_path) {
10994 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10995 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10996 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
10997 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
10998 size_driver_path_1 = ndr_get_array_size(ndr, &r->driver_path);
10999 length_driver_path_1 = ndr_get_array_length(ndr, &r->driver_path);
11000 if (length_driver_path_1 > size_driver_path_1) {
11001 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_path_1, length_driver_path_1);
11003 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_path_1, sizeof(uint16_t)));
11004 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, length_driver_path_1, sizeof(uint16_t), CH_UTF16));
11005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11007 if (r->data_file) {
11008 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11009 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11010 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
11011 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
11012 size_data_file_1 = ndr_get_array_size(ndr, &r->data_file);
11013 length_data_file_1 = ndr_get_array_length(ndr, &r->data_file);
11014 if (length_data_file_1 > size_data_file_1) {
11015 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_file_1, length_data_file_1);
11017 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_file_1, sizeof(uint16_t)));
11018 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, length_data_file_1, sizeof(uint16_t), CH_UTF16));
11019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11021 if (r->config_file) {
11022 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11023 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11024 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
11025 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
11026 size_config_file_1 = ndr_get_array_size(ndr, &r->config_file);
11027 length_config_file_1 = ndr_get_array_length(ndr, &r->config_file);
11028 if (length_config_file_1 > size_config_file_1) {
11029 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_config_file_1, length_config_file_1);
11031 NDR_CHECK(ndr_check_string_terminator(ndr, length_config_file_1, sizeof(uint16_t)));
11032 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, length_config_file_1, sizeof(uint16_t), CH_UTF16));
11033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11035 if (r->help_file) {
11036 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11037 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11038 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
11039 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
11040 size_help_file_1 = ndr_get_array_size(ndr, &r->help_file);
11041 length_help_file_1 = ndr_get_array_length(ndr, &r->help_file);
11042 if (length_help_file_1 > size_help_file_1) {
11043 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_help_file_1, length_help_file_1);
11045 NDR_CHECK(ndr_check_string_terminator(ndr, length_help_file_1, sizeof(uint16_t)));
11046 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, length_help_file_1, sizeof(uint16_t), CH_UTF16));
11047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11049 if (r->monitor_name) {
11050 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11051 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11052 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
11053 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
11054 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
11055 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
11056 if (length_monitor_name_1 > size_monitor_name_1) {
11057 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
11059 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
11060 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
11061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11063 if (r->default_datatype) {
11064 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11065 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11066 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
11067 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
11068 size_default_datatype_1 = ndr_get_array_size(ndr, &r->default_datatype);
11069 length_default_datatype_1 = ndr_get_array_length(ndr, &r->default_datatype);
11070 if (length_default_datatype_1 > size_default_datatype_1) {
11071 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_default_datatype_1, length_default_datatype_1);
11073 NDR_CHECK(ndr_check_string_terminator(ndr, length_default_datatype_1, sizeof(uint16_t)));
11074 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, length_default_datatype_1, sizeof(uint16_t), CH_UTF16));
11075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11077 if (r->dependent_files) {
11078 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11079 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11080 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
11081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11083 if (r->previous_names) {
11084 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11085 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11086 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
11087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11089 if (r->manufacturer_name) {
11090 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11091 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
11092 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
11093 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
11094 size_manufacturer_name_1 = ndr_get_array_size(ndr, &r->manufacturer_name);
11095 length_manufacturer_name_1 = ndr_get_array_length(ndr, &r->manufacturer_name);
11096 if (length_manufacturer_name_1 > size_manufacturer_name_1) {
11097 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_name_1, length_manufacturer_name_1);
11099 NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_name_1, sizeof(uint16_t)));
11100 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, length_manufacturer_name_1, sizeof(uint16_t), CH_UTF16));
11101 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
11103 if (r->manufacturer_url) {
11104 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
11105 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
11106 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
11107 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
11108 size_manufacturer_url_1 = ndr_get_array_size(ndr, &r->manufacturer_url);
11109 length_manufacturer_url_1 = ndr_get_array_length(ndr, &r->manufacturer_url);
11110 if (length_manufacturer_url_1 > size_manufacturer_url_1) {
11111 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_manufacturer_url_1, length_manufacturer_url_1);
11113 NDR_CHECK(ndr_check_string_terminator(ndr, length_manufacturer_url_1, sizeof(uint16_t)));
11114 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, length_manufacturer_url_1, sizeof(uint16_t), CH_UTF16));
11115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
11117 if (r->hardware_id) {
11118 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
11119 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
11120 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
11121 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
11122 size_hardware_id_1 = ndr_get_array_size(ndr, &r->hardware_id);
11123 length_hardware_id_1 = ndr_get_array_length(ndr, &r->hardware_id);
11124 if (length_hardware_id_1 > size_hardware_id_1) {
11125 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_hardware_id_1, length_hardware_id_1);
11127 NDR_CHECK(ndr_check_string_terminator(ndr, length_hardware_id_1, sizeof(uint16_t)));
11128 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, length_hardware_id_1, sizeof(uint16_t), CH_UTF16));
11129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
11132 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
11133 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
11134 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
11135 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
11136 size_provider_1 = ndr_get_array_size(ndr, &r->provider);
11137 length_provider_1 = ndr_get_array_length(ndr, &r->provider);
11138 if (length_provider_1 > size_provider_1) {
11139 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_provider_1, length_provider_1);
11141 NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
11142 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
11143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
11145 if (r->print_processor) {
11146 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
11147 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
11148 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
11149 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
11150 size_print_processor_1 = ndr_get_array_size(ndr, &r->print_processor);
11151 length_print_processor_1 = ndr_get_array_length(ndr, &r->print_processor);
11152 if (length_print_processor_1 > size_print_processor_1) {
11153 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_1, length_print_processor_1);
11155 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_1, sizeof(uint16_t)));
11156 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, length_print_processor_1, sizeof(uint16_t), CH_UTF16));
11157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
11159 if (r->vendor_setup) {
11160 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
11161 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
11162 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
11163 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
11164 size_vendor_setup_1 = ndr_get_array_size(ndr, &r->vendor_setup);
11165 length_vendor_setup_1 = ndr_get_array_length(ndr, &r->vendor_setup);
11166 if (length_vendor_setup_1 > size_vendor_setup_1) {
11167 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_vendor_setup_1, length_vendor_setup_1);
11169 NDR_CHECK(ndr_check_string_terminator(ndr, length_vendor_setup_1, sizeof(uint16_t)));
11170 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, length_vendor_setup_1, sizeof(uint16_t), CH_UTF16));
11171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
11173 if (r->color_profiles) {
11174 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
11175 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
11176 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
11177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
11180 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11181 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
11182 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
11183 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
11184 size_inf_path_1 = ndr_get_array_size(ndr, &r->inf_path);
11185 length_inf_path_1 = ndr_get_array_length(ndr, &r->inf_path);
11186 if (length_inf_path_1 > size_inf_path_1) {
11187 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_inf_path_1, length_inf_path_1);
11189 NDR_CHECK(ndr_check_string_terminator(ndr, length_inf_path_1, sizeof(uint16_t)));
11190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, length_inf_path_1, sizeof(uint16_t), CH_UTF16));
11191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
11193 if (r->core_driver_dependencies) {
11194 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
11195 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
11196 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
11197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
11200 return NDR_ERR_SUCCESS;
11203 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
11205 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
11206 if (r == NULL) { ndr_print_null(ndr); return; }
11208 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11209 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11211 if (r->driver_name) {
11212 ndr_print_string(ndr, "driver_name", r->driver_name);
11215 ndr_print_ptr(ndr, "architecture", r->architecture);
11217 if (r->architecture) {
11218 ndr_print_string(ndr, "architecture", r->architecture);
11221 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11223 if (r->driver_path) {
11224 ndr_print_string(ndr, "driver_path", r->driver_path);
11227 ndr_print_ptr(ndr, "data_file", r->data_file);
11229 if (r->data_file) {
11230 ndr_print_string(ndr, "data_file", r->data_file);
11233 ndr_print_ptr(ndr, "config_file", r->config_file);
11235 if (r->config_file) {
11236 ndr_print_string(ndr, "config_file", r->config_file);
11239 ndr_print_ptr(ndr, "help_file", r->help_file);
11241 if (r->help_file) {
11242 ndr_print_string(ndr, "help_file", r->help_file);
11245 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11247 if (r->monitor_name) {
11248 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11251 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11253 if (r->default_datatype) {
11254 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11257 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
11258 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11260 if (r->dependent_files) {
11261 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
11264 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
11265 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11267 if (r->previous_names) {
11268 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
11271 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
11272 ndr_print_hyper(ndr, "driver_version", r->driver_version);
11273 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
11275 if (r->manufacturer_name) {
11276 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
11279 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
11281 if (r->manufacturer_url) {
11282 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
11285 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
11287 if (r->hardware_id) {
11288 ndr_print_string(ndr, "hardware_id", r->hardware_id);
11291 ndr_print_ptr(ndr, "provider", r->provider);
11294 ndr_print_string(ndr, "provider", r->provider);
11297 ndr_print_ptr(ndr, "print_processor", r->print_processor);
11299 if (r->print_processor) {
11300 ndr_print_string(ndr, "print_processor", r->print_processor);
11303 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
11305 if (r->vendor_setup) {
11306 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
11309 ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
11310 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
11312 if (r->color_profiles) {
11313 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
11316 ndr_print_ptr(ndr, "inf_path", r->inf_path);
11319 ndr_print_string(ndr, "inf_path", r->inf_path);
11322 ndr_print_spoolss_DriverAttributes(ndr, "printer_driver_attributes", r->printer_driver_attributes);
11323 ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
11324 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
11326 if (r->core_driver_dependencies) {
11327 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
11330 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
11331 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
11335 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
11337 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11338 if (ndr_flags & NDR_SCALARS) {
11339 uint32_t level = ndr_push_get_switch_value(ndr, r);
11340 NDR_CHECK(ndr_push_union_align(ndr, 5));
11341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11342 /* ms_union is always aligned to the largest union arm*/
11343 NDR_CHECK(ndr_push_align(ndr, 5));
11346 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
11354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
11358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
11362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
11366 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
11370 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
11373 if (ndr_flags & NDR_BUFFERS) {
11374 uint32_t level = ndr_push_get_switch_value(ndr, r);
11378 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11384 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
11390 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
11396 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
11402 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
11408 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
11413 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
11416 return NDR_ERR_SUCCESS;
11419 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
11423 TALLOC_CTX *_mem_save_info1_0 = NULL;
11424 uint32_t _ptr_info1;
11425 TALLOC_CTX *_mem_save_info2_0 = NULL;
11426 uint32_t _ptr_info2;
11427 TALLOC_CTX *_mem_save_info3_0 = NULL;
11428 uint32_t _ptr_info3;
11429 TALLOC_CTX *_mem_save_info4_0 = NULL;
11430 uint32_t _ptr_info4;
11431 TALLOC_CTX *_mem_save_info6_0 = NULL;
11432 uint32_t _ptr_info6;
11433 TALLOC_CTX *_mem_save_info8_0 = NULL;
11434 uint32_t _ptr_info8;
11435 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11436 if (ndr_flags & NDR_SCALARS) {
11437 level = ndr_pull_get_switch_value(ndr, r);
11438 NDR_CHECK(ndr_pull_union_align(ndr, 5));
11439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11440 if (_level != level) {
11441 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
11443 /* ms_union is always aligned to the largest union arm*/
11444 NDR_CHECK(ndr_pull_align(ndr, 5));
11447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11449 NDR_PULL_ALLOC(ndr, r->info1);
11456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
11458 NDR_PULL_ALLOC(ndr, r->info2);
11465 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
11467 NDR_PULL_ALLOC(ndr, r->info3);
11474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
11476 NDR_PULL_ALLOC(ndr, r->info4);
11483 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
11485 NDR_PULL_ALLOC(ndr, r->info6);
11492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
11494 NDR_PULL_ALLOC(ndr, r->info8);
11501 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
11504 if (ndr_flags & NDR_BUFFERS) {
11505 /* The token is not needed after this. */
11506 level = ndr_pull_steal_switch_value(ndr, r);
11510 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11511 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11512 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11519 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
11520 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
11521 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
11522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
11528 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
11529 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
11530 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
11531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
11537 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
11538 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
11539 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
11540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
11546 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
11547 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
11548 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
11549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
11555 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
11556 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
11557 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
11558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
11563 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
11566 return NDR_ERR_SUCCESS;
11569 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
11572 level = ndr_print_get_switch_value(ndr, r);
11573 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
11576 ndr_print_ptr(ndr, "info1", r->info1);
11579 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
11585 ndr_print_ptr(ndr, "info2", r->info2);
11588 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
11594 ndr_print_ptr(ndr, "info3", r->info3);
11597 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
11603 ndr_print_ptr(ndr, "info4", r->info4);
11606 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
11612 ndr_print_ptr(ndr, "info6", r->info6);
11615 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
11621 ndr_print_ptr(ndr, "info8", r->info8);
11624 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
11630 ndr_print_bad_level(ndr, name, level);
11634 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
11636 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11637 if (ndr_flags & NDR_SCALARS) {
11638 NDR_CHECK(ndr_push_align(ndr, 5));
11639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
11640 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
11641 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
11642 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11644 if (ndr_flags & NDR_BUFFERS) {
11645 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
11647 return NDR_ERR_SUCCESS;
11650 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
11652 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11653 if (ndr_flags & NDR_SCALARS) {
11654 NDR_CHECK(ndr_pull_align(ndr, 5));
11655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
11656 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
11657 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
11658 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11660 if (ndr_flags & NDR_BUFFERS) {
11661 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
11663 return NDR_ERR_SUCCESS;
11666 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
11668 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
11669 if (r == NULL) { ndr_print_null(ndr); return; }
11671 ndr_print_uint32(ndr, "level", r->level);
11672 ndr_print_set_switch_value(ndr, &r->info, r->level);
11673 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
11677 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
11679 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11680 if (ndr_flags & NDR_SCALARS) {
11681 NDR_CHECK(ndr_push_align(ndr, 5));
11683 uint32_t _flags_save_string = ndr->flags;
11684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11685 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11686 ndr->flags = _flags_save_string;
11688 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11690 if (ndr_flags & NDR_BUFFERS) {
11692 uint32_t _flags_save_string = ndr->flags;
11693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11694 if (r->driver_name) {
11695 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11696 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11697 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11699 ndr->flags = _flags_save_string;
11702 return NDR_ERR_SUCCESS;
11705 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
11707 uint32_t _ptr_driver_name;
11708 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
11709 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11710 if (ndr_flags & NDR_SCALARS) {
11711 NDR_CHECK(ndr_pull_align(ndr, 5));
11713 uint32_t _flags_save_string = ndr->flags;
11714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11716 if (_ptr_driver_name) {
11717 NDR_PULL_ALLOC(ndr, r->driver_name);
11718 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11720 r->driver_name = NULL;
11722 ndr->flags = _flags_save_string;
11724 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11726 if (ndr_flags & NDR_BUFFERS) {
11728 uint32_t _flags_save_string = ndr->flags;
11729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11730 if (r->driver_name) {
11731 uint32_t _relative_save_offset;
11732 _relative_save_offset = ndr->offset;
11733 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11734 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11735 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11736 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11738 if (ndr->offset > ndr->relative_highest_offset) {
11739 ndr->relative_highest_offset = ndr->offset;
11741 ndr->offset = _relative_save_offset;
11743 ndr->flags = _flags_save_string;
11746 return NDR_ERR_SUCCESS;
11749 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
11751 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
11752 if (r == NULL) { ndr_print_null(ndr); return; }
11754 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11756 if (r->driver_name) {
11757 ndr_print_string(ndr, "driver_name", r->driver_name);
11763 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, int flags)
11765 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1);
11768 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
11770 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
11771 if (ndr_flags & NDR_SCALARS) {
11772 NDR_CHECK(ndr_push_align(ndr, 5));
11773 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11775 uint32_t _flags_save_string = ndr->flags;
11776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11777 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11778 ndr->flags = _flags_save_string;
11781 uint32_t _flags_save_string = ndr->flags;
11782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11783 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11784 ndr->flags = _flags_save_string;
11787 uint32_t _flags_save_string = ndr->flags;
11788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11789 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11790 ndr->flags = _flags_save_string;
11793 uint32_t _flags_save_string = ndr->flags;
11794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11795 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11796 ndr->flags = _flags_save_string;
11799 uint32_t _flags_save_string = ndr->flags;
11800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11801 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11802 ndr->flags = _flags_save_string;
11804 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
11806 if (ndr_flags & NDR_BUFFERS) {
11808 uint32_t _flags_save_string = ndr->flags;
11809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11810 if (r->driver_name) {
11811 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
11812 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11813 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
11815 ndr->flags = _flags_save_string;
11818 uint32_t _flags_save_string = ndr->flags;
11819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11820 if (r->architecture) {
11821 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
11822 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11823 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
11825 ndr->flags = _flags_save_string;
11828 uint32_t _flags_save_string = ndr->flags;
11829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11830 if (r->driver_path) {
11831 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
11832 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11833 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
11835 ndr->flags = _flags_save_string;
11838 uint32_t _flags_save_string = ndr->flags;
11839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11840 if (r->data_file) {
11841 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
11842 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11843 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
11845 ndr->flags = _flags_save_string;
11848 uint32_t _flags_save_string = ndr->flags;
11849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11850 if (r->config_file) {
11851 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
11852 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11853 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
11855 ndr->flags = _flags_save_string;
11858 return NDR_ERR_SUCCESS;
11861 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
11863 uint32_t _ptr_driver_name;
11864 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
11865 uint32_t _ptr_architecture;
11866 TALLOC_CTX *_mem_save_architecture_0 = NULL;
11867 uint32_t _ptr_driver_path;
11868 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
11869 uint32_t _ptr_data_file;
11870 TALLOC_CTX *_mem_save_data_file_0 = NULL;
11871 uint32_t _ptr_config_file;
11872 TALLOC_CTX *_mem_save_config_file_0 = NULL;
11873 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
11874 if (ndr_flags & NDR_SCALARS) {
11875 NDR_CHECK(ndr_pull_align(ndr, 5));
11876 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11878 uint32_t _flags_save_string = ndr->flags;
11879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11881 if (_ptr_driver_name) {
11882 NDR_PULL_ALLOC(ndr, r->driver_name);
11883 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11885 r->driver_name = NULL;
11887 ndr->flags = _flags_save_string;
11890 uint32_t _flags_save_string = ndr->flags;
11891 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11893 if (_ptr_architecture) {
11894 NDR_PULL_ALLOC(ndr, r->architecture);
11895 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11897 r->architecture = NULL;
11899 ndr->flags = _flags_save_string;
11902 uint32_t _flags_save_string = ndr->flags;
11903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11905 if (_ptr_driver_path) {
11906 NDR_PULL_ALLOC(ndr, r->driver_path);
11907 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11909 r->driver_path = NULL;
11911 ndr->flags = _flags_save_string;
11914 uint32_t _flags_save_string = ndr->flags;
11915 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11917 if (_ptr_data_file) {
11918 NDR_PULL_ALLOC(ndr, r->data_file);
11919 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11921 r->data_file = NULL;
11923 ndr->flags = _flags_save_string;
11926 uint32_t _flags_save_string = ndr->flags;
11927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11929 if (_ptr_config_file) {
11930 NDR_PULL_ALLOC(ndr, r->config_file);
11931 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11933 r->config_file = NULL;
11935 ndr->flags = _flags_save_string;
11937 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
11939 if (ndr_flags & NDR_BUFFERS) {
11941 uint32_t _flags_save_string = ndr->flags;
11942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11943 if (r->driver_name) {
11944 uint32_t _relative_save_offset;
11945 _relative_save_offset = ndr->offset;
11946 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11947 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11948 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11949 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11951 if (ndr->offset > ndr->relative_highest_offset) {
11952 ndr->relative_highest_offset = ndr->offset;
11954 ndr->offset = _relative_save_offset;
11956 ndr->flags = _flags_save_string;
11959 uint32_t _flags_save_string = ndr->flags;
11960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11961 if (r->architecture) {
11962 uint32_t _relative_save_offset;
11963 _relative_save_offset = ndr->offset;
11964 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11965 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11966 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11967 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11969 if (ndr->offset > ndr->relative_highest_offset) {
11970 ndr->relative_highest_offset = ndr->offset;
11972 ndr->offset = _relative_save_offset;
11974 ndr->flags = _flags_save_string;
11977 uint32_t _flags_save_string = ndr->flags;
11978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11979 if (r->driver_path) {
11980 uint32_t _relative_save_offset;
11981 _relative_save_offset = ndr->offset;
11982 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11983 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11984 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11985 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11987 if (ndr->offset > ndr->relative_highest_offset) {
11988 ndr->relative_highest_offset = ndr->offset;
11990 ndr->offset = _relative_save_offset;
11992 ndr->flags = _flags_save_string;
11995 uint32_t _flags_save_string = ndr->flags;
11996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
11997 if (r->data_file) {
11998 uint32_t _relative_save_offset;
11999 _relative_save_offset = ndr->offset;
12000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12001 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12002 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12005 if (ndr->offset > ndr->relative_highest_offset) {
12006 ndr->relative_highest_offset = ndr->offset;
12008 ndr->offset = _relative_save_offset;
12010 ndr->flags = _flags_save_string;
12013 uint32_t _flags_save_string = ndr->flags;
12014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12015 if (r->config_file) {
12016 uint32_t _relative_save_offset;
12017 _relative_save_offset = ndr->offset;
12018 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12019 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12020 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12021 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12023 if (ndr->offset > ndr->relative_highest_offset) {
12024 ndr->relative_highest_offset = ndr->offset;
12026 ndr->offset = _relative_save_offset;
12028 ndr->flags = _flags_save_string;
12031 return NDR_ERR_SUCCESS;
12034 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
12036 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
12037 if (r == NULL) { ndr_print_null(ndr); return; }
12039 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12040 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12042 if (r->driver_name) {
12043 ndr_print_string(ndr, "driver_name", r->driver_name);
12046 ndr_print_ptr(ndr, "architecture", r->architecture);
12048 if (r->architecture) {
12049 ndr_print_string(ndr, "architecture", r->architecture);
12052 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12054 if (r->driver_path) {
12055 ndr_print_string(ndr, "driver_path", r->driver_path);
12058 ndr_print_ptr(ndr, "data_file", r->data_file);
12060 if (r->data_file) {
12061 ndr_print_string(ndr, "data_file", r->data_file);
12064 ndr_print_ptr(ndr, "config_file", r->config_file);
12066 if (r->config_file) {
12067 ndr_print_string(ndr, "config_file", r->config_file);
12073 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, int flags)
12075 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2);
12078 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
12080 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12081 if (ndr_flags & NDR_SCALARS) {
12082 NDR_CHECK(ndr_push_align(ndr, 5));
12083 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12085 uint32_t _flags_save_string = ndr->flags;
12086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12087 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12088 ndr->flags = _flags_save_string;
12091 uint32_t _flags_save_string = ndr->flags;
12092 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12093 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12094 ndr->flags = _flags_save_string;
12097 uint32_t _flags_save_string = ndr->flags;
12098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12099 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12100 ndr->flags = _flags_save_string;
12103 uint32_t _flags_save_string = ndr->flags;
12104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12105 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12106 ndr->flags = _flags_save_string;
12109 uint32_t _flags_save_string = ndr->flags;
12110 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12111 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12112 ndr->flags = _flags_save_string;
12115 uint32_t _flags_save_string = ndr->flags;
12116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12117 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12118 ndr->flags = _flags_save_string;
12121 uint32_t _flags_save_string_array = ndr->flags;
12122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12123 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12124 ndr->flags = _flags_save_string_array;
12127 uint32_t _flags_save_string = ndr->flags;
12128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12129 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12130 ndr->flags = _flags_save_string;
12133 uint32_t _flags_save_string = ndr->flags;
12134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12135 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12136 ndr->flags = _flags_save_string;
12138 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12140 if (ndr_flags & NDR_BUFFERS) {
12142 uint32_t _flags_save_string = ndr->flags;
12143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12144 if (r->driver_name) {
12145 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12146 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12147 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12149 ndr->flags = _flags_save_string;
12152 uint32_t _flags_save_string = ndr->flags;
12153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12154 if (r->architecture) {
12155 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12156 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12157 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12159 ndr->flags = _flags_save_string;
12162 uint32_t _flags_save_string = ndr->flags;
12163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12164 if (r->driver_path) {
12165 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12166 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12167 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12169 ndr->flags = _flags_save_string;
12172 uint32_t _flags_save_string = ndr->flags;
12173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12174 if (r->data_file) {
12175 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12176 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12177 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12179 ndr->flags = _flags_save_string;
12182 uint32_t _flags_save_string = ndr->flags;
12183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12184 if (r->config_file) {
12185 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12186 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12187 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12189 ndr->flags = _flags_save_string;
12192 uint32_t _flags_save_string = ndr->flags;
12193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12194 if (r->help_file) {
12195 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12196 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12197 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12199 ndr->flags = _flags_save_string;
12202 uint32_t _flags_save_string_array = ndr->flags;
12203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12204 if (r->dependent_files) {
12205 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12206 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12207 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12209 ndr->flags = _flags_save_string_array;
12212 uint32_t _flags_save_string = ndr->flags;
12213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12214 if (r->monitor_name) {
12215 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12216 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12217 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12219 ndr->flags = _flags_save_string;
12222 uint32_t _flags_save_string = ndr->flags;
12223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12224 if (r->default_datatype) {
12225 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12226 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12227 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12229 ndr->flags = _flags_save_string;
12232 return NDR_ERR_SUCCESS;
12235 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
12237 uint32_t _ptr_driver_name;
12238 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
12239 uint32_t _ptr_architecture;
12240 TALLOC_CTX *_mem_save_architecture_0 = NULL;
12241 uint32_t _ptr_driver_path;
12242 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
12243 uint32_t _ptr_data_file;
12244 TALLOC_CTX *_mem_save_data_file_0 = NULL;
12245 uint32_t _ptr_config_file;
12246 TALLOC_CTX *_mem_save_config_file_0 = NULL;
12247 uint32_t _ptr_help_file;
12248 TALLOC_CTX *_mem_save_help_file_0 = NULL;
12249 uint32_t _ptr_dependent_files;
12250 TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
12251 uint32_t _ptr_monitor_name;
12252 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
12253 uint32_t _ptr_default_datatype;
12254 TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
12255 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12256 if (ndr_flags & NDR_SCALARS) {
12257 NDR_CHECK(ndr_pull_align(ndr, 5));
12258 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12260 uint32_t _flags_save_string = ndr->flags;
12261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12263 if (_ptr_driver_name) {
12264 NDR_PULL_ALLOC(ndr, r->driver_name);
12265 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12267 r->driver_name = NULL;
12269 ndr->flags = _flags_save_string;
12272 uint32_t _flags_save_string = ndr->flags;
12273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12275 if (_ptr_architecture) {
12276 NDR_PULL_ALLOC(ndr, r->architecture);
12277 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12279 r->architecture = NULL;
12281 ndr->flags = _flags_save_string;
12284 uint32_t _flags_save_string = ndr->flags;
12285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12287 if (_ptr_driver_path) {
12288 NDR_PULL_ALLOC(ndr, r->driver_path);
12289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12291 r->driver_path = NULL;
12293 ndr->flags = _flags_save_string;
12296 uint32_t _flags_save_string = ndr->flags;
12297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12299 if (_ptr_data_file) {
12300 NDR_PULL_ALLOC(ndr, r->data_file);
12301 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12303 r->data_file = NULL;
12305 ndr->flags = _flags_save_string;
12308 uint32_t _flags_save_string = ndr->flags;
12309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12310 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12311 if (_ptr_config_file) {
12312 NDR_PULL_ALLOC(ndr, r->config_file);
12313 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12315 r->config_file = NULL;
12317 ndr->flags = _flags_save_string;
12320 uint32_t _flags_save_string = ndr->flags;
12321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12323 if (_ptr_help_file) {
12324 NDR_PULL_ALLOC(ndr, r->help_file);
12325 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12327 r->help_file = NULL;
12329 ndr->flags = _flags_save_string;
12332 uint32_t _flags_save_string_array = ndr->flags;
12333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12335 if (_ptr_dependent_files) {
12336 NDR_PULL_ALLOC(ndr, r->dependent_files);
12337 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12339 r->dependent_files = NULL;
12341 ndr->flags = _flags_save_string_array;
12344 uint32_t _flags_save_string = ndr->flags;
12345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12346 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12347 if (_ptr_monitor_name) {
12348 NDR_PULL_ALLOC(ndr, r->monitor_name);
12349 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12351 r->monitor_name = NULL;
12353 ndr->flags = _flags_save_string;
12356 uint32_t _flags_save_string = ndr->flags;
12357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12359 if (_ptr_default_datatype) {
12360 NDR_PULL_ALLOC(ndr, r->default_datatype);
12361 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12363 r->default_datatype = NULL;
12365 ndr->flags = _flags_save_string;
12367 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12369 if (ndr_flags & NDR_BUFFERS) {
12371 uint32_t _flags_save_string = ndr->flags;
12372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12373 if (r->driver_name) {
12374 uint32_t _relative_save_offset;
12375 _relative_save_offset = ndr->offset;
12376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12377 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12378 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12379 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12381 if (ndr->offset > ndr->relative_highest_offset) {
12382 ndr->relative_highest_offset = ndr->offset;
12384 ndr->offset = _relative_save_offset;
12386 ndr->flags = _flags_save_string;
12389 uint32_t _flags_save_string = ndr->flags;
12390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12391 if (r->architecture) {
12392 uint32_t _relative_save_offset;
12393 _relative_save_offset = ndr->offset;
12394 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12395 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12396 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12397 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12399 if (ndr->offset > ndr->relative_highest_offset) {
12400 ndr->relative_highest_offset = ndr->offset;
12402 ndr->offset = _relative_save_offset;
12404 ndr->flags = _flags_save_string;
12407 uint32_t _flags_save_string = ndr->flags;
12408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12409 if (r->driver_path) {
12410 uint32_t _relative_save_offset;
12411 _relative_save_offset = ndr->offset;
12412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12413 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12414 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12417 if (ndr->offset > ndr->relative_highest_offset) {
12418 ndr->relative_highest_offset = ndr->offset;
12420 ndr->offset = _relative_save_offset;
12422 ndr->flags = _flags_save_string;
12425 uint32_t _flags_save_string = ndr->flags;
12426 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12427 if (r->data_file) {
12428 uint32_t _relative_save_offset;
12429 _relative_save_offset = ndr->offset;
12430 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12431 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12432 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12433 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12435 if (ndr->offset > ndr->relative_highest_offset) {
12436 ndr->relative_highest_offset = ndr->offset;
12438 ndr->offset = _relative_save_offset;
12440 ndr->flags = _flags_save_string;
12443 uint32_t _flags_save_string = ndr->flags;
12444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12445 if (r->config_file) {
12446 uint32_t _relative_save_offset;
12447 _relative_save_offset = ndr->offset;
12448 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12449 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12450 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12451 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12453 if (ndr->offset > ndr->relative_highest_offset) {
12454 ndr->relative_highest_offset = ndr->offset;
12456 ndr->offset = _relative_save_offset;
12458 ndr->flags = _flags_save_string;
12461 uint32_t _flags_save_string = ndr->flags;
12462 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12463 if (r->help_file) {
12464 uint32_t _relative_save_offset;
12465 _relative_save_offset = ndr->offset;
12466 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12467 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12468 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12469 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12471 if (ndr->offset > ndr->relative_highest_offset) {
12472 ndr->relative_highest_offset = ndr->offset;
12474 ndr->offset = _relative_save_offset;
12476 ndr->flags = _flags_save_string;
12479 uint32_t _flags_save_string_array = ndr->flags;
12480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12481 if (r->dependent_files) {
12482 uint32_t _relative_save_offset;
12483 _relative_save_offset = ndr->offset;
12484 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12485 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12486 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12487 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12489 if (ndr->offset > ndr->relative_highest_offset) {
12490 ndr->relative_highest_offset = ndr->offset;
12492 ndr->offset = _relative_save_offset;
12494 ndr->flags = _flags_save_string_array;
12497 uint32_t _flags_save_string = ndr->flags;
12498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12499 if (r->monitor_name) {
12500 uint32_t _relative_save_offset;
12501 _relative_save_offset = ndr->offset;
12502 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12503 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12504 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12505 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12507 if (ndr->offset > ndr->relative_highest_offset) {
12508 ndr->relative_highest_offset = ndr->offset;
12510 ndr->offset = _relative_save_offset;
12512 ndr->flags = _flags_save_string;
12515 uint32_t _flags_save_string = ndr->flags;
12516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12517 if (r->default_datatype) {
12518 uint32_t _relative_save_offset;
12519 _relative_save_offset = ndr->offset;
12520 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12521 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12522 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12523 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12525 if (ndr->offset > ndr->relative_highest_offset) {
12526 ndr->relative_highest_offset = ndr->offset;
12528 ndr->offset = _relative_save_offset;
12530 ndr->flags = _flags_save_string;
12533 return NDR_ERR_SUCCESS;
12536 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
12538 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
12539 if (r == NULL) { ndr_print_null(ndr); return; }
12541 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12542 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12544 if (r->driver_name) {
12545 ndr_print_string(ndr, "driver_name", r->driver_name);
12548 ndr_print_ptr(ndr, "architecture", r->architecture);
12550 if (r->architecture) {
12551 ndr_print_string(ndr, "architecture", r->architecture);
12554 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12556 if (r->driver_path) {
12557 ndr_print_string(ndr, "driver_path", r->driver_path);
12560 ndr_print_ptr(ndr, "data_file", r->data_file);
12562 if (r->data_file) {
12563 ndr_print_string(ndr, "data_file", r->data_file);
12566 ndr_print_ptr(ndr, "config_file", r->config_file);
12568 if (r->config_file) {
12569 ndr_print_string(ndr, "config_file", r->config_file);
12572 ndr_print_ptr(ndr, "help_file", r->help_file);
12574 if (r->help_file) {
12575 ndr_print_string(ndr, "help_file", r->help_file);
12578 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12580 if (r->dependent_files) {
12581 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12584 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12586 if (r->monitor_name) {
12587 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12590 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12592 if (r->default_datatype) {
12593 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12599 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, int flags)
12601 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3);
12604 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
12606 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
12607 if (ndr_flags & NDR_SCALARS) {
12608 NDR_CHECK(ndr_push_align(ndr, 5));
12609 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12611 uint32_t _flags_save_string = ndr->flags;
12612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12613 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12614 ndr->flags = _flags_save_string;
12617 uint32_t _flags_save_string = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12620 ndr->flags = _flags_save_string;
12623 uint32_t _flags_save_string = ndr->flags;
12624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12625 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12626 ndr->flags = _flags_save_string;
12629 uint32_t _flags_save_string = ndr->flags;
12630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12631 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12632 ndr->flags = _flags_save_string;
12635 uint32_t _flags_save_string = ndr->flags;
12636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12638 ndr->flags = _flags_save_string;
12641 uint32_t _flags_save_string = ndr->flags;
12642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12644 ndr->flags = _flags_save_string;
12647 uint32_t _flags_save_string_array = ndr->flags;
12648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12649 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12650 ndr->flags = _flags_save_string_array;
12653 uint32_t _flags_save_string = ndr->flags;
12654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12655 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12656 ndr->flags = _flags_save_string;
12659 uint32_t _flags_save_string = ndr->flags;
12660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12661 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12662 ndr->flags = _flags_save_string;
12665 uint32_t _flags_save_string_array = ndr->flags;
12666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12668 ndr->flags = _flags_save_string_array;
12670 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
12672 if (ndr_flags & NDR_BUFFERS) {
12674 uint32_t _flags_save_string = ndr->flags;
12675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12676 if (r->driver_name) {
12677 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
12678 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12679 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
12681 ndr->flags = _flags_save_string;
12684 uint32_t _flags_save_string = ndr->flags;
12685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12686 if (r->architecture) {
12687 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
12688 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12689 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
12691 ndr->flags = _flags_save_string;
12694 uint32_t _flags_save_string = ndr->flags;
12695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12696 if (r->driver_path) {
12697 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
12698 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12699 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
12701 ndr->flags = _flags_save_string;
12704 uint32_t _flags_save_string = ndr->flags;
12705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12706 if (r->data_file) {
12707 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
12708 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12709 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
12711 ndr->flags = _flags_save_string;
12714 uint32_t _flags_save_string = ndr->flags;
12715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12716 if (r->config_file) {
12717 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
12718 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12719 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
12721 ndr->flags = _flags_save_string;
12724 uint32_t _flags_save_string = ndr->flags;
12725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12726 if (r->help_file) {
12727 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
12728 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12729 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
12731 ndr->flags = _flags_save_string;
12734 uint32_t _flags_save_string_array = ndr->flags;
12735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12736 if (r->dependent_files) {
12737 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
12738 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12739 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
12741 ndr->flags = _flags_save_string_array;
12744 uint32_t _flags_save_string = ndr->flags;
12745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12746 if (r->monitor_name) {
12747 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
12748 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12749 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
12751 ndr->flags = _flags_save_string;
12754 uint32_t _flags_save_string = ndr->flags;
12755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12756 if (r->default_datatype) {
12757 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
12758 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12759 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
12761 ndr->flags = _flags_save_string;
12764 uint32_t _flags_save_string_array = ndr->flags;
12765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12766 if (r->previous_names) {
12767 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
12768 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12769 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
12771 ndr->flags = _flags_save_string_array;
12774 return NDR_ERR_SUCCESS;
12777 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
12779 uint32_t _ptr_driver_name;
12780 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
12781 uint32_t _ptr_architecture;
12782 TALLOC_CTX *_mem_save_architecture_0 = NULL;
12783 uint32_t _ptr_driver_path;
12784 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
12785 uint32_t _ptr_data_file;
12786 TALLOC_CTX *_mem_save_data_file_0 = NULL;
12787 uint32_t _ptr_config_file;
12788 TALLOC_CTX *_mem_save_config_file_0 = NULL;
12789 uint32_t _ptr_help_file;
12790 TALLOC_CTX *_mem_save_help_file_0 = NULL;
12791 uint32_t _ptr_dependent_files;
12792 TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
12793 uint32_t _ptr_monitor_name;
12794 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
12795 uint32_t _ptr_default_datatype;
12796 TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
12797 uint32_t _ptr_previous_names;
12798 TALLOC_CTX *_mem_save_previous_names_0 = NULL;
12799 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
12800 if (ndr_flags & NDR_SCALARS) {
12801 NDR_CHECK(ndr_pull_align(ndr, 5));
12802 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12804 uint32_t _flags_save_string = ndr->flags;
12805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12807 if (_ptr_driver_name) {
12808 NDR_PULL_ALLOC(ndr, r->driver_name);
12809 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12811 r->driver_name = NULL;
12813 ndr->flags = _flags_save_string;
12816 uint32_t _flags_save_string = ndr->flags;
12817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12819 if (_ptr_architecture) {
12820 NDR_PULL_ALLOC(ndr, r->architecture);
12821 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12823 r->architecture = NULL;
12825 ndr->flags = _flags_save_string;
12828 uint32_t _flags_save_string = ndr->flags;
12829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12831 if (_ptr_driver_path) {
12832 NDR_PULL_ALLOC(ndr, r->driver_path);
12833 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12835 r->driver_path = NULL;
12837 ndr->flags = _flags_save_string;
12840 uint32_t _flags_save_string = ndr->flags;
12841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12843 if (_ptr_data_file) {
12844 NDR_PULL_ALLOC(ndr, r->data_file);
12845 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12847 r->data_file = 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|LIBNDR_FLAG_ALIGN2);
12854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12855 if (_ptr_config_file) {
12856 NDR_PULL_ALLOC(ndr, r->config_file);
12857 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12859 r->config_file = 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|LIBNDR_FLAG_ALIGN2);
12866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12867 if (_ptr_help_file) {
12868 NDR_PULL_ALLOC(ndr, r->help_file);
12869 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12871 r->help_file = NULL;
12873 ndr->flags = _flags_save_string;
12876 uint32_t _flags_save_string_array = ndr->flags;
12877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12879 if (_ptr_dependent_files) {
12880 NDR_PULL_ALLOC(ndr, r->dependent_files);
12881 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12883 r->dependent_files = NULL;
12885 ndr->flags = _flags_save_string_array;
12888 uint32_t _flags_save_string = ndr->flags;
12889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12891 if (_ptr_monitor_name) {
12892 NDR_PULL_ALLOC(ndr, r->monitor_name);
12893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12895 r->monitor_name = NULL;
12897 ndr->flags = _flags_save_string;
12900 uint32_t _flags_save_string = ndr->flags;
12901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12903 if (_ptr_default_datatype) {
12904 NDR_PULL_ALLOC(ndr, r->default_datatype);
12905 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12907 r->default_datatype = NULL;
12909 ndr->flags = _flags_save_string;
12912 uint32_t _flags_save_string_array = ndr->flags;
12913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12915 if (_ptr_previous_names) {
12916 NDR_PULL_ALLOC(ndr, r->previous_names);
12917 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12919 r->previous_names = NULL;
12921 ndr->flags = _flags_save_string_array;
12923 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
12925 if (ndr_flags & NDR_BUFFERS) {
12927 uint32_t _flags_save_string = ndr->flags;
12928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
12929 if (r->driver_name) {
12930 uint32_t _relative_save_offset;
12931 _relative_save_offset = ndr->offset;
12932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12933 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12934 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_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|LIBNDR_FLAG_ALIGN2);
12947 if (r->architecture) {
12948 uint32_t _relative_save_offset;
12949 _relative_save_offset = ndr->offset;
12950 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12951 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12952 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12953 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_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|LIBNDR_FLAG_ALIGN2);
12965 if (r->driver_path) {
12966 uint32_t _relative_save_offset;
12967 _relative_save_offset = ndr->offset;
12968 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12969 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12970 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12971 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_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|LIBNDR_FLAG_ALIGN2);
12983 if (r->data_file) {
12984 uint32_t _relative_save_offset;
12985 _relative_save_offset = ndr->offset;
12986 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12987 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12988 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12989 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_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 = ndr->flags;
13000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13001 if (r->config_file) {
13002 uint32_t _relative_save_offset;
13003 _relative_save_offset = ndr->offset;
13004 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13005 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13006 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13007 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_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;
13017 uint32_t _flags_save_string = ndr->flags;
13018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13019 if (r->help_file) {
13020 uint32_t _relative_save_offset;
13021 _relative_save_offset = ndr->offset;
13022 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
13023 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13024 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
13025 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
13026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_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_array = ndr->flags;
13036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13037 if (r->dependent_files) {
13038 uint32_t _relative_save_offset;
13039 _relative_save_offset = ndr->offset;
13040 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
13041 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
13042 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
13043 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
13044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_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_array;
13053 uint32_t _flags_save_string = ndr->flags;
13054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13055 if (r->monitor_name) {
13056 uint32_t _relative_save_offset;
13057 _relative_save_offset = ndr->offset;
13058 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13059 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13060 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13061 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_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;
13071 uint32_t _flags_save_string = ndr->flags;
13072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13073 if (r->default_datatype) {
13074 uint32_t _relative_save_offset;
13075 _relative_save_offset = ndr->offset;
13076 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
13077 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
13078 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
13079 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
13080 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_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_array = ndr->flags;
13090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13091 if (r->previous_names) {
13092 uint32_t _relative_save_offset;
13093 _relative_save_offset = ndr->offset;
13094 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
13095 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
13096 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
13097 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
13098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_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_array;
13107 return NDR_ERR_SUCCESS;
13110 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
13112 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
13113 if (r == NULL) { ndr_print_null(ndr); return; }
13115 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13116 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13118 if (r->driver_name) {
13119 ndr_print_string(ndr, "driver_name", r->driver_name);
13122 ndr_print_ptr(ndr, "architecture", r->architecture);
13124 if (r->architecture) {
13125 ndr_print_string(ndr, "architecture", r->architecture);
13128 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13130 if (r->driver_path) {
13131 ndr_print_string(ndr, "driver_path", r->driver_path);
13134 ndr_print_ptr(ndr, "data_file", r->data_file);
13136 if (r->data_file) {
13137 ndr_print_string(ndr, "data_file", r->data_file);
13140 ndr_print_ptr(ndr, "config_file", r->config_file);
13142 if (r->config_file) {
13143 ndr_print_string(ndr, "config_file", r->config_file);
13146 ndr_print_ptr(ndr, "help_file", r->help_file);
13148 if (r->help_file) {
13149 ndr_print_string(ndr, "help_file", r->help_file);
13152 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13154 if (r->dependent_files) {
13155 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13158 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13160 if (r->monitor_name) {
13161 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13164 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13166 if (r->default_datatype) {
13167 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13170 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13172 if (r->previous_names) {
13173 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13179 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, int flags)
13181 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4);
13184 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
13186 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13187 if (ndr_flags & NDR_SCALARS) {
13188 NDR_CHECK(ndr_push_align(ndr, 5));
13189 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13191 uint32_t _flags_save_string = ndr->flags;
13192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13193 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13194 ndr->flags = _flags_save_string;
13197 uint32_t _flags_save_string = ndr->flags;
13198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13200 ndr->flags = _flags_save_string;
13203 uint32_t _flags_save_string = ndr->flags;
13204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13205 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13206 ndr->flags = _flags_save_string;
13209 uint32_t _flags_save_string = ndr->flags;
13210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13211 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13212 ndr->flags = _flags_save_string;
13215 uint32_t _flags_save_string = ndr->flags;
13216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13217 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13218 ndr->flags = _flags_save_string;
13220 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->driver_attributes));
13221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
13222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
13223 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
13225 if (ndr_flags & NDR_BUFFERS) {
13227 uint32_t _flags_save_string = ndr->flags;
13228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13229 if (r->driver_name) {
13230 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13231 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13232 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13234 ndr->flags = _flags_save_string;
13237 uint32_t _flags_save_string = ndr->flags;
13238 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13239 if (r->architecture) {
13240 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13241 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13242 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
13244 ndr->flags = _flags_save_string;
13247 uint32_t _flags_save_string = ndr->flags;
13248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13249 if (r->driver_path) {
13250 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13251 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13252 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
13254 ndr->flags = _flags_save_string;
13257 uint32_t _flags_save_string = ndr->flags;
13258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13259 if (r->data_file) {
13260 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13261 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13262 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
13264 ndr->flags = _flags_save_string;
13267 uint32_t _flags_save_string = ndr->flags;
13268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13269 if (r->config_file) {
13270 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13271 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13272 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
13274 ndr->flags = _flags_save_string;
13277 return NDR_ERR_SUCCESS;
13280 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
13282 uint32_t _ptr_driver_name;
13283 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
13284 uint32_t _ptr_architecture;
13285 TALLOC_CTX *_mem_save_architecture_0 = NULL;
13286 uint32_t _ptr_driver_path;
13287 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
13288 uint32_t _ptr_data_file;
13289 TALLOC_CTX *_mem_save_data_file_0 = NULL;
13290 uint32_t _ptr_config_file;
13291 TALLOC_CTX *_mem_save_config_file_0 = NULL;
13292 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13293 if (ndr_flags & NDR_SCALARS) {
13294 NDR_CHECK(ndr_pull_align(ndr, 5));
13295 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13297 uint32_t _flags_save_string = ndr->flags;
13298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13300 if (_ptr_driver_name) {
13301 NDR_PULL_ALLOC(ndr, r->driver_name);
13302 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13304 r->driver_name = NULL;
13306 ndr->flags = _flags_save_string;
13309 uint32_t _flags_save_string = ndr->flags;
13310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13311 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13312 if (_ptr_architecture) {
13313 NDR_PULL_ALLOC(ndr, r->architecture);
13314 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13316 r->architecture = NULL;
13318 ndr->flags = _flags_save_string;
13321 uint32_t _flags_save_string = ndr->flags;
13322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13324 if (_ptr_driver_path) {
13325 NDR_PULL_ALLOC(ndr, r->driver_path);
13326 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13328 r->driver_path = NULL;
13330 ndr->flags = _flags_save_string;
13333 uint32_t _flags_save_string = ndr->flags;
13334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13335 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13336 if (_ptr_data_file) {
13337 NDR_PULL_ALLOC(ndr, r->data_file);
13338 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13340 r->data_file = NULL;
13342 ndr->flags = _flags_save_string;
13345 uint32_t _flags_save_string = ndr->flags;
13346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13347 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13348 if (_ptr_config_file) {
13349 NDR_PULL_ALLOC(ndr, r->config_file);
13350 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13352 r->config_file = NULL;
13354 ndr->flags = _flags_save_string;
13356 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->driver_attributes));
13357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
13358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
13359 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
13361 if (ndr_flags & NDR_BUFFERS) {
13363 uint32_t _flags_save_string = ndr->flags;
13364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13365 if (r->driver_name) {
13366 uint32_t _relative_save_offset;
13367 _relative_save_offset = ndr->offset;
13368 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13369 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13370 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13371 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13373 if (ndr->offset > ndr->relative_highest_offset) {
13374 ndr->relative_highest_offset = ndr->offset;
13376 ndr->offset = _relative_save_offset;
13378 ndr->flags = _flags_save_string;
13381 uint32_t _flags_save_string = ndr->flags;
13382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13383 if (r->architecture) {
13384 uint32_t _relative_save_offset;
13385 _relative_save_offset = ndr->offset;
13386 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13387 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13388 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13389 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13391 if (ndr->offset > ndr->relative_highest_offset) {
13392 ndr->relative_highest_offset = ndr->offset;
13394 ndr->offset = _relative_save_offset;
13396 ndr->flags = _flags_save_string;
13399 uint32_t _flags_save_string = ndr->flags;
13400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13401 if (r->driver_path) {
13402 uint32_t _relative_save_offset;
13403 _relative_save_offset = ndr->offset;
13404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13405 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13406 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13409 if (ndr->offset > ndr->relative_highest_offset) {
13410 ndr->relative_highest_offset = ndr->offset;
13412 ndr->offset = _relative_save_offset;
13414 ndr->flags = _flags_save_string;
13417 uint32_t _flags_save_string = ndr->flags;
13418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13419 if (r->data_file) {
13420 uint32_t _relative_save_offset;
13421 _relative_save_offset = ndr->offset;
13422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
13423 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13424 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
13425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
13426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
13427 if (ndr->offset > ndr->relative_highest_offset) {
13428 ndr->relative_highest_offset = ndr->offset;
13430 ndr->offset = _relative_save_offset;
13432 ndr->flags = _flags_save_string;
13435 uint32_t _flags_save_string = ndr->flags;
13436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13437 if (r->config_file) {
13438 uint32_t _relative_save_offset;
13439 _relative_save_offset = ndr->offset;
13440 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
13441 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
13442 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
13443 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
13444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
13445 if (ndr->offset > ndr->relative_highest_offset) {
13446 ndr->relative_highest_offset = ndr->offset;
13448 ndr->offset = _relative_save_offset;
13450 ndr->flags = _flags_save_string;
13453 return NDR_ERR_SUCCESS;
13456 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
13458 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
13459 if (r == NULL) { ndr_print_null(ndr); return; }
13461 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13462 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13464 if (r->driver_name) {
13465 ndr_print_string(ndr, "driver_name", r->driver_name);
13468 ndr_print_ptr(ndr, "architecture", r->architecture);
13470 if (r->architecture) {
13471 ndr_print_string(ndr, "architecture", r->architecture);
13474 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13476 if (r->driver_path) {
13477 ndr_print_string(ndr, "driver_path", r->driver_path);
13480 ndr_print_ptr(ndr, "data_file", r->data_file);
13482 if (r->data_file) {
13483 ndr_print_string(ndr, "data_file", r->data_file);
13486 ndr_print_ptr(ndr, "config_file", r->config_file);
13488 if (r->config_file) {
13489 ndr_print_string(ndr, "config_file", r->config_file);
13492 ndr_print_spoolss_DriverAttributes(ndr, "driver_attributes", r->driver_attributes);
13493 ndr_print_uint32(ndr, "config_version", r->config_version);
13494 ndr_print_uint32(ndr, "driver_version", r->driver_version);
13498 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, int flags)
13500 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5);
13503 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
13505 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
13506 if (ndr_flags & NDR_SCALARS) {
13507 NDR_CHECK(ndr_push_align(ndr, 8));
13508 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
13510 uint32_t _flags_save_string = ndr->flags;
13511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13512 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
13513 ndr->flags = _flags_save_string;
13516 uint32_t _flags_save_string = ndr->flags;
13517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13518 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
13519 ndr->flags = _flags_save_string;
13522 uint32_t _flags_save_string = ndr->flags;
13523 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13524 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
13525 ndr->flags = _flags_save_string;
13528 uint32_t _flags_save_string = ndr->flags;
13529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13530 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
13531 ndr->flags = _flags_save_string;
13534 uint32_t _flags_save_string = ndr->flags;
13535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13536 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
13537 ndr->flags = _flags_save_string;
13540 uint32_t _flags_save_string = ndr->flags;
13541 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13542 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
13543 ndr->flags = _flags_save_string;
13546 uint32_t _flags_save_string_array = ndr->flags;
13547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13548 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
13549 ndr->flags = _flags_save_string_array;
13552 uint32_t _flags_save_string = ndr->flags;
13553 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13554 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13555 ndr->flags = _flags_save_string;
13558 uint32_t _flags_save_string = ndr->flags;
13559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13560 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
13561 ndr->flags = _flags_save_string;
13564 uint32_t _flags_save_string_array = ndr->flags;
13565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13566 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
13567 ndr->flags = _flags_save_string_array;
13569 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
13570 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
13572 uint32_t _flags_save_string = ndr->flags;
13573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13574 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
13575 ndr->flags = _flags_save_string;
13578 uint32_t _flags_save_string = ndr->flags;
13579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13580 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
13581 ndr->flags = _flags_save_string;
13584 uint32_t _flags_save_string = ndr->flags;
13585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13586 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
13587 ndr->flags = _flags_save_string;
13590 uint32_t _flags_save_string = ndr->flags;
13591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13592 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
13593 ndr->flags = _flags_save_string;
13595 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
13597 if (ndr_flags & NDR_BUFFERS) {
13599 uint32_t _flags_save_string = ndr->flags;
13600 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13601 if (r->driver_name) {
13602 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
13603 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
13604 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
13606 ndr->flags = _flags_save_string;
13609 uint32_t _flags_save_string = ndr->flags;
13610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13611 if (r->architecture) {
13612 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
13613 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
13614 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
13616 ndr->flags = _flags_save_string;
13619 uint32_t _flags_save_string = ndr->flags;
13620 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13621 if (r->driver_path) {
13622 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
13623 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
13624 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
13626 ndr->flags = _flags_save_string;
13629 uint32_t _flags_save_string = ndr->flags;
13630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13631 if (r->data_file) {
13632 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
13633 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
13634 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
13636 ndr->flags = _flags_save_string;
13639 uint32_t _flags_save_string = ndr->flags;
13640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13641 if (r->config_file) {
13642 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
13643 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
13644 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
13646 ndr->flags = _flags_save_string;
13649 uint32_t _flags_save_string = ndr->flags;
13650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13651 if (r->help_file) {
13652 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
13653 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
13654 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
13656 ndr->flags = _flags_save_string;
13659 uint32_t _flags_save_string_array = ndr->flags;
13660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13661 if (r->dependent_files) {
13662 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
13663 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
13664 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
13666 ndr->flags = _flags_save_string_array;
13669 uint32_t _flags_save_string = ndr->flags;
13670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13671 if (r->monitor_name) {
13672 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
13673 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13674 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
13676 ndr->flags = _flags_save_string;
13679 uint32_t _flags_save_string = ndr->flags;
13680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13681 if (r->default_datatype) {
13682 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
13683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
13684 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
13686 ndr->flags = _flags_save_string;
13689 uint32_t _flags_save_string_array = ndr->flags;
13690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13691 if (r->previous_names) {
13692 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
13693 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
13694 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
13696 ndr->flags = _flags_save_string_array;
13699 uint32_t _flags_save_string = ndr->flags;
13700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13701 if (r->manufacturer_name) {
13702 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
13703 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
13704 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
13706 ndr->flags = _flags_save_string;
13709 uint32_t _flags_save_string = ndr->flags;
13710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13711 if (r->manufacturer_url) {
13712 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
13713 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
13714 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
13716 ndr->flags = _flags_save_string;
13719 uint32_t _flags_save_string = ndr->flags;
13720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13721 if (r->hardware_id) {
13722 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
13723 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
13724 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
13726 ndr->flags = _flags_save_string;
13729 uint32_t _flags_save_string = ndr->flags;
13730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13732 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
13733 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
13734 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
13736 ndr->flags = _flags_save_string;
13739 return NDR_ERR_SUCCESS;
13742 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
13744 uint32_t _ptr_driver_name;
13745 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
13746 uint32_t _ptr_architecture;
13747 TALLOC_CTX *_mem_save_architecture_0 = NULL;
13748 uint32_t _ptr_driver_path;
13749 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
13750 uint32_t _ptr_data_file;
13751 TALLOC_CTX *_mem_save_data_file_0 = NULL;
13752 uint32_t _ptr_config_file;
13753 TALLOC_CTX *_mem_save_config_file_0 = NULL;
13754 uint32_t _ptr_help_file;
13755 TALLOC_CTX *_mem_save_help_file_0 = NULL;
13756 uint32_t _ptr_dependent_files;
13757 TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
13758 uint32_t _ptr_monitor_name;
13759 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
13760 uint32_t _ptr_default_datatype;
13761 TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
13762 uint32_t _ptr_previous_names;
13763 TALLOC_CTX *_mem_save_previous_names_0 = NULL;
13764 uint32_t _ptr_manufacturer_name;
13765 TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
13766 uint32_t _ptr_manufacturer_url;
13767 TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
13768 uint32_t _ptr_hardware_id;
13769 TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
13770 uint32_t _ptr_provider;
13771 TALLOC_CTX *_mem_save_provider_0 = NULL;
13772 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
13773 if (ndr_flags & NDR_SCALARS) {
13774 NDR_CHECK(ndr_pull_align(ndr, 8));
13775 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
13777 uint32_t _flags_save_string = ndr->flags;
13778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13779 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
13780 if (_ptr_driver_name) {
13781 NDR_PULL_ALLOC(ndr, r->driver_name);
13782 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
13784 r->driver_name = NULL;
13786 ndr->flags = _flags_save_string;
13789 uint32_t _flags_save_string = ndr->flags;
13790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
13792 if (_ptr_architecture) {
13793 NDR_PULL_ALLOC(ndr, r->architecture);
13794 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
13796 r->architecture = NULL;
13798 ndr->flags = _flags_save_string;
13801 uint32_t _flags_save_string = ndr->flags;
13802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13803 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
13804 if (_ptr_driver_path) {
13805 NDR_PULL_ALLOC(ndr, r->driver_path);
13806 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
13808 r->driver_path = NULL;
13810 ndr->flags = _flags_save_string;
13813 uint32_t _flags_save_string = ndr->flags;
13814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13815 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
13816 if (_ptr_data_file) {
13817 NDR_PULL_ALLOC(ndr, r->data_file);
13818 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
13820 r->data_file = NULL;
13822 ndr->flags = _flags_save_string;
13825 uint32_t _flags_save_string = ndr->flags;
13826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
13828 if (_ptr_config_file) {
13829 NDR_PULL_ALLOC(ndr, r->config_file);
13830 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
13832 r->config_file = NULL;
13834 ndr->flags = _flags_save_string;
13837 uint32_t _flags_save_string = ndr->flags;
13838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13839 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
13840 if (_ptr_help_file) {
13841 NDR_PULL_ALLOC(ndr, r->help_file);
13842 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
13844 r->help_file = NULL;
13846 ndr->flags = _flags_save_string;
13849 uint32_t _flags_save_string_array = ndr->flags;
13850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13851 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
13852 if (_ptr_dependent_files) {
13853 NDR_PULL_ALLOC(ndr, r->dependent_files);
13854 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
13856 r->dependent_files = NULL;
13858 ndr->flags = _flags_save_string_array;
13861 uint32_t _flags_save_string = ndr->flags;
13862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13863 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13864 if (_ptr_monitor_name) {
13865 NDR_PULL_ALLOC(ndr, r->monitor_name);
13866 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13868 r->monitor_name = NULL;
13870 ndr->flags = _flags_save_string;
13873 uint32_t _flags_save_string = ndr->flags;
13874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
13876 if (_ptr_default_datatype) {
13877 NDR_PULL_ALLOC(ndr, r->default_datatype);
13878 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
13880 r->default_datatype = NULL;
13882 ndr->flags = _flags_save_string;
13885 uint32_t _flags_save_string_array = ndr->flags;
13886 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
13888 if (_ptr_previous_names) {
13889 NDR_PULL_ALLOC(ndr, r->previous_names);
13890 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
13892 r->previous_names = NULL;
13894 ndr->flags = _flags_save_string_array;
13896 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
13897 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
13899 uint32_t _flags_save_string = ndr->flags;
13900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
13902 if (_ptr_manufacturer_name) {
13903 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
13904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
13906 r->manufacturer_name = NULL;
13908 ndr->flags = _flags_save_string;
13911 uint32_t _flags_save_string = ndr->flags;
13912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
13914 if (_ptr_manufacturer_url) {
13915 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
13916 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
13918 r->manufacturer_url = NULL;
13920 ndr->flags = _flags_save_string;
13923 uint32_t _flags_save_string = ndr->flags;
13924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
13926 if (_ptr_hardware_id) {
13927 NDR_PULL_ALLOC(ndr, r->hardware_id);
13928 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
13930 r->hardware_id = NULL;
13932 ndr->flags = _flags_save_string;
13935 uint32_t _flags_save_string = ndr->flags;
13936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
13938 if (_ptr_provider) {
13939 NDR_PULL_ALLOC(ndr, r->provider);
13940 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
13942 r->provider = NULL;
13944 ndr->flags = _flags_save_string;
13946 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
13948 if (ndr_flags & NDR_BUFFERS) {
13950 uint32_t _flags_save_string = ndr->flags;
13951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13952 if (r->driver_name) {
13953 uint32_t _relative_save_offset;
13954 _relative_save_offset = ndr->offset;
13955 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
13956 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13957 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
13958 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
13959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
13960 if (ndr->offset > ndr->relative_highest_offset) {
13961 ndr->relative_highest_offset = ndr->offset;
13963 ndr->offset = _relative_save_offset;
13965 ndr->flags = _flags_save_string;
13968 uint32_t _flags_save_string = ndr->flags;
13969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13970 if (r->architecture) {
13971 uint32_t _relative_save_offset;
13972 _relative_save_offset = ndr->offset;
13973 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
13974 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
13975 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
13976 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
13977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
13978 if (ndr->offset > ndr->relative_highest_offset) {
13979 ndr->relative_highest_offset = ndr->offset;
13981 ndr->offset = _relative_save_offset;
13983 ndr->flags = _flags_save_string;
13986 uint32_t _flags_save_string = ndr->flags;
13987 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
13988 if (r->driver_path) {
13989 uint32_t _relative_save_offset;
13990 _relative_save_offset = ndr->offset;
13991 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
13992 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13993 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
13994 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
13995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
13996 if (ndr->offset > ndr->relative_highest_offset) {
13997 ndr->relative_highest_offset = ndr->offset;
13999 ndr->offset = _relative_save_offset;
14001 ndr->flags = _flags_save_string;
14004 uint32_t _flags_save_string = ndr->flags;
14005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14006 if (r->data_file) {
14007 uint32_t _relative_save_offset;
14008 _relative_save_offset = ndr->offset;
14009 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
14010 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14011 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
14012 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
14013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
14014 if (ndr->offset > ndr->relative_highest_offset) {
14015 ndr->relative_highest_offset = ndr->offset;
14017 ndr->offset = _relative_save_offset;
14019 ndr->flags = _flags_save_string;
14022 uint32_t _flags_save_string = ndr->flags;
14023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14024 if (r->config_file) {
14025 uint32_t _relative_save_offset;
14026 _relative_save_offset = ndr->offset;
14027 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
14028 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14029 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
14030 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
14031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
14032 if (ndr->offset > ndr->relative_highest_offset) {
14033 ndr->relative_highest_offset = ndr->offset;
14035 ndr->offset = _relative_save_offset;
14037 ndr->flags = _flags_save_string;
14040 uint32_t _flags_save_string = ndr->flags;
14041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14042 if (r->help_file) {
14043 uint32_t _relative_save_offset;
14044 _relative_save_offset = ndr->offset;
14045 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
14046 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14047 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
14048 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
14049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
14050 if (ndr->offset > ndr->relative_highest_offset) {
14051 ndr->relative_highest_offset = ndr->offset;
14053 ndr->offset = _relative_save_offset;
14055 ndr->flags = _flags_save_string;
14058 uint32_t _flags_save_string_array = ndr->flags;
14059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14060 if (r->dependent_files) {
14061 uint32_t _relative_save_offset;
14062 _relative_save_offset = ndr->offset;
14063 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
14064 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
14065 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
14066 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
14067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
14068 if (ndr->offset > ndr->relative_highest_offset) {
14069 ndr->relative_highest_offset = ndr->offset;
14071 ndr->offset = _relative_save_offset;
14073 ndr->flags = _flags_save_string_array;
14076 uint32_t _flags_save_string = ndr->flags;
14077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14078 if (r->monitor_name) {
14079 uint32_t _relative_save_offset;
14080 _relative_save_offset = ndr->offset;
14081 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
14082 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14083 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
14084 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
14085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
14086 if (ndr->offset > ndr->relative_highest_offset) {
14087 ndr->relative_highest_offset = ndr->offset;
14089 ndr->offset = _relative_save_offset;
14091 ndr->flags = _flags_save_string;
14094 uint32_t _flags_save_string = ndr->flags;
14095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14096 if (r->default_datatype) {
14097 uint32_t _relative_save_offset;
14098 _relative_save_offset = ndr->offset;
14099 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
14100 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14101 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
14102 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
14103 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
14104 if (ndr->offset > ndr->relative_highest_offset) {
14105 ndr->relative_highest_offset = ndr->offset;
14107 ndr->offset = _relative_save_offset;
14109 ndr->flags = _flags_save_string;
14112 uint32_t _flags_save_string_array = ndr->flags;
14113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14114 if (r->previous_names) {
14115 uint32_t _relative_save_offset;
14116 _relative_save_offset = ndr->offset;
14117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
14118 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
14119 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
14120 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
14121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
14122 if (ndr->offset > ndr->relative_highest_offset) {
14123 ndr->relative_highest_offset = ndr->offset;
14125 ndr->offset = _relative_save_offset;
14127 ndr->flags = _flags_save_string_array;
14130 uint32_t _flags_save_string = ndr->flags;
14131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14132 if (r->manufacturer_name) {
14133 uint32_t _relative_save_offset;
14134 _relative_save_offset = ndr->offset;
14135 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
14136 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14137 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
14138 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
14139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
14140 if (ndr->offset > ndr->relative_highest_offset) {
14141 ndr->relative_highest_offset = ndr->offset;
14143 ndr->offset = _relative_save_offset;
14145 ndr->flags = _flags_save_string;
14148 uint32_t _flags_save_string = ndr->flags;
14149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14150 if (r->manufacturer_url) {
14151 uint32_t _relative_save_offset;
14152 _relative_save_offset = ndr->offset;
14153 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
14154 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
14155 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
14156 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
14157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
14158 if (ndr->offset > ndr->relative_highest_offset) {
14159 ndr->relative_highest_offset = ndr->offset;
14161 ndr->offset = _relative_save_offset;
14163 ndr->flags = _flags_save_string;
14166 uint32_t _flags_save_string = ndr->flags;
14167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14168 if (r->hardware_id) {
14169 uint32_t _relative_save_offset;
14170 _relative_save_offset = ndr->offset;
14171 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
14172 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14173 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
14174 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
14175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
14176 if (ndr->offset > ndr->relative_highest_offset) {
14177 ndr->relative_highest_offset = ndr->offset;
14179 ndr->offset = _relative_save_offset;
14181 ndr->flags = _flags_save_string;
14184 uint32_t _flags_save_string = ndr->flags;
14185 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14187 uint32_t _relative_save_offset;
14188 _relative_save_offset = ndr->offset;
14189 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
14190 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
14191 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
14192 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
14193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
14194 if (ndr->offset > ndr->relative_highest_offset) {
14195 ndr->relative_highest_offset = ndr->offset;
14197 ndr->offset = _relative_save_offset;
14199 ndr->flags = _flags_save_string;
14202 return NDR_ERR_SUCCESS;
14205 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
14207 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
14208 if (r == NULL) { ndr_print_null(ndr); return; }
14210 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14211 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14213 if (r->driver_name) {
14214 ndr_print_string(ndr, "driver_name", r->driver_name);
14217 ndr_print_ptr(ndr, "architecture", r->architecture);
14219 if (r->architecture) {
14220 ndr_print_string(ndr, "architecture", r->architecture);
14223 ndr_print_ptr(ndr, "driver_path", r->driver_path);
14225 if (r->driver_path) {
14226 ndr_print_string(ndr, "driver_path", r->driver_path);
14229 ndr_print_ptr(ndr, "data_file", r->data_file);
14231 if (r->data_file) {
14232 ndr_print_string(ndr, "data_file", r->data_file);
14235 ndr_print_ptr(ndr, "config_file", r->config_file);
14237 if (r->config_file) {
14238 ndr_print_string(ndr, "config_file", r->config_file);
14241 ndr_print_ptr(ndr, "help_file", r->help_file);
14243 if (r->help_file) {
14244 ndr_print_string(ndr, "help_file", r->help_file);
14247 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
14249 if (r->dependent_files) {
14250 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
14253 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
14255 if (r->monitor_name) {
14256 ndr_print_string(ndr, "monitor_name", r->monitor_name);
14259 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
14261 if (r->default_datatype) {
14262 ndr_print_string(ndr, "default_datatype", r->default_datatype);
14265 ndr_print_ptr(ndr, "previous_names", r->previous_names);
14267 if (r->previous_names) {
14268 ndr_print_string_array(ndr, "previous_names", r->previous_names);
14271 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
14272 ndr_print_hyper(ndr, "driver_version", r->driver_version);
14273 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
14275 if (r->manufacturer_name) {
14276 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
14279 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
14281 if (r->manufacturer_url) {
14282 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
14285 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
14287 if (r->hardware_id) {
14288 ndr_print_string(ndr, "hardware_id", r->hardware_id);
14291 ndr_print_ptr(ndr, "provider", r->provider);
14294 ndr_print_string(ndr, "provider", r->provider);
14300 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, int flags)
14302 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6);
14305 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo7 *r)
14307 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14308 if (ndr_flags & NDR_SCALARS) {
14309 NDR_CHECK(ndr_push_align(ndr, 5));
14310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
14311 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
14313 uint32_t _flags_save_string = ndr->flags;
14314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14315 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
14316 ndr->flags = _flags_save_string;
14319 uint32_t _flags_save_string = ndr->flags;
14320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14321 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_name));
14322 ndr->flags = _flags_save_string;
14325 uint32_t _flags_save_string = ndr->flags;
14326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14327 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->install_source_root));
14328 ndr->flags = _flags_save_string;
14330 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
14332 if (ndr_flags & NDR_BUFFERS) {
14334 uint32_t _flags_save_string = ndr->flags;
14335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14336 if (r->driver_name) {
14337 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
14338 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
14339 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
14341 ndr->flags = _flags_save_string;
14344 uint32_t _flags_save_string = ndr->flags;
14345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14347 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_name));
14348 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_name));
14349 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_name));
14351 ndr->flags = _flags_save_string;
14354 uint32_t _flags_save_string = ndr->flags;
14355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14356 if (r->install_source_root) {
14357 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->install_source_root));
14358 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->install_source_root));
14359 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->install_source_root));
14361 ndr->flags = _flags_save_string;
14364 return NDR_ERR_SUCCESS;
14367 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo7 *r)
14369 uint32_t _ptr_driver_name;
14370 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
14371 uint32_t _ptr_inf_name;
14372 TALLOC_CTX *_mem_save_inf_name_0 = NULL;
14373 uint32_t _ptr_install_source_root;
14374 TALLOC_CTX *_mem_save_install_source_root_0 = NULL;
14375 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14376 if (ndr_flags & NDR_SCALARS) {
14377 NDR_CHECK(ndr_pull_align(ndr, 5));
14378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14379 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
14381 uint32_t _flags_save_string = ndr->flags;
14382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
14384 if (_ptr_driver_name) {
14385 NDR_PULL_ALLOC(ndr, r->driver_name);
14386 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
14388 r->driver_name = NULL;
14390 ndr->flags = _flags_save_string;
14393 uint32_t _flags_save_string = ndr->flags;
14394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_name));
14396 if (_ptr_inf_name) {
14397 NDR_PULL_ALLOC(ndr, r->inf_name);
14398 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_name, _ptr_inf_name));
14400 r->inf_name = NULL;
14402 ndr->flags = _flags_save_string;
14405 uint32_t _flags_save_string = ndr->flags;
14406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_install_source_root));
14408 if (_ptr_install_source_root) {
14409 NDR_PULL_ALLOC(ndr, r->install_source_root);
14410 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->install_source_root, _ptr_install_source_root));
14412 r->install_source_root = NULL;
14414 ndr->flags = _flags_save_string;
14416 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
14418 if (ndr_flags & NDR_BUFFERS) {
14420 uint32_t _flags_save_string = ndr->flags;
14421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14422 if (r->driver_name) {
14423 uint32_t _relative_save_offset;
14424 _relative_save_offset = ndr->offset;
14425 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
14426 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14427 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
14428 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
14429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
14430 if (ndr->offset > ndr->relative_highest_offset) {
14431 ndr->relative_highest_offset = ndr->offset;
14433 ndr->offset = _relative_save_offset;
14435 ndr->flags = _flags_save_string;
14438 uint32_t _flags_save_string = ndr->flags;
14439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14441 uint32_t _relative_save_offset;
14442 _relative_save_offset = ndr->offset;
14443 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_name));
14444 _mem_save_inf_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14445 NDR_PULL_SET_MEM_CTX(ndr, r->inf_name, 0);
14446 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_name));
14447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_name_0, 0);
14448 if (ndr->offset > ndr->relative_highest_offset) {
14449 ndr->relative_highest_offset = ndr->offset;
14451 ndr->offset = _relative_save_offset;
14453 ndr->flags = _flags_save_string;
14456 uint32_t _flags_save_string = ndr->flags;
14457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14458 if (r->install_source_root) {
14459 uint32_t _relative_save_offset;
14460 _relative_save_offset = ndr->offset;
14461 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->install_source_root));
14462 _mem_save_install_source_root_0 = NDR_PULL_GET_MEM_CTX(ndr);
14463 NDR_PULL_SET_MEM_CTX(ndr, r->install_source_root, 0);
14464 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->install_source_root));
14465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_install_source_root_0, 0);
14466 if (ndr->offset > ndr->relative_highest_offset) {
14467 ndr->relative_highest_offset = ndr->offset;
14469 ndr->offset = _relative_save_offset;
14471 ndr->flags = _flags_save_string;
14474 return NDR_ERR_SUCCESS;
14477 _PUBLIC_ void ndr_print_spoolss_DriverInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo7 *r)
14479 ndr_print_struct(ndr, name, "spoolss_DriverInfo7");
14480 if (r == NULL) { ndr_print_null(ndr); return; }
14482 ndr_print_uint32(ndr, "size", r->size);
14483 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
14484 ndr_print_ptr(ndr, "driver_name", r->driver_name);
14486 if (r->driver_name) {
14487 ndr_print_string(ndr, "driver_name", r->driver_name);
14490 ndr_print_ptr(ndr, "inf_name", r->inf_name);
14493 ndr_print_string(ndr, "inf_name", r->inf_name);
14496 ndr_print_ptr(ndr, "install_source_root", r->install_source_root);
14498 if (r->install_source_root) {
14499 ndr_print_string(ndr, "install_source_root", r->install_source_root);
14505 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo7(const struct spoolss_DriverInfo7 *r, int flags)
14507 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo7);
14510 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
14512 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
14513 if (ndr_flags & NDR_SCALARS) {
14514 NDR_CHECK(ndr_push_align(ndr, 8));
14515 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
14517 uint32_t _flags_save_string = ndr->flags;
14518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
14520 ndr->flags = _flags_save_string;
14523 uint32_t _flags_save_string = ndr->flags;
14524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
14526 ndr->flags = _flags_save_string;
14529 uint32_t _flags_save_string = ndr->flags;
14530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
14532 ndr->flags = _flags_save_string;
14535 uint32_t _flags_save_string = ndr->flags;
14536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
14538 ndr->flags = _flags_save_string;
14541 uint32_t _flags_save_string = ndr->flags;
14542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
14544 ndr->flags = _flags_save_string;
14547 uint32_t _flags_save_string = ndr->flags;
14548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
14550 ndr->flags = _flags_save_string;
14553 uint32_t _flags_save_string_array = ndr->flags;
14554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
14556 ndr->flags = _flags_save_string_array;
14559 uint32_t _flags_save_string = ndr->flags;
14560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
14562 ndr->flags = _flags_save_string;
14565 uint32_t _flags_save_string = ndr->flags;
14566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14567 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
14568 ndr->flags = _flags_save_string;
14571 uint32_t _flags_save_string_array = ndr->flags;
14572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14573 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
14574 ndr->flags = _flags_save_string_array;
14576 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
14577 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
14579 uint32_t _flags_save_string = ndr->flags;
14580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
14582 ndr->flags = _flags_save_string;
14585 uint32_t _flags_save_string = ndr->flags;
14586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
14588 ndr->flags = _flags_save_string;
14591 uint32_t _flags_save_string = ndr->flags;
14592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
14594 ndr->flags = _flags_save_string;
14597 uint32_t _flags_save_string = ndr->flags;
14598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
14600 ndr->flags = _flags_save_string;
14603 uint32_t _flags_save_string = ndr->flags;
14604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
14606 ndr->flags = _flags_save_string;
14609 uint32_t _flags_save_string = ndr->flags;
14610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14611 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
14612 ndr->flags = _flags_save_string;
14615 uint32_t _flags_save_string_array = ndr->flags;
14616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14617 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
14618 ndr->flags = _flags_save_string_array;
14621 uint32_t _flags_save_string = ndr->flags;
14622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14623 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
14624 ndr->flags = _flags_save_string;
14626 NDR_CHECK(ndr_push_spoolss_DriverAttributes(ndr, NDR_SCALARS, r->printer_driver_attributes));
14628 uint32_t _flags_save_string_array = ndr->flags;
14629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14630 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
14631 ndr->flags = _flags_save_string_array;
14633 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
14634 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
14635 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
14637 if (ndr_flags & NDR_BUFFERS) {
14639 uint32_t _flags_save_string = ndr->flags;
14640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14641 if (r->driver_name) {
14642 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_name));
14643 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
14644 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_name));
14646 ndr->flags = _flags_save_string;
14649 uint32_t _flags_save_string = ndr->flags;
14650 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14651 if (r->architecture) {
14652 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->architecture));
14653 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
14654 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->architecture));
14656 ndr->flags = _flags_save_string;
14659 uint32_t _flags_save_string = ndr->flags;
14660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14661 if (r->driver_path) {
14662 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->driver_path));
14663 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
14664 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->driver_path));
14666 ndr->flags = _flags_save_string;
14669 uint32_t _flags_save_string = ndr->flags;
14670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14671 if (r->data_file) {
14672 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data_file));
14673 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
14674 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data_file));
14676 ndr->flags = _flags_save_string;
14679 uint32_t _flags_save_string = ndr->flags;
14680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14681 if (r->config_file) {
14682 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->config_file));
14683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
14684 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->config_file));
14686 ndr->flags = _flags_save_string;
14689 uint32_t _flags_save_string = ndr->flags;
14690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14691 if (r->help_file) {
14692 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->help_file));
14693 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
14694 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->help_file));
14696 ndr->flags = _flags_save_string;
14699 uint32_t _flags_save_string_array = ndr->flags;
14700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14701 if (r->dependent_files) {
14702 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dependent_files));
14703 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
14704 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dependent_files));
14706 ndr->flags = _flags_save_string_array;
14709 uint32_t _flags_save_string = ndr->flags;
14710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14711 if (r->monitor_name) {
14712 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
14713 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
14714 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
14716 ndr->flags = _flags_save_string;
14719 uint32_t _flags_save_string = ndr->flags;
14720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14721 if (r->default_datatype) {
14722 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->default_datatype));
14723 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
14724 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->default_datatype));
14726 ndr->flags = _flags_save_string;
14729 uint32_t _flags_save_string_array = ndr->flags;
14730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14731 if (r->previous_names) {
14732 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->previous_names));
14733 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
14734 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->previous_names));
14736 ndr->flags = _flags_save_string_array;
14739 uint32_t _flags_save_string = ndr->flags;
14740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14741 if (r->manufacturer_name) {
14742 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_name));
14743 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
14744 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_name));
14746 ndr->flags = _flags_save_string;
14749 uint32_t _flags_save_string = ndr->flags;
14750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14751 if (r->manufacturer_url) {
14752 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->manufacturer_url));
14753 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
14754 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->manufacturer_url));
14756 ndr->flags = _flags_save_string;
14759 uint32_t _flags_save_string = ndr->flags;
14760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14761 if (r->hardware_id) {
14762 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->hardware_id));
14763 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
14764 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->hardware_id));
14766 ndr->flags = _flags_save_string;
14769 uint32_t _flags_save_string = ndr->flags;
14770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14772 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->provider));
14773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
14774 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->provider));
14776 ndr->flags = _flags_save_string;
14779 uint32_t _flags_save_string = ndr->flags;
14780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14781 if (r->print_processor) {
14782 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor));
14783 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
14784 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor));
14786 ndr->flags = _flags_save_string;
14789 uint32_t _flags_save_string = ndr->flags;
14790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14791 if (r->vendor_setup) {
14792 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->vendor_setup));
14793 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
14794 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->vendor_setup));
14796 ndr->flags = _flags_save_string;
14799 uint32_t _flags_save_string_array = ndr->flags;
14800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14801 if (r->color_profiles) {
14802 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->color_profiles));
14803 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
14804 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->color_profiles));
14806 ndr->flags = _flags_save_string_array;
14809 uint32_t _flags_save_string = ndr->flags;
14810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14812 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->inf_path));
14813 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
14814 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->inf_path));
14816 ndr->flags = _flags_save_string;
14819 uint32_t _flags_save_string_array = ndr->flags;
14820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14821 if (r->core_driver_dependencies) {
14822 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->core_driver_dependencies));
14823 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
14824 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->core_driver_dependencies));
14826 ndr->flags = _flags_save_string_array;
14829 return NDR_ERR_SUCCESS;
14832 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
14834 uint32_t _ptr_driver_name;
14835 TALLOC_CTX *_mem_save_driver_name_0 = NULL;
14836 uint32_t _ptr_architecture;
14837 TALLOC_CTX *_mem_save_architecture_0 = NULL;
14838 uint32_t _ptr_driver_path;
14839 TALLOC_CTX *_mem_save_driver_path_0 = NULL;
14840 uint32_t _ptr_data_file;
14841 TALLOC_CTX *_mem_save_data_file_0 = NULL;
14842 uint32_t _ptr_config_file;
14843 TALLOC_CTX *_mem_save_config_file_0 = NULL;
14844 uint32_t _ptr_help_file;
14845 TALLOC_CTX *_mem_save_help_file_0 = NULL;
14846 uint32_t _ptr_dependent_files;
14847 TALLOC_CTX *_mem_save_dependent_files_0 = NULL;
14848 uint32_t _ptr_monitor_name;
14849 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
14850 uint32_t _ptr_default_datatype;
14851 TALLOC_CTX *_mem_save_default_datatype_0 = NULL;
14852 uint32_t _ptr_previous_names;
14853 TALLOC_CTX *_mem_save_previous_names_0 = NULL;
14854 uint32_t _ptr_manufacturer_name;
14855 TALLOC_CTX *_mem_save_manufacturer_name_0 = NULL;
14856 uint32_t _ptr_manufacturer_url;
14857 TALLOC_CTX *_mem_save_manufacturer_url_0 = NULL;
14858 uint32_t _ptr_hardware_id;
14859 TALLOC_CTX *_mem_save_hardware_id_0 = NULL;
14860 uint32_t _ptr_provider;
14861 TALLOC_CTX *_mem_save_provider_0 = NULL;
14862 uint32_t _ptr_print_processor;
14863 TALLOC_CTX *_mem_save_print_processor_0 = NULL;
14864 uint32_t _ptr_vendor_setup;
14865 TALLOC_CTX *_mem_save_vendor_setup_0 = NULL;
14866 uint32_t _ptr_color_profiles;
14867 TALLOC_CTX *_mem_save_color_profiles_0 = NULL;
14868 uint32_t _ptr_inf_path;
14869 TALLOC_CTX *_mem_save_inf_path_0 = NULL;
14870 uint32_t _ptr_core_driver_dependencies;
14871 TALLOC_CTX *_mem_save_core_driver_dependencies_0 = NULL;
14872 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
14873 if (ndr_flags & NDR_SCALARS) {
14874 NDR_CHECK(ndr_pull_align(ndr, 8));
14875 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
14877 uint32_t _flags_save_string = ndr->flags;
14878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
14880 if (_ptr_driver_name) {
14881 NDR_PULL_ALLOC(ndr, r->driver_name);
14882 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
14884 r->driver_name = NULL;
14886 ndr->flags = _flags_save_string;
14889 uint32_t _flags_save_string = ndr->flags;
14890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
14892 if (_ptr_architecture) {
14893 NDR_PULL_ALLOC(ndr, r->architecture);
14894 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
14896 r->architecture = NULL;
14898 ndr->flags = _flags_save_string;
14901 uint32_t _flags_save_string = ndr->flags;
14902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
14904 if (_ptr_driver_path) {
14905 NDR_PULL_ALLOC(ndr, r->driver_path);
14906 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
14908 r->driver_path = NULL;
14910 ndr->flags = _flags_save_string;
14913 uint32_t _flags_save_string = ndr->flags;
14914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
14916 if (_ptr_data_file) {
14917 NDR_PULL_ALLOC(ndr, r->data_file);
14918 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
14920 r->data_file = NULL;
14922 ndr->flags = _flags_save_string;
14925 uint32_t _flags_save_string = ndr->flags;
14926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
14928 if (_ptr_config_file) {
14929 NDR_PULL_ALLOC(ndr, r->config_file);
14930 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
14932 r->config_file = NULL;
14934 ndr->flags = _flags_save_string;
14937 uint32_t _flags_save_string = ndr->flags;
14938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
14940 if (_ptr_help_file) {
14941 NDR_PULL_ALLOC(ndr, r->help_file);
14942 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
14944 r->help_file = NULL;
14946 ndr->flags = _flags_save_string;
14949 uint32_t _flags_save_string_array = ndr->flags;
14950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
14952 if (_ptr_dependent_files) {
14953 NDR_PULL_ALLOC(ndr, r->dependent_files);
14954 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
14956 r->dependent_files = NULL;
14958 ndr->flags = _flags_save_string_array;
14961 uint32_t _flags_save_string = ndr->flags;
14962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
14964 if (_ptr_monitor_name) {
14965 NDR_PULL_ALLOC(ndr, r->monitor_name);
14966 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
14968 r->monitor_name = NULL;
14970 ndr->flags = _flags_save_string;
14973 uint32_t _flags_save_string = ndr->flags;
14974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14975 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
14976 if (_ptr_default_datatype) {
14977 NDR_PULL_ALLOC(ndr, r->default_datatype);
14978 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
14980 r->default_datatype = NULL;
14982 ndr->flags = _flags_save_string;
14985 uint32_t _flags_save_string_array = ndr->flags;
14986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
14987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
14988 if (_ptr_previous_names) {
14989 NDR_PULL_ALLOC(ndr, r->previous_names);
14990 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
14992 r->previous_names = NULL;
14994 ndr->flags = _flags_save_string_array;
14996 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
14997 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
14999 uint32_t _flags_save_string = ndr->flags;
15000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
15002 if (_ptr_manufacturer_name) {
15003 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
15004 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
15006 r->manufacturer_name = NULL;
15008 ndr->flags = _flags_save_string;
15011 uint32_t _flags_save_string = ndr->flags;
15012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
15014 if (_ptr_manufacturer_url) {
15015 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
15016 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
15018 r->manufacturer_url = NULL;
15020 ndr->flags = _flags_save_string;
15023 uint32_t _flags_save_string = ndr->flags;
15024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15025 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
15026 if (_ptr_hardware_id) {
15027 NDR_PULL_ALLOC(ndr, r->hardware_id);
15028 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
15030 r->hardware_id = NULL;
15032 ndr->flags = _flags_save_string;
15035 uint32_t _flags_save_string = ndr->flags;
15036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15037 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
15038 if (_ptr_provider) {
15039 NDR_PULL_ALLOC(ndr, r->provider);
15040 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
15042 r->provider = NULL;
15044 ndr->flags = _flags_save_string;
15047 uint32_t _flags_save_string = ndr->flags;
15048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
15050 if (_ptr_print_processor) {
15051 NDR_PULL_ALLOC(ndr, r->print_processor);
15052 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
15054 r->print_processor = NULL;
15056 ndr->flags = _flags_save_string;
15059 uint32_t _flags_save_string = ndr->flags;
15060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15061 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
15062 if (_ptr_vendor_setup) {
15063 NDR_PULL_ALLOC(ndr, r->vendor_setup);
15064 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
15066 r->vendor_setup = NULL;
15068 ndr->flags = _flags_save_string;
15071 uint32_t _flags_save_string_array = ndr->flags;
15072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
15074 if (_ptr_color_profiles) {
15075 NDR_PULL_ALLOC(ndr, r->color_profiles);
15076 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
15078 r->color_profiles = NULL;
15080 ndr->flags = _flags_save_string_array;
15083 uint32_t _flags_save_string = ndr->flags;
15084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
15086 if (_ptr_inf_path) {
15087 NDR_PULL_ALLOC(ndr, r->inf_path);
15088 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
15090 r->inf_path = NULL;
15092 ndr->flags = _flags_save_string;
15094 NDR_CHECK(ndr_pull_spoolss_DriverAttributes(ndr, NDR_SCALARS, &r->printer_driver_attributes));
15096 uint32_t _flags_save_string_array = ndr->flags;
15097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
15099 if (_ptr_core_driver_dependencies) {
15100 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
15101 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
15103 r->core_driver_dependencies = NULL;
15105 ndr->flags = _flags_save_string_array;
15107 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
15108 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
15109 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
15111 if (ndr_flags & NDR_BUFFERS) {
15113 uint32_t _flags_save_string = ndr->flags;
15114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15115 if (r->driver_name) {
15116 uint32_t _relative_save_offset;
15117 _relative_save_offset = ndr->offset;
15118 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
15119 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15120 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
15121 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
15122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
15123 if (ndr->offset > ndr->relative_highest_offset) {
15124 ndr->relative_highest_offset = ndr->offset;
15126 ndr->offset = _relative_save_offset;
15128 ndr->flags = _flags_save_string;
15131 uint32_t _flags_save_string = ndr->flags;
15132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15133 if (r->architecture) {
15134 uint32_t _relative_save_offset;
15135 _relative_save_offset = ndr->offset;
15136 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
15137 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
15138 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
15139 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
15140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
15141 if (ndr->offset > ndr->relative_highest_offset) {
15142 ndr->relative_highest_offset = ndr->offset;
15144 ndr->offset = _relative_save_offset;
15146 ndr->flags = _flags_save_string;
15149 uint32_t _flags_save_string = ndr->flags;
15150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15151 if (r->driver_path) {
15152 uint32_t _relative_save_offset;
15153 _relative_save_offset = ndr->offset;
15154 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
15155 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
15156 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
15157 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
15158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
15159 if (ndr->offset > ndr->relative_highest_offset) {
15160 ndr->relative_highest_offset = ndr->offset;
15162 ndr->offset = _relative_save_offset;
15164 ndr->flags = _flags_save_string;
15167 uint32_t _flags_save_string = ndr->flags;
15168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15169 if (r->data_file) {
15170 uint32_t _relative_save_offset;
15171 _relative_save_offset = ndr->offset;
15172 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
15173 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15174 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
15175 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
15176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
15177 if (ndr->offset > ndr->relative_highest_offset) {
15178 ndr->relative_highest_offset = ndr->offset;
15180 ndr->offset = _relative_save_offset;
15182 ndr->flags = _flags_save_string;
15185 uint32_t _flags_save_string = ndr->flags;
15186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15187 if (r->config_file) {
15188 uint32_t _relative_save_offset;
15189 _relative_save_offset = ndr->offset;
15190 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
15191 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15192 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
15193 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
15194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
15195 if (ndr->offset > ndr->relative_highest_offset) {
15196 ndr->relative_highest_offset = ndr->offset;
15198 ndr->offset = _relative_save_offset;
15200 ndr->flags = _flags_save_string;
15203 uint32_t _flags_save_string = ndr->flags;
15204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15205 if (r->help_file) {
15206 uint32_t _relative_save_offset;
15207 _relative_save_offset = ndr->offset;
15208 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
15209 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
15210 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
15211 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
15212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_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 uint32_t _flags_save_string_array = ndr->flags;
15222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15223 if (r->dependent_files) {
15224 uint32_t _relative_save_offset;
15225 _relative_save_offset = ndr->offset;
15226 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
15227 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
15228 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
15229 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
15230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
15231 if (ndr->offset > ndr->relative_highest_offset) {
15232 ndr->relative_highest_offset = ndr->offset;
15234 ndr->offset = _relative_save_offset;
15236 ndr->flags = _flags_save_string_array;
15239 uint32_t _flags_save_string = ndr->flags;
15240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15241 if (r->monitor_name) {
15242 uint32_t _relative_save_offset;
15243 _relative_save_offset = ndr->offset;
15244 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
15245 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15246 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
15247 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
15248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
15249 if (ndr->offset > ndr->relative_highest_offset) {
15250 ndr->relative_highest_offset = ndr->offset;
15252 ndr->offset = _relative_save_offset;
15254 ndr->flags = _flags_save_string;
15257 uint32_t _flags_save_string = ndr->flags;
15258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15259 if (r->default_datatype) {
15260 uint32_t _relative_save_offset;
15261 _relative_save_offset = ndr->offset;
15262 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
15263 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15264 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
15265 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
15266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
15267 if (ndr->offset > ndr->relative_highest_offset) {
15268 ndr->relative_highest_offset = ndr->offset;
15270 ndr->offset = _relative_save_offset;
15272 ndr->flags = _flags_save_string;
15275 uint32_t _flags_save_string_array = ndr->flags;
15276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15277 if (r->previous_names) {
15278 uint32_t _relative_save_offset;
15279 _relative_save_offset = ndr->offset;
15280 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
15281 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
15282 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
15283 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
15284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
15285 if (ndr->offset > ndr->relative_highest_offset) {
15286 ndr->relative_highest_offset = ndr->offset;
15288 ndr->offset = _relative_save_offset;
15290 ndr->flags = _flags_save_string_array;
15293 uint32_t _flags_save_string = ndr->flags;
15294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15295 if (r->manufacturer_name) {
15296 uint32_t _relative_save_offset;
15297 _relative_save_offset = ndr->offset;
15298 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
15299 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15300 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
15301 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
15302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
15303 if (ndr->offset > ndr->relative_highest_offset) {
15304 ndr->relative_highest_offset = ndr->offset;
15306 ndr->offset = _relative_save_offset;
15308 ndr->flags = _flags_save_string;
15311 uint32_t _flags_save_string = ndr->flags;
15312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15313 if (r->manufacturer_url) {
15314 uint32_t _relative_save_offset;
15315 _relative_save_offset = ndr->offset;
15316 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
15317 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
15318 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
15319 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
15320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
15321 if (ndr->offset > ndr->relative_highest_offset) {
15322 ndr->relative_highest_offset = ndr->offset;
15324 ndr->offset = _relative_save_offset;
15326 ndr->flags = _flags_save_string;
15329 uint32_t _flags_save_string = ndr->flags;
15330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15331 if (r->hardware_id) {
15332 uint32_t _relative_save_offset;
15333 _relative_save_offset = ndr->offset;
15334 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
15335 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
15336 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
15337 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
15338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
15339 if (ndr->offset > ndr->relative_highest_offset) {
15340 ndr->relative_highest_offset = ndr->offset;
15342 ndr->offset = _relative_save_offset;
15344 ndr->flags = _flags_save_string;
15347 uint32_t _flags_save_string = ndr->flags;
15348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15350 uint32_t _relative_save_offset;
15351 _relative_save_offset = ndr->offset;
15352 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
15353 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
15354 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
15355 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
15356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
15357 if (ndr->offset > ndr->relative_highest_offset) {
15358 ndr->relative_highest_offset = ndr->offset;
15360 ndr->offset = _relative_save_offset;
15362 ndr->flags = _flags_save_string;
15365 uint32_t _flags_save_string = ndr->flags;
15366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15367 if (r->print_processor) {
15368 uint32_t _relative_save_offset;
15369 _relative_save_offset = ndr->offset;
15370 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
15371 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
15372 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
15373 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
15374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
15375 if (ndr->offset > ndr->relative_highest_offset) {
15376 ndr->relative_highest_offset = ndr->offset;
15378 ndr->offset = _relative_save_offset;
15380 ndr->flags = _flags_save_string;
15383 uint32_t _flags_save_string = ndr->flags;
15384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15385 if (r->vendor_setup) {
15386 uint32_t _relative_save_offset;
15387 _relative_save_offset = ndr->offset;
15388 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
15389 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
15390 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
15391 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
15392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
15393 if (ndr->offset > ndr->relative_highest_offset) {
15394 ndr->relative_highest_offset = ndr->offset;
15396 ndr->offset = _relative_save_offset;
15398 ndr->flags = _flags_save_string;
15401 uint32_t _flags_save_string_array = ndr->flags;
15402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15403 if (r->color_profiles) {
15404 uint32_t _relative_save_offset;
15405 _relative_save_offset = ndr->offset;
15406 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
15407 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
15408 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
15409 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
15410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
15411 if (ndr->offset > ndr->relative_highest_offset) {
15412 ndr->relative_highest_offset = ndr->offset;
15414 ndr->offset = _relative_save_offset;
15416 ndr->flags = _flags_save_string_array;
15419 uint32_t _flags_save_string = ndr->flags;
15420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15422 uint32_t _relative_save_offset;
15423 _relative_save_offset = ndr->offset;
15424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
15425 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
15426 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
15427 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
15428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
15429 if (ndr->offset > ndr->relative_highest_offset) {
15430 ndr->relative_highest_offset = ndr->offset;
15432 ndr->offset = _relative_save_offset;
15434 ndr->flags = _flags_save_string;
15437 uint32_t _flags_save_string_array = ndr->flags;
15438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15439 if (r->core_driver_dependencies) {
15440 uint32_t _relative_save_offset;
15441 _relative_save_offset = ndr->offset;
15442 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
15443 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
15444 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
15445 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
15446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
15447 if (ndr->offset > ndr->relative_highest_offset) {
15448 ndr->relative_highest_offset = ndr->offset;
15450 ndr->offset = _relative_save_offset;
15452 ndr->flags = _flags_save_string_array;
15455 return NDR_ERR_SUCCESS;
15458 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
15460 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
15461 if (r == NULL) { ndr_print_null(ndr); return; }
15463 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
15464 ndr_print_ptr(ndr, "driver_name", r->driver_name);
15466 if (r->driver_name) {
15467 ndr_print_string(ndr, "driver_name", r->driver_name);
15470 ndr_print_ptr(ndr, "architecture", r->architecture);
15472 if (r->architecture) {
15473 ndr_print_string(ndr, "architecture", r->architecture);
15476 ndr_print_ptr(ndr, "driver_path", r->driver_path);
15478 if (r->driver_path) {
15479 ndr_print_string(ndr, "driver_path", r->driver_path);
15482 ndr_print_ptr(ndr, "data_file", r->data_file);
15484 if (r->data_file) {
15485 ndr_print_string(ndr, "data_file", r->data_file);
15488 ndr_print_ptr(ndr, "config_file", r->config_file);
15490 if (r->config_file) {
15491 ndr_print_string(ndr, "config_file", r->config_file);
15494 ndr_print_ptr(ndr, "help_file", r->help_file);
15496 if (r->help_file) {
15497 ndr_print_string(ndr, "help_file", r->help_file);
15500 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
15502 if (r->dependent_files) {
15503 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
15506 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
15508 if (r->monitor_name) {
15509 ndr_print_string(ndr, "monitor_name", r->monitor_name);
15512 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
15514 if (r->default_datatype) {
15515 ndr_print_string(ndr, "default_datatype", r->default_datatype);
15518 ndr_print_ptr(ndr, "previous_names", r->previous_names);
15520 if (r->previous_names) {
15521 ndr_print_string_array(ndr, "previous_names", r->previous_names);
15524 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
15525 ndr_print_hyper(ndr, "driver_version", r->driver_version);
15526 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
15528 if (r->manufacturer_name) {
15529 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
15532 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
15534 if (r->manufacturer_url) {
15535 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
15538 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
15540 if (r->hardware_id) {
15541 ndr_print_string(ndr, "hardware_id", r->hardware_id);
15544 ndr_print_ptr(ndr, "provider", r->provider);
15547 ndr_print_string(ndr, "provider", r->provider);
15550 ndr_print_ptr(ndr, "print_processor", r->print_processor);
15552 if (r->print_processor) {
15553 ndr_print_string(ndr, "print_processor", r->print_processor);
15556 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
15558 if (r->vendor_setup) {
15559 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
15562 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
15564 if (r->color_profiles) {
15565 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
15568 ndr_print_ptr(ndr, "inf_path", r->inf_path);
15571 ndr_print_string(ndr, "inf_path", r->inf_path);
15574 ndr_print_spoolss_DriverAttributes(ndr, "printer_driver_attributes", r->printer_driver_attributes);
15575 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
15577 if (r->core_driver_dependencies) {
15578 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
15581 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
15582 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
15586 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, int flags)
15588 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8);
15591 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
15593 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
15594 return NDR_ERR_SUCCESS;
15597 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
15600 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
15602 return NDR_ERR_SUCCESS;
15605 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
15607 const char *val = NULL;
15610 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
15611 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
15612 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
15613 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
15614 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
15616 ndr_print_enum(ndr, name, "ENUM", val, r);
15619 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
15621 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
15622 if (ndr_flags & NDR_SCALARS) {
15623 NDR_CHECK(ndr_push_align(ndr, 5));
15625 uint32_t _flags_save_string = ndr->flags;
15626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15627 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
15628 ndr->flags = _flags_save_string;
15630 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
15631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
15632 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
15634 if (ndr_flags & NDR_BUFFERS) {
15636 uint32_t _flags_save_string = ndr->flags;
15637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15638 if (r->file_name) {
15639 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->file_name));
15640 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
15641 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->file_name));
15643 ndr->flags = _flags_save_string;
15646 return NDR_ERR_SUCCESS;
15649 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
15651 uint32_t _ptr_file_name;
15652 TALLOC_CTX *_mem_save_file_name_0 = NULL;
15653 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
15654 if (ndr_flags & NDR_SCALARS) {
15655 NDR_CHECK(ndr_pull_align(ndr, 5));
15657 uint32_t _flags_save_string = ndr->flags;
15658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
15660 if (_ptr_file_name) {
15661 NDR_PULL_ALLOC(ndr, r->file_name);
15662 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
15664 r->file_name = NULL;
15666 ndr->flags = _flags_save_string;
15668 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
15669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
15670 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
15672 if (ndr_flags & NDR_BUFFERS) {
15674 uint32_t _flags_save_string = ndr->flags;
15675 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
15676 if (r->file_name) {
15677 uint32_t _relative_save_offset;
15678 _relative_save_offset = ndr->offset;
15679 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
15680 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15681 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
15682 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
15683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
15684 if (ndr->offset > ndr->relative_highest_offset) {
15685 ndr->relative_highest_offset = ndr->offset;
15687 ndr->offset = _relative_save_offset;
15689 ndr->flags = _flags_save_string;
15692 return NDR_ERR_SUCCESS;
15695 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
15697 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
15698 if (r == NULL) { ndr_print_null(ndr); return; }
15700 ndr_print_ptr(ndr, "file_name", r->file_name);
15702 if (r->file_name) {
15703 ndr_print_string(ndr, "file_name", r->file_name);
15706 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
15707 ndr_print_uint32(ndr, "file_version", r->file_version);
15711 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
15713 uint32_t cntr_file_info_1;
15714 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
15715 if (r == NULL) { ndr_print_null(ndr); return; }
15717 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
15718 ndr_print_ptr(ndr, "driver_name", r->driver_name);
15720 if (r->driver_name) {
15721 ndr_print_string(ndr, "driver_name", r->driver_name);
15724 ndr_print_ptr(ndr, "architecture", r->architecture);
15726 if (r->architecture) {
15727 ndr_print_string(ndr, "architecture", r->architecture);
15730 ndr_print_ptr(ndr, "file_info", r->file_info);
15732 if (r->file_info) {
15733 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
15735 for (cntr_file_info_1 = 0; cntr_file_info_1 < (r->file_count); cntr_file_info_1++) {
15736 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
15741 ndr_print_uint32(ndr, "file_count", r->file_count);
15742 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
15744 if (r->monitor_name) {
15745 ndr_print_string(ndr, "monitor_name", r->monitor_name);
15748 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
15750 if (r->default_datatype) {
15751 ndr_print_string(ndr, "default_datatype", r->default_datatype);
15754 ndr_print_ptr(ndr, "previous_names", r->previous_names);
15756 if (r->previous_names) {
15757 ndr_print_string_array(ndr, "previous_names", r->previous_names);
15760 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
15761 ndr_print_hyper(ndr, "driver_version", r->driver_version);
15762 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
15764 if (r->manufacturer_name) {
15765 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
15768 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
15770 if (r->manufacturer_url) {
15771 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
15774 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
15776 if (r->hardware_id) {
15777 ndr_print_string(ndr, "hardware_id", r->hardware_id);
15780 ndr_print_ptr(ndr, "provider", r->provider);
15783 ndr_print_string(ndr, "provider", r->provider);
15789 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, int flags)
15791 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101);
15794 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
15796 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15798 uint32_t _flags_save_UNION = ndr->flags;
15799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15800 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
15801 if (ndr_flags & NDR_SCALARS) {
15802 uint32_t level = ndr_push_get_switch_value(ndr, r);
15803 NDR_CHECK(ndr_push_union_align(ndr, 8));
15806 NDR_CHECK(ndr_push_align(ndr, 5));
15807 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15808 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
15812 NDR_CHECK(ndr_push_align(ndr, 5));
15813 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15814 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
15818 NDR_CHECK(ndr_push_align(ndr, 5));
15819 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15820 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
15824 NDR_CHECK(ndr_push_align(ndr, 5));
15825 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15826 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
15830 NDR_CHECK(ndr_push_align(ndr, 5));
15831 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15832 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
15836 NDR_CHECK(ndr_push_align(ndr, 8));
15837 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15838 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
15842 NDR_CHECK(ndr_push_align(ndr, 5));
15843 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15844 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
15848 NDR_CHECK(ndr_push_align(ndr, 8));
15849 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15850 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
15854 NDR_CHECK(ndr_push_align(ndr, 8));
15855 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15856 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
15864 if (ndr_flags & NDR_BUFFERS) {
15865 uint32_t level = ndr_push_get_switch_value(ndr, r);
15866 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15869 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
15873 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
15877 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
15881 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
15885 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
15889 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
15893 NDR_CHECK(ndr_push_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
15897 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
15901 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
15909 ndr->flags = _flags_save_UNION;
15911 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15912 return NDR_ERR_SUCCESS;
15915 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
15917 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15920 uint32_t _flags_save_UNION = ndr->flags;
15921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
15922 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
15923 if (ndr_flags & NDR_SCALARS) {
15924 level = ndr_pull_get_switch_value(ndr, r);
15925 NDR_CHECK(ndr_pull_union_align(ndr, 8));
15928 NDR_CHECK(ndr_pull_align(ndr, 5));
15929 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15930 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
15934 NDR_CHECK(ndr_pull_align(ndr, 5));
15935 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15936 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
15940 NDR_CHECK(ndr_pull_align(ndr, 5));
15941 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15942 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
15946 NDR_CHECK(ndr_pull_align(ndr, 5));
15947 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15948 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
15952 NDR_CHECK(ndr_pull_align(ndr, 5));
15953 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15954 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
15958 NDR_CHECK(ndr_pull_align(ndr, 8));
15959 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15960 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
15964 NDR_CHECK(ndr_pull_align(ndr, 5));
15965 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15966 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_SCALARS, &r->info7));
15970 NDR_CHECK(ndr_pull_align(ndr, 8));
15971 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15972 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
15976 NDR_CHECK(ndr_pull_align(ndr, 8));
15977 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15978 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
15986 if (ndr_flags & NDR_BUFFERS) {
15987 /* The token is not needed after this. */
15988 level = ndr_pull_steal_switch_value(ndr, r);
15989 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15992 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
15996 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
16000 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
16004 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
16008 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
16012 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
16016 NDR_CHECK(ndr_pull_spoolss_DriverInfo7(ndr, NDR_BUFFERS, &r->info7));
16020 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
16024 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
16032 ndr->flags = _flags_save_UNION;
16034 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16035 return NDR_ERR_SUCCESS;
16038 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
16042 uint32_t _flags_save_UNION = ndr->flags;
16043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16044 level = ndr_print_get_switch_value(ndr, r);
16045 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
16048 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
16052 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
16056 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
16060 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
16064 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
16068 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
16072 ndr_print_spoolss_DriverInfo7(ndr, "info7", &r->info7);
16076 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
16080 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
16087 ndr->flags = _flags_save_UNION;
16091 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, int flags)
16093 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
16094 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo);
16097 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
16099 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16100 if (ndr_flags & NDR_SCALARS) {
16101 NDR_CHECK(ndr_push_align(ndr, 4));
16103 uint32_t _flags_save_string = ndr->flags;
16104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16105 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
16106 ndr->flags = _flags_save_string;
16108 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16110 if (ndr_flags & NDR_BUFFERS) {
16112 return NDR_ERR_SUCCESS;
16115 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
16117 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16118 if (ndr_flags & NDR_SCALARS) {
16119 NDR_CHECK(ndr_pull_align(ndr, 4));
16121 uint32_t _flags_save_string = ndr->flags;
16122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16123 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
16124 ndr->flags = _flags_save_string;
16126 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16128 if (ndr_flags & NDR_BUFFERS) {
16130 return NDR_ERR_SUCCESS;
16133 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
16135 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
16136 if (r == NULL) { ndr_print_null(ndr); return; }
16138 ndr_print_string(ndr, "directory_name", r->directory_name);
16142 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, int flags)
16144 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1);
16147 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
16149 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16151 uint32_t _flags_save_UNION = ndr->flags;
16152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16153 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16154 if (ndr_flags & NDR_SCALARS) {
16155 uint32_t level = ndr_push_get_switch_value(ndr, r);
16156 NDR_CHECK(ndr_push_union_align(ndr, 4));
16159 NDR_CHECK(ndr_push_align(ndr, 4));
16160 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16161 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16165 NDR_CHECK(ndr_push_align(ndr, 4));
16166 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16167 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16172 ndr->flags = _flags_save_UNION;
16174 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16175 return NDR_ERR_SUCCESS;
16178 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
16180 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16183 uint32_t _flags_save_UNION = ndr->flags;
16184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16185 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16186 if (ndr_flags & NDR_SCALARS) {
16187 /* This token is not used again */
16188 level = ndr_pull_steal_switch_value(ndr, r);
16189 NDR_CHECK(ndr_pull_union_align(ndr, 4));
16192 NDR_CHECK(ndr_pull_align(ndr, 4));
16193 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16194 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16198 NDR_CHECK(ndr_pull_align(ndr, 4));
16199 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16200 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16205 ndr->flags = _flags_save_UNION;
16207 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16208 return NDR_ERR_SUCCESS;
16211 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
16215 uint32_t _flags_save_UNION = ndr->flags;
16216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16217 level = ndr_print_get_switch_value(ndr, r);
16218 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
16221 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
16225 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
16229 ndr->flags = _flags_save_UNION;
16233 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, int flags)
16235 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
16236 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo);
16239 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
16241 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16242 if (ndr_flags & NDR_SCALARS) {
16243 NDR_CHECK(ndr_push_align(ndr, 5));
16245 uint32_t _flags_save_string = ndr->flags;
16246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
16248 ndr->flags = _flags_save_string;
16250 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16252 if (ndr_flags & NDR_BUFFERS) {
16254 uint32_t _flags_save_string = ndr->flags;
16255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16256 if (r->print_processor_name) {
16257 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->print_processor_name));
16258 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
16259 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->print_processor_name));
16261 ndr->flags = _flags_save_string;
16264 return NDR_ERR_SUCCESS;
16267 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
16269 uint32_t _ptr_print_processor_name;
16270 TALLOC_CTX *_mem_save_print_processor_name_0 = NULL;
16271 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16272 if (ndr_flags & NDR_SCALARS) {
16273 NDR_CHECK(ndr_pull_align(ndr, 5));
16275 uint32_t _flags_save_string = ndr->flags;
16276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16277 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
16278 if (_ptr_print_processor_name) {
16279 NDR_PULL_ALLOC(ndr, r->print_processor_name);
16280 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
16282 r->print_processor_name = NULL;
16284 ndr->flags = _flags_save_string;
16286 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16288 if (ndr_flags & NDR_BUFFERS) {
16290 uint32_t _flags_save_string = ndr->flags;
16291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16292 if (r->print_processor_name) {
16293 uint32_t _relative_save_offset;
16294 _relative_save_offset = ndr->offset;
16295 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
16296 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16297 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
16298 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
16299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
16300 if (ndr->offset > ndr->relative_highest_offset) {
16301 ndr->relative_highest_offset = ndr->offset;
16303 ndr->offset = _relative_save_offset;
16305 ndr->flags = _flags_save_string;
16308 return NDR_ERR_SUCCESS;
16311 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
16313 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
16314 if (r == NULL) { ndr_print_null(ndr); return; }
16316 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
16318 if (r->print_processor_name) {
16319 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
16325 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, int flags)
16327 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1);
16330 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
16332 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16334 uint32_t _flags_save_UNION = ndr->flags;
16335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16336 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16337 if (ndr_flags & NDR_SCALARS) {
16338 uint32_t level = ndr_push_get_switch_value(ndr, r);
16339 NDR_CHECK(ndr_push_union_align(ndr, 5));
16342 NDR_CHECK(ndr_push_align(ndr, 5));
16343 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16344 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
16352 if (ndr_flags & NDR_BUFFERS) {
16353 uint32_t level = ndr_push_get_switch_value(ndr, r);
16354 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16357 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
16365 ndr->flags = _flags_save_UNION;
16367 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16368 return NDR_ERR_SUCCESS;
16371 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
16373 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16376 uint32_t _flags_save_UNION = ndr->flags;
16377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16378 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16379 if (ndr_flags & NDR_SCALARS) {
16380 level = ndr_pull_get_switch_value(ndr, r);
16381 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16384 NDR_CHECK(ndr_pull_align(ndr, 5));
16385 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16386 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
16394 if (ndr_flags & NDR_BUFFERS) {
16395 /* The token is not needed after this. */
16396 level = ndr_pull_steal_switch_value(ndr, r);
16397 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16400 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
16408 ndr->flags = _flags_save_UNION;
16410 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16411 return NDR_ERR_SUCCESS;
16414 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
16418 uint32_t _flags_save_UNION = ndr->flags;
16419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16420 level = ndr_print_get_switch_value(ndr, r);
16421 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
16424 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
16431 ndr->flags = _flags_save_UNION;
16435 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
16437 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16438 if (ndr_flags & NDR_SCALARS) {
16439 NDR_CHECK(ndr_push_align(ndr, 4));
16441 uint32_t _flags_save_string = ndr->flags;
16442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16443 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
16444 ndr->flags = _flags_save_string;
16446 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16448 if (ndr_flags & NDR_BUFFERS) {
16450 return NDR_ERR_SUCCESS;
16453 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
16455 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16456 if (ndr_flags & NDR_SCALARS) {
16457 NDR_CHECK(ndr_pull_align(ndr, 4));
16459 uint32_t _flags_save_string = ndr->flags;
16460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16461 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
16462 ndr->flags = _flags_save_string;
16464 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16466 if (ndr_flags & NDR_BUFFERS) {
16468 return NDR_ERR_SUCCESS;
16471 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
16473 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
16474 if (r == NULL) { ndr_print_null(ndr); return; }
16476 ndr_print_string(ndr, "directory_name", r->directory_name);
16480 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, int flags)
16482 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1);
16485 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
16487 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16489 uint32_t _flags_save_UNION = ndr->flags;
16490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16491 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16492 if (ndr_flags & NDR_SCALARS) {
16493 uint32_t level = ndr_push_get_switch_value(ndr, r);
16494 NDR_CHECK(ndr_push_union_align(ndr, 4));
16497 NDR_CHECK(ndr_push_align(ndr, 4));
16498 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16499 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16503 NDR_CHECK(ndr_push_align(ndr, 4));
16504 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16505 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16510 ndr->flags = _flags_save_UNION;
16512 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16513 return NDR_ERR_SUCCESS;
16516 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
16518 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16521 uint32_t _flags_save_UNION = ndr->flags;
16522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16523 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16524 if (ndr_flags & NDR_SCALARS) {
16525 /* This token is not used again */
16526 level = ndr_pull_steal_switch_value(ndr, r);
16527 NDR_CHECK(ndr_pull_union_align(ndr, 4));
16530 NDR_CHECK(ndr_pull_align(ndr, 4));
16531 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16532 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16536 NDR_CHECK(ndr_pull_align(ndr, 4));
16537 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16538 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
16543 ndr->flags = _flags_save_UNION;
16545 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16546 return NDR_ERR_SUCCESS;
16549 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
16553 uint32_t _flags_save_UNION = ndr->flags;
16554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
16555 level = ndr_print_get_switch_value(ndr, r);
16556 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
16559 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
16563 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
16567 ndr->flags = _flags_save_UNION;
16571 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, int flags)
16573 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
16574 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo);
16577 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
16579 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16580 if (ndr_flags & NDR_SCALARS) {
16581 NDR_CHECK(ndr_push_align(ndr, 5));
16582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
16583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
16584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
16585 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16587 if (ndr_flags & NDR_BUFFERS) {
16588 if (r->document_name) {
16589 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
16590 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16591 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
16592 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16594 if (r->output_file) {
16595 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
16596 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16597 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
16598 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16601 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
16602 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
16603 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
16604 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16607 return NDR_ERR_SUCCESS;
16610 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
16612 uint32_t _ptr_document_name;
16613 uint32_t size_document_name_1 = 0;
16614 uint32_t length_document_name_1 = 0;
16615 TALLOC_CTX *_mem_save_document_name_0 = NULL;
16616 uint32_t _ptr_output_file;
16617 uint32_t size_output_file_1 = 0;
16618 uint32_t length_output_file_1 = 0;
16619 TALLOC_CTX *_mem_save_output_file_0 = NULL;
16620 uint32_t _ptr_datatype;
16621 uint32_t size_datatype_1 = 0;
16622 uint32_t length_datatype_1 = 0;
16623 TALLOC_CTX *_mem_save_datatype_0 = NULL;
16624 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16625 if (ndr_flags & NDR_SCALARS) {
16626 NDR_CHECK(ndr_pull_align(ndr, 5));
16627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
16628 if (_ptr_document_name) {
16629 NDR_PULL_ALLOC(ndr, r->document_name);
16631 r->document_name = NULL;
16633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
16634 if (_ptr_output_file) {
16635 NDR_PULL_ALLOC(ndr, r->output_file);
16637 r->output_file = NULL;
16639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
16640 if (_ptr_datatype) {
16641 NDR_PULL_ALLOC(ndr, r->datatype);
16643 r->datatype = NULL;
16645 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16647 if (ndr_flags & NDR_BUFFERS) {
16648 if (r->document_name) {
16649 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16650 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
16651 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
16652 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
16653 size_document_name_1 = ndr_get_array_size(ndr, &r->document_name);
16654 length_document_name_1 = ndr_get_array_length(ndr, &r->document_name);
16655 if (length_document_name_1 > size_document_name_1) {
16656 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_document_name_1, length_document_name_1);
16658 NDR_CHECK(ndr_check_string_terminator(ndr, length_document_name_1, sizeof(uint16_t)));
16659 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, length_document_name_1, sizeof(uint16_t), CH_UTF16));
16660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
16662 if (r->output_file) {
16663 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
16664 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
16665 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
16666 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
16667 size_output_file_1 = ndr_get_array_size(ndr, &r->output_file);
16668 length_output_file_1 = ndr_get_array_length(ndr, &r->output_file);
16669 if (length_output_file_1 > size_output_file_1) {
16670 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_output_file_1, length_output_file_1);
16672 NDR_CHECK(ndr_check_string_terminator(ndr, length_output_file_1, sizeof(uint16_t)));
16673 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, length_output_file_1, sizeof(uint16_t), CH_UTF16));
16674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
16677 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
16678 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
16679 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
16680 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
16681 size_datatype_1 = ndr_get_array_size(ndr, &r->datatype);
16682 length_datatype_1 = ndr_get_array_length(ndr, &r->datatype);
16683 if (length_datatype_1 > size_datatype_1) {
16684 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
16686 NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
16687 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
16688 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
16691 return NDR_ERR_SUCCESS;
16694 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
16696 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
16697 if (r == NULL) { ndr_print_null(ndr); return; }
16699 ndr_print_ptr(ndr, "document_name", r->document_name);
16701 if (r->document_name) {
16702 ndr_print_string(ndr, "document_name", r->document_name);
16705 ndr_print_ptr(ndr, "output_file", r->output_file);
16707 if (r->output_file) {
16708 ndr_print_string(ndr, "output_file", r->output_file);
16711 ndr_print_ptr(ndr, "datatype", r->datatype);
16714 ndr_print_string(ndr, "datatype", r->datatype);
16720 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
16722 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16723 if (ndr_flags & NDR_SCALARS) {
16724 uint32_t level = ndr_push_get_switch_value(ndr, r);
16725 NDR_CHECK(ndr_push_union_align(ndr, 5));
16726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
16727 /* ms_union is always aligned to the largest union arm*/
16728 NDR_CHECK(ndr_push_align(ndr, 5));
16731 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
16745 if (ndr_flags & NDR_BUFFERS) {
16746 uint32_t level = ndr_push_get_switch_value(ndr, r);
16750 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16765 return NDR_ERR_SUCCESS;
16768 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
16772 TALLOC_CTX *_mem_save_info1_0 = NULL;
16773 uint32_t _ptr_info1;
16774 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16775 if (ndr_flags & NDR_SCALARS) {
16776 level = ndr_pull_get_switch_value(ndr, r);
16777 NDR_CHECK(ndr_pull_union_align(ndr, 5));
16778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
16779 if (_level != level) {
16780 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
16782 /* ms_union is always aligned to the largest union arm*/
16783 NDR_CHECK(ndr_pull_align(ndr, 5));
16786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
16788 NDR_PULL_ALLOC(ndr, r->info1);
16805 if (ndr_flags & NDR_BUFFERS) {
16806 /* The token is not needed after this. */
16807 level = ndr_pull_steal_switch_value(ndr, r);
16811 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
16812 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
16813 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
16814 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
16829 return NDR_ERR_SUCCESS;
16832 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
16835 level = ndr_print_get_switch_value(ndr, r);
16836 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
16839 ndr_print_ptr(ndr, "info1", r->info1);
16842 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
16859 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DocumentInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfoCtr *r)
16861 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16862 if (ndr_flags & NDR_SCALARS) {
16863 NDR_CHECK(ndr_push_align(ndr, 5));
16864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
16865 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
16866 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS, &r->info));
16867 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
16869 if (ndr_flags & NDR_BUFFERS) {
16870 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_BUFFERS, &r->info));
16872 return NDR_ERR_SUCCESS;
16875 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DocumentInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfoCtr *r)
16877 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16878 if (ndr_flags & NDR_SCALARS) {
16879 NDR_CHECK(ndr_pull_align(ndr, 5));
16880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
16881 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
16882 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS, &r->info));
16883 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
16885 if (ndr_flags & NDR_BUFFERS) {
16886 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_BUFFERS, &r->info));
16888 return NDR_ERR_SUCCESS;
16891 _PUBLIC_ void ndr_print_spoolss_DocumentInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfoCtr *r)
16893 ndr_print_struct(ndr, name, "spoolss_DocumentInfoCtr");
16894 if (r == NULL) { ndr_print_null(ndr); return; }
16896 ndr_print_uint32(ndr, "level", r->level);
16897 ndr_print_set_switch_value(ndr, &r->info, r->level);
16898 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->info);
16902 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
16904 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16905 if (ndr_flags & NDR_SCALARS) {
16906 NDR_CHECK(ndr_push_align(ndr, 4));
16907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->flags)));
16908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
16909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
16910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
16911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16913 uint32_t _flags_save_string = ndr->flags;
16914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16916 struct ndr_push *_ndr_extra_string;
16917 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16918 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
16919 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16921 ndr->flags = _flags_save_string;
16923 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
16925 if (ndr_flags & NDR_BUFFERS) {
16927 return NDR_ERR_SUCCESS;
16930 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
16932 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
16933 if (ndr_flags & NDR_SCALARS) {
16934 NDR_CHECK(ndr_pull_align(ndr, 4));
16935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
16936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
16937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
16938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
16939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
16941 uint32_t _flags_save_string = ndr->flags;
16942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16944 struct ndr_pull *_ndr_extra_string;
16945 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16946 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
16947 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16949 ndr->flags = _flags_save_string;
16951 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
16953 if (ndr_flags & NDR_BUFFERS) {
16955 return NDR_ERR_SUCCESS;
16958 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
16960 ndr_print_struct(ndr, name, "spoolss_OSVersion");
16961 if (r == NULL) { ndr_print_null(ndr); return; }
16963 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersion(r, ndr->flags):r->_ndr_size);
16964 ndr_print_uint32(ndr, "major", r->major);
16965 ndr_print_uint32(ndr, "minor", r->minor);
16966 ndr_print_uint32(ndr, "build", r->build);
16967 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
16968 ndr_print_string(ndr, "extra_string", r->extra_string);
16972 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, int flags)
16974 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion);
16977 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
16979 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
16980 if (ndr_flags & NDR_SCALARS) {
16981 NDR_CHECK(ndr_push_align(ndr, 4));
16982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->flags)));
16983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
16984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
16985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
16986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
16988 uint32_t _flags_save_string = ndr->flags;
16989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
16991 struct ndr_push *_ndr_extra_string;
16992 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
16993 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
16994 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
16996 ndr->flags = _flags_save_string;
16998 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_major));
16999 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->service_pack_minor));
17000 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->suite_mask));
17001 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->product_type));
17002 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->reserved));
17003 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
17005 if (ndr_flags & NDR_BUFFERS) {
17007 return NDR_ERR_SUCCESS;
17010 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
17012 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17013 if (ndr_flags & NDR_SCALARS) {
17014 NDR_CHECK(ndr_pull_align(ndr, 4));
17015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
17016 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
17017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
17018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->platform_id));
17021 uint32_t _flags_save_string = ndr->flags;
17022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17024 struct ndr_pull *_ndr_extra_string;
17025 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
17026 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
17027 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
17029 ndr->flags = _flags_save_string;
17031 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_major));
17032 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->service_pack_minor));
17033 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->suite_mask));
17034 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->product_type));
17035 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->reserved));
17036 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
17038 if (ndr_flags & NDR_BUFFERS) {
17040 return NDR_ERR_SUCCESS;
17043 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
17045 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
17046 if (r == NULL) { ndr_print_null(ndr); return; }
17048 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersionEx(r, ndr->flags):r->_ndr_size);
17049 ndr_print_uint32(ndr, "major", r->major);
17050 ndr_print_uint32(ndr, "minor", r->minor);
17051 ndr_print_uint32(ndr, "build", r->build);
17052 ndr_print_uint32(ndr, "platform_id", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->platform_id);
17053 ndr_print_string(ndr, "extra_string", r->extra_string);
17054 ndr_print_uint16(ndr, "service_pack_major", r->service_pack_major);
17055 ndr_print_uint16(ndr, "service_pack_minor", r->service_pack_minor);
17056 ndr_print_uint16(ndr, "suite_mask", r->suite_mask);
17057 ndr_print_uint8(ndr, "product_type", r->product_type);
17058 ndr_print_uint8(ndr, "reserved", r->reserved);
17062 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, int flags)
17064 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx);
17067 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
17069 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17070 if (ndr_flags & NDR_SCALARS) {
17071 uint32_t level = ndr_push_get_switch_value(ndr, r);
17072 NDR_CHECK(ndr_push_union_align(ndr, 4));
17079 uint32_t _flags_save_string = ndr->flags;
17080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17081 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
17082 ndr->flags = _flags_save_string;
17088 uint32_t _flags_save_DATA_BLOB = ndr->flags;
17089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
17090 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
17091 ndr->flags = _flags_save_DATA_BLOB;
17096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
17099 case REG_MULTI_SZ: {
17101 uint32_t _flags_save_string_array = ndr->flags;
17102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17103 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
17104 ndr->flags = _flags_save_string_array;
17110 uint32_t _flags_save_DATA_BLOB = ndr->flags;
17111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
17112 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
17113 ndr->flags = _flags_save_DATA_BLOB;
17119 return NDR_ERR_SUCCESS;
17122 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
17125 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17126 if (ndr_flags & NDR_SCALARS) {
17127 /* This token is not used again */
17128 level = ndr_pull_steal_switch_value(ndr, r);
17129 NDR_CHECK(ndr_pull_union_align(ndr, 4));
17136 uint32_t _flags_save_string = ndr->flags;
17137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17138 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
17139 ndr->flags = _flags_save_string;
17145 uint32_t _flags_save_DATA_BLOB = ndr->flags;
17146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
17147 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
17148 ndr->flags = _flags_save_DATA_BLOB;
17153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
17156 case REG_MULTI_SZ: {
17158 uint32_t _flags_save_string_array = ndr->flags;
17159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17160 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
17161 ndr->flags = _flags_save_string_array;
17167 uint32_t _flags_save_DATA_BLOB = ndr->flags;
17168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
17169 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
17170 ndr->flags = _flags_save_DATA_BLOB;
17176 return NDR_ERR_SUCCESS;
17179 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
17182 level = ndr_print_get_switch_value(ndr, r);
17183 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
17189 ndr_print_string(ndr, "string", r->string);
17193 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
17197 ndr_print_uint32(ndr, "value", r->value);
17201 ndr_print_string_array(ndr, "string_array", r->string_array);
17205 ndr_print_DATA_BLOB(ndr, "data", r->data);
17211 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
17213 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
17214 return NDR_ERR_SUCCESS;
17217 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
17220 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
17222 return NDR_ERR_SUCCESS;
17225 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
17227 const char *val = NULL;
17230 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
17231 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
17232 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
17234 ndr_print_enum(ndr, name, "ENUM", val, r);
17237 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
17239 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17240 if (ndr_flags & NDR_SCALARS) {
17241 NDR_CHECK(ndr_push_align(ndr, 4));
17242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
17243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
17244 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
17246 if (ndr_flags & NDR_BUFFERS) {
17248 return NDR_ERR_SUCCESS;
17251 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
17253 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17254 if (ndr_flags & NDR_SCALARS) {
17255 NDR_CHECK(ndr_pull_align(ndr, 4));
17256 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
17257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
17258 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
17260 if (ndr_flags & NDR_BUFFERS) {
17262 return NDR_ERR_SUCCESS;
17265 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
17267 ndr_print_struct(ndr, name, "spoolss_FormSize");
17268 if (r == NULL) { ndr_print_null(ndr); return; }
17270 ndr_print_uint32(ndr, "width", r->width);
17271 ndr_print_uint32(ndr, "height", r->height);
17275 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
17277 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17278 if (ndr_flags & NDR_SCALARS) {
17279 NDR_CHECK(ndr_push_align(ndr, 4));
17280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
17281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
17282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
17283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
17284 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
17286 if (ndr_flags & NDR_BUFFERS) {
17288 return NDR_ERR_SUCCESS;
17291 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
17293 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17294 if (ndr_flags & NDR_SCALARS) {
17295 NDR_CHECK(ndr_pull_align(ndr, 4));
17296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
17297 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
17298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
17299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
17300 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
17302 if (ndr_flags & NDR_BUFFERS) {
17304 return NDR_ERR_SUCCESS;
17307 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
17309 ndr_print_struct(ndr, name, "spoolss_FormArea");
17310 if (r == NULL) { ndr_print_null(ndr); return; }
17312 ndr_print_uint32(ndr, "left", r->left);
17313 ndr_print_uint32(ndr, "top", r->top);
17314 ndr_print_uint32(ndr, "right", r->right);
17315 ndr_print_uint32(ndr, "bottom", r->bottom);
17319 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
17321 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17322 if (ndr_flags & NDR_SCALARS) {
17323 NDR_CHECK(ndr_push_align(ndr, 5));
17324 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17326 uint32_t _flags_save_string = ndr->flags;
17327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
17329 ndr->flags = _flags_save_string;
17331 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17332 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17333 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17335 if (ndr_flags & NDR_BUFFERS) {
17337 uint32_t _flags_save_string = ndr->flags;
17338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17339 if (r->form_name) {
17340 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
17341 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
17342 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
17344 ndr->flags = _flags_save_string;
17347 return NDR_ERR_SUCCESS;
17350 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
17352 uint32_t _ptr_form_name;
17353 TALLOC_CTX *_mem_save_form_name_0 = NULL;
17354 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17355 if (ndr_flags & NDR_SCALARS) {
17356 NDR_CHECK(ndr_pull_align(ndr, 5));
17357 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17359 uint32_t _flags_save_string = ndr->flags;
17360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17362 if (_ptr_form_name) {
17363 NDR_PULL_ALLOC(ndr, r->form_name);
17364 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
17366 r->form_name = NULL;
17368 ndr->flags = _flags_save_string;
17370 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17371 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17372 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17374 if (ndr_flags & NDR_BUFFERS) {
17376 uint32_t _flags_save_string = ndr->flags;
17377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17378 if (r->form_name) {
17379 uint32_t _relative_save_offset;
17380 _relative_save_offset = ndr->offset;
17381 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
17382 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17383 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17384 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
17385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17386 if (ndr->offset > ndr->relative_highest_offset) {
17387 ndr->relative_highest_offset = ndr->offset;
17389 ndr->offset = _relative_save_offset;
17391 ndr->flags = _flags_save_string;
17394 return NDR_ERR_SUCCESS;
17397 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
17399 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
17400 if (r == NULL) { ndr_print_null(ndr); return; }
17402 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17403 ndr_print_ptr(ndr, "form_name", r->form_name);
17405 if (r->form_name) {
17406 ndr_print_string(ndr, "form_name", r->form_name);
17409 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17410 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17414 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, int flags)
17416 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1);
17419 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17422 return NDR_ERR_SUCCESS;
17425 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17430 return NDR_ERR_SUCCESS;
17433 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
17435 ndr_print_uint32(ndr, name, r);
17437 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
17438 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
17439 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
17443 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
17445 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17446 if (ndr_flags & NDR_SCALARS) {
17447 NDR_CHECK(ndr_push_align(ndr, 5));
17448 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17450 uint32_t _flags_save_string = ndr->flags;
17451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17452 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
17453 ndr->flags = _flags_save_string;
17455 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17456 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17458 uint32_t _flags_save_string = ndr->flags;
17459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
17460 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
17461 ndr->flags = _flags_save_string;
17463 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
17465 uint32_t _flags_save_string = ndr->flags;
17466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17467 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
17468 ndr->flags = _flags_save_string;
17470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
17472 uint32_t _flags_save_string = ndr->flags;
17473 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17474 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
17475 ndr->flags = _flags_save_string;
17477 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->lang_id));
17478 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->unused));
17479 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17481 if (ndr_flags & NDR_BUFFERS) {
17483 uint32_t _flags_save_string = ndr->flags;
17484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17485 if (r->form_name) {
17486 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->form_name));
17487 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
17488 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->form_name));
17490 ndr->flags = _flags_save_string;
17493 uint32_t _flags_save_string = ndr->flags;
17494 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
17496 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->keyword));
17497 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
17498 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->keyword));
17500 ndr->flags = _flags_save_string;
17503 uint32_t _flags_save_string = ndr->flags;
17504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17506 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->mui_dll));
17507 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
17508 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->mui_dll));
17510 ndr->flags = _flags_save_string;
17513 uint32_t _flags_save_string = ndr->flags;
17514 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17515 if (r->display_name) {
17516 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->display_name));
17517 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
17518 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->display_name));
17520 ndr->flags = _flags_save_string;
17523 return NDR_ERR_SUCCESS;
17526 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
17528 uint32_t _ptr_form_name;
17529 TALLOC_CTX *_mem_save_form_name_0 = NULL;
17530 uint32_t _ptr_keyword;
17531 TALLOC_CTX *_mem_save_keyword_0 = NULL;
17532 uint32_t _ptr_mui_dll;
17533 TALLOC_CTX *_mem_save_mui_dll_0 = NULL;
17534 uint32_t _ptr_display_name;
17535 TALLOC_CTX *_mem_save_display_name_0 = NULL;
17536 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17537 if (ndr_flags & NDR_SCALARS) {
17538 NDR_CHECK(ndr_pull_align(ndr, 5));
17539 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17541 uint32_t _flags_save_string = ndr->flags;
17542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17544 if (_ptr_form_name) {
17545 NDR_PULL_ALLOC(ndr, r->form_name);
17546 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
17548 r->form_name = NULL;
17550 ndr->flags = _flags_save_string;
17552 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17553 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17555 uint32_t _flags_save_string = ndr->flags;
17556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
17557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
17558 if (_ptr_keyword) {
17559 NDR_PULL_ALLOC(ndr, r->keyword);
17560 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
17564 ndr->flags = _flags_save_string;
17566 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
17568 uint32_t _flags_save_string = ndr->flags;
17569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17570 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
17571 if (_ptr_mui_dll) {
17572 NDR_PULL_ALLOC(ndr, r->mui_dll);
17573 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
17577 ndr->flags = _flags_save_string;
17579 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
17581 uint32_t _flags_save_string = ndr->flags;
17582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
17584 if (_ptr_display_name) {
17585 NDR_PULL_ALLOC(ndr, r->display_name);
17586 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
17588 r->display_name = NULL;
17590 ndr->flags = _flags_save_string;
17592 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->lang_id));
17593 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->unused));
17594 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17596 if (ndr_flags & NDR_BUFFERS) {
17598 uint32_t _flags_save_string = ndr->flags;
17599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17600 if (r->form_name) {
17601 uint32_t _relative_save_offset;
17602 _relative_save_offset = ndr->offset;
17603 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
17604 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17605 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17606 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
17607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17608 if (ndr->offset > ndr->relative_highest_offset) {
17609 ndr->relative_highest_offset = ndr->offset;
17611 ndr->offset = _relative_save_offset;
17613 ndr->flags = _flags_save_string;
17616 uint32_t _flags_save_string = ndr->flags;
17617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
17619 uint32_t _relative_save_offset;
17620 _relative_save_offset = ndr->offset;
17621 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
17622 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
17623 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
17624 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
17625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
17626 if (ndr->offset > ndr->relative_highest_offset) {
17627 ndr->relative_highest_offset = ndr->offset;
17629 ndr->offset = _relative_save_offset;
17631 ndr->flags = _flags_save_string;
17634 uint32_t _flags_save_string = ndr->flags;
17635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17637 uint32_t _relative_save_offset;
17638 _relative_save_offset = ndr->offset;
17639 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
17640 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
17641 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
17642 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
17643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
17644 if (ndr->offset > ndr->relative_highest_offset) {
17645 ndr->relative_highest_offset = ndr->offset;
17647 ndr->offset = _relative_save_offset;
17649 ndr->flags = _flags_save_string;
17652 uint32_t _flags_save_string = ndr->flags;
17653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
17654 if (r->display_name) {
17655 uint32_t _relative_save_offset;
17656 _relative_save_offset = ndr->offset;
17657 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
17658 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17659 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
17660 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
17661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
17662 if (ndr->offset > ndr->relative_highest_offset) {
17663 ndr->relative_highest_offset = ndr->offset;
17665 ndr->offset = _relative_save_offset;
17667 ndr->flags = _flags_save_string;
17670 return NDR_ERR_SUCCESS;
17673 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
17675 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
17676 if (r == NULL) { ndr_print_null(ndr); return; }
17678 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17679 ndr_print_ptr(ndr, "form_name", r->form_name);
17681 if (r->form_name) {
17682 ndr_print_string(ndr, "form_name", r->form_name);
17685 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17686 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17687 ndr_print_ptr(ndr, "keyword", r->keyword);
17690 ndr_print_string(ndr, "keyword", r->keyword);
17693 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
17694 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
17697 ndr_print_string(ndr, "mui_dll", r->mui_dll);
17700 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
17701 ndr_print_ptr(ndr, "display_name", r->display_name);
17703 if (r->display_name) {
17704 ndr_print_string(ndr, "display_name", r->display_name);
17707 ndr_print_uint16(ndr, "lang_id", r->lang_id);
17708 ndr_print_uint16(ndr, "unused", r->unused);
17712 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, int flags)
17714 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2);
17717 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
17719 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
17721 uint32_t _flags_save_UNION = ndr->flags;
17722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17723 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17724 if (ndr_flags & NDR_SCALARS) {
17725 uint32_t level = ndr_push_get_switch_value(ndr, r);
17726 NDR_CHECK(ndr_push_union_align(ndr, 5));
17729 NDR_CHECK(ndr_push_align(ndr, 5));
17730 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17731 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
17735 NDR_CHECK(ndr_push_align(ndr, 5));
17736 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
17737 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
17745 if (ndr_flags & NDR_BUFFERS) {
17746 uint32_t level = ndr_push_get_switch_value(ndr, r);
17747 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
17750 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
17754 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
17762 ndr->flags = _flags_save_UNION;
17764 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
17765 return NDR_ERR_SUCCESS;
17768 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
17770 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
17773 uint32_t _flags_save_UNION = ndr->flags;
17774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17775 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17776 if (ndr_flags & NDR_SCALARS) {
17777 level = ndr_pull_get_switch_value(ndr, r);
17778 NDR_CHECK(ndr_pull_union_align(ndr, 5));
17781 NDR_CHECK(ndr_pull_align(ndr, 5));
17782 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17783 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
17787 NDR_CHECK(ndr_pull_align(ndr, 5));
17788 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
17789 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
17797 if (ndr_flags & NDR_BUFFERS) {
17798 /* The token is not needed after this. */
17799 level = ndr_pull_steal_switch_value(ndr, r);
17800 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
17803 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
17807 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
17815 ndr->flags = _flags_save_UNION;
17817 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
17818 return NDR_ERR_SUCCESS;
17821 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
17825 uint32_t _flags_save_UNION = ndr->flags;
17826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
17827 level = ndr_print_get_switch_value(ndr, r);
17828 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
17831 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
17835 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
17842 ndr->flags = _flags_save_UNION;
17846 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, int flags)
17848 flags |= LIBNDR_FLAG_RELATIVE_REVERSE;
17849 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo);
17852 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
17854 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17855 if (ndr_flags & NDR_SCALARS) {
17856 NDR_CHECK(ndr_push_align(ndr, 5));
17857 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17858 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
17859 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17860 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17861 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17863 if (ndr_flags & NDR_BUFFERS) {
17864 if (r->form_name) {
17865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17866 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17867 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17868 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17871 return NDR_ERR_SUCCESS;
17874 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
17876 uint32_t _ptr_form_name;
17877 uint32_t size_form_name_1 = 0;
17878 uint32_t length_form_name_1 = 0;
17879 TALLOC_CTX *_mem_save_form_name_0 = NULL;
17880 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17881 if (ndr_flags & NDR_SCALARS) {
17882 NDR_CHECK(ndr_pull_align(ndr, 5));
17883 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17885 if (_ptr_form_name) {
17886 NDR_PULL_ALLOC(ndr, r->form_name);
17888 r->form_name = NULL;
17890 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17891 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17892 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
17894 if (ndr_flags & NDR_BUFFERS) {
17895 if (r->form_name) {
17896 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
17897 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
17898 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
17899 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
17900 size_form_name_1 = ndr_get_array_size(ndr, &r->form_name);
17901 length_form_name_1 = ndr_get_array_length(ndr, &r->form_name);
17902 if (length_form_name_1 > size_form_name_1) {
17903 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_1, length_form_name_1);
17905 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
17906 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
17907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
17910 return NDR_ERR_SUCCESS;
17913 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
17915 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
17916 if (r == NULL) { ndr_print_null(ndr); return; }
17918 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
17919 ndr_print_ptr(ndr, "form_name", r->form_name);
17921 if (r->form_name) {
17922 ndr_print_string(ndr, "form_name", r->form_name);
17925 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
17926 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
17930 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
17932 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
17933 if (ndr_flags & NDR_SCALARS) {
17934 NDR_CHECK(ndr_push_align(ndr, 5));
17935 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
17936 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
17937 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
17938 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
17939 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
17940 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
17941 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
17942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
17943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
17944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
17945 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
17947 if (ndr_flags & NDR_BUFFERS) {
17948 if (r->form_name) {
17949 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17950 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17951 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
17952 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17955 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
17956 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17957 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
17958 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
17961 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
17962 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17963 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
17964 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17966 if (r->display_name) {
17967 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
17968 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
17969 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
17970 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17973 return NDR_ERR_SUCCESS;
17976 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
17978 uint32_t _ptr_form_name;
17979 uint32_t size_form_name_1 = 0;
17980 uint32_t length_form_name_1 = 0;
17981 TALLOC_CTX *_mem_save_form_name_0 = NULL;
17982 uint32_t _ptr_keyword;
17983 uint32_t size_keyword_1 = 0;
17984 uint32_t length_keyword_1 = 0;
17985 TALLOC_CTX *_mem_save_keyword_0 = NULL;
17986 uint32_t _ptr_mui_dll;
17987 uint32_t size_mui_dll_1 = 0;
17988 uint32_t length_mui_dll_1 = 0;
17989 TALLOC_CTX *_mem_save_mui_dll_0 = NULL;
17990 uint32_t _ptr_display_name;
17991 uint32_t size_display_name_1 = 0;
17992 uint32_t length_display_name_1 = 0;
17993 TALLOC_CTX *_mem_save_display_name_0 = NULL;
17994 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
17995 if (ndr_flags & NDR_SCALARS) {
17996 NDR_CHECK(ndr_pull_align(ndr, 5));
17997 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
17998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
17999 if (_ptr_form_name) {
18000 NDR_PULL_ALLOC(ndr, r->form_name);
18002 r->form_name = NULL;
18004 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
18005 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
18006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
18007 if (_ptr_keyword) {
18008 NDR_PULL_ALLOC(ndr, r->keyword);
18012 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
18013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
18014 if (_ptr_mui_dll) {
18015 NDR_PULL_ALLOC(ndr, r->mui_dll);
18019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
18020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
18021 if (_ptr_display_name) {
18022 NDR_PULL_ALLOC(ndr, r->display_name);
18024 r->display_name = NULL;
18026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
18027 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18029 if (ndr_flags & NDR_BUFFERS) {
18030 if (r->form_name) {
18031 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18032 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
18033 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
18034 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
18035 size_form_name_1 = ndr_get_array_size(ndr, &r->form_name);
18036 length_form_name_1 = ndr_get_array_length(ndr, &r->form_name);
18037 if (length_form_name_1 > size_form_name_1) {
18038 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_1, length_form_name_1);
18040 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_1, sizeof(uint16_t)));
18041 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, length_form_name_1, sizeof(uint16_t), CH_UTF16));
18042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
18045 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
18046 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
18047 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
18048 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
18049 size_keyword_1 = ndr_get_array_size(ndr, &r->keyword);
18050 length_keyword_1 = ndr_get_array_length(ndr, &r->keyword);
18051 if (length_keyword_1 > size_keyword_1) {
18052 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_keyword_1, length_keyword_1);
18054 NDR_CHECK(ndr_check_string_terminator(ndr, length_keyword_1, sizeof(uint8_t)));
18055 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, length_keyword_1, sizeof(uint8_t), CH_DOS));
18056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
18059 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
18060 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
18061 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
18062 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
18063 size_mui_dll_1 = ndr_get_array_size(ndr, &r->mui_dll);
18064 length_mui_dll_1 = ndr_get_array_length(ndr, &r->mui_dll);
18065 if (length_mui_dll_1 > size_mui_dll_1) {
18066 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_mui_dll_1, length_mui_dll_1);
18068 NDR_CHECK(ndr_check_string_terminator(ndr, length_mui_dll_1, sizeof(uint16_t)));
18069 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, length_mui_dll_1, sizeof(uint16_t), CH_UTF16));
18070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
18072 if (r->display_name) {
18073 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18074 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
18075 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
18076 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
18077 size_display_name_1 = ndr_get_array_size(ndr, &r->display_name);
18078 length_display_name_1 = ndr_get_array_length(ndr, &r->display_name);
18079 if (length_display_name_1 > size_display_name_1) {
18080 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_display_name_1, length_display_name_1);
18082 NDR_CHECK(ndr_check_string_terminator(ndr, length_display_name_1, sizeof(uint16_t)));
18083 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, length_display_name_1, sizeof(uint16_t), CH_UTF16));
18084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
18087 return NDR_ERR_SUCCESS;
18090 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
18092 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
18093 if (r == NULL) { ndr_print_null(ndr); return; }
18095 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
18096 ndr_print_ptr(ndr, "form_name", r->form_name);
18098 if (r->form_name) {
18099 ndr_print_string(ndr, "form_name", r->form_name);
18102 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
18103 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
18104 ndr_print_ptr(ndr, "keyword", r->keyword);
18107 ndr_print_string(ndr, "keyword", r->keyword);
18110 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
18111 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
18114 ndr_print_string(ndr, "mui_dll", r->mui_dll);
18117 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
18118 ndr_print_ptr(ndr, "display_name", r->display_name);
18120 if (r->display_name) {
18121 ndr_print_string(ndr, "display_name", r->display_name);
18124 ndr_print_uint32(ndr, "lang_id", r->lang_id);
18128 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
18130 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18131 if (ndr_flags & NDR_SCALARS) {
18132 uint32_t level = ndr_push_get_switch_value(ndr, r);
18133 NDR_CHECK(ndr_push_union_align(ndr, 5));
18134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
18135 /* ms_union is always aligned to the largest union arm*/
18136 NDR_CHECK(ndr_push_align(ndr, 5));
18139 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
18143 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
18147 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18150 if (ndr_flags & NDR_BUFFERS) {
18151 uint32_t level = ndr_push_get_switch_value(ndr, r);
18155 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
18161 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
18166 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18169 return NDR_ERR_SUCCESS;
18172 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
18176 TALLOC_CTX *_mem_save_info1_0 = NULL;
18177 uint32_t _ptr_info1;
18178 TALLOC_CTX *_mem_save_info2_0 = NULL;
18179 uint32_t _ptr_info2;
18180 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18181 if (ndr_flags & NDR_SCALARS) {
18182 level = ndr_pull_get_switch_value(ndr, r);
18183 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18185 if (_level != level) {
18186 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
18188 /* ms_union is always aligned to the largest union arm*/
18189 NDR_CHECK(ndr_pull_align(ndr, 5));
18192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
18194 NDR_PULL_ALLOC(ndr, r->info1);
18201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
18203 NDR_PULL_ALLOC(ndr, r->info2);
18210 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18213 if (ndr_flags & NDR_BUFFERS) {
18214 /* The token is not needed after this. */
18215 level = ndr_pull_steal_switch_value(ndr, r);
18219 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18220 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
18221 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
18222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
18228 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18229 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
18230 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
18231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
18236 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
18239 return NDR_ERR_SUCCESS;
18242 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
18245 level = ndr_print_get_switch_value(ndr, r);
18246 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
18249 ndr_print_ptr(ndr, "info1", r->info1);
18252 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
18258 ndr_print_ptr(ndr, "info2", r->info2);
18261 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
18267 ndr_print_bad_level(ndr, name, level);
18271 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddFormInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfoCtr *r)
18273 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18274 if (ndr_flags & NDR_SCALARS) {
18275 NDR_CHECK(ndr_push_align(ndr, 5));
18276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18277 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
18278 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS, &r->info));
18279 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18281 if (ndr_flags & NDR_BUFFERS) {
18282 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_BUFFERS, &r->info));
18284 return NDR_ERR_SUCCESS;
18287 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddFormInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfoCtr *r)
18289 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18290 if (ndr_flags & NDR_SCALARS) {
18291 NDR_CHECK(ndr_pull_align(ndr, 5));
18292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18293 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
18294 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS, &r->info));
18295 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18297 if (ndr_flags & NDR_BUFFERS) {
18298 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_BUFFERS, &r->info));
18300 return NDR_ERR_SUCCESS;
18303 _PUBLIC_ void ndr_print_spoolss_AddFormInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfoCtr *r)
18305 ndr_print_struct(ndr, name, "spoolss_AddFormInfoCtr");
18306 if (r == NULL) { ndr_print_null(ndr); return; }
18308 ndr_print_uint32(ndr, "level", r->level);
18309 ndr_print_set_switch_value(ndr, &r->info, r->level);
18310 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->info);
18314 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
18316 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18317 if (ndr_flags & NDR_SCALARS) {
18318 NDR_CHECK(ndr_push_align(ndr, 5));
18320 uint32_t _flags_save_string = ndr->flags;
18321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18322 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
18323 ndr->flags = _flags_save_string;
18325 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18327 if (ndr_flags & NDR_BUFFERS) {
18329 uint32_t _flags_save_string = ndr->flags;
18330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18331 if (r->port_name) {
18332 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
18333 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
18334 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
18336 ndr->flags = _flags_save_string;
18339 return NDR_ERR_SUCCESS;
18342 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
18344 uint32_t _ptr_port_name;
18345 TALLOC_CTX *_mem_save_port_name_0 = NULL;
18346 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18347 if (ndr_flags & NDR_SCALARS) {
18348 NDR_CHECK(ndr_pull_align(ndr, 5));
18350 uint32_t _flags_save_string = ndr->flags;
18351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
18353 if (_ptr_port_name) {
18354 NDR_PULL_ALLOC(ndr, r->port_name);
18355 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
18357 r->port_name = NULL;
18359 ndr->flags = _flags_save_string;
18361 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18363 if (ndr_flags & NDR_BUFFERS) {
18365 uint32_t _flags_save_string = ndr->flags;
18366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18367 if (r->port_name) {
18368 uint32_t _relative_save_offset;
18369 _relative_save_offset = ndr->offset;
18370 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
18371 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18372 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
18373 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
18374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
18375 if (ndr->offset > ndr->relative_highest_offset) {
18376 ndr->relative_highest_offset = ndr->offset;
18378 ndr->offset = _relative_save_offset;
18380 ndr->flags = _flags_save_string;
18383 return NDR_ERR_SUCCESS;
18386 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
18388 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
18389 if (r == NULL) { ndr_print_null(ndr); return; }
18391 ndr_print_ptr(ndr, "port_name", r->port_name);
18393 if (r->port_name) {
18394 ndr_print_string(ndr, "port_name", r->port_name);
18400 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, int flags)
18402 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1);
18405 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18408 return NDR_ERR_SUCCESS;
18411 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18416 return NDR_ERR_SUCCESS;
18419 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
18421 ndr_print_uint32(ndr, name, r);
18423 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
18424 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
18425 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
18426 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
18430 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
18432 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18433 if (ndr_flags & NDR_SCALARS) {
18434 NDR_CHECK(ndr_push_align(ndr, 5));
18436 uint32_t _flags_save_string = ndr->flags;
18437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18438 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
18439 ndr->flags = _flags_save_string;
18442 uint32_t _flags_save_string = ndr->flags;
18443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18444 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
18445 ndr->flags = _flags_save_string;
18448 uint32_t _flags_save_string = ndr->flags;
18449 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18450 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
18451 ndr->flags = _flags_save_string;
18453 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
18454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18455 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18457 if (ndr_flags & NDR_BUFFERS) {
18459 uint32_t _flags_save_string = ndr->flags;
18460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18461 if (r->port_name) {
18462 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
18463 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
18464 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
18466 ndr->flags = _flags_save_string;
18469 uint32_t _flags_save_string = ndr->flags;
18470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18471 if (r->monitor_name) {
18472 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
18473 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
18474 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
18476 ndr->flags = _flags_save_string;
18479 uint32_t _flags_save_string = ndr->flags;
18480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18481 if (r->description) {
18482 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->description));
18483 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
18484 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->description));
18486 ndr->flags = _flags_save_string;
18489 return NDR_ERR_SUCCESS;
18492 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
18494 uint32_t _ptr_port_name;
18495 TALLOC_CTX *_mem_save_port_name_0 = NULL;
18496 uint32_t _ptr_monitor_name;
18497 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
18498 uint32_t _ptr_description;
18499 TALLOC_CTX *_mem_save_description_0 = NULL;
18500 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18501 if (ndr_flags & NDR_SCALARS) {
18502 NDR_CHECK(ndr_pull_align(ndr, 5));
18504 uint32_t _flags_save_string = ndr->flags;
18505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18506 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
18507 if (_ptr_port_name) {
18508 NDR_PULL_ALLOC(ndr, r->port_name);
18509 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
18511 r->port_name = NULL;
18513 ndr->flags = _flags_save_string;
18516 uint32_t _flags_save_string = ndr->flags;
18517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
18519 if (_ptr_monitor_name) {
18520 NDR_PULL_ALLOC(ndr, r->monitor_name);
18521 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
18523 r->monitor_name = NULL;
18525 ndr->flags = _flags_save_string;
18528 uint32_t _flags_save_string = ndr->flags;
18529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
18531 if (_ptr_description) {
18532 NDR_PULL_ALLOC(ndr, r->description);
18533 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
18535 r->description = NULL;
18537 ndr->flags = _flags_save_string;
18539 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
18540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18541 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18543 if (ndr_flags & NDR_BUFFERS) {
18545 uint32_t _flags_save_string = ndr->flags;
18546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18547 if (r->port_name) {
18548 uint32_t _relative_save_offset;
18549 _relative_save_offset = ndr->offset;
18550 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
18551 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18552 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
18553 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
18554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
18555 if (ndr->offset > ndr->relative_highest_offset) {
18556 ndr->relative_highest_offset = ndr->offset;
18558 ndr->offset = _relative_save_offset;
18560 ndr->flags = _flags_save_string;
18563 uint32_t _flags_save_string = ndr->flags;
18564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18565 if (r->monitor_name) {
18566 uint32_t _relative_save_offset;
18567 _relative_save_offset = ndr->offset;
18568 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
18569 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18570 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
18571 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
18572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
18573 if (ndr->offset > ndr->relative_highest_offset) {
18574 ndr->relative_highest_offset = ndr->offset;
18576 ndr->offset = _relative_save_offset;
18578 ndr->flags = _flags_save_string;
18581 uint32_t _flags_save_string = ndr->flags;
18582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18583 if (r->description) {
18584 uint32_t _relative_save_offset;
18585 _relative_save_offset = ndr->offset;
18586 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
18587 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
18588 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
18589 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
18590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
18591 if (ndr->offset > ndr->relative_highest_offset) {
18592 ndr->relative_highest_offset = ndr->offset;
18594 ndr->offset = _relative_save_offset;
18596 ndr->flags = _flags_save_string;
18599 return NDR_ERR_SUCCESS;
18602 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
18604 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
18605 if (r == NULL) { ndr_print_null(ndr); return; }
18607 ndr_print_ptr(ndr, "port_name", r->port_name);
18609 if (r->port_name) {
18610 ndr_print_string(ndr, "port_name", r->port_name);
18613 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
18615 if (r->monitor_name) {
18616 ndr_print_string(ndr, "monitor_name", r->monitor_name);
18619 ndr_print_ptr(ndr, "description", r->description);
18621 if (r->description) {
18622 ndr_print_string(ndr, "description", r->description);
18625 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
18626 ndr_print_uint32(ndr, "reserved", r->reserved);
18630 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, int flags)
18632 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2);
18635 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
18637 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18638 return NDR_ERR_SUCCESS;
18641 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
18644 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18646 return NDR_ERR_SUCCESS;
18649 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
18651 const char *val = NULL;
18654 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
18655 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
18656 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
18657 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
18658 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
18659 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
18660 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
18661 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
18662 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
18663 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
18664 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
18665 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
18666 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
18668 ndr_print_enum(ndr, name, "ENUM", val, r);
18671 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
18673 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
18674 return NDR_ERR_SUCCESS;
18677 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
18680 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
18682 return NDR_ERR_SUCCESS;
18685 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
18687 const char *val = NULL;
18690 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
18691 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
18692 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
18694 ndr_print_enum(ndr, name, "ENUM", val, r);
18697 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
18699 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18700 if (ndr_flags & NDR_SCALARS) {
18701 NDR_CHECK(ndr_push_align(ndr, 5));
18702 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
18704 uint32_t _flags_save_string = ndr->flags;
18705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18706 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
18707 ndr->flags = _flags_save_string;
18709 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
18710 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18712 if (ndr_flags & NDR_BUFFERS) {
18714 uint32_t _flags_save_string = ndr->flags;
18715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18716 if (r->status_string) {
18717 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->status_string));
18718 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
18719 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->status_string));
18721 ndr->flags = _flags_save_string;
18724 return NDR_ERR_SUCCESS;
18727 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
18729 uint32_t _ptr_status_string;
18730 TALLOC_CTX *_mem_save_status_string_0 = NULL;
18731 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18732 if (ndr_flags & NDR_SCALARS) {
18733 NDR_CHECK(ndr_pull_align(ndr, 5));
18734 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
18736 uint32_t _flags_save_string = ndr->flags;
18737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
18739 if (_ptr_status_string) {
18740 NDR_PULL_ALLOC(ndr, r->status_string);
18741 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
18743 r->status_string = NULL;
18745 ndr->flags = _flags_save_string;
18747 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
18748 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18750 if (ndr_flags & NDR_BUFFERS) {
18752 uint32_t _flags_save_string = ndr->flags;
18753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18754 if (r->status_string) {
18755 uint32_t _relative_save_offset;
18756 _relative_save_offset = ndr->offset;
18757 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
18758 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
18759 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
18760 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
18761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
18762 if (ndr->offset > ndr->relative_highest_offset) {
18763 ndr->relative_highest_offset = ndr->offset;
18765 ndr->offset = _relative_save_offset;
18767 ndr->flags = _flags_save_string;
18770 return NDR_ERR_SUCCESS;
18773 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
18775 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
18776 if (r == NULL) { ndr_print_null(ndr); return; }
18778 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
18779 ndr_print_ptr(ndr, "status_string", r->status_string);
18781 if (r->status_string) {
18782 ndr_print_string(ndr, "status_string", r->status_string);
18785 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
18789 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, int flags)
18791 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3);
18794 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
18796 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18797 if (ndr_flags & NDR_SCALARS) {
18798 NDR_CHECK(ndr_push_align(ndr, 5));
18800 uint32_t _flags_save_string = ndr->flags;
18801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18802 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
18803 ndr->flags = _flags_save_string;
18805 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
18806 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
18808 if (ndr_flags & NDR_BUFFERS) {
18810 uint32_t _flags_save_string = ndr->flags;
18811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18812 if (r->port_name) {
18813 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->port_name));
18814 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
18815 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->port_name));
18817 ndr->flags = _flags_save_string;
18820 return NDR_ERR_SUCCESS;
18823 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
18825 uint32_t _ptr_port_name;
18826 TALLOC_CTX *_mem_save_port_name_0 = NULL;
18827 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18828 if (ndr_flags & NDR_SCALARS) {
18829 NDR_CHECK(ndr_pull_align(ndr, 5));
18831 uint32_t _flags_save_string = ndr->flags;
18832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18833 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
18834 if (_ptr_port_name) {
18835 NDR_PULL_ALLOC(ndr, r->port_name);
18836 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
18838 r->port_name = NULL;
18840 ndr->flags = _flags_save_string;
18842 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
18843 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
18845 if (ndr_flags & NDR_BUFFERS) {
18847 uint32_t _flags_save_string = ndr->flags;
18848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
18849 if (r->port_name) {
18850 uint32_t _relative_save_offset;
18851 _relative_save_offset = ndr->offset;
18852 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
18853 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18854 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
18855 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
18856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
18857 if (ndr->offset > ndr->relative_highest_offset) {
18858 ndr->relative_highest_offset = ndr->offset;
18860 ndr->offset = _relative_save_offset;
18862 ndr->flags = _flags_save_string;
18865 return NDR_ERR_SUCCESS;
18868 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
18870 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
18871 if (r == NULL) { ndr_print_null(ndr); return; }
18873 ndr_print_ptr(ndr, "port_name", r->port_name);
18875 if (r->port_name) {
18876 ndr_print_string(ndr, "port_name", r->port_name);
18879 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
18883 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, int flags)
18885 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF);
18888 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
18890 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
18892 uint32_t _flags_save_UNION = ndr->flags;
18893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18894 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
18895 if (ndr_flags & NDR_SCALARS) {
18896 uint32_t level = ndr_push_get_switch_value(ndr, r);
18897 NDR_CHECK(ndr_push_union_align(ndr, 5));
18900 NDR_CHECK(ndr_push_align(ndr, 5));
18901 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18902 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
18906 NDR_CHECK(ndr_push_align(ndr, 5));
18907 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18908 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
18912 NDR_CHECK(ndr_push_align(ndr, 5));
18913 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18914 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
18918 NDR_CHECK(ndr_push_align(ndr, 5));
18919 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
18920 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
18928 if (ndr_flags & NDR_BUFFERS) {
18929 uint32_t level = ndr_push_get_switch_value(ndr, r);
18930 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
18933 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
18937 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
18941 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
18945 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
18953 ndr->flags = _flags_save_UNION;
18955 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
18956 return NDR_ERR_SUCCESS;
18959 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
18961 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
18964 uint32_t _flags_save_UNION = ndr->flags;
18965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
18966 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
18967 if (ndr_flags & NDR_SCALARS) {
18968 level = ndr_pull_get_switch_value(ndr, r);
18969 NDR_CHECK(ndr_pull_union_align(ndr, 5));
18972 NDR_CHECK(ndr_pull_align(ndr, 5));
18973 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18974 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
18978 NDR_CHECK(ndr_pull_align(ndr, 5));
18979 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18980 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
18984 NDR_CHECK(ndr_pull_align(ndr, 5));
18985 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18986 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
18990 NDR_CHECK(ndr_pull_align(ndr, 5));
18991 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
18992 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
19000 if (ndr_flags & NDR_BUFFERS) {
19001 /* The token is not needed after this. */
19002 level = ndr_pull_steal_switch_value(ndr, r);
19003 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19006 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
19010 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
19014 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
19018 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
19026 ndr->flags = _flags_save_UNION;
19028 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19029 return NDR_ERR_SUCCESS;
19032 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
19036 uint32_t _flags_save_UNION = ndr->flags;
19037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
19038 level = ndr_print_get_switch_value(ndr, r);
19039 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
19042 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
19046 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
19050 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
19054 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
19061 ndr->flags = _flags_save_UNION;
19065 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
19067 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19068 if (ndr_flags & NDR_SCALARS) {
19069 NDR_CHECK(ndr_push_align(ndr, 5));
19071 uint32_t _flags_save_string = ndr->flags;
19072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19073 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
19074 ndr->flags = _flags_save_string;
19076 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19078 if (ndr_flags & NDR_BUFFERS) {
19080 uint32_t _flags_save_string = ndr->flags;
19081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19082 if (r->monitor_name) {
19083 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
19084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
19085 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
19087 ndr->flags = _flags_save_string;
19090 return NDR_ERR_SUCCESS;
19093 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
19095 uint32_t _ptr_monitor_name;
19096 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
19097 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19098 if (ndr_flags & NDR_SCALARS) {
19099 NDR_CHECK(ndr_pull_align(ndr, 5));
19101 uint32_t _flags_save_string = ndr->flags;
19102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
19104 if (_ptr_monitor_name) {
19105 NDR_PULL_ALLOC(ndr, r->monitor_name);
19106 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
19108 r->monitor_name = NULL;
19110 ndr->flags = _flags_save_string;
19112 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19114 if (ndr_flags & NDR_BUFFERS) {
19116 uint32_t _flags_save_string = ndr->flags;
19117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19118 if (r->monitor_name) {
19119 uint32_t _relative_save_offset;
19120 _relative_save_offset = ndr->offset;
19121 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
19122 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19123 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
19124 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
19125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
19126 if (ndr->offset > ndr->relative_highest_offset) {
19127 ndr->relative_highest_offset = ndr->offset;
19129 ndr->offset = _relative_save_offset;
19131 ndr->flags = _flags_save_string;
19134 return NDR_ERR_SUCCESS;
19137 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
19139 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
19140 if (r == NULL) { ndr_print_null(ndr); return; }
19142 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
19144 if (r->monitor_name) {
19145 ndr_print_string(ndr, "monitor_name", r->monitor_name);
19151 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, int flags)
19153 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1);
19156 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
19158 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19159 if (ndr_flags & NDR_SCALARS) {
19160 NDR_CHECK(ndr_push_align(ndr, 5));
19162 uint32_t _flags_save_string = ndr->flags;
19163 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19164 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
19165 ndr->flags = _flags_save_string;
19168 uint32_t _flags_save_string = ndr->flags;
19169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19170 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
19171 ndr->flags = _flags_save_string;
19174 uint32_t _flags_save_string = ndr->flags;
19175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19176 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
19177 ndr->flags = _flags_save_string;
19179 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19181 if (ndr_flags & NDR_BUFFERS) {
19183 uint32_t _flags_save_string = ndr->flags;
19184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19185 if (r->monitor_name) {
19186 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->monitor_name));
19187 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
19188 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->monitor_name));
19190 ndr->flags = _flags_save_string;
19193 uint32_t _flags_save_string = ndr->flags;
19194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19195 if (r->environment) {
19196 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->environment));
19197 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
19198 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->environment));
19200 ndr->flags = _flags_save_string;
19203 uint32_t _flags_save_string = ndr->flags;
19204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19206 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->dll_name));
19207 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
19208 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->dll_name));
19210 ndr->flags = _flags_save_string;
19213 return NDR_ERR_SUCCESS;
19216 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
19218 uint32_t _ptr_monitor_name;
19219 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
19220 uint32_t _ptr_environment;
19221 TALLOC_CTX *_mem_save_environment_0 = NULL;
19222 uint32_t _ptr_dll_name;
19223 TALLOC_CTX *_mem_save_dll_name_0 = NULL;
19224 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19225 if (ndr_flags & NDR_SCALARS) {
19226 NDR_CHECK(ndr_pull_align(ndr, 5));
19228 uint32_t _flags_save_string = ndr->flags;
19229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
19231 if (_ptr_monitor_name) {
19232 NDR_PULL_ALLOC(ndr, r->monitor_name);
19233 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
19235 r->monitor_name = NULL;
19237 ndr->flags = _flags_save_string;
19240 uint32_t _flags_save_string = ndr->flags;
19241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19243 if (_ptr_environment) {
19244 NDR_PULL_ALLOC(ndr, r->environment);
19245 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
19247 r->environment = NULL;
19249 ndr->flags = _flags_save_string;
19252 uint32_t _flags_save_string = ndr->flags;
19253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
19255 if (_ptr_dll_name) {
19256 NDR_PULL_ALLOC(ndr, r->dll_name);
19257 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
19259 r->dll_name = NULL;
19261 ndr->flags = _flags_save_string;
19263 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19265 if (ndr_flags & NDR_BUFFERS) {
19267 uint32_t _flags_save_string = ndr->flags;
19268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19269 if (r->monitor_name) {
19270 uint32_t _relative_save_offset;
19271 _relative_save_offset = ndr->offset;
19272 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
19273 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19274 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
19275 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
19276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
19277 if (ndr->offset > ndr->relative_highest_offset) {
19278 ndr->relative_highest_offset = ndr->offset;
19280 ndr->offset = _relative_save_offset;
19282 ndr->flags = _flags_save_string;
19285 uint32_t _flags_save_string = ndr->flags;
19286 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19287 if (r->environment) {
19288 uint32_t _relative_save_offset;
19289 _relative_save_offset = ndr->offset;
19290 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
19291 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19292 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
19293 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
19294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19295 if (ndr->offset > ndr->relative_highest_offset) {
19296 ndr->relative_highest_offset = ndr->offset;
19298 ndr->offset = _relative_save_offset;
19300 ndr->flags = _flags_save_string;
19303 uint32_t _flags_save_string = ndr->flags;
19304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
19306 uint32_t _relative_save_offset;
19307 _relative_save_offset = ndr->offset;
19308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
19309 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19310 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
19311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
19312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
19313 if (ndr->offset > ndr->relative_highest_offset) {
19314 ndr->relative_highest_offset = ndr->offset;
19316 ndr->offset = _relative_save_offset;
19318 ndr->flags = _flags_save_string;
19321 return NDR_ERR_SUCCESS;
19324 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
19326 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
19327 if (r == NULL) { ndr_print_null(ndr); return; }
19329 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
19331 if (r->monitor_name) {
19332 ndr_print_string(ndr, "monitor_name", r->monitor_name);
19335 ndr_print_ptr(ndr, "environment", r->environment);
19337 if (r->environment) {
19338 ndr_print_string(ndr, "environment", r->environment);
19341 ndr_print_ptr(ndr, "dll_name", r->dll_name);
19344 ndr_print_string(ndr, "dll_name", r->dll_name);
19350 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, int flags)
19352 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2);
19355 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
19357 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
19359 uint32_t _flags_save_UNION = ndr->flags;
19360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
19361 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19362 if (ndr_flags & NDR_SCALARS) {
19363 uint32_t level = ndr_push_get_switch_value(ndr, r);
19364 NDR_CHECK(ndr_push_union_align(ndr, 5));
19367 NDR_CHECK(ndr_push_align(ndr, 5));
19368 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19369 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
19373 NDR_CHECK(ndr_push_align(ndr, 5));
19374 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
19375 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
19383 if (ndr_flags & NDR_BUFFERS) {
19384 uint32_t level = ndr_push_get_switch_value(ndr, r);
19385 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
19388 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
19392 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
19400 ndr->flags = _flags_save_UNION;
19402 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
19403 return NDR_ERR_SUCCESS;
19406 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
19408 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
19411 uint32_t _flags_save_UNION = ndr->flags;
19412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
19413 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19414 if (ndr_flags & NDR_SCALARS) {
19415 level = ndr_pull_get_switch_value(ndr, r);
19416 NDR_CHECK(ndr_pull_union_align(ndr, 5));
19419 NDR_CHECK(ndr_pull_align(ndr, 5));
19420 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19421 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
19425 NDR_CHECK(ndr_pull_align(ndr, 5));
19426 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
19427 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
19435 if (ndr_flags & NDR_BUFFERS) {
19436 /* The token is not needed after this. */
19437 level = ndr_pull_steal_switch_value(ndr, r);
19438 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
19441 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
19445 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
19453 ndr->flags = _flags_save_UNION;
19455 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
19456 return NDR_ERR_SUCCESS;
19459 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
19463 uint32_t _flags_save_UNION = ndr->flags;
19464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
19465 level = ndr_print_get_switch_value(ndr, r);
19466 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
19469 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
19473 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
19480 ndr->flags = _flags_save_UNION;
19484 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPortInfo1 *r)
19486 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19487 if (ndr_flags & NDR_SCALARS) {
19488 NDR_CHECK(ndr_push_align(ndr, 5));
19489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
19490 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19492 if (ndr_flags & NDR_BUFFERS) {
19493 if (r->port_name) {
19494 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
19495 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19496 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
19497 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19500 return NDR_ERR_SUCCESS;
19503 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPortInfo1 *r)
19505 uint32_t _ptr_port_name;
19506 uint32_t size_port_name_1 = 0;
19507 uint32_t length_port_name_1 = 0;
19508 TALLOC_CTX *_mem_save_port_name_0 = NULL;
19509 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19510 if (ndr_flags & NDR_SCALARS) {
19511 NDR_CHECK(ndr_pull_align(ndr, 5));
19512 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
19513 if (_ptr_port_name) {
19514 NDR_PULL_ALLOC(ndr, r->port_name);
19516 r->port_name = NULL;
19518 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19520 if (ndr_flags & NDR_BUFFERS) {
19521 if (r->port_name) {
19522 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19523 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
19524 NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
19525 NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
19526 size_port_name_1 = ndr_get_array_size(ndr, &r->port_name);
19527 length_port_name_1 = ndr_get_array_length(ndr, &r->port_name);
19528 if (length_port_name_1 > size_port_name_1) {
19529 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_port_name_1, length_port_name_1);
19531 NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
19532 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
19533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
19536 return NDR_ERR_SUCCESS;
19539 _PUBLIC_ void ndr_print_spoolss_SetPortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo1 *r)
19541 ndr_print_struct(ndr, name, "spoolss_SetPortInfo1");
19542 if (r == NULL) { ndr_print_null(ndr); return; }
19544 ndr_print_ptr(ndr, "port_name", r->port_name);
19546 if (r->port_name) {
19547 ndr_print_string(ndr, "port_name", r->port_name);
19553 _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo1(const struct spoolss_SetPortInfo1 *r, int flags)
19555 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo1);
19558 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPortInfo2 *r)
19560 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19561 if (ndr_flags & NDR_SCALARS) {
19562 NDR_CHECK(ndr_push_align(ndr, 5));
19563 NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
19564 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
19565 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
19566 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
19567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
19568 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19570 if (ndr_flags & NDR_BUFFERS) {
19571 if (r->port_name) {
19572 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
19573 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19574 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
19575 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19577 if (r->monitor_name) {
19578 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
19579 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19580 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
19581 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19583 if (r->description) {
19584 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
19585 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19586 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
19587 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19590 return NDR_ERR_SUCCESS;
19593 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPortInfo2 *r)
19595 uint32_t _ptr_port_name;
19596 uint32_t size_port_name_1 = 0;
19597 uint32_t length_port_name_1 = 0;
19598 TALLOC_CTX *_mem_save_port_name_0 = NULL;
19599 uint32_t _ptr_monitor_name;
19600 uint32_t size_monitor_name_1 = 0;
19601 uint32_t length_monitor_name_1 = 0;
19602 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
19603 uint32_t _ptr_description;
19604 uint32_t size_description_1 = 0;
19605 uint32_t length_description_1 = 0;
19606 TALLOC_CTX *_mem_save_description_0 = NULL;
19607 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19608 if (ndr_flags & NDR_SCALARS) {
19609 NDR_CHECK(ndr_pull_align(ndr, 5));
19610 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
19611 if (_ptr_port_name) {
19612 NDR_PULL_ALLOC(ndr, r->port_name);
19614 r->port_name = NULL;
19616 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
19617 if (_ptr_monitor_name) {
19618 NDR_PULL_ALLOC(ndr, r->monitor_name);
19620 r->monitor_name = NULL;
19622 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
19623 if (_ptr_description) {
19624 NDR_PULL_ALLOC(ndr, r->description);
19626 r->description = NULL;
19628 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
19629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
19630 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19632 if (ndr_flags & NDR_BUFFERS) {
19633 if (r->port_name) {
19634 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19635 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
19636 NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
19637 NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
19638 size_port_name_1 = ndr_get_array_size(ndr, &r->port_name);
19639 length_port_name_1 = ndr_get_array_length(ndr, &r->port_name);
19640 if (length_port_name_1 > size_port_name_1) {
19641 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_port_name_1, length_port_name_1);
19643 NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
19644 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
19645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
19647 if (r->monitor_name) {
19648 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19649 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
19650 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
19651 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
19652 size_monitor_name_1 = ndr_get_array_size(ndr, &r->monitor_name);
19653 length_monitor_name_1 = ndr_get_array_length(ndr, &r->monitor_name);
19654 if (length_monitor_name_1 > size_monitor_name_1) {
19655 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
19657 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
19658 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
19659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
19661 if (r->description) {
19662 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
19663 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
19664 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
19665 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
19666 size_description_1 = ndr_get_array_size(ndr, &r->description);
19667 length_description_1 = ndr_get_array_length(ndr, &r->description);
19668 if (length_description_1 > size_description_1) {
19669 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_description_1, length_description_1);
19671 NDR_CHECK(ndr_check_string_terminator(ndr, length_description_1, sizeof(uint16_t)));
19672 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, length_description_1, sizeof(uint16_t), CH_UTF16));
19673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
19676 return NDR_ERR_SUCCESS;
19679 _PUBLIC_ void ndr_print_spoolss_SetPortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo2 *r)
19681 ndr_print_struct(ndr, name, "spoolss_SetPortInfo2");
19682 if (r == NULL) { ndr_print_null(ndr); return; }
19684 ndr_print_ptr(ndr, "port_name", r->port_name);
19686 if (r->port_name) {
19687 ndr_print_string(ndr, "port_name", r->port_name);
19690 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
19692 if (r->monitor_name) {
19693 ndr_print_string(ndr, "monitor_name", r->monitor_name);
19696 ndr_print_ptr(ndr, "description", r->description);
19698 if (r->description) {
19699 ndr_print_string(ndr, "description", r->description);
19702 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
19703 ndr_print_uint32(ndr, "reserved", r->reserved);
19707 _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo2(const struct spoolss_SetPortInfo2 *r, int flags)
19709 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo2);
19712 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPortInfo3 *r)
19714 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19715 if (ndr_flags & NDR_SCALARS) {
19716 NDR_CHECK(ndr_push_align(ndr, 5));
19717 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
19718 NDR_CHECK(ndr_push_unique_ptr(ndr, r->status_string));
19719 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
19720 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19722 if (ndr_flags & NDR_BUFFERS) {
19723 if (r->status_string) {
19724 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->status_string, CH_UTF16)));
19725 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19726 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->status_string, CH_UTF16)));
19727 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->status_string, ndr_charset_length(r->status_string, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19730 return NDR_ERR_SUCCESS;
19733 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPortInfo3 *r)
19735 uint32_t _ptr_status_string;
19736 uint32_t size_status_string_1 = 0;
19737 uint32_t length_status_string_1 = 0;
19738 TALLOC_CTX *_mem_save_status_string_0 = NULL;
19739 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19740 if (ndr_flags & NDR_SCALARS) {
19741 NDR_CHECK(ndr_pull_align(ndr, 5));
19742 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
19743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
19744 if (_ptr_status_string) {
19745 NDR_PULL_ALLOC(ndr, r->status_string);
19747 r->status_string = NULL;
19749 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
19750 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19752 if (ndr_flags & NDR_BUFFERS) {
19753 if (r->status_string) {
19754 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
19755 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
19756 NDR_CHECK(ndr_pull_array_size(ndr, &r->status_string));
19757 NDR_CHECK(ndr_pull_array_length(ndr, &r->status_string));
19758 size_status_string_1 = ndr_get_array_size(ndr, &r->status_string);
19759 length_status_string_1 = ndr_get_array_length(ndr, &r->status_string);
19760 if (length_status_string_1 > size_status_string_1) {
19761 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_status_string_1, length_status_string_1);
19763 NDR_CHECK(ndr_check_string_terminator(ndr, length_status_string_1, sizeof(uint16_t)));
19764 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->status_string, length_status_string_1, sizeof(uint16_t), CH_UTF16));
19765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
19768 return NDR_ERR_SUCCESS;
19771 _PUBLIC_ void ndr_print_spoolss_SetPortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfo3 *r)
19773 ndr_print_struct(ndr, name, "spoolss_SetPortInfo3");
19774 if (r == NULL) { ndr_print_null(ndr); return; }
19776 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
19777 ndr_print_ptr(ndr, "status_string", r->status_string);
19779 if (r->status_string) {
19780 ndr_print_string(ndr, "status_string", r->status_string);
19783 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
19787 _PUBLIC_ size_t ndr_size_spoolss_SetPortInfo3(const struct spoolss_SetPortInfo3 *r, int flags)
19789 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfo3);
19792 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPortInfoFF *r)
19794 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19795 if (ndr_flags & NDR_SCALARS) {
19796 NDR_CHECK(ndr_push_align(ndr, 5));
19797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->port_name));
19798 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
19799 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19801 if (ndr_flags & NDR_BUFFERS) {
19802 if (r->port_name) {
19803 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
19804 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
19805 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->port_name, CH_UTF16)));
19806 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->port_name, ndr_charset_length(r->port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19809 return NDR_ERR_SUCCESS;
19812 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPortInfoFF *r)
19814 uint32_t _ptr_port_name;
19815 uint32_t size_port_name_1 = 0;
19816 uint32_t length_port_name_1 = 0;
19817 TALLOC_CTX *_mem_save_port_name_0 = NULL;
19818 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19819 if (ndr_flags & NDR_SCALARS) {
19820 NDR_CHECK(ndr_pull_align(ndr, 5));
19821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
19822 if (_ptr_port_name) {
19823 NDR_PULL_ALLOC(ndr, r->port_name);
19825 r->port_name = NULL;
19827 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
19828 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19830 if (ndr_flags & NDR_BUFFERS) {
19831 if (r->port_name) {
19832 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19833 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
19834 NDR_CHECK(ndr_pull_array_size(ndr, &r->port_name));
19835 NDR_CHECK(ndr_pull_array_length(ndr, &r->port_name));
19836 size_port_name_1 = ndr_get_array_size(ndr, &r->port_name);
19837 length_port_name_1 = ndr_get_array_length(ndr, &r->port_name);
19838 if (length_port_name_1 > size_port_name_1) {
19839 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_port_name_1, length_port_name_1);
19841 NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
19842 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
19843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
19846 return NDR_ERR_SUCCESS;
19849 _PUBLIC_ void ndr_print_spoolss_SetPortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfoFF *r)
19851 ndr_print_struct(ndr, name, "spoolss_SetPortInfoFF");
19852 if (r == NULL) { ndr_print_null(ndr); return; }
19854 ndr_print_ptr(ndr, "port_name", r->port_name);
19856 if (r->port_name) {
19857 ndr_print_string(ndr, "port_name", r->port_name);
19860 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
19864 _PUBLIC_ size_t ndr_size_spoolss_SetPortInfoFF(const struct spoolss_SetPortInfoFF *r, int flags)
19866 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_SetPortInfoFF);
19869 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPortInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPortInfoContainer *r)
19871 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19872 if (ndr_flags & NDR_SCALARS) {
19873 NDR_CHECK(ndr_push_align(ndr, 5));
19874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
19875 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
19876 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
19877 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
19879 if (ndr_flags & NDR_BUFFERS) {
19880 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
19882 return NDR_ERR_SUCCESS;
19885 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPortInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPortInfoContainer *r)
19887 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19888 if (ndr_flags & NDR_SCALARS) {
19889 NDR_CHECK(ndr_pull_align(ndr, 5));
19890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
19891 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
19892 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
19893 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
19895 if (ndr_flags & NDR_BUFFERS) {
19896 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
19898 return NDR_ERR_SUCCESS;
19901 _PUBLIC_ void ndr_print_spoolss_SetPortInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_SetPortInfoContainer *r)
19903 ndr_print_struct(ndr, name, "spoolss_SetPortInfoContainer");
19904 if (r == NULL) { ndr_print_null(ndr); return; }
19906 ndr_print_uint32(ndr, "level", r->level);
19907 ndr_print_set_switch_value(ndr, &r->info, r->level);
19908 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
19912 static enum ndr_err_code ndr_push_UNIVERSAL_FONT_ID(struct ndr_push *ndr, int ndr_flags, const struct UNIVERSAL_FONT_ID *r)
19914 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19915 if (ndr_flags & NDR_SCALARS) {
19916 NDR_CHECK(ndr_push_align(ndr, 4));
19917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Checksum));
19918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Index));
19919 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19921 if (ndr_flags & NDR_BUFFERS) {
19923 return NDR_ERR_SUCCESS;
19926 static enum ndr_err_code ndr_pull_UNIVERSAL_FONT_ID(struct ndr_pull *ndr, int ndr_flags, struct UNIVERSAL_FONT_ID *r)
19928 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19929 if (ndr_flags & NDR_SCALARS) {
19930 NDR_CHECK(ndr_pull_align(ndr, 4));
19931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Checksum));
19932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Index));
19933 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19935 if (ndr_flags & NDR_BUFFERS) {
19937 return NDR_ERR_SUCCESS;
19940 _PUBLIC_ void ndr_print_UNIVERSAL_FONT_ID(struct ndr_print *ndr, const char *name, const struct UNIVERSAL_FONT_ID *r)
19942 ndr_print_struct(ndr, name, "UNIVERSAL_FONT_ID");
19943 if (r == NULL) { ndr_print_null(ndr); return; }
19945 ndr_print_uint32(ndr, "Checksum", r->Checksum);
19946 ndr_print_uint32(ndr, "Index", r->Index);
19950 _PUBLIC_ enum ndr_err_code ndr_push_UNIVERSAL_FONT_ID_ctr(struct ndr_push *ndr, int ndr_flags, const struct UNIVERSAL_FONT_ID_ctr *r)
19952 uint32_t cntr_fonts_0;
19953 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
19954 if (ndr_flags & NDR_SCALARS) {
19955 NDR_CHECK(ndr_push_align(ndr, 4));
19956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
19957 for (cntr_fonts_0 = 0; cntr_fonts_0 < (r->count); cntr_fonts_0++) {
19958 NDR_CHECK(ndr_push_UNIVERSAL_FONT_ID(ndr, NDR_SCALARS, &r->fonts[cntr_fonts_0]));
19960 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
19962 if (ndr_flags & NDR_BUFFERS) {
19964 return NDR_ERR_SUCCESS;
19967 _PUBLIC_ enum ndr_err_code ndr_pull_UNIVERSAL_FONT_ID_ctr(struct ndr_pull *ndr, int ndr_flags, struct UNIVERSAL_FONT_ID_ctr *r)
19969 uint32_t size_fonts_0 = 0;
19970 uint32_t cntr_fonts_0;
19971 TALLOC_CTX *_mem_save_fonts_0 = NULL;
19972 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
19973 if (ndr_flags & NDR_SCALARS) {
19974 NDR_CHECK(ndr_pull_align(ndr, 4));
19975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
19976 size_fonts_0 = r->count;
19977 NDR_PULL_ALLOC_N(ndr, r->fonts, size_fonts_0);
19978 _mem_save_fonts_0 = NDR_PULL_GET_MEM_CTX(ndr);
19979 NDR_PULL_SET_MEM_CTX(ndr, r->fonts, 0);
19980 for (cntr_fonts_0 = 0; cntr_fonts_0 < (size_fonts_0); cntr_fonts_0++) {
19981 NDR_CHECK(ndr_pull_UNIVERSAL_FONT_ID(ndr, NDR_SCALARS, &r->fonts[cntr_fonts_0]));
19983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fonts_0, 0);
19984 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
19986 if (ndr_flags & NDR_BUFFERS) {
19988 return NDR_ERR_SUCCESS;
19991 _PUBLIC_ void ndr_print_UNIVERSAL_FONT_ID_ctr(struct ndr_print *ndr, const char *name, const struct UNIVERSAL_FONT_ID_ctr *r)
19993 uint32_t cntr_fonts_0;
19994 ndr_print_struct(ndr, name, "UNIVERSAL_FONT_ID_ctr");
19995 if (r == NULL) { ndr_print_null(ndr); return; }
19997 ndr_print_uint32(ndr, "count", r->count);
19998 ndr->print(ndr, "%s: ARRAY(%d)", "fonts", (int)r->count);
20000 for (cntr_fonts_0 = 0; cntr_fonts_0 < (r->count); cntr_fonts_0++) {
20001 ndr_print_UNIVERSAL_FONT_ID(ndr, "fonts", &r->fonts[cntr_fonts_0]);
20007 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorContainer *r)
20009 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20010 if (ndr_flags & NDR_SCALARS) {
20011 NDR_CHECK(ndr_push_align(ndr, 5));
20012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
20013 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
20014 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->info));
20015 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20017 if (ndr_flags & NDR_BUFFERS) {
20018 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->info));
20020 return NDR_ERR_SUCCESS;
20023 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorContainer *r)
20025 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20026 if (ndr_flags & NDR_SCALARS) {
20027 NDR_CHECK(ndr_pull_align(ndr, 5));
20028 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
20029 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
20030 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->info));
20031 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20033 if (ndr_flags & NDR_BUFFERS) {
20034 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->info));
20036 return NDR_ERR_SUCCESS;
20039 _PUBLIC_ void ndr_print_spoolss_MonitorContainer(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorContainer *r)
20041 ndr_print_struct(ndr, name, "spoolss_MonitorContainer");
20042 if (r == NULL) { ndr_print_null(ndr); return; }
20044 ndr_print_uint32(ndr, "level", r->level);
20045 ndr_print_set_switch_value(ndr, &r->info, r->level);
20046 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->info);
20050 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
20052 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20053 if (ndr_flags & NDR_SCALARS) {
20054 NDR_CHECK(ndr_push_align(ndr, 5));
20056 uint32_t _flags_save_string = ndr->flags;
20057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20058 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
20059 ndr->flags = _flags_save_string;
20061 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20063 if (ndr_flags & NDR_BUFFERS) {
20065 uint32_t _flags_save_string = ndr->flags;
20066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20067 if (r->name_array) {
20068 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->name_array));
20069 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
20070 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->name_array));
20072 ndr->flags = _flags_save_string;
20075 return NDR_ERR_SUCCESS;
20078 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
20080 uint32_t _ptr_name_array;
20081 TALLOC_CTX *_mem_save_name_array_0 = NULL;
20082 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20083 if (ndr_flags & NDR_SCALARS) {
20084 NDR_CHECK(ndr_pull_align(ndr, 5));
20086 uint32_t _flags_save_string = ndr->flags;
20087 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20088 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
20089 if (_ptr_name_array) {
20090 NDR_PULL_ALLOC(ndr, r->name_array);
20091 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
20093 r->name_array = NULL;
20095 ndr->flags = _flags_save_string;
20097 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20099 if (ndr_flags & NDR_BUFFERS) {
20101 uint32_t _flags_save_string = ndr->flags;
20102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
20103 if (r->name_array) {
20104 uint32_t _relative_save_offset;
20105 _relative_save_offset = ndr->offset;
20106 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
20107 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
20108 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
20109 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
20110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
20111 if (ndr->offset > ndr->relative_highest_offset) {
20112 ndr->relative_highest_offset = ndr->offset;
20114 ndr->offset = _relative_save_offset;
20116 ndr->flags = _flags_save_string;
20119 return NDR_ERR_SUCCESS;
20122 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
20124 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
20125 if (r == NULL) { ndr_print_null(ndr); return; }
20127 ndr_print_ptr(ndr, "name_array", r->name_array);
20129 if (r->name_array) {
20130 ndr_print_string(ndr, "name_array", r->name_array);
20136 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, int flags)
20138 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1);
20141 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
20143 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
20145 uint32_t _flags_save_UNION = ndr->flags;
20146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
20147 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20148 if (ndr_flags & NDR_SCALARS) {
20149 uint32_t level = ndr_push_get_switch_value(ndr, r);
20150 NDR_CHECK(ndr_push_union_align(ndr, 5));
20153 NDR_CHECK(ndr_push_align(ndr, 5));
20154 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
20155 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
20163 if (ndr_flags & NDR_BUFFERS) {
20164 uint32_t level = ndr_push_get_switch_value(ndr, r);
20165 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
20168 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
20176 ndr->flags = _flags_save_UNION;
20178 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
20179 return NDR_ERR_SUCCESS;
20182 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
20184 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
20187 uint32_t _flags_save_UNION = ndr->flags;
20188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
20189 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20190 if (ndr_flags & NDR_SCALARS) {
20191 level = ndr_pull_get_switch_value(ndr, r);
20192 NDR_CHECK(ndr_pull_union_align(ndr, 5));
20195 NDR_CHECK(ndr_pull_align(ndr, 5));
20196 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
20197 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
20205 if (ndr_flags & NDR_BUFFERS) {
20206 /* The token is not needed after this. */
20207 level = ndr_pull_steal_switch_value(ndr, r);
20208 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
20211 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
20219 ndr->flags = _flags_save_UNION;
20221 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
20222 return NDR_ERR_SUCCESS;
20225 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
20229 uint32_t _flags_save_UNION = ndr->flags;
20230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_RELATIVE_REVERSE);
20231 level = ndr_print_get_switch_value(ndr, r);
20232 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
20235 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
20242 ndr->flags = _flags_save_UNION;
20246 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20249 return NDR_ERR_SUCCESS;
20252 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20257 return NDR_ERR_SUCCESS;
20260 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20262 ndr_print_uint32(ndr, name, r);
20264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
20265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
20266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
20267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
20268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
20269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
20270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
20271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
20272 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
20273 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
20274 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
20275 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
20276 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
20277 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
20278 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
20279 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
20280 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
20281 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
20282 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
20283 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
20284 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
20288 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortVarContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortVarContainer *r)
20290 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20291 if (ndr_flags & NDR_SCALARS) {
20292 NDR_CHECK(ndr_push_align(ndr, 5));
20293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->monitor_data_size));
20294 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_data));
20295 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20297 if (ndr_flags & NDR_BUFFERS) {
20298 if (r->monitor_data) {
20299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->monitor_data_size));
20300 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->monitor_data, r->monitor_data_size));
20303 return NDR_ERR_SUCCESS;
20306 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortVarContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortVarContainer *r)
20308 uint32_t _ptr_monitor_data;
20309 uint32_t size_monitor_data_1 = 0;
20310 TALLOC_CTX *_mem_save_monitor_data_0 = NULL;
20311 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20312 if (ndr_flags & NDR_SCALARS) {
20313 NDR_CHECK(ndr_pull_align(ndr, 5));
20314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->monitor_data_size));
20315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_data));
20316 if (_ptr_monitor_data) {
20317 NDR_PULL_ALLOC(ndr, r->monitor_data);
20319 r->monitor_data = NULL;
20321 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20323 if (ndr_flags & NDR_BUFFERS) {
20324 if (r->monitor_data) {
20325 _mem_save_monitor_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
20326 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_data, 0);
20327 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_data));
20328 size_monitor_data_1 = ndr_get_array_size(ndr, &r->monitor_data);
20329 NDR_PULL_ALLOC_N(ndr, r->monitor_data, size_monitor_data_1);
20330 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->monitor_data, size_monitor_data_1));
20331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_data_0, 0);
20333 if (r->monitor_data) {
20334 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->monitor_data, r->monitor_data_size));
20337 return NDR_ERR_SUCCESS;
20340 _PUBLIC_ void ndr_print_spoolss_PortVarContainer(struct ndr_print *ndr, const char *name, const struct spoolss_PortVarContainer *r)
20342 ndr_print_struct(ndr, name, "spoolss_PortVarContainer");
20343 if (r == NULL) { ndr_print_null(ndr); return; }
20345 ndr_print_uint32(ndr, "monitor_data_size", r->monitor_data_size);
20346 ndr_print_ptr(ndr, "monitor_data", r->monitor_data);
20348 if (r->monitor_data) {
20349 ndr_print_array_uint8(ndr, "monitor_data", r->monitor_data, r->monitor_data_size);
20355 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobNotifyField r)
20357 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
20358 return NDR_ERR_SUCCESS;
20361 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobNotifyField *r)
20364 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
20366 return NDR_ERR_SUCCESS;
20369 _PUBLIC_ void ndr_print_spoolss_JobNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_JobNotifyField r)
20371 const char *val = NULL;
20374 case JOB_NOTIFY_FIELD_PRINTER_NAME: val = "JOB_NOTIFY_FIELD_PRINTER_NAME"; break;
20375 case JOB_NOTIFY_FIELD_MACHINE_NAME: val = "JOB_NOTIFY_FIELD_MACHINE_NAME"; break;
20376 case JOB_NOTIFY_FIELD_PORT_NAME: val = "JOB_NOTIFY_FIELD_PORT_NAME"; break;
20377 case JOB_NOTIFY_FIELD_USER_NAME: val = "JOB_NOTIFY_FIELD_USER_NAME"; break;
20378 case JOB_NOTIFY_FIELD_NOTIFY_NAME: val = "JOB_NOTIFY_FIELD_NOTIFY_NAME"; break;
20379 case JOB_NOTIFY_FIELD_DATATYPE: val = "JOB_NOTIFY_FIELD_DATATYPE"; break;
20380 case JOB_NOTIFY_FIELD_PRINT_PROCESSOR: val = "JOB_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
20381 case JOB_NOTIFY_FIELD_PARAMETERS: val = "JOB_NOTIFY_FIELD_PARAMETERS"; break;
20382 case JOB_NOTIFY_FIELD_DRIVER_NAME: val = "JOB_NOTIFY_FIELD_DRIVER_NAME"; break;
20383 case JOB_NOTIFY_FIELD_DEVMODE: val = "JOB_NOTIFY_FIELD_DEVMODE"; break;
20384 case JOB_NOTIFY_FIELD_STATUS: val = "JOB_NOTIFY_FIELD_STATUS"; break;
20385 case JOB_NOTIFY_FIELD_STATUS_STRING: val = "JOB_NOTIFY_FIELD_STATUS_STRING"; break;
20386 case JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
20387 case JOB_NOTIFY_FIELD_DOCUMENT: val = "JOB_NOTIFY_FIELD_DOCUMENT"; break;
20388 case JOB_NOTIFY_FIELD_PRIORITY: val = "JOB_NOTIFY_FIELD_PRIORITY"; break;
20389 case JOB_NOTIFY_FIELD_POSITION: val = "JOB_NOTIFY_FIELD_POSITION"; break;
20390 case JOB_NOTIFY_FIELD_SUBMITTED: val = "JOB_NOTIFY_FIELD_SUBMITTED"; break;
20391 case JOB_NOTIFY_FIELD_START_TIME: val = "JOB_NOTIFY_FIELD_START_TIME"; break;
20392 case JOB_NOTIFY_FIELD_UNTIL_TIME: val = "JOB_NOTIFY_FIELD_UNTIL_TIME"; break;
20393 case JOB_NOTIFY_FIELD_TIME: val = "JOB_NOTIFY_FIELD_TIME"; break;
20394 case JOB_NOTIFY_FIELD_TOTAL_PAGES: val = "JOB_NOTIFY_FIELD_TOTAL_PAGES"; break;
20395 case JOB_NOTIFY_FIELD_PAGES_PRINTED: val = "JOB_NOTIFY_FIELD_PAGES_PRINTED"; break;
20396 case JOB_NOTIFY_FIELD_TOTAL_BYTES: val = "JOB_NOTIFY_FIELD_TOTAL_BYTES"; break;
20397 case JOB_NOTIFY_FIELD_BYTES_PRINTED: val = "JOB_NOTIFY_FIELD_BYTES_PRINTED"; break;
20399 ndr_print_enum(ndr, name, "ENUM", val, r);
20402 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNotifyField(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrintNotifyField r)
20404 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
20405 return NDR_ERR_SUCCESS;
20408 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNotifyField(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrintNotifyField *r)
20411 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
20413 return NDR_ERR_SUCCESS;
20416 _PUBLIC_ void ndr_print_spoolss_PrintNotifyField(struct ndr_print *ndr, const char *name, enum spoolss_PrintNotifyField r)
20418 const char *val = NULL;
20421 case PRINTER_NOTIFY_FIELD_SERVER_NAME: val = "PRINTER_NOTIFY_FIELD_SERVER_NAME"; break;
20422 case PRINTER_NOTIFY_FIELD_PRINTER_NAME: val = "PRINTER_NOTIFY_FIELD_PRINTER_NAME"; break;
20423 case PRINTER_NOTIFY_FIELD_SHARE_NAME: val = "PRINTER_NOTIFY_FIELD_SHARE_NAME"; break;
20424 case PRINTER_NOTIFY_FIELD_PORT_NAME: val = "PRINTER_NOTIFY_FIELD_PORT_NAME"; break;
20425 case PRINTER_NOTIFY_FIELD_DRIVER_NAME: val = "PRINTER_NOTIFY_FIELD_DRIVER_NAME"; break;
20426 case PRINTER_NOTIFY_FIELD_COMMENT: val = "PRINTER_NOTIFY_FIELD_COMMENT"; break;
20427 case PRINTER_NOTIFY_FIELD_LOCATION: val = "PRINTER_NOTIFY_FIELD_LOCATION"; break;
20428 case PRINTER_NOTIFY_FIELD_DEVMODE: val = "PRINTER_NOTIFY_FIELD_DEVMODE"; break;
20429 case PRINTER_NOTIFY_FIELD_SEPFILE: val = "PRINTER_NOTIFY_FIELD_SEPFILE"; break;
20430 case PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR: val = "PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR"; break;
20431 case PRINTER_NOTIFY_FIELD_PARAMETERS: val = "PRINTER_NOTIFY_FIELD_PARAMETERS"; break;
20432 case PRINTER_NOTIFY_FIELD_DATATYPE: val = "PRINTER_NOTIFY_FIELD_DATATYPE"; break;
20433 case PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR: val = "PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR"; break;
20434 case PRINTER_NOTIFY_FIELD_ATTRIBUTES: val = "PRINTER_NOTIFY_FIELD_ATTRIBUTES"; break;
20435 case PRINTER_NOTIFY_FIELD_PRIORITY: val = "PRINTER_NOTIFY_FIELD_PRIORITY"; break;
20436 case PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY: val = "PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY"; break;
20437 case PRINTER_NOTIFY_FIELD_START_TIME: val = "PRINTER_NOTIFY_FIELD_START_TIME"; break;
20438 case PRINTER_NOTIFY_FIELD_UNTIL_TIME: val = "PRINTER_NOTIFY_FIELD_UNTIL_TIME"; break;
20439 case PRINTER_NOTIFY_FIELD_STATUS: val = "PRINTER_NOTIFY_FIELD_STATUS"; break;
20440 case PRINTER_NOTIFY_FIELD_STATUS_STRING: val = "PRINTER_NOTIFY_FIELD_STATUS_STRING"; break;
20441 case PRINTER_NOTIFY_FIELD_CJOBS: val = "PRINTER_NOTIFY_FIELD_CJOBS"; break;
20442 case PRINTER_NOTIFY_FIELD_AVERAGE_PPM: val = "PRINTER_NOTIFY_FIELD_AVERAGE_PPM"; break;
20443 case PRINTER_NOTIFY_FIELD_TOTAL_PAGES: val = "PRINTER_NOTIFY_FIELD_TOTAL_PAGES"; break;
20444 case PRINTER_NOTIFY_FIELD_PAGES_PRINTED: val = "PRINTER_NOTIFY_FIELD_PAGES_PRINTED"; break;
20445 case PRINTER_NOTIFY_FIELD_TOTAL_BYTES: val = "PRINTER_NOTIFY_FIELD_TOTAL_BYTES"; break;
20446 case PRINTER_NOTIFY_FIELD_BYTES_PRINTED: val = "PRINTER_NOTIFY_FIELD_BYTES_PRINTED"; break;
20447 case PRINTER_NOTIFY_FIELD_OBJECT_GUID: val = "PRINTER_NOTIFY_FIELD_OBJECT_GUID"; break;
20448 case PRINTER_NOTIFY_FIELD_FRIENDLY_NAME: val = "PRINTER_NOTIFY_FIELD_FRIENDLY_NAME"; break;
20450 ndr_print_enum(ndr, name, "ENUM", val, r);
20453 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
20455 NDR_CHECK(ndr_push_enum_uint16(ndr, NDR_SCALARS, r));
20456 return NDR_ERR_SUCCESS;
20459 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
20462 NDR_CHECK(ndr_pull_enum_uint16(ndr, NDR_SCALARS, &v));
20464 return NDR_ERR_SUCCESS;
20467 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
20469 const char *val = NULL;
20472 case PRINTER_NOTIFY_TYPE: val = "PRINTER_NOTIFY_TYPE"; break;
20473 case JOB_NOTIFY_TYPE: val = "JOB_NOTIFY_TYPE"; break;
20475 ndr_print_enum(ndr, name, "ENUM", val, r);
20478 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, const union spoolss_Field *r)
20480 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20481 if (ndr_flags & NDR_SCALARS) {
20482 uint32_t level = ndr_push_get_switch_value(ndr, r);
20483 NDR_CHECK(ndr_push_union_align(ndr, 2));
20485 case PRINTER_NOTIFY_TYPE: {
20486 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
20489 case JOB_NOTIFY_TYPE: {
20490 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
20494 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->field));
20499 return NDR_ERR_SUCCESS;
20502 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, union spoolss_Field *r)
20505 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20506 if (ndr_flags & NDR_SCALARS) {
20507 /* This token is not used again */
20508 level = ndr_pull_steal_switch_value(ndr, r);
20509 NDR_CHECK(ndr_pull_union_align(ndr, 2));
20511 case PRINTER_NOTIFY_TYPE: {
20512 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
20515 case JOB_NOTIFY_TYPE: {
20516 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
20520 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->field));
20525 return NDR_ERR_SUCCESS;
20528 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
20530 uint32_t cntr_fields_1;
20531 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20532 if (ndr_flags & NDR_SCALARS) {
20533 NDR_CHECK(ndr_push_align(ndr, 5));
20534 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
20535 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
20536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
20537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
20538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
20539 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
20540 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20542 if (ndr_flags & NDR_BUFFERS) {
20544 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
20545 for (cntr_fields_1 = 0; cntr_fields_1 < (r->count); cntr_fields_1++) {
20546 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
20547 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
20551 return NDR_ERR_SUCCESS;
20554 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
20556 uint32_t _ptr_fields;
20557 uint32_t size_fields_1 = 0;
20558 uint32_t cntr_fields_1;
20559 TALLOC_CTX *_mem_save_fields_0 = NULL;
20560 TALLOC_CTX *_mem_save_fields_1 = NULL;
20561 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20562 if (ndr_flags & NDR_SCALARS) {
20563 NDR_CHECK(ndr_pull_align(ndr, 5));
20564 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
20565 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
20566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
20567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
20568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
20569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
20571 NDR_PULL_ALLOC(ndr, r->fields);
20575 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20577 if (ndr_flags & NDR_BUFFERS) {
20579 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
20580 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
20581 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
20582 size_fields_1 = ndr_get_array_size(ndr, &r->fields);
20583 NDR_PULL_ALLOC_N(ndr, r->fields, size_fields_1);
20584 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
20585 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
20586 for (cntr_fields_1 = 0; cntr_fields_1 < (size_fields_1); cntr_fields_1++) {
20587 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type));
20588 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
20590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
20591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
20594 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
20597 return NDR_ERR_SUCCESS;
20600 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
20602 uint32_t cntr_fields_1;
20603 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
20604 if (r == NULL) { ndr_print_null(ndr); return; }
20606 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
20607 ndr_print_uint16(ndr, "u1", r->u1);
20608 ndr_print_uint32(ndr, "u2", r->u2);
20609 ndr_print_uint32(ndr, "u3", r->u3);
20610 ndr_print_uint32(ndr, "count", r->count);
20611 ndr_print_ptr(ndr, "fields", r->fields);
20614 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
20616 for (cntr_fields_1 = 0; cntr_fields_1 < (r->count); cntr_fields_1++) {
20617 ndr_print_set_switch_value(ndr, &r->fields[cntr_fields_1], r->type);
20618 ndr_print_spoolss_Field(ndr, "fields", &r->fields[cntr_fields_1]);
20626 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
20628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
20629 return NDR_ERR_SUCCESS;
20632 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
20635 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
20637 return NDR_ERR_SUCCESS;
20640 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
20642 ndr_print_uint32(ndr, name, r);
20644 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
20648 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
20650 uint32_t cntr_types_1;
20651 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20652 if (ndr_flags & NDR_SCALARS) {
20653 NDR_CHECK(ndr_push_align(ndr, 5));
20654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
20655 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
20656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
20657 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
20658 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20660 if (ndr_flags & NDR_BUFFERS) {
20662 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
20663 for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
20664 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
20666 for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
20667 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
20671 return NDR_ERR_SUCCESS;
20674 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
20676 uint32_t _ptr_types;
20677 uint32_t size_types_1 = 0;
20678 uint32_t cntr_types_1;
20679 TALLOC_CTX *_mem_save_types_0 = NULL;
20680 TALLOC_CTX *_mem_save_types_1 = NULL;
20681 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20682 if (ndr_flags & NDR_SCALARS) {
20683 NDR_CHECK(ndr_pull_align(ndr, 5));
20684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
20685 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
20686 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
20687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
20689 NDR_PULL_ALLOC(ndr, r->types);
20693 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20695 if (ndr_flags & NDR_BUFFERS) {
20697 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
20698 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
20699 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
20700 size_types_1 = ndr_get_array_size(ndr, &r->types);
20701 NDR_PULL_ALLOC_N(ndr, r->types, size_types_1);
20702 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
20703 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
20704 for (cntr_types_1 = 0; cntr_types_1 < (size_types_1); cntr_types_1++) {
20705 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
20707 for (cntr_types_1 = 0; cntr_types_1 < (size_types_1); cntr_types_1++) {
20708 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
20710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
20711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
20714 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
20717 return NDR_ERR_SUCCESS;
20720 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
20722 uint32_t cntr_types_1;
20723 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
20724 if (r == NULL) { ndr_print_null(ndr); return; }
20726 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
20727 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
20728 ndr_print_uint32(ndr, "count", r->count);
20729 ndr_print_ptr(ndr, "types", r->types);
20732 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
20734 for (cntr_types_1 = 0; cntr_types_1 < (r->count); cntr_types_1++) {
20735 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
20743 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
20745 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20746 if (ndr_flags & NDR_SCALARS) {
20747 NDR_CHECK(ndr_push_align(ndr, 5));
20748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
20749 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
20750 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
20752 if (ndr_flags & NDR_BUFFERS) {
20754 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->size / 2));
20755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
20758 return NDR_ERR_SUCCESS;
20761 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
20763 uint32_t _ptr_string;
20764 uint32_t size_string_1 = 0;
20765 TALLOC_CTX *_mem_save_string_0 = NULL;
20766 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20767 if (ndr_flags & NDR_SCALARS) {
20768 NDR_CHECK(ndr_pull_align(ndr, 5));
20769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
20770 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
20772 NDR_PULL_ALLOC(ndr, r->string);
20776 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
20778 if (ndr_flags & NDR_BUFFERS) {
20780 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
20781 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
20782 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
20783 size_string_1 = ndr_get_array_size(ndr, &r->string);
20784 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, size_string_1, sizeof(uint16_t), CH_UTF16));
20785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
20788 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
20791 return NDR_ERR_SUCCESS;
20794 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
20796 ndr_print_struct(ndr, name, "spoolss_NotifyString");
20797 if (r == NULL) { ndr_print_null(ndr); return; }
20799 ndr_print_uint32(ndr, "size", r->size);
20800 ndr_print_ptr(ndr, "string", r->string);
20803 ndr_print_string(ndr, "string", r->string);
20809 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
20811 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
20812 return NDR_ERR_SUCCESS;
20815 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
20818 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
20820 return NDR_ERR_SUCCESS;
20823 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
20825 const char *val = NULL;
20828 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
20829 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
20830 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
20831 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
20832 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
20834 ndr_print_enum(ndr, name, "ENUM", val, r);
20837 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
20839 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
20840 if (ndr_flags & NDR_SCALARS) {
20841 uint32_t level = ndr_push_get_switch_value(ndr, r);
20842 NDR_CHECK(ndr_push_union_align(ndr, 5));
20843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
20844 /* ms_union is always aligned to the largest union arm*/
20845 NDR_CHECK(ndr_push_align(ndr, 5));
20848 uint32_t cntr_integer_0;
20849 for (cntr_integer_0 = 0; cntr_integer_0 < (2); cntr_integer_0++) {
20850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
20855 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
20859 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
20863 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
20867 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
20871 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20874 if (ndr_flags & NDR_BUFFERS) {
20875 uint32_t level = ndr_push_get_switch_value(ndr, r);
20881 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
20885 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
20889 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
20893 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
20897 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20900 return NDR_ERR_SUCCESS;
20903 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
20907 uint32_t size_integer_0 = 0;
20908 uint32_t cntr_integer_0;
20909 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
20910 if (ndr_flags & NDR_SCALARS) {
20911 level = ndr_pull_get_switch_value(ndr, r);
20912 NDR_CHECK(ndr_pull_union_align(ndr, 5));
20913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
20914 if (_level != level) {
20915 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
20917 /* ms_union is always aligned to the largest union arm*/
20918 NDR_CHECK(ndr_pull_align(ndr, 5));
20921 size_integer_0 = 2;
20922 for (cntr_integer_0 = 0; cntr_integer_0 < (size_integer_0); cntr_integer_0++) {
20923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
20928 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
20932 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
20936 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
20940 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
20944 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20947 if (ndr_flags & NDR_BUFFERS) {
20948 /* The token is not needed after this. */
20949 level = ndr_pull_steal_switch_value(ndr, r);
20955 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
20959 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
20963 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
20967 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
20971 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
20974 return NDR_ERR_SUCCESS;
20977 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
20980 uint32_t cntr_integer_0;
20981 level = ndr_print_get_switch_value(ndr, r);
20982 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
20985 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
20987 for (cntr_integer_0 = 0; cntr_integer_0 < (2); cntr_integer_0++) {
20988 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
20994 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
20998 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
21002 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
21006 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
21010 ndr_print_bad_level(ndr, name, level);
21014 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
21016 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21017 if (ndr_flags & NDR_SCALARS) {
21018 NDR_CHECK(ndr_push_align(ndr, 5));
21019 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
21020 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->field, r->type));
21021 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, &r->field));
21022 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
21023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
21024 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
21025 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
21026 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21028 if (ndr_flags & NDR_BUFFERS) {
21029 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
21031 return NDR_ERR_SUCCESS;
21034 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
21036 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21037 if (ndr_flags & NDR_SCALARS) {
21038 NDR_CHECK(ndr_pull_align(ndr, 5));
21039 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
21040 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->field, r->type));
21041 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
21042 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
21043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
21044 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
21045 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
21046 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21048 if (ndr_flags & NDR_BUFFERS) {
21049 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
21051 return NDR_ERR_SUCCESS;
21054 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
21056 ndr_print_struct(ndr, name, "spoolss_Notify");
21057 if (r == NULL) { ndr_print_null(ndr); return; }
21059 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
21060 ndr_print_set_switch_value(ndr, &r->field, r->type);
21061 ndr_print_spoolss_Field(ndr, "field", &r->field);
21062 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
21063 ndr_print_uint32(ndr, "job_id", r->job_id);
21064 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
21065 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
21069 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
21071 uint32_t cntr_notifies_0;
21072 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21073 if (ndr_flags & NDR_SCALARS) {
21074 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->count));
21075 NDR_CHECK(ndr_push_align(ndr, 5));
21076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
21077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
21078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
21079 for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
21080 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
21082 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21084 if (ndr_flags & NDR_BUFFERS) {
21085 for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
21086 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
21089 return NDR_ERR_SUCCESS;
21092 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
21094 uint32_t size_notifies_0 = 0;
21095 uint32_t cntr_notifies_0;
21096 TALLOC_CTX *_mem_save_notifies_0 = NULL;
21097 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21098 if (ndr_flags & NDR_SCALARS) {
21099 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
21100 NDR_CHECK(ndr_pull_align(ndr, 5));
21101 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
21102 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
21103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
21104 size_notifies_0 = ndr_get_array_size(ndr, &r->notifies);
21105 NDR_PULL_ALLOC_N(ndr, r->notifies, size_notifies_0);
21106 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
21107 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
21108 for (cntr_notifies_0 = 0; cntr_notifies_0 < (size_notifies_0); cntr_notifies_0++) {
21109 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
21111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
21113 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
21115 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21117 if (ndr_flags & NDR_BUFFERS) {
21118 size_notifies_0 = ndr_get_array_size(ndr, &r->notifies);
21119 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
21120 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
21121 for (cntr_notifies_0 = 0; cntr_notifies_0 < (size_notifies_0); cntr_notifies_0++) {
21122 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
21124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
21126 return NDR_ERR_SUCCESS;
21129 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
21131 uint32_t cntr_notifies_0;
21132 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
21133 if (r == NULL) { ndr_print_null(ndr); return; }
21135 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
21136 ndr_print_uint32(ndr, "flags", r->flags);
21137 ndr_print_uint32(ndr, "count", r->count);
21138 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
21140 for (cntr_notifies_0 = 0; cntr_notifies_0 < (r->count); cntr_notifies_0++) {
21141 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
21147 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
21149 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21150 if (ndr_flags & NDR_SCALARS) {
21151 uint32_t level = ndr_push_get_switch_value(ndr, r);
21152 NDR_CHECK(ndr_push_union_align(ndr, 5));
21153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
21154 /* ms_union is always aligned to the largest union arm*/
21155 NDR_CHECK(ndr_push_align(ndr, 5));
21158 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
21162 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
21165 if (ndr_flags & NDR_BUFFERS) {
21166 uint32_t level = ndr_push_get_switch_value(ndr, r);
21170 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
21175 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
21178 return NDR_ERR_SUCCESS;
21181 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
21185 TALLOC_CTX *_mem_save_info0_0 = NULL;
21186 uint32_t _ptr_info0;
21187 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21188 if (ndr_flags & NDR_SCALARS) {
21189 level = ndr_pull_get_switch_value(ndr, r);
21190 NDR_CHECK(ndr_pull_union_align(ndr, 5));
21191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
21192 if (_level != level) {
21193 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
21195 /* ms_union is always aligned to the largest union arm*/
21196 NDR_CHECK(ndr_pull_align(ndr, 5));
21199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
21201 NDR_PULL_ALLOC(ndr, r->info0);
21208 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
21211 if (ndr_flags & NDR_BUFFERS) {
21212 /* The token is not needed after this. */
21213 level = ndr_pull_steal_switch_value(ndr, r);
21217 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
21218 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
21219 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
21220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
21225 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
21228 return NDR_ERR_SUCCESS;
21231 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
21234 level = ndr_print_get_switch_value(ndr, r);
21235 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
21238 ndr_print_ptr(ndr, "info0", r->info0);
21241 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
21247 ndr_print_bad_level(ndr, name, level);
21251 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
21253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
21254 return NDR_ERR_SUCCESS;
21257 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
21260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
21262 return NDR_ERR_SUCCESS;
21265 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
21267 ndr_print_uint32(ndr, name, r);
21269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
21270 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
21271 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
21275 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
21277 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21278 if (ndr_flags & NDR_SCALARS) {
21279 NDR_CHECK(ndr_push_align(ndr, 5));
21280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
21281 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
21282 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
21283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
21284 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
21285 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
21286 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
21287 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21289 if (ndr_flags & NDR_BUFFERS) {
21291 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
21292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
21294 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
21298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
21300 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21303 return NDR_ERR_SUCCESS;
21306 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
21308 uint32_t _ptr_client;
21309 uint32_t size_client_1 = 0;
21310 uint32_t length_client_1 = 0;
21311 TALLOC_CTX *_mem_save_client_0 = NULL;
21312 uint32_t _ptr_user;
21313 uint32_t size_user_1 = 0;
21314 uint32_t length_user_1 = 0;
21315 TALLOC_CTX *_mem_save_user_0 = NULL;
21316 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21317 if (ndr_flags & NDR_SCALARS) {
21318 NDR_CHECK(ndr_pull_align(ndr, 5));
21319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
21320 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
21322 NDR_PULL_ALLOC(ndr, r->client);
21326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
21328 NDR_PULL_ALLOC(ndr, r->user);
21332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
21333 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
21334 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
21335 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
21336 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21338 if (ndr_flags & NDR_BUFFERS) {
21340 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
21341 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
21342 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
21343 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
21344 size_client_1 = ndr_get_array_size(ndr, &r->client);
21345 length_client_1 = ndr_get_array_length(ndr, &r->client);
21346 if (length_client_1 > size_client_1) {
21347 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1);
21349 NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
21350 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
21351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
21354 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
21355 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
21356 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
21357 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
21358 size_user_1 = ndr_get_array_size(ndr, &r->user);
21359 length_user_1 = ndr_get_array_length(ndr, &r->user);
21360 if (length_user_1 > size_user_1) {
21361 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1);
21363 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
21364 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
21365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
21368 return NDR_ERR_SUCCESS;
21371 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
21373 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
21374 if (r == NULL) { ndr_print_null(ndr); return; }
21376 ndr_print_uint32(ndr, "size", r->size);
21377 ndr_print_ptr(ndr, "client", r->client);
21380 ndr_print_string(ndr, "client", r->client);
21383 ndr_print_ptr(ndr, "user", r->user);
21386 ndr_print_string(ndr, "user", r->user);
21389 ndr_print_uint32(ndr, "build", r->build);
21390 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
21391 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
21392 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
21396 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
21398 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21399 if (ndr_flags & NDR_SCALARS) {
21400 NDR_CHECK(ndr_push_align(ndr, 4));
21401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
21402 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
21404 if (ndr_flags & NDR_BUFFERS) {
21406 return NDR_ERR_SUCCESS;
21409 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
21411 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21412 if (ndr_flags & NDR_SCALARS) {
21413 NDR_CHECK(ndr_pull_align(ndr, 4));
21414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
21415 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
21417 if (ndr_flags & NDR_BUFFERS) {
21419 return NDR_ERR_SUCCESS;
21422 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
21424 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
21425 if (r == NULL) { ndr_print_null(ndr); return; }
21427 ndr_print_uint32(ndr, "not_used", r->not_used);
21431 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
21433 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21434 if (ndr_flags & NDR_SCALARS) {
21435 NDR_CHECK(ndr_push_align(ndr, 5));
21436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
21437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
21438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
21439 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
21440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
21441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
21442 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
21443 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
21444 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
21445 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
21446 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21448 if (ndr_flags & NDR_BUFFERS) {
21450 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
21451 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21452 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
21453 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21456 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
21457 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
21458 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
21459 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21462 return NDR_ERR_SUCCESS;
21465 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
21467 uint32_t _ptr_client;
21468 uint32_t size_client_1 = 0;
21469 uint32_t length_client_1 = 0;
21470 TALLOC_CTX *_mem_save_client_0 = NULL;
21471 uint32_t _ptr_user;
21472 uint32_t size_user_1 = 0;
21473 uint32_t length_user_1 = 0;
21474 TALLOC_CTX *_mem_save_user_0 = NULL;
21475 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21476 if (ndr_flags & NDR_SCALARS) {
21477 NDR_CHECK(ndr_pull_align(ndr, 5));
21478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
21479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
21480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
21481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
21483 NDR_PULL_ALLOC(ndr, r->client);
21487 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
21489 NDR_PULL_ALLOC(ndr, r->user);
21493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
21494 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
21495 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
21496 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
21497 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
21498 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21500 if (ndr_flags & NDR_BUFFERS) {
21502 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
21503 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
21504 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
21505 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
21506 size_client_1 = ndr_get_array_size(ndr, &r->client);
21507 length_client_1 = ndr_get_array_length(ndr, &r->client);
21508 if (length_client_1 > size_client_1) {
21509 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_client_1, length_client_1);
21511 NDR_CHECK(ndr_check_string_terminator(ndr, length_client_1, sizeof(uint16_t)));
21512 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, length_client_1, sizeof(uint16_t), CH_UTF16));
21513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
21516 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
21517 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
21518 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
21519 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
21520 size_user_1 = ndr_get_array_size(ndr, &r->user);
21521 length_user_1 = ndr_get_array_length(ndr, &r->user);
21522 if (length_user_1 > size_user_1) {
21523 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_user_1, length_user_1);
21525 NDR_CHECK(ndr_check_string_terminator(ndr, length_user_1, sizeof(uint16_t)));
21526 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, length_user_1, sizeof(uint16_t), CH_UTF16));
21527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
21530 return NDR_ERR_SUCCESS;
21533 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
21535 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
21536 if (r == NULL) { ndr_print_null(ndr); return; }
21538 ndr_print_uint32(ndr, "size", r->size);
21539 ndr_print_uint32(ndr, "flags", r->flags);
21540 ndr_print_uint32(ndr, "size2", r->size2);
21541 ndr_print_ptr(ndr, "client", r->client);
21544 ndr_print_string(ndr, "client", r->client);
21547 ndr_print_ptr(ndr, "user", r->user);
21550 ndr_print_string(ndr, "user", r->user);
21553 ndr_print_uint32(ndr, "build", r->build);
21554 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
21555 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
21556 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
21557 ndr_print_udlong(ndr, "reserved", r->reserved);
21561 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
21563 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21564 if (ndr_flags & NDR_SCALARS) {
21565 uint32_t level = ndr_push_get_switch_value(ndr, r);
21566 NDR_CHECK(ndr_push_union_align(ndr, 5));
21567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
21568 /* ms_union is always aligned to the largest union arm*/
21569 NDR_CHECK(ndr_push_align(ndr, 5));
21572 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
21576 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
21580 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
21584 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
21587 if (ndr_flags & NDR_BUFFERS) {
21588 uint32_t level = ndr_push_get_switch_value(ndr, r);
21592 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
21598 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
21604 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
21609 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
21612 return NDR_ERR_SUCCESS;
21615 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
21619 TALLOC_CTX *_mem_save_level1_0 = NULL;
21620 uint32_t _ptr_level1;
21621 TALLOC_CTX *_mem_save_level2_0 = NULL;
21622 uint32_t _ptr_level2;
21623 TALLOC_CTX *_mem_save_level3_0 = NULL;
21624 uint32_t _ptr_level3;
21625 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21626 if (ndr_flags & NDR_SCALARS) {
21627 level = ndr_pull_get_switch_value(ndr, r);
21628 NDR_CHECK(ndr_pull_union_align(ndr, 5));
21629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
21630 if (_level != level) {
21631 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
21633 /* ms_union is always aligned to the largest union arm*/
21634 NDR_CHECK(ndr_pull_align(ndr, 5));
21637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
21639 NDR_PULL_ALLOC(ndr, r->level1);
21646 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
21648 NDR_PULL_ALLOC(ndr, r->level2);
21655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
21657 NDR_PULL_ALLOC(ndr, r->level3);
21664 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
21667 if (ndr_flags & NDR_BUFFERS) {
21668 /* The token is not needed after this. */
21669 level = ndr_pull_steal_switch_value(ndr, r);
21673 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
21674 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
21675 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
21676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
21682 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
21683 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
21684 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
21685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
21691 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
21692 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
21693 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
21694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
21699 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
21702 return NDR_ERR_SUCCESS;
21705 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
21708 level = ndr_print_get_switch_value(ndr, r);
21709 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
21712 ndr_print_ptr(ndr, "level1", r->level1);
21715 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
21721 ndr_print_ptr(ndr, "level2", r->level2);
21724 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
21730 ndr_print_ptr(ndr, "level3", r->level3);
21733 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
21739 ndr_print_bad_level(ndr, name, level);
21743 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
21745 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21746 if (ndr_flags & NDR_SCALARS) {
21747 NDR_CHECK(ndr_push_align(ndr, 5));
21748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
21749 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
21750 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
21751 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21753 if (ndr_flags & NDR_BUFFERS) {
21754 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
21756 return NDR_ERR_SUCCESS;
21759 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
21761 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21762 if (ndr_flags & NDR_SCALARS) {
21763 NDR_CHECK(ndr_pull_align(ndr, 5));
21764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
21765 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
21766 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
21767 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21769 if (ndr_flags & NDR_BUFFERS) {
21770 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
21772 return NDR_ERR_SUCCESS;
21775 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
21777 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
21778 if (r == NULL) { ndr_print_null(ndr); return; }
21780 ndr_print_uint32(ndr, "level", r->level);
21781 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
21782 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
21786 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
21788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
21789 return NDR_ERR_SUCCESS;
21792 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
21795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
21797 return NDR_ERR_SUCCESS;
21800 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
21802 ndr_print_uint32(ndr, name, r);
21804 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
21805 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
21806 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
21807 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
21808 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
21809 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
21813 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterEnumValues(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterEnumValues *r)
21815 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
21816 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21817 if (ndr_flags & NDR_SCALARS) {
21818 NDR_CHECK(ndr_push_align(ndr, 5));
21819 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
21821 uint32_t _flags_save_string = ndr->flags;
21822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21823 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->value_name));
21824 ndr->flags = _flags_save_string;
21826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2 * strlen_m_term(r->value_name)));
21827 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->type));
21829 uint32_t _flags_save_DATA_BLOB = ndr->flags;
21830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
21831 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data));
21832 ndr->flags = _flags_save_DATA_BLOB;
21834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->data?r->data->length:0));
21835 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
21837 if (ndr_flags & NDR_BUFFERS) {
21838 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
21840 uint32_t _flags_save_string = ndr->flags;
21841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21842 if (r->value_name) {
21843 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->value_name));
21844 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->value_name));
21845 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->value_name));
21847 ndr->flags = _flags_save_string;
21850 uint32_t _flags_save_DATA_BLOB = ndr->flags;
21851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
21853 NDR_CHECK(ndr_push_relative_ptr2_start(ndr, r->data));
21855 struct ndr_push *_ndr_data;
21856 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_data, 0, r->data?r->data->length:0));
21857 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_data, NDR_SCALARS, *r->data));
21858 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_data, 0, r->data?r->data->length:0));
21860 NDR_CHECK(ndr_push_relative_ptr2_end(ndr, r->data));
21862 ndr->flags = _flags_save_DATA_BLOB;
21865 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
21866 return NDR_ERR_SUCCESS;
21869 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterEnumValues(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterEnumValues *r)
21871 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
21872 uint32_t _ptr_value_name;
21873 TALLOC_CTX *_mem_save_value_name_0 = NULL;
21874 uint32_t _ptr_data;
21875 TALLOC_CTX *_mem_save_data_0 = NULL;
21876 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
21877 if (ndr_flags & NDR_SCALARS) {
21878 NDR_CHECK(ndr_pull_align(ndr, 5));
21879 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
21881 uint32_t _flags_save_string = ndr->flags;
21882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_value_name));
21884 if (_ptr_value_name) {
21885 NDR_PULL_ALLOC(ndr, r->value_name);
21886 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->value_name, _ptr_value_name));
21888 r->value_name = NULL;
21890 ndr->flags = _flags_save_string;
21892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value_name_len));
21893 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->type));
21895 uint32_t _flags_save_DATA_BLOB = ndr->flags;
21896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
21897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data));
21899 NDR_PULL_ALLOC(ndr, r->data);
21900 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data, _ptr_data));
21904 ndr->flags = _flags_save_DATA_BLOB;
21906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->data_length));
21907 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
21909 if (ndr_flags & NDR_BUFFERS) {
21910 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
21912 uint32_t _flags_save_string = ndr->flags;
21913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
21914 if (r->value_name) {
21915 uint32_t _relative_save_offset;
21916 _relative_save_offset = ndr->offset;
21917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->value_name));
21918 _mem_save_value_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
21919 NDR_PULL_SET_MEM_CTX(ndr, r->value_name, 0);
21920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->value_name));
21921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_name_0, 0);
21922 if (ndr->offset > ndr->relative_highest_offset) {
21923 ndr->relative_highest_offset = ndr->offset;
21925 ndr->offset = _relative_save_offset;
21927 ndr->flags = _flags_save_string;
21930 uint32_t _flags_save_DATA_BLOB = ndr->flags;
21931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING|ndr_spoolss_PrinterEnumValues_align(r->type));
21933 uint32_t _relative_save_offset;
21934 _relative_save_offset = ndr->offset;
21935 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data));
21936 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
21937 NDR_PULL_SET_MEM_CTX(ndr, r->data, 0);
21939 struct ndr_pull *_ndr_data;
21940 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 0, r->data_length));
21941 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_data, NDR_SCALARS, r->data));
21942 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 0, r->data_length));
21944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, 0);
21945 if (ndr->offset > ndr->relative_highest_offset) {
21946 ndr->relative_highest_offset = ndr->offset;
21948 ndr->offset = _relative_save_offset;
21950 ndr->flags = _flags_save_DATA_BLOB;
21953 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
21954 return NDR_ERR_SUCCESS;
21957 _PUBLIC_ void ndr_print_spoolss_PrinterEnumValues(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterEnumValues *r)
21959 ndr_print_struct(ndr, name, "spoolss_PrinterEnumValues");
21960 if (r == NULL) { ndr_print_null(ndr); return; }
21962 ndr_print_ptr(ndr, "value_name", r->value_name);
21964 if (r->value_name) {
21965 ndr_print_string(ndr, "value_name", r->value_name);
21968 ndr_print_uint32(ndr, "value_name_len", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2 * strlen_m_term(r->value_name):r->value_name_len);
21969 ndr_print_winreg_Type(ndr, "type", r->type);
21970 ndr_print_ptr(ndr, "data", r->data);
21973 ndr_print_DATA_BLOB(ndr, "data", *r->data);
21976 ndr_print_uint32(ndr, "data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->data?r->data->length:0:r->data_length);
21980 _PUBLIC_ size_t ndr_size_spoolss_PrinterEnumValues(const struct spoolss_PrinterEnumValues *r, int flags)
21982 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterEnumValues);
21985 static enum ndr_err_code ndr_push_spoolss_KeyNames(struct ndr_push *ndr, int ndr_flags, const union spoolss_KeyNames *r)
21987 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
21988 if (ndr_flags & NDR_SCALARS) {
21989 uint32_t level = ndr_push_get_switch_value(ndr, r);
21990 NDR_CHECK(ndr_push_union_align(ndr, 4));
22000 uint32_t _flags_save_string_array = ndr->flags;
22001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
22002 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
22003 ndr->flags = _flags_save_string_array;
22009 return NDR_ERR_SUCCESS;
22012 static enum ndr_err_code ndr_pull_spoolss_KeyNames(struct ndr_pull *ndr, int ndr_flags, union spoolss_KeyNames *r)
22015 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22016 if (ndr_flags & NDR_SCALARS) {
22017 /* This token is not used again */
22018 level = ndr_pull_steal_switch_value(ndr, r);
22019 NDR_CHECK(ndr_pull_union_align(ndr, 4));
22029 uint32_t _flags_save_string_array = ndr->flags;
22030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
22031 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
22032 ndr->flags = _flags_save_string_array;
22038 return NDR_ERR_SUCCESS;
22041 _PUBLIC_ void ndr_print_spoolss_KeyNames(struct ndr_print *ndr, const char *name, const union spoolss_KeyNames *r)
22044 level = ndr_print_get_switch_value(ndr, r);
22045 ndr_print_union(ndr, name, level, "spoolss_KeyNames");
22054 ndr_print_string_array(ndr, "string_array", r->string_array);
22060 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
22062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
22063 return NDR_ERR_SUCCESS;
22066 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
22069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
22071 return NDR_ERR_SUCCESS;
22074 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
22076 ndr_print_uint32(ndr, name, r);
22078 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
22079 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
22080 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
22084 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
22086 NDR_CHECK(ndr_push_enum_uint32(ndr, NDR_SCALARS, r));
22087 return NDR_ERR_SUCCESS;
22090 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
22093 NDR_CHECK(ndr_pull_enum_uint32(ndr, NDR_SCALARS, &v));
22095 return NDR_ERR_SUCCESS;
22098 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
22100 const char *val = NULL;
22103 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
22104 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
22106 ndr_print_enum(ndr, name, "ENUM", val, r);
22109 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
22111 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22112 if (ndr_flags & NDR_SCALARS) {
22113 NDR_CHECK(ndr_push_align(ndr, 4));
22114 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
22115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
22116 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
22117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PortData1(r, ndr->flags)));
22118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
22119 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
22120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
22121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
22122 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
22123 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
22124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
22125 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
22126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
22127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
22128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
22129 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
22131 if (ndr_flags & NDR_BUFFERS) {
22133 return NDR_ERR_SUCCESS;
22136 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
22138 uint32_t size_portname_0 = 0;
22139 uint32_t size_hostaddress_0 = 0;
22140 uint32_t size_snmpcommunity_0 = 0;
22141 uint32_t size_queue_0 = 0;
22142 uint32_t size_ip_address_0 = 0;
22143 uint32_t size_hardware_address_0 = 0;
22144 uint32_t size_device_type_0 = 0;
22145 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22146 if (ndr_flags & NDR_SCALARS) {
22147 NDR_CHECK(ndr_pull_align(ndr, 4));
22148 size_portname_0 = 64;
22149 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
22150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
22151 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
22152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
22153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
22154 size_hostaddress_0 = 49;
22155 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
22156 size_snmpcommunity_0 = 33;
22157 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
22158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
22160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
22161 size_ip_address_0 = 16;
22162 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, size_ip_address_0, sizeof(uint16_t), CH_UTF16));
22163 size_hardware_address_0 = 13;
22164 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, size_hardware_address_0, sizeof(uint16_t), CH_UTF16));
22165 size_device_type_0 = 257;
22166 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
22167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
22168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
22169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
22170 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
22172 if (ndr_flags & NDR_BUFFERS) {
22174 return NDR_ERR_SUCCESS;
22177 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
22179 ndr_print_struct(ndr, name, "spoolss_PortData1");
22180 if (r == NULL) { ndr_print_null(ndr); return; }
22182 ndr_print_string(ndr, "portname", r->portname);
22183 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
22184 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
22185 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PortData1(r, ndr->flags):r->size);
22186 ndr_print_uint32(ndr, "reserved", r->reserved);
22187 ndr_print_string(ndr, "hostaddress", r->hostaddress);
22188 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
22189 ndr_print_uint32(ndr, "dblspool", r->dblspool);
22190 ndr_print_string(ndr, "queue", r->queue);
22191 ndr_print_string(ndr, "ip_address", r->ip_address);
22192 ndr_print_string(ndr, "hardware_address", r->hardware_address);
22193 ndr_print_string(ndr, "device_type", r->device_type);
22194 ndr_print_uint32(ndr, "port_number", r->port_number);
22195 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
22196 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
22200 _PUBLIC_ size_t ndr_size_spoolss_PortData1(const struct spoolss_PortData1 *r, int flags)
22202 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortData1);
22205 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
22207 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22208 if (ndr_flags & NDR_SCALARS) {
22209 NDR_CHECK(ndr_push_align(ndr, 4));
22210 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
22211 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
22212 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
22213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_PortData2(r, ndr->flags)));
22214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
22215 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
22216 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
22217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
22218 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
22219 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
22220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
22221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
22222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
22223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
22224 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
22226 if (ndr_flags & NDR_BUFFERS) {
22228 return NDR_ERR_SUCCESS;
22231 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
22233 uint32_t size_portname_0 = 0;
22234 uint32_t size_hostaddress_0 = 0;
22235 uint32_t size_snmpcommunity_0 = 0;
22236 uint32_t size_queue_0 = 0;
22237 uint32_t size_device_type_0 = 0;
22238 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22239 if (ndr_flags & NDR_SCALARS) {
22240 NDR_CHECK(ndr_pull_align(ndr, 4));
22241 size_portname_0 = 64;
22242 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, size_portname_0, sizeof(uint16_t), CH_UTF16));
22243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
22244 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
22245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
22246 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
22247 size_hostaddress_0 = 128;
22248 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, size_hostaddress_0, sizeof(uint16_t), CH_UTF16));
22249 size_snmpcommunity_0 = 33;
22250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, size_snmpcommunity_0, sizeof(uint16_t), CH_UTF16));
22251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
22253 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, size_queue_0, sizeof(uint16_t), CH_UTF16));
22254 size_device_type_0 = 257;
22255 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, size_device_type_0, sizeof(uint16_t), CH_UTF16));
22256 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
22257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
22258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
22259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
22260 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
22262 if (ndr_flags & NDR_BUFFERS) {
22264 return NDR_ERR_SUCCESS;
22267 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
22269 ndr_print_struct(ndr, name, "spoolss_PortData2");
22270 if (r == NULL) { ndr_print_null(ndr); return; }
22272 ndr_print_string(ndr, "portname", r->portname);
22273 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
22274 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
22275 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PortData2(r, ndr->flags):r->size);
22276 ndr_print_uint32(ndr, "reserved", r->reserved);
22277 ndr_print_string(ndr, "hostaddress", r->hostaddress);
22278 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
22279 ndr_print_uint32(ndr, "dblspool", r->dblspool);
22280 ndr_print_string(ndr, "queue", r->queue);
22281 ndr_print_string(ndr, "device_type", r->device_type);
22282 ndr_print_uint32(ndr, "port_number", r->port_number);
22283 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
22284 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
22285 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
22289 _PUBLIC_ size_t ndr_size_spoolss_PortData2(const struct spoolss_PortData2 *r, int flags)
22291 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortData2);
22294 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
22296 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22297 if (ndr_flags & NDR_SCALARS) {
22298 NDR_CHECK(ndr_push_align(ndr, 4));
22300 uint32_t _flags_save_string = ndr->flags;
22301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
22302 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
22303 ndr->flags = _flags_save_string;
22305 NDR_CHECK(ndr_push_trailer_align(ndr, 4));
22307 if (ndr_flags & NDR_BUFFERS) {
22309 return NDR_ERR_SUCCESS;
22312 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
22314 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22315 if (ndr_flags & NDR_SCALARS) {
22316 NDR_CHECK(ndr_pull_align(ndr, 4));
22318 uint32_t _flags_save_string = ndr->flags;
22319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM|LIBNDR_FLAG_ALIGN2);
22320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
22321 ndr->flags = _flags_save_string;
22323 NDR_CHECK(ndr_pull_trailer_align(ndr, 4));
22325 if (ndr_flags & NDR_BUFFERS) {
22327 return NDR_ERR_SUCCESS;
22330 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
22332 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
22333 if (r == NULL) { ndr_print_null(ndr); return; }
22335 ndr_print_string(ndr, "dll_name", r->dll_name);
22339 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
22341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
22342 return NDR_ERR_SUCCESS;
22345 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
22348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
22350 return NDR_ERR_SUCCESS;
22353 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
22355 ndr_print_uint32(ndr, name, r);
22357 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
22358 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
22359 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
22360 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
22361 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
22362 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
22363 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
22364 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
22368 static enum ndr_err_code ndr_push_RPC_BINARY_CONTAINER(struct ndr_push *ndr, int ndr_flags, const struct RPC_BINARY_CONTAINER *r)
22370 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22371 if (ndr_flags & NDR_SCALARS) {
22372 NDR_CHECK(ndr_push_align(ndr, 5));
22373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbBuf));
22374 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pszString));
22375 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22377 if (ndr_flags & NDR_BUFFERS) {
22378 if (r->pszString) {
22379 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cbBuf));
22380 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pszString, r->cbBuf));
22383 return NDR_ERR_SUCCESS;
22386 static enum ndr_err_code ndr_pull_RPC_BINARY_CONTAINER(struct ndr_pull *ndr, int ndr_flags, struct RPC_BINARY_CONTAINER *r)
22388 uint32_t _ptr_pszString;
22389 uint32_t size_pszString_1 = 0;
22390 TALLOC_CTX *_mem_save_pszString_0 = NULL;
22391 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22392 if (ndr_flags & NDR_SCALARS) {
22393 NDR_CHECK(ndr_pull_align(ndr, 5));
22394 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbBuf));
22395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pszString));
22396 if (_ptr_pszString) {
22397 NDR_PULL_ALLOC(ndr, r->pszString);
22399 r->pszString = NULL;
22401 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22403 if (ndr_flags & NDR_BUFFERS) {
22404 if (r->pszString) {
22405 _mem_save_pszString_0 = NDR_PULL_GET_MEM_CTX(ndr);
22406 NDR_PULL_SET_MEM_CTX(ndr, r->pszString, 0);
22407 NDR_CHECK(ndr_pull_array_size(ndr, &r->pszString));
22408 size_pszString_1 = ndr_get_array_size(ndr, &r->pszString);
22409 NDR_PULL_ALLOC_N(ndr, r->pszString, size_pszString_1);
22410 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pszString, size_pszString_1));
22411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pszString_0, 0);
22413 if (r->pszString) {
22414 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pszString, r->cbBuf));
22417 return NDR_ERR_SUCCESS;
22420 _PUBLIC_ void ndr_print_RPC_BINARY_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BINARY_CONTAINER *r)
22422 ndr_print_struct(ndr, name, "RPC_BINARY_CONTAINER");
22423 if (r == NULL) { ndr_print_null(ndr); return; }
22425 ndr_print_uint32(ndr, "cbBuf", r->cbBuf);
22426 ndr_print_ptr(ndr, "pszString", r->pszString);
22428 if (r->pszString) {
22429 ndr_print_array_uint8(ndr, "pszString", r->pszString, r->cbBuf);
22435 static enum ndr_err_code ndr_push_RPC_BIDI_DATA_u(struct ndr_push *ndr, int ndr_flags, const union RPC_BIDI_DATA_u *r)
22437 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22438 if (ndr_flags & NDR_SCALARS) {
22439 uint32_t level = ndr_push_get_switch_value(ndr, r);
22440 NDR_CHECK(ndr_push_union_align(ndr, 5));
22441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
22442 /* ms_union is always aligned to the largest union arm*/
22443 NDR_CHECK(ndr_push_align(ndr, 5));
22446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bData));
22450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bData));
22454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->iData));
22457 case BIDI_STRING: {
22458 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
22462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
22466 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sData));
22470 NDR_CHECK(ndr_push_RPC_BINARY_CONTAINER(ndr, NDR_SCALARS, &r->biData));
22474 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
22477 if (ndr_flags & NDR_BUFFERS) {
22478 uint32_t level = ndr_push_get_switch_value(ndr, r);
22491 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
22492 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22493 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
22494 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22500 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
22501 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
22503 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22509 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
22510 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22511 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->sData, CH_UTF16)));
22512 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sData, ndr_charset_length(r->sData, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22517 NDR_CHECK(ndr_push_RPC_BINARY_CONTAINER(ndr, NDR_BUFFERS, &r->biData));
22521 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
22524 return NDR_ERR_SUCCESS;
22527 static enum ndr_err_code ndr_pull_RPC_BIDI_DATA_u(struct ndr_pull *ndr, int ndr_flags, union RPC_BIDI_DATA_u *r)
22531 TALLOC_CTX *_mem_save_sData_0 = NULL;
22532 uint32_t _ptr_sData;
22533 uint32_t size_sData_1 = 0;
22534 uint32_t length_sData_1 = 0;
22535 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22536 if (ndr_flags & NDR_SCALARS) {
22537 level = ndr_pull_get_switch_value(ndr, r);
22538 NDR_CHECK(ndr_pull_union_align(ndr, 5));
22539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
22540 if (_level != level) {
22541 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
22543 /* ms_union is always aligned to the largest union arm*/
22544 NDR_CHECK(ndr_pull_align(ndr, 5));
22547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bData));
22551 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bData));
22555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->iData));
22558 case BIDI_STRING: {
22559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
22561 NDR_PULL_ALLOC(ndr, r->sData);
22568 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
22570 NDR_PULL_ALLOC(ndr, r->sData);
22577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sData));
22579 NDR_PULL_ALLOC(ndr, r->sData);
22586 NDR_CHECK(ndr_pull_RPC_BINARY_CONTAINER(ndr, NDR_SCALARS, &r->biData));
22590 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
22593 if (ndr_flags & NDR_BUFFERS) {
22594 /* The token is not needed after this. */
22595 level = ndr_pull_steal_switch_value(ndr, r);
22608 _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
22609 NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
22610 NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
22611 NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
22612 size_sData_1 = ndr_get_array_size(ndr, &r->sData);
22613 length_sData_1 = ndr_get_array_length(ndr, &r->sData);
22614 if (length_sData_1 > size_sData_1) {
22615 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sData_1, length_sData_1);
22617 NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
22618 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
22619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
22625 _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
22626 NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
22627 NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
22628 NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
22629 size_sData_1 = ndr_get_array_size(ndr, &r->sData);
22630 length_sData_1 = ndr_get_array_length(ndr, &r->sData);
22631 if (length_sData_1 > size_sData_1) {
22632 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sData_1, length_sData_1);
22634 NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
22635 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
22636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
22642 _mem_save_sData_0 = NDR_PULL_GET_MEM_CTX(ndr);
22643 NDR_PULL_SET_MEM_CTX(ndr, r->sData, 0);
22644 NDR_CHECK(ndr_pull_array_size(ndr, &r->sData));
22645 NDR_CHECK(ndr_pull_array_length(ndr, &r->sData));
22646 size_sData_1 = ndr_get_array_size(ndr, &r->sData);
22647 length_sData_1 = ndr_get_array_length(ndr, &r->sData);
22648 if (length_sData_1 > size_sData_1) {
22649 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_sData_1, length_sData_1);
22651 NDR_CHECK(ndr_check_string_terminator(ndr, length_sData_1, sizeof(uint16_t)));
22652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sData, length_sData_1, sizeof(uint16_t), CH_UTF16));
22653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sData_0, 0);
22658 NDR_CHECK(ndr_pull_RPC_BINARY_CONTAINER(ndr, NDR_BUFFERS, &r->biData));
22662 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
22665 return NDR_ERR_SUCCESS;
22668 _PUBLIC_ void ndr_print_RPC_BIDI_DATA_u(struct ndr_print *ndr, const char *name, const union RPC_BIDI_DATA_u *r)
22671 level = ndr_print_get_switch_value(ndr, r);
22672 ndr_print_union(ndr, name, level, "RPC_BIDI_DATA_u");
22675 ndr_print_uint32(ndr, "bData", r->bData);
22679 ndr_print_uint32(ndr, "bData", r->bData);
22683 ndr_print_uint32(ndr, "iData", r->iData);
22687 ndr_print_ptr(ndr, "sData", r->sData);
22690 ndr_print_string(ndr, "sData", r->sData);
22696 ndr_print_ptr(ndr, "sData", r->sData);
22699 ndr_print_string(ndr, "sData", r->sData);
22705 ndr_print_ptr(ndr, "sData", r->sData);
22708 ndr_print_string(ndr, "sData", r->sData);
22714 ndr_print_RPC_BINARY_CONTAINER(ndr, "biData", &r->biData);
22718 ndr_print_bad_level(ndr, name, level);
22722 static enum ndr_err_code ndr_push_RPC_BIDI_DATA(struct ndr_push *ndr, int ndr_flags, const struct RPC_BIDI_DATA *r)
22724 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22725 if (ndr_flags & NDR_SCALARS) {
22726 NDR_CHECK(ndr_push_align(ndr, 5));
22727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwBidiType));
22728 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->u, r->dwBidiType));
22729 NDR_CHECK(ndr_push_RPC_BIDI_DATA_u(ndr, NDR_SCALARS, &r->u));
22730 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22732 if (ndr_flags & NDR_BUFFERS) {
22733 NDR_CHECK(ndr_push_RPC_BIDI_DATA_u(ndr, NDR_BUFFERS, &r->u));
22735 return NDR_ERR_SUCCESS;
22738 static enum ndr_err_code ndr_pull_RPC_BIDI_DATA(struct ndr_pull *ndr, int ndr_flags, struct RPC_BIDI_DATA *r)
22740 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22741 if (ndr_flags & NDR_SCALARS) {
22742 NDR_CHECK(ndr_pull_align(ndr, 5));
22743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwBidiType));
22744 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->u, r->dwBidiType));
22745 NDR_CHECK(ndr_pull_RPC_BIDI_DATA_u(ndr, NDR_SCALARS, &r->u));
22746 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22748 if (ndr_flags & NDR_BUFFERS) {
22749 NDR_CHECK(ndr_pull_RPC_BIDI_DATA_u(ndr, NDR_BUFFERS, &r->u));
22751 return NDR_ERR_SUCCESS;
22754 _PUBLIC_ void ndr_print_RPC_BIDI_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_DATA *r)
22756 ndr_print_struct(ndr, name, "RPC_BIDI_DATA");
22757 if (r == NULL) { ndr_print_null(ndr); return; }
22759 ndr_print_uint32(ndr, "dwBidiType", r->dwBidiType);
22760 ndr_print_set_switch_value(ndr, &r->u, r->dwBidiType);
22761 ndr_print_RPC_BIDI_DATA_u(ndr, "u", &r->u);
22765 static enum ndr_err_code ndr_push_RPC_BIDI_REQUEST_DATA(struct ndr_push *ndr, int ndr_flags, const struct RPC_BIDI_REQUEST_DATA *r)
22767 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22768 if (ndr_flags & NDR_SCALARS) {
22769 NDR_CHECK(ndr_push_align(ndr, 5));
22770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReqNumber));
22771 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pSchema));
22772 NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
22773 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22775 if (ndr_flags & NDR_BUFFERS) {
22777 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
22778 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
22780 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pSchema, ndr_charset_length(r->pSchema, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22782 NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
22784 return NDR_ERR_SUCCESS;
22787 static enum ndr_err_code ndr_pull_RPC_BIDI_REQUEST_DATA(struct ndr_pull *ndr, int ndr_flags, struct RPC_BIDI_REQUEST_DATA *r)
22789 uint32_t _ptr_pSchema;
22790 uint32_t size_pSchema_1 = 0;
22791 uint32_t length_pSchema_1 = 0;
22792 TALLOC_CTX *_mem_save_pSchema_0 = NULL;
22793 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22794 if (ndr_flags & NDR_SCALARS) {
22795 NDR_CHECK(ndr_pull_align(ndr, 5));
22796 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReqNumber));
22797 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pSchema));
22798 if (_ptr_pSchema) {
22799 NDR_PULL_ALLOC(ndr, r->pSchema);
22803 NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
22804 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22806 if (ndr_flags & NDR_BUFFERS) {
22808 _mem_save_pSchema_0 = NDR_PULL_GET_MEM_CTX(ndr);
22809 NDR_PULL_SET_MEM_CTX(ndr, r->pSchema, 0);
22810 NDR_CHECK(ndr_pull_array_size(ndr, &r->pSchema));
22811 NDR_CHECK(ndr_pull_array_length(ndr, &r->pSchema));
22812 size_pSchema_1 = ndr_get_array_size(ndr, &r->pSchema);
22813 length_pSchema_1 = ndr_get_array_length(ndr, &r->pSchema);
22814 if (length_pSchema_1 > size_pSchema_1) {
22815 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pSchema_1, length_pSchema_1);
22817 NDR_CHECK(ndr_check_string_terminator(ndr, length_pSchema_1, sizeof(uint16_t)));
22818 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pSchema, length_pSchema_1, sizeof(uint16_t), CH_UTF16));
22819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSchema_0, 0);
22821 NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
22823 return NDR_ERR_SUCCESS;
22826 _PUBLIC_ void ndr_print_RPC_BIDI_REQUEST_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_REQUEST_DATA *r)
22828 ndr_print_struct(ndr, name, "RPC_BIDI_REQUEST_DATA");
22829 if (r == NULL) { ndr_print_null(ndr); return; }
22831 ndr_print_uint32(ndr, "dwReqNumber", r->dwReqNumber);
22832 ndr_print_ptr(ndr, "pSchema", r->pSchema);
22835 ndr_print_string(ndr, "pSchema", r->pSchema);
22838 ndr_print_RPC_BIDI_DATA(ndr, "data", &r->data);
22842 _PUBLIC_ enum ndr_err_code ndr_push_RPC_BIDI_REQUEST_CONTAINER(struct ndr_push *ndr, int ndr_flags, const struct RPC_BIDI_REQUEST_CONTAINER *r)
22844 uint32_t cntr_aData_0;
22845 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22846 if (ndr_flags & NDR_SCALARS) {
22847 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->Count));
22848 NDR_CHECK(ndr_push_align(ndr, 5));
22849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
22850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Flags));
22851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Count));
22852 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
22853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aData[cntr_aData_0]));
22855 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22857 if (ndr_flags & NDR_BUFFERS) {
22858 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
22859 if (r->aData[cntr_aData_0]) {
22860 NDR_CHECK(ndr_push_RPC_BIDI_REQUEST_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
22864 return NDR_ERR_SUCCESS;
22867 _PUBLIC_ enum ndr_err_code ndr_pull_RPC_BIDI_REQUEST_CONTAINER(struct ndr_pull *ndr, int ndr_flags, struct RPC_BIDI_REQUEST_CONTAINER *r)
22869 uint32_t _ptr_aData;
22870 uint32_t size_aData_0 = 0;
22871 uint32_t cntr_aData_0;
22872 TALLOC_CTX *_mem_save_aData_0 = NULL;
22873 TALLOC_CTX *_mem_save_aData_1 = NULL;
22874 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22875 if (ndr_flags & NDR_SCALARS) {
22876 NDR_CHECK(ndr_pull_array_size(ndr, &r->aData));
22877 NDR_CHECK(ndr_pull_align(ndr, 5));
22878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
22879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Flags));
22880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Count));
22881 size_aData_0 = ndr_get_array_size(ndr, &r->aData);
22882 NDR_PULL_ALLOC_N(ndr, r->aData, size_aData_0);
22883 _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
22884 NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
22885 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
22886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aData));
22888 NDR_PULL_ALLOC(ndr, r->aData[cntr_aData_0]);
22890 r->aData[cntr_aData_0] = NULL;
22893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
22895 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->aData, r->Count));
22897 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22899 if (ndr_flags & NDR_BUFFERS) {
22900 size_aData_0 = ndr_get_array_size(ndr, &r->aData);
22901 _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
22902 NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
22903 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
22904 if (r->aData[cntr_aData_0]) {
22905 _mem_save_aData_1 = NDR_PULL_GET_MEM_CTX(ndr);
22906 NDR_PULL_SET_MEM_CTX(ndr, r->aData[cntr_aData_0], 0);
22907 NDR_CHECK(ndr_pull_RPC_BIDI_REQUEST_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
22908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_1, 0);
22911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
22913 return NDR_ERR_SUCCESS;
22916 _PUBLIC_ void ndr_print_RPC_BIDI_REQUEST_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_REQUEST_CONTAINER *r)
22918 uint32_t cntr_aData_0;
22919 ndr_print_struct(ndr, name, "RPC_BIDI_REQUEST_CONTAINER");
22920 if (r == NULL) { ndr_print_null(ndr); return; }
22922 ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->Version);
22923 ndr_print_uint32(ndr, "Flags", r->Flags);
22924 ndr_print_uint32(ndr, "Count", r->Count);
22925 ndr->print(ndr, "%s: ARRAY(%d)", "aData", (int)r->Count);
22927 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
22928 ndr_print_ptr(ndr, "aData", r->aData[cntr_aData_0]);
22930 if (r->aData[cntr_aData_0]) {
22931 ndr_print_RPC_BIDI_REQUEST_DATA(ndr, "aData", r->aData[cntr_aData_0]);
22939 static enum ndr_err_code ndr_push_RPC_BIDI_RESPONSE_DATA(struct ndr_push *ndr, int ndr_flags, const struct RPC_BIDI_RESPONSE_DATA *r)
22941 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
22942 if (ndr_flags & NDR_SCALARS) {
22943 NDR_CHECK(ndr_push_align(ndr, 5));
22944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwResult));
22945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dwReqNumber));
22946 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pSchema));
22947 NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
22948 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
22950 if (ndr_flags & NDR_BUFFERS) {
22952 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
22953 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
22954 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pSchema, CH_UTF16)));
22955 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pSchema, ndr_charset_length(r->pSchema, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22957 NDR_CHECK(ndr_push_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
22959 return NDR_ERR_SUCCESS;
22962 static enum ndr_err_code ndr_pull_RPC_BIDI_RESPONSE_DATA(struct ndr_pull *ndr, int ndr_flags, struct RPC_BIDI_RESPONSE_DATA *r)
22964 uint32_t _ptr_pSchema;
22965 uint32_t size_pSchema_1 = 0;
22966 uint32_t length_pSchema_1 = 0;
22967 TALLOC_CTX *_mem_save_pSchema_0 = NULL;
22968 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
22969 if (ndr_flags & NDR_SCALARS) {
22970 NDR_CHECK(ndr_pull_align(ndr, 5));
22971 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwResult));
22972 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dwReqNumber));
22973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pSchema));
22974 if (_ptr_pSchema) {
22975 NDR_PULL_ALLOC(ndr, r->pSchema);
22979 NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_SCALARS, &r->data));
22980 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
22982 if (ndr_flags & NDR_BUFFERS) {
22984 _mem_save_pSchema_0 = NDR_PULL_GET_MEM_CTX(ndr);
22985 NDR_PULL_SET_MEM_CTX(ndr, r->pSchema, 0);
22986 NDR_CHECK(ndr_pull_array_size(ndr, &r->pSchema));
22987 NDR_CHECK(ndr_pull_array_length(ndr, &r->pSchema));
22988 size_pSchema_1 = ndr_get_array_size(ndr, &r->pSchema);
22989 length_pSchema_1 = ndr_get_array_length(ndr, &r->pSchema);
22990 if (length_pSchema_1 > size_pSchema_1) {
22991 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pSchema_1, length_pSchema_1);
22993 NDR_CHECK(ndr_check_string_terminator(ndr, length_pSchema_1, sizeof(uint16_t)));
22994 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pSchema, length_pSchema_1, sizeof(uint16_t), CH_UTF16));
22995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pSchema_0, 0);
22997 NDR_CHECK(ndr_pull_RPC_BIDI_DATA(ndr, NDR_BUFFERS, &r->data));
22999 return NDR_ERR_SUCCESS;
23002 _PUBLIC_ void ndr_print_RPC_BIDI_RESPONSE_DATA(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_RESPONSE_DATA *r)
23004 ndr_print_struct(ndr, name, "RPC_BIDI_RESPONSE_DATA");
23005 if (r == NULL) { ndr_print_null(ndr); return; }
23007 ndr_print_uint32(ndr, "dwResult", r->dwResult);
23008 ndr_print_uint32(ndr, "dwReqNumber", r->dwReqNumber);
23009 ndr_print_ptr(ndr, "pSchema", r->pSchema);
23012 ndr_print_string(ndr, "pSchema", r->pSchema);
23015 ndr_print_RPC_BIDI_DATA(ndr, "data", &r->data);
23019 _PUBLIC_ enum ndr_err_code ndr_push_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_push *ndr, int ndr_flags, const struct RPC_BIDI_RESPONSE_CONTAINER *r)
23021 uint32_t cntr_aData_0;
23022 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23023 if (ndr_flags & NDR_SCALARS) {
23024 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->Count));
23025 NDR_CHECK(ndr_push_align(ndr, 5));
23026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 1));
23027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Flags));
23028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Count));
23029 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
23030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->aData[cntr_aData_0]));
23032 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
23034 if (ndr_flags & NDR_BUFFERS) {
23035 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
23036 if (r->aData[cntr_aData_0]) {
23037 NDR_CHECK(ndr_push_RPC_BIDI_RESPONSE_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
23041 return NDR_ERR_SUCCESS;
23044 _PUBLIC_ enum ndr_err_code ndr_pull_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_pull *ndr, int ndr_flags, struct RPC_BIDI_RESPONSE_CONTAINER *r)
23046 uint32_t _ptr_aData;
23047 uint32_t size_aData_0 = 0;
23048 uint32_t cntr_aData_0;
23049 TALLOC_CTX *_mem_save_aData_0 = NULL;
23050 TALLOC_CTX *_mem_save_aData_1 = NULL;
23051 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23052 if (ndr_flags & NDR_SCALARS) {
23053 NDR_CHECK(ndr_pull_array_size(ndr, &r->aData));
23054 NDR_CHECK(ndr_pull_align(ndr, 5));
23055 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Version));
23056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Flags));
23057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Count));
23058 size_aData_0 = ndr_get_array_size(ndr, &r->aData);
23059 NDR_PULL_ALLOC_N(ndr, r->aData, size_aData_0);
23060 _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
23061 NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
23062 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
23063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_aData));
23065 NDR_PULL_ALLOC(ndr, r->aData[cntr_aData_0]);
23067 r->aData[cntr_aData_0] = NULL;
23070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
23072 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->aData, r->Count));
23074 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
23076 if (ndr_flags & NDR_BUFFERS) {
23077 size_aData_0 = ndr_get_array_size(ndr, &r->aData);
23078 _mem_save_aData_0 = NDR_PULL_GET_MEM_CTX(ndr);
23079 NDR_PULL_SET_MEM_CTX(ndr, r->aData, 0);
23080 for (cntr_aData_0 = 0; cntr_aData_0 < (size_aData_0); cntr_aData_0++) {
23081 if (r->aData[cntr_aData_0]) {
23082 _mem_save_aData_1 = NDR_PULL_GET_MEM_CTX(ndr);
23083 NDR_PULL_SET_MEM_CTX(ndr, r->aData[cntr_aData_0], 0);
23084 NDR_CHECK(ndr_pull_RPC_BIDI_RESPONSE_DATA(ndr, NDR_SCALARS|NDR_BUFFERS, r->aData[cntr_aData_0]));
23085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_1, 0);
23088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_aData_0, 0);
23090 return NDR_ERR_SUCCESS;
23093 _PUBLIC_ void ndr_print_RPC_BIDI_RESPONSE_CONTAINER(struct ndr_print *ndr, const char *name, const struct RPC_BIDI_RESPONSE_CONTAINER *r)
23095 uint32_t cntr_aData_0;
23096 ndr_print_struct(ndr, name, "RPC_BIDI_RESPONSE_CONTAINER");
23097 if (r == NULL) { ndr_print_null(ndr); return; }
23099 ndr_print_uint32(ndr, "Version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?1:r->Version);
23100 ndr_print_uint32(ndr, "Flags", r->Flags);
23101 ndr_print_uint32(ndr, "Count", r->Count);
23102 ndr->print(ndr, "%s: ARRAY(%d)", "aData", (int)r->Count);
23104 for (cntr_aData_0 = 0; cntr_aData_0 < (r->Count); cntr_aData_0++) {
23105 ndr_print_ptr(ndr, "aData", r->aData[cntr_aData_0]);
23107 if (r->aData[cntr_aData_0]) {
23108 ndr_print_RPC_BIDI_RESPONSE_DATA(ndr, "aData", r->aData[cntr_aData_0]);
23116 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_CorePrinterDriver(struct ndr_push *ndr, int ndr_flags, const struct spoolss_CorePrinterDriver *r)
23118 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23119 if (ndr_flags & NDR_SCALARS) {
23120 NDR_CHECK(ndr_push_align(ndr, 8));
23121 NDR_CHECK(ndr_push_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
23122 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
23123 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
23124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->szPackageID, 260, sizeof(uint16_t), CH_UTF16));
23125 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
23127 if (ndr_flags & NDR_BUFFERS) {
23129 return NDR_ERR_SUCCESS;
23132 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_CorePrinterDriver(struct ndr_pull *ndr, int ndr_flags, struct spoolss_CorePrinterDriver *r)
23134 uint32_t size_szPackageID_0 = 0;
23135 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23136 if (ndr_flags & NDR_SCALARS) {
23137 NDR_CHECK(ndr_pull_align(ndr, 8));
23138 NDR_CHECK(ndr_pull_GUID(ndr, NDR_SCALARS, &r->core_driver_guid));
23139 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
23140 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
23141 size_szPackageID_0 = 260;
23142 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->szPackageID, size_szPackageID_0, sizeof(uint16_t), CH_UTF16));
23143 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
23145 if (ndr_flags & NDR_BUFFERS) {
23147 return NDR_ERR_SUCCESS;
23150 _PUBLIC_ void ndr_print_spoolss_CorePrinterDriver(struct ndr_print *ndr, const char *name, const struct spoolss_CorePrinterDriver *r)
23152 ndr_print_struct(ndr, name, "spoolss_CorePrinterDriver");
23153 if (r == NULL) { ndr_print_null(ndr); return; }
23155 ndr_print_GUID(ndr, "core_driver_guid", &r->core_driver_guid);
23156 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
23157 ndr_print_hyper(ndr, "driver_version", r->driver_version);
23158 ndr_print_string(ndr, "szPackageID", r->szPackageID);
23162 static enum ndr_err_code ndr_push_spoolss_EPrintPropertyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_EPrintPropertyType r)
23164 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
23165 return NDR_ERR_SUCCESS;
23168 static enum ndr_err_code ndr_pull_spoolss_EPrintPropertyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_EPrintPropertyType *r)
23171 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
23173 return NDR_ERR_SUCCESS;
23176 _PUBLIC_ void ndr_print_spoolss_EPrintPropertyType(struct ndr_print *ndr, const char *name, enum spoolss_EPrintPropertyType r)
23178 const char *val = NULL;
23181 case kRpcPropertyTypeString: val = "kRpcPropertyTypeString"; break;
23182 case kRpcPropertyTypeInt32: val = "kRpcPropertyTypeInt32"; break;
23183 case kRpcPropertyTypeInt64: val = "kRpcPropertyTypeInt64"; break;
23184 case kRpcPropertyTypeByte: val = "kRpcPropertyTypeByte"; break;
23185 case kRpcPropertyTypeBuffer: val = "kRpcPropertyTypeBuffer"; break;
23187 ndr_print_enum(ndr, name, "ENUM", val, r);
23190 static enum ndr_err_code ndr_push_propertyBlob(struct ndr_push *ndr, int ndr_flags, const struct propertyBlob *r)
23192 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23193 if (ndr_flags & NDR_SCALARS) {
23194 NDR_CHECK(ndr_push_align(ndr, 5));
23195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cbBuf));
23196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pBuf));
23197 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
23199 if (ndr_flags & NDR_BUFFERS) {
23201 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cbBuf));
23202 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->pBuf, r->cbBuf));
23205 return NDR_ERR_SUCCESS;
23208 static enum ndr_err_code ndr_pull_propertyBlob(struct ndr_pull *ndr, int ndr_flags, struct propertyBlob *r)
23210 uint32_t _ptr_pBuf;
23211 uint32_t size_pBuf_1 = 0;
23212 TALLOC_CTX *_mem_save_pBuf_0 = NULL;
23213 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23214 if (ndr_flags & NDR_SCALARS) {
23215 NDR_CHECK(ndr_pull_align(ndr, 5));
23216 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cbBuf));
23217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pBuf));
23219 NDR_PULL_ALLOC(ndr, r->pBuf);
23223 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
23225 if (ndr_flags & NDR_BUFFERS) {
23227 _mem_save_pBuf_0 = NDR_PULL_GET_MEM_CTX(ndr);
23228 NDR_PULL_SET_MEM_CTX(ndr, r->pBuf, 0);
23229 NDR_CHECK(ndr_pull_array_size(ndr, &r->pBuf));
23230 size_pBuf_1 = ndr_get_array_size(ndr, &r->pBuf);
23231 NDR_PULL_ALLOC_N(ndr, r->pBuf, size_pBuf_1);
23232 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->pBuf, size_pBuf_1));
23233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pBuf_0, 0);
23236 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->pBuf, r->cbBuf));
23239 return NDR_ERR_SUCCESS;
23242 _PUBLIC_ void ndr_print_propertyBlob(struct ndr_print *ndr, const char *name, const struct propertyBlob *r)
23244 ndr_print_struct(ndr, name, "propertyBlob");
23245 if (r == NULL) { ndr_print_null(ndr); return; }
23247 ndr_print_uint32(ndr, "cbBuf", r->cbBuf);
23248 ndr_print_ptr(ndr, "pBuf", r->pBuf);
23251 ndr_print_array_uint8(ndr, "pBuf", r->pBuf, r->cbBuf);
23257 static enum ndr_err_code ndr_push_spoolss_PrintPropertyValueUnion(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintPropertyValueUnion *r)
23259 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23260 if (ndr_flags & NDR_SCALARS) {
23261 uint32_t level = ndr_push_get_switch_value(ndr, r);
23262 NDR_CHECK(ndr_push_union_align(ndr, 8));
23263 NDR_CHECK(ndr_push_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, level));
23264 /* ms_union is always aligned to the largest union arm*/
23265 NDR_CHECK(ndr_push_align(ndr, 8));
23267 case kRpcPropertyTypeString: {
23268 NDR_CHECK(ndr_push_unique_ptr(ndr, r->propertyString));
23271 case kRpcPropertyTypeInt32: {
23272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->propertyInt32));
23275 case kRpcPropertyTypeInt64: {
23276 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->propertyInt64));
23279 case kRpcPropertyTypeByte: {
23280 NDR_CHECK(ndr_push_uint8(ndr, NDR_SCALARS, r->propertyByte));
23283 case kRpcPropertyTypeBuffer: {
23284 NDR_CHECK(ndr_push_propertyBlob(ndr, NDR_SCALARS, &r->propertyBlob));
23288 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
23291 if (ndr_flags & NDR_BUFFERS) {
23292 uint32_t level = ndr_push_get_switch_value(ndr, r);
23294 case kRpcPropertyTypeString:
23295 if (r->propertyString) {
23296 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyString, CH_UTF16)));
23297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyString, CH_UTF16)));
23299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->propertyString, ndr_charset_length(r->propertyString, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23303 case kRpcPropertyTypeInt32:
23306 case kRpcPropertyTypeInt64:
23309 case kRpcPropertyTypeByte:
23312 case kRpcPropertyTypeBuffer:
23313 NDR_CHECK(ndr_push_propertyBlob(ndr, NDR_BUFFERS, &r->propertyBlob));
23317 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
23320 return NDR_ERR_SUCCESS;
23323 static enum ndr_err_code ndr_pull_spoolss_PrintPropertyValueUnion(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintPropertyValueUnion *r)
23327 TALLOC_CTX *_mem_save_propertyString_0 = NULL;
23328 uint32_t _ptr_propertyString;
23329 uint32_t size_propertyString_1 = 0;
23330 uint32_t length_propertyString_1 = 0;
23331 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23332 if (ndr_flags & NDR_SCALARS) {
23333 level = ndr_pull_get_switch_value(ndr, r);
23334 NDR_CHECK(ndr_pull_union_align(ndr, 8));
23335 NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
23336 if (_level != level) {
23337 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
23339 /* ms_union is always aligned to the largest union arm*/
23340 NDR_CHECK(ndr_pull_align(ndr, 8));
23342 case kRpcPropertyTypeString: {
23343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_propertyString));
23344 if (_ptr_propertyString) {
23345 NDR_PULL_ALLOC(ndr, r->propertyString);
23347 r->propertyString = NULL;
23351 case kRpcPropertyTypeInt32: {
23352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->propertyInt32));
23355 case kRpcPropertyTypeInt64: {
23356 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->propertyInt64));
23359 case kRpcPropertyTypeByte: {
23360 NDR_CHECK(ndr_pull_uint8(ndr, NDR_SCALARS, &r->propertyByte));
23363 case kRpcPropertyTypeBuffer: {
23364 NDR_CHECK(ndr_pull_propertyBlob(ndr, NDR_SCALARS, &r->propertyBlob));
23368 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
23371 if (ndr_flags & NDR_BUFFERS) {
23372 /* The token is not needed after this. */
23373 level = ndr_pull_steal_switch_value(ndr, r);
23375 case kRpcPropertyTypeString:
23376 if (r->propertyString) {
23377 _mem_save_propertyString_0 = NDR_PULL_GET_MEM_CTX(ndr);
23378 NDR_PULL_SET_MEM_CTX(ndr, r->propertyString, 0);
23379 NDR_CHECK(ndr_pull_array_size(ndr, &r->propertyString));
23380 NDR_CHECK(ndr_pull_array_length(ndr, &r->propertyString));
23381 size_propertyString_1 = ndr_get_array_size(ndr, &r->propertyString);
23382 length_propertyString_1 = ndr_get_array_length(ndr, &r->propertyString);
23383 if (length_propertyString_1 > size_propertyString_1) {
23384 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_propertyString_1, length_propertyString_1);
23386 NDR_CHECK(ndr_check_string_terminator(ndr, length_propertyString_1, sizeof(uint16_t)));
23387 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->propertyString, length_propertyString_1, sizeof(uint16_t), CH_UTF16));
23388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_propertyString_0, 0);
23392 case kRpcPropertyTypeInt32:
23395 case kRpcPropertyTypeInt64:
23398 case kRpcPropertyTypeByte:
23401 case kRpcPropertyTypeBuffer:
23402 NDR_CHECK(ndr_pull_propertyBlob(ndr, NDR_BUFFERS, &r->propertyBlob));
23406 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
23409 return NDR_ERR_SUCCESS;
23412 _PUBLIC_ void ndr_print_spoolss_PrintPropertyValueUnion(struct ndr_print *ndr, const char *name, const union spoolss_PrintPropertyValueUnion *r)
23415 level = ndr_print_get_switch_value(ndr, r);
23416 ndr_print_union(ndr, name, level, "spoolss_PrintPropertyValueUnion");
23418 case kRpcPropertyTypeString:
23419 ndr_print_ptr(ndr, "propertyString", r->propertyString);
23421 if (r->propertyString) {
23422 ndr_print_string(ndr, "propertyString", r->propertyString);
23427 case kRpcPropertyTypeInt32:
23428 ndr_print_uint32(ndr, "propertyInt32", r->propertyInt32);
23431 case kRpcPropertyTypeInt64:
23432 ndr_print_hyper(ndr, "propertyInt64", r->propertyInt64);
23435 case kRpcPropertyTypeByte:
23436 ndr_print_uint8(ndr, "propertyByte", r->propertyByte);
23439 case kRpcPropertyTypeBuffer:
23440 ndr_print_propertyBlob(ndr, "propertyBlob", &r->propertyBlob);
23444 ndr_print_bad_level(ndr, name, level);
23448 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintPropertyValue(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintPropertyValue *r)
23450 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23451 if (ndr_flags & NDR_SCALARS) {
23452 NDR_CHECK(ndr_push_align(ndr, 8));
23453 NDR_CHECK(ndr_push_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, r->ePropertyType));
23454 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->value, r->ePropertyType));
23455 NDR_CHECK(ndr_push_spoolss_PrintPropertyValueUnion(ndr, NDR_SCALARS, &r->value));
23456 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
23458 if (ndr_flags & NDR_BUFFERS) {
23459 NDR_CHECK(ndr_push_spoolss_PrintPropertyValueUnion(ndr, NDR_BUFFERS, &r->value));
23461 return NDR_ERR_SUCCESS;
23464 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintPropertyValue(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintPropertyValue *r)
23466 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23467 if (ndr_flags & NDR_SCALARS) {
23468 NDR_CHECK(ndr_pull_align(ndr, 8));
23469 NDR_CHECK(ndr_pull_spoolss_EPrintPropertyType(ndr, NDR_SCALARS, &r->ePropertyType));
23470 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->value, r->ePropertyType));
23471 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValueUnion(ndr, NDR_SCALARS, &r->value));
23472 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
23474 if (ndr_flags & NDR_BUFFERS) {
23475 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValueUnion(ndr, NDR_BUFFERS, &r->value));
23477 return NDR_ERR_SUCCESS;
23480 _PUBLIC_ void ndr_print_spoolss_PrintPropertyValue(struct ndr_print *ndr, const char *name, const struct spoolss_PrintPropertyValue *r)
23482 ndr_print_struct(ndr, name, "spoolss_PrintPropertyValue");
23483 if (r == NULL) { ndr_print_null(ndr); return; }
23485 ndr_print_spoolss_EPrintPropertyType(ndr, "ePropertyType", r->ePropertyType);
23486 ndr_print_set_switch_value(ndr, &r->value, r->ePropertyType);
23487 ndr_print_spoolss_PrintPropertyValueUnion(ndr, "value", &r->value);
23491 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintNamedProperty(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintNamedProperty *r)
23493 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23494 if (ndr_flags & NDR_SCALARS) {
23495 NDR_CHECK(ndr_push_align(ndr, 8));
23496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->propertyName));
23497 NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_SCALARS, &r->propertyValue));
23498 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
23500 if (ndr_flags & NDR_BUFFERS) {
23501 if (r->propertyName) {
23502 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyName, CH_UTF16)));
23503 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23504 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->propertyName, CH_UTF16)));
23505 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->propertyName, ndr_charset_length(r->propertyName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23507 NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_BUFFERS, &r->propertyValue));
23509 return NDR_ERR_SUCCESS;
23512 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintNamedProperty(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintNamedProperty *r)
23514 uint32_t _ptr_propertyName;
23515 uint32_t size_propertyName_1 = 0;
23516 uint32_t length_propertyName_1 = 0;
23517 TALLOC_CTX *_mem_save_propertyName_0 = NULL;
23518 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23519 if (ndr_flags & NDR_SCALARS) {
23520 NDR_CHECK(ndr_pull_align(ndr, 8));
23521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_propertyName));
23522 if (_ptr_propertyName) {
23523 NDR_PULL_ALLOC(ndr, r->propertyName);
23525 r->propertyName = NULL;
23527 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_SCALARS, &r->propertyValue));
23528 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
23530 if (ndr_flags & NDR_BUFFERS) {
23531 if (r->propertyName) {
23532 _mem_save_propertyName_0 = NDR_PULL_GET_MEM_CTX(ndr);
23533 NDR_PULL_SET_MEM_CTX(ndr, r->propertyName, 0);
23534 NDR_CHECK(ndr_pull_array_size(ndr, &r->propertyName));
23535 NDR_CHECK(ndr_pull_array_length(ndr, &r->propertyName));
23536 size_propertyName_1 = ndr_get_array_size(ndr, &r->propertyName);
23537 length_propertyName_1 = ndr_get_array_length(ndr, &r->propertyName);
23538 if (length_propertyName_1 > size_propertyName_1) {
23539 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_propertyName_1, length_propertyName_1);
23541 NDR_CHECK(ndr_check_string_terminator(ndr, length_propertyName_1, sizeof(uint16_t)));
23542 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->propertyName, length_propertyName_1, sizeof(uint16_t), CH_UTF16));
23543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_propertyName_0, 0);
23545 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_BUFFERS, &r->propertyValue));
23547 return NDR_ERR_SUCCESS;
23550 _PUBLIC_ void ndr_print_spoolss_PrintNamedProperty(struct ndr_print *ndr, const char *name, const struct spoolss_PrintNamedProperty *r)
23552 ndr_print_struct(ndr, name, "spoolss_PrintNamedProperty");
23553 if (r == NULL) { ndr_print_null(ndr); return; }
23555 ndr_print_ptr(ndr, "propertyName", r->propertyName);
23557 if (r->propertyName) {
23558 ndr_print_string(ndr, "propertyName", r->propertyName);
23561 ndr_print_spoolss_PrintPropertyValue(ndr, "propertyValue", &r->propertyValue);
23565 static enum ndr_err_code ndr_push_EBranchOfficeJobEventType(struct ndr_push *ndr, int ndr_flags, enum EBranchOfficeJobEventType r)
23567 NDR_CHECK(ndr_push_enum_uint1632(ndr, NDR_SCALARS, r));
23568 return NDR_ERR_SUCCESS;
23571 static enum ndr_err_code ndr_pull_EBranchOfficeJobEventType(struct ndr_pull *ndr, int ndr_flags, enum EBranchOfficeJobEventType *r)
23574 NDR_CHECK(ndr_pull_enum_uint1632(ndr, NDR_SCALARS, &v));
23576 return NDR_ERR_SUCCESS;
23579 _PUBLIC_ void ndr_print_EBranchOfficeJobEventType(struct ndr_print *ndr, const char *name, enum EBranchOfficeJobEventType r)
23581 const char *val = NULL;
23584 case kInvalidJobState: val = "kInvalidJobState"; break;
23585 case kLogJobPrinted: val = "kLogJobPrinted"; break;
23586 case kLogJobRendered: val = "kLogJobRendered"; break;
23587 case kLogJobError: val = "kLogJobError"; break;
23588 case kLogJobPipelineError: val = "kLogJobPipelineError"; break;
23589 case kLogOfflineFileFull: val = "kLogOfflineFileFull"; break;
23591 ndr_print_enum(ndr, name, "ENUM", val, r);
23594 static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataPrinted(struct ndr_push *ndr, int ndr_flags, const struct spoolss_BranchOfficeJobDataPrinted *r)
23596 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23597 if (ndr_flags & NDR_SCALARS) {
23598 NDR_CHECK(ndr_push_align(ndr, 8));
23599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->Status));
23600 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
23601 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pUserName));
23602 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
23603 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
23604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPortName));
23605 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->Size));
23606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TotalPages));
23607 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
23609 if (ndr_flags & NDR_BUFFERS) {
23610 if (r->pDocumentName) {
23611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
23612 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23613 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
23614 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23616 if (r->pUserName) {
23617 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
23618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
23620 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pUserName, ndr_charset_length(r->pUserName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23622 if (r->pMachineName) {
23623 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
23624 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23625 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
23626 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23628 if (r->pPrinterName) {
23629 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
23630 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23631 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
23632 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23634 if (r->pPortName) {
23635 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPortName, CH_UTF16)));
23636 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23637 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPortName, CH_UTF16)));
23638 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPortName, ndr_charset_length(r->pPortName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23641 return NDR_ERR_SUCCESS;
23644 static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataPrinted(struct ndr_pull *ndr, int ndr_flags, struct spoolss_BranchOfficeJobDataPrinted *r)
23646 uint32_t _ptr_pDocumentName;
23647 uint32_t size_pDocumentName_1 = 0;
23648 uint32_t length_pDocumentName_1 = 0;
23649 TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
23650 uint32_t _ptr_pUserName;
23651 uint32_t size_pUserName_1 = 0;
23652 uint32_t length_pUserName_1 = 0;
23653 TALLOC_CTX *_mem_save_pUserName_0 = NULL;
23654 uint32_t _ptr_pMachineName;
23655 uint32_t size_pMachineName_1 = 0;
23656 uint32_t length_pMachineName_1 = 0;
23657 TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
23658 uint32_t _ptr_pPrinterName;
23659 uint32_t size_pPrinterName_1 = 0;
23660 uint32_t length_pPrinterName_1 = 0;
23661 TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
23662 uint32_t _ptr_pPortName;
23663 uint32_t size_pPortName_1 = 0;
23664 uint32_t length_pPortName_1 = 0;
23665 TALLOC_CTX *_mem_save_pPortName_0 = NULL;
23666 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23667 if (ndr_flags & NDR_SCALARS) {
23668 NDR_CHECK(ndr_pull_align(ndr, 8));
23669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->Status));
23670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
23671 if (_ptr_pDocumentName) {
23672 NDR_PULL_ALLOC(ndr, r->pDocumentName);
23674 r->pDocumentName = NULL;
23676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pUserName));
23677 if (_ptr_pUserName) {
23678 NDR_PULL_ALLOC(ndr, r->pUserName);
23680 r->pUserName = NULL;
23682 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
23683 if (_ptr_pMachineName) {
23684 NDR_PULL_ALLOC(ndr, r->pMachineName);
23686 r->pMachineName = NULL;
23688 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
23689 if (_ptr_pPrinterName) {
23690 NDR_PULL_ALLOC(ndr, r->pPrinterName);
23692 r->pPrinterName = NULL;
23694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPortName));
23695 if (_ptr_pPortName) {
23696 NDR_PULL_ALLOC(ndr, r->pPortName);
23698 r->pPortName = NULL;
23700 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->Size));
23701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TotalPages));
23702 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
23704 if (ndr_flags & NDR_BUFFERS) {
23705 if (r->pDocumentName) {
23706 _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
23707 NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
23708 NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
23709 NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
23710 size_pDocumentName_1 = ndr_get_array_size(ndr, &r->pDocumentName);
23711 length_pDocumentName_1 = ndr_get_array_length(ndr, &r->pDocumentName);
23712 if (length_pDocumentName_1 > size_pDocumentName_1) {
23713 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pDocumentName_1, length_pDocumentName_1);
23715 NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
23716 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
23717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
23719 if (r->pUserName) {
23720 _mem_save_pUserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
23721 NDR_PULL_SET_MEM_CTX(ndr, r->pUserName, 0);
23722 NDR_CHECK(ndr_pull_array_size(ndr, &r->pUserName));
23723 NDR_CHECK(ndr_pull_array_length(ndr, &r->pUserName));
23724 size_pUserName_1 = ndr_get_array_size(ndr, &r->pUserName);
23725 length_pUserName_1 = ndr_get_array_length(ndr, &r->pUserName);
23726 if (length_pUserName_1 > size_pUserName_1) {
23727 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pUserName_1, length_pUserName_1);
23729 NDR_CHECK(ndr_check_string_terminator(ndr, length_pUserName_1, sizeof(uint16_t)));
23730 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pUserName, length_pUserName_1, sizeof(uint16_t), CH_UTF16));
23731 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pUserName_0, 0);
23733 if (r->pMachineName) {
23734 _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
23735 NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
23736 NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
23737 NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
23738 size_pMachineName_1 = ndr_get_array_size(ndr, &r->pMachineName);
23739 length_pMachineName_1 = ndr_get_array_length(ndr, &r->pMachineName);
23740 if (length_pMachineName_1 > size_pMachineName_1) {
23741 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pMachineName_1, length_pMachineName_1);
23743 NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
23744 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
23745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
23747 if (r->pPrinterName) {
23748 _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
23749 NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
23750 NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
23751 NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
23752 size_pPrinterName_1 = ndr_get_array_size(ndr, &r->pPrinterName);
23753 length_pPrinterName_1 = ndr_get_array_length(ndr, &r->pPrinterName);
23754 if (length_pPrinterName_1 > size_pPrinterName_1) {
23755 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pPrinterName_1, length_pPrinterName_1);
23757 NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
23758 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
23759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
23761 if (r->pPortName) {
23762 _mem_save_pPortName_0 = NDR_PULL_GET_MEM_CTX(ndr);
23763 NDR_PULL_SET_MEM_CTX(ndr, r->pPortName, 0);
23764 NDR_CHECK(ndr_pull_array_size(ndr, &r->pPortName));
23765 NDR_CHECK(ndr_pull_array_length(ndr, &r->pPortName));
23766 size_pPortName_1 = ndr_get_array_size(ndr, &r->pPortName);
23767 length_pPortName_1 = ndr_get_array_length(ndr, &r->pPortName);
23768 if (length_pPortName_1 > size_pPortName_1) {
23769 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pPortName_1, length_pPortName_1);
23771 NDR_CHECK(ndr_check_string_terminator(ndr, length_pPortName_1, sizeof(uint16_t)));
23772 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPortName, length_pPortName_1, sizeof(uint16_t), CH_UTF16));
23773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPortName_0, 0);
23776 return NDR_ERR_SUCCESS;
23779 _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataPrinted(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataPrinted *r)
23781 ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataPrinted");
23782 if (r == NULL) { ndr_print_null(ndr); return; }
23784 ndr_print_uint32(ndr, "Status", r->Status);
23785 ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
23787 if (r->pDocumentName) {
23788 ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
23791 ndr_print_ptr(ndr, "pUserName", r->pUserName);
23793 if (r->pUserName) {
23794 ndr_print_string(ndr, "pUserName", r->pUserName);
23797 ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
23799 if (r->pMachineName) {
23800 ndr_print_string(ndr, "pMachineName", r->pMachineName);
23803 ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
23805 if (r->pPrinterName) {
23806 ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
23809 ndr_print_ptr(ndr, "pPortName", r->pPortName);
23811 if (r->pPortName) {
23812 ndr_print_string(ndr, "pPortName", r->pPortName);
23815 ndr_print_hyper(ndr, "Size", r->Size);
23816 ndr_print_uint32(ndr, "TotalPages", r->TotalPages);
23820 static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataRendered(struct ndr_push *ndr, int ndr_flags, const struct spoolss_BranchOfficeJobDataRendered *r)
23822 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23823 if (ndr_flags & NDR_SCALARS) {
23824 NDR_CHECK(ndr_push_align(ndr, 8));
23825 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->Size));
23826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ICMMethod));
23827 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->Color));
23828 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->PrintQuality));
23829 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->YResolution));
23830 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->Copies));
23831 NDR_CHECK(ndr_push_int16(ndr, NDR_SCALARS, r->TTOption));
23832 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
23834 if (ndr_flags & NDR_BUFFERS) {
23836 return NDR_ERR_SUCCESS;
23839 static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataRendered(struct ndr_pull *ndr, int ndr_flags, struct spoolss_BranchOfficeJobDataRendered *r)
23841 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23842 if (ndr_flags & NDR_SCALARS) {
23843 NDR_CHECK(ndr_pull_align(ndr, 8));
23844 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->Size));
23845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ICMMethod));
23846 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->Color));
23847 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->PrintQuality));
23848 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->YResolution));
23849 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->Copies));
23850 NDR_CHECK(ndr_pull_int16(ndr, NDR_SCALARS, &r->TTOption));
23851 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
23853 if (ndr_flags & NDR_BUFFERS) {
23855 return NDR_ERR_SUCCESS;
23858 _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataRendered(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataRendered *r)
23860 ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataRendered");
23861 if (r == NULL) { ndr_print_null(ndr); return; }
23863 ndr_print_hyper(ndr, "Size", r->Size);
23864 ndr_print_uint32(ndr, "ICMMethod", r->ICMMethod);
23865 ndr_print_int16(ndr, "Color", r->Color);
23866 ndr_print_int16(ndr, "PrintQuality", r->PrintQuality);
23867 ndr_print_int16(ndr, "YResolution", r->YResolution);
23868 ndr_print_int16(ndr, "Copies", r->Copies);
23869 ndr_print_int16(ndr, "TTOption", r->TTOption);
23873 static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataError(struct ndr_push *ndr, int ndr_flags, const struct spoolss_BranchOfficeJobDataError *r)
23875 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
23876 if (ndr_flags & NDR_SCALARS) {
23877 NDR_CHECK(ndr_push_align(ndr, 8));
23878 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->LastError));
23879 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
23880 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pUserName));
23881 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
23882 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDataType));
23883 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->TotalSize));
23884 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->PrintedSize));
23885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->TotalPages));
23886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->PrintedPages));
23887 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
23888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pJobError));
23889 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pErrorDescription));
23890 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
23892 if (ndr_flags & NDR_BUFFERS) {
23893 if (r->pDocumentName) {
23894 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
23895 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23896 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
23897 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23899 if (r->pUserName) {
23900 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
23901 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23902 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pUserName, CH_UTF16)));
23903 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pUserName, ndr_charset_length(r->pUserName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23905 if (r->pPrinterName) {
23906 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
23907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23908 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
23909 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23911 if (r->pDataType) {
23912 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDataType, CH_UTF16)));
23913 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23914 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDataType, CH_UTF16)));
23915 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDataType, ndr_charset_length(r->pDataType, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23917 if (r->pMachineName) {
23918 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
23919 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23920 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
23921 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23923 if (r->pJobError) {
23924 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pJobError, CH_UTF16)));
23925 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23926 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pJobError, CH_UTF16)));
23927 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pJobError, ndr_charset_length(r->pJobError, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23929 if (r->pErrorDescription) {
23930 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pErrorDescription, CH_UTF16)));
23931 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
23932 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pErrorDescription, CH_UTF16)));
23933 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pErrorDescription, ndr_charset_length(r->pErrorDescription, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23936 return NDR_ERR_SUCCESS;
23939 static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataError(struct ndr_pull *ndr, int ndr_flags, struct spoolss_BranchOfficeJobDataError *r)
23941 uint32_t _ptr_pDocumentName;
23942 uint32_t size_pDocumentName_1 = 0;
23943 uint32_t length_pDocumentName_1 = 0;
23944 TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
23945 uint32_t _ptr_pUserName;
23946 uint32_t size_pUserName_1 = 0;
23947 uint32_t length_pUserName_1 = 0;
23948 TALLOC_CTX *_mem_save_pUserName_0 = NULL;
23949 uint32_t _ptr_pPrinterName;
23950 uint32_t size_pPrinterName_1 = 0;
23951 uint32_t length_pPrinterName_1 = 0;
23952 TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
23953 uint32_t _ptr_pDataType;
23954 uint32_t size_pDataType_1 = 0;
23955 uint32_t length_pDataType_1 = 0;
23956 TALLOC_CTX *_mem_save_pDataType_0 = NULL;
23957 uint32_t _ptr_pMachineName;
23958 uint32_t size_pMachineName_1 = 0;
23959 uint32_t length_pMachineName_1 = 0;
23960 TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
23961 uint32_t _ptr_pJobError;
23962 uint32_t size_pJobError_1 = 0;
23963 uint32_t length_pJobError_1 = 0;
23964 TALLOC_CTX *_mem_save_pJobError_0 = NULL;
23965 uint32_t _ptr_pErrorDescription;
23966 uint32_t size_pErrorDescription_1 = 0;
23967 uint32_t length_pErrorDescription_1 = 0;
23968 TALLOC_CTX *_mem_save_pErrorDescription_0 = NULL;
23969 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
23970 if (ndr_flags & NDR_SCALARS) {
23971 NDR_CHECK(ndr_pull_align(ndr, 8));
23972 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->LastError));
23973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
23974 if (_ptr_pDocumentName) {
23975 NDR_PULL_ALLOC(ndr, r->pDocumentName);
23977 r->pDocumentName = NULL;
23979 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pUserName));
23980 if (_ptr_pUserName) {
23981 NDR_PULL_ALLOC(ndr, r->pUserName);
23983 r->pUserName = NULL;
23985 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
23986 if (_ptr_pPrinterName) {
23987 NDR_PULL_ALLOC(ndr, r->pPrinterName);
23989 r->pPrinterName = NULL;
23991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDataType));
23992 if (_ptr_pDataType) {
23993 NDR_PULL_ALLOC(ndr, r->pDataType);
23995 r->pDataType = NULL;
23997 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->TotalSize));
23998 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->PrintedSize));
23999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->TotalPages));
24000 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->PrintedPages));
24001 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
24002 if (_ptr_pMachineName) {
24003 NDR_PULL_ALLOC(ndr, r->pMachineName);
24005 r->pMachineName = NULL;
24007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pJobError));
24008 if (_ptr_pJobError) {
24009 NDR_PULL_ALLOC(ndr, r->pJobError);
24011 r->pJobError = NULL;
24013 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pErrorDescription));
24014 if (_ptr_pErrorDescription) {
24015 NDR_PULL_ALLOC(ndr, r->pErrorDescription);
24017 r->pErrorDescription = NULL;
24019 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
24021 if (ndr_flags & NDR_BUFFERS) {
24022 if (r->pDocumentName) {
24023 _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24024 NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
24025 NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
24026 NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
24027 size_pDocumentName_1 = ndr_get_array_size(ndr, &r->pDocumentName);
24028 length_pDocumentName_1 = ndr_get_array_length(ndr, &r->pDocumentName);
24029 if (length_pDocumentName_1 > size_pDocumentName_1) {
24030 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pDocumentName_1, length_pDocumentName_1);
24032 NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
24033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
24034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
24036 if (r->pUserName) {
24037 _mem_save_pUserName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24038 NDR_PULL_SET_MEM_CTX(ndr, r->pUserName, 0);
24039 NDR_CHECK(ndr_pull_array_size(ndr, &r->pUserName));
24040 NDR_CHECK(ndr_pull_array_length(ndr, &r->pUserName));
24041 size_pUserName_1 = ndr_get_array_size(ndr, &r->pUserName);
24042 length_pUserName_1 = ndr_get_array_length(ndr, &r->pUserName);
24043 if (length_pUserName_1 > size_pUserName_1) {
24044 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pUserName_1, length_pUserName_1);
24046 NDR_CHECK(ndr_check_string_terminator(ndr, length_pUserName_1, sizeof(uint16_t)));
24047 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pUserName, length_pUserName_1, sizeof(uint16_t), CH_UTF16));
24048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pUserName_0, 0);
24050 if (r->pPrinterName) {
24051 _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24052 NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
24053 NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
24054 NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
24055 size_pPrinterName_1 = ndr_get_array_size(ndr, &r->pPrinterName);
24056 length_pPrinterName_1 = ndr_get_array_length(ndr, &r->pPrinterName);
24057 if (length_pPrinterName_1 > size_pPrinterName_1) {
24058 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pPrinterName_1, length_pPrinterName_1);
24060 NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
24061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
24062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
24064 if (r->pDataType) {
24065 _mem_save_pDataType_0 = NDR_PULL_GET_MEM_CTX(ndr);
24066 NDR_PULL_SET_MEM_CTX(ndr, r->pDataType, 0);
24067 NDR_CHECK(ndr_pull_array_size(ndr, &r->pDataType));
24068 NDR_CHECK(ndr_pull_array_length(ndr, &r->pDataType));
24069 size_pDataType_1 = ndr_get_array_size(ndr, &r->pDataType);
24070 length_pDataType_1 = ndr_get_array_length(ndr, &r->pDataType);
24071 if (length_pDataType_1 > size_pDataType_1) {
24072 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pDataType_1, length_pDataType_1);
24074 NDR_CHECK(ndr_check_string_terminator(ndr, length_pDataType_1, sizeof(uint16_t)));
24075 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDataType, length_pDataType_1, sizeof(uint16_t), CH_UTF16));
24076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDataType_0, 0);
24078 if (r->pMachineName) {
24079 _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24080 NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
24081 NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
24082 NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
24083 size_pMachineName_1 = ndr_get_array_size(ndr, &r->pMachineName);
24084 length_pMachineName_1 = ndr_get_array_length(ndr, &r->pMachineName);
24085 if (length_pMachineName_1 > size_pMachineName_1) {
24086 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pMachineName_1, length_pMachineName_1);
24088 NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
24089 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
24090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
24092 if (r->pJobError) {
24093 _mem_save_pJobError_0 = NDR_PULL_GET_MEM_CTX(ndr);
24094 NDR_PULL_SET_MEM_CTX(ndr, r->pJobError, 0);
24095 NDR_CHECK(ndr_pull_array_size(ndr, &r->pJobError));
24096 NDR_CHECK(ndr_pull_array_length(ndr, &r->pJobError));
24097 size_pJobError_1 = ndr_get_array_size(ndr, &r->pJobError);
24098 length_pJobError_1 = ndr_get_array_length(ndr, &r->pJobError);
24099 if (length_pJobError_1 > size_pJobError_1) {
24100 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pJobError_1, length_pJobError_1);
24102 NDR_CHECK(ndr_check_string_terminator(ndr, length_pJobError_1, sizeof(uint16_t)));
24103 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pJobError, length_pJobError_1, sizeof(uint16_t), CH_UTF16));
24104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pJobError_0, 0);
24106 if (r->pErrorDescription) {
24107 _mem_save_pErrorDescription_0 = NDR_PULL_GET_MEM_CTX(ndr);
24108 NDR_PULL_SET_MEM_CTX(ndr, r->pErrorDescription, 0);
24109 NDR_CHECK(ndr_pull_array_size(ndr, &r->pErrorDescription));
24110 NDR_CHECK(ndr_pull_array_length(ndr, &r->pErrorDescription));
24111 size_pErrorDescription_1 = ndr_get_array_size(ndr, &r->pErrorDescription);
24112 length_pErrorDescription_1 = ndr_get_array_length(ndr, &r->pErrorDescription);
24113 if (length_pErrorDescription_1 > size_pErrorDescription_1) {
24114 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pErrorDescription_1, length_pErrorDescription_1);
24116 NDR_CHECK(ndr_check_string_terminator(ndr, length_pErrorDescription_1, sizeof(uint16_t)));
24117 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pErrorDescription, length_pErrorDescription_1, sizeof(uint16_t), CH_UTF16));
24118 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pErrorDescription_0, 0);
24121 return NDR_ERR_SUCCESS;
24124 _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataError(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataError *r)
24126 ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataError");
24127 if (r == NULL) { ndr_print_null(ndr); return; }
24129 ndr_print_WERROR(ndr, "LastError", r->LastError);
24130 ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
24132 if (r->pDocumentName) {
24133 ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
24136 ndr_print_ptr(ndr, "pUserName", r->pUserName);
24138 if (r->pUserName) {
24139 ndr_print_string(ndr, "pUserName", r->pUserName);
24142 ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
24144 if (r->pPrinterName) {
24145 ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
24148 ndr_print_ptr(ndr, "pDataType", r->pDataType);
24150 if (r->pDataType) {
24151 ndr_print_string(ndr, "pDataType", r->pDataType);
24154 ndr_print_hyper(ndr, "TotalSize", r->TotalSize);
24155 ndr_print_hyper(ndr, "PrintedSize", r->PrintedSize);
24156 ndr_print_uint32(ndr, "TotalPages", r->TotalPages);
24157 ndr_print_uint32(ndr, "PrintedPages", r->PrintedPages);
24158 ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
24160 if (r->pMachineName) {
24161 ndr_print_string(ndr, "pMachineName", r->pMachineName);
24164 ndr_print_ptr(ndr, "pJobError", r->pJobError);
24166 if (r->pJobError) {
24167 ndr_print_string(ndr, "pJobError", r->pJobError);
24170 ndr_print_ptr(ndr, "pErrorDescription", r->pErrorDescription);
24172 if (r->pErrorDescription) {
24173 ndr_print_string(ndr, "pErrorDescription", r->pErrorDescription);
24179 static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_push *ndr, int ndr_flags, const struct spoolss_BranchOfficeJobDataPipelineFailed *r)
24181 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24182 if (ndr_flags & NDR_SCALARS) {
24183 NDR_CHECK(ndr_push_align(ndr, 5));
24184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pDocumentName));
24185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pPrinterName));
24186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pExtraErrorInfo));
24187 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
24189 if (ndr_flags & NDR_BUFFERS) {
24190 if (r->pDocumentName) {
24191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
24192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24193 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pDocumentName, CH_UTF16)));
24194 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pDocumentName, ndr_charset_length(r->pDocumentName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24196 if (r->pPrinterName) {
24197 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
24198 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24199 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pPrinterName, CH_UTF16)));
24200 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pPrinterName, ndr_charset_length(r->pPrinterName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24202 if (r->pExtraErrorInfo) {
24203 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16)));
24204 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24205 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16)));
24206 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pExtraErrorInfo, ndr_charset_length(r->pExtraErrorInfo, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24209 return NDR_ERR_SUCCESS;
24212 static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_pull *ndr, int ndr_flags, struct spoolss_BranchOfficeJobDataPipelineFailed *r)
24214 uint32_t _ptr_pDocumentName;
24215 uint32_t size_pDocumentName_1 = 0;
24216 uint32_t length_pDocumentName_1 = 0;
24217 TALLOC_CTX *_mem_save_pDocumentName_0 = NULL;
24218 uint32_t _ptr_pPrinterName;
24219 uint32_t size_pPrinterName_1 = 0;
24220 uint32_t length_pPrinterName_1 = 0;
24221 TALLOC_CTX *_mem_save_pPrinterName_0 = NULL;
24222 uint32_t _ptr_pExtraErrorInfo;
24223 uint32_t size_pExtraErrorInfo_1 = 0;
24224 uint32_t length_pExtraErrorInfo_1 = 0;
24225 TALLOC_CTX *_mem_save_pExtraErrorInfo_0 = NULL;
24226 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24227 if (ndr_flags & NDR_SCALARS) {
24228 NDR_CHECK(ndr_pull_align(ndr, 5));
24229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pDocumentName));
24230 if (_ptr_pDocumentName) {
24231 NDR_PULL_ALLOC(ndr, r->pDocumentName);
24233 r->pDocumentName = NULL;
24235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pPrinterName));
24236 if (_ptr_pPrinterName) {
24237 NDR_PULL_ALLOC(ndr, r->pPrinterName);
24239 r->pPrinterName = NULL;
24241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pExtraErrorInfo));
24242 if (_ptr_pExtraErrorInfo) {
24243 NDR_PULL_ALLOC(ndr, r->pExtraErrorInfo);
24245 r->pExtraErrorInfo = NULL;
24247 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
24249 if (ndr_flags & NDR_BUFFERS) {
24250 if (r->pDocumentName) {
24251 _mem_save_pDocumentName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24252 NDR_PULL_SET_MEM_CTX(ndr, r->pDocumentName, 0);
24253 NDR_CHECK(ndr_pull_array_size(ndr, &r->pDocumentName));
24254 NDR_CHECK(ndr_pull_array_length(ndr, &r->pDocumentName));
24255 size_pDocumentName_1 = ndr_get_array_size(ndr, &r->pDocumentName);
24256 length_pDocumentName_1 = ndr_get_array_length(ndr, &r->pDocumentName);
24257 if (length_pDocumentName_1 > size_pDocumentName_1) {
24258 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pDocumentName_1, length_pDocumentName_1);
24260 NDR_CHECK(ndr_check_string_terminator(ndr, length_pDocumentName_1, sizeof(uint16_t)));
24261 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pDocumentName, length_pDocumentName_1, sizeof(uint16_t), CH_UTF16));
24262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pDocumentName_0, 0);
24264 if (r->pPrinterName) {
24265 _mem_save_pPrinterName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24266 NDR_PULL_SET_MEM_CTX(ndr, r->pPrinterName, 0);
24267 NDR_CHECK(ndr_pull_array_size(ndr, &r->pPrinterName));
24268 NDR_CHECK(ndr_pull_array_length(ndr, &r->pPrinterName));
24269 size_pPrinterName_1 = ndr_get_array_size(ndr, &r->pPrinterName);
24270 length_pPrinterName_1 = ndr_get_array_length(ndr, &r->pPrinterName);
24271 if (length_pPrinterName_1 > size_pPrinterName_1) {
24272 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pPrinterName_1, length_pPrinterName_1);
24274 NDR_CHECK(ndr_check_string_terminator(ndr, length_pPrinterName_1, sizeof(uint16_t)));
24275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pPrinterName, length_pPrinterName_1, sizeof(uint16_t), CH_UTF16));
24276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pPrinterName_0, 0);
24278 if (r->pExtraErrorInfo) {
24279 _mem_save_pExtraErrorInfo_0 = NDR_PULL_GET_MEM_CTX(ndr);
24280 NDR_PULL_SET_MEM_CTX(ndr, r->pExtraErrorInfo, 0);
24281 NDR_CHECK(ndr_pull_array_size(ndr, &r->pExtraErrorInfo));
24282 NDR_CHECK(ndr_pull_array_length(ndr, &r->pExtraErrorInfo));
24283 size_pExtraErrorInfo_1 = ndr_get_array_size(ndr, &r->pExtraErrorInfo);
24284 length_pExtraErrorInfo_1 = ndr_get_array_length(ndr, &r->pExtraErrorInfo);
24285 if (length_pExtraErrorInfo_1 > size_pExtraErrorInfo_1) {
24286 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pExtraErrorInfo_1, length_pExtraErrorInfo_1);
24288 NDR_CHECK(ndr_check_string_terminator(ndr, length_pExtraErrorInfo_1, sizeof(uint16_t)));
24289 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pExtraErrorInfo, length_pExtraErrorInfo_1, sizeof(uint16_t), CH_UTF16));
24290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pExtraErrorInfo_0, 0);
24293 return NDR_ERR_SUCCESS;
24296 _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataPipelineFailed(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataPipelineFailed *r)
24298 ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataPipelineFailed");
24299 if (r == NULL) { ndr_print_null(ndr); return; }
24301 ndr_print_ptr(ndr, "pDocumentName", r->pDocumentName);
24303 if (r->pDocumentName) {
24304 ndr_print_string(ndr, "pDocumentName", r->pDocumentName);
24307 ndr_print_ptr(ndr, "pPrinterName", r->pPrinterName);
24309 if (r->pPrinterName) {
24310 ndr_print_string(ndr, "pPrinterName", r->pPrinterName);
24313 ndr_print_ptr(ndr, "pExtraErrorInfo", r->pExtraErrorInfo);
24315 if (r->pExtraErrorInfo) {
24316 ndr_print_string(ndr, "pExtraErrorInfo", r->pExtraErrorInfo);
24322 static enum ndr_err_code ndr_push_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_push *ndr, int ndr_flags, const struct spoolss_BranchOfficeLogOfflineFileFull *r)
24324 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24325 if (ndr_flags & NDR_SCALARS) {
24326 NDR_CHECK(ndr_push_align(ndr, 5));
24327 NDR_CHECK(ndr_push_unique_ptr(ndr, r->pMachineName));
24328 NDR_CHECK(ndr_push_trailer_align(ndr, 5));
24330 if (ndr_flags & NDR_BUFFERS) {
24331 if (r->pMachineName) {
24332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
24333 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24334 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->pMachineName, CH_UTF16)));
24335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->pMachineName, ndr_charset_length(r->pMachineName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24338 return NDR_ERR_SUCCESS;
24341 static enum ndr_err_code ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_pull *ndr, int ndr_flags, struct spoolss_BranchOfficeLogOfflineFileFull *r)
24343 uint32_t _ptr_pMachineName;
24344 uint32_t size_pMachineName_1 = 0;
24345 uint32_t length_pMachineName_1 = 0;
24346 TALLOC_CTX *_mem_save_pMachineName_0 = NULL;
24347 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24348 if (ndr_flags & NDR_SCALARS) {
24349 NDR_CHECK(ndr_pull_align(ndr, 5));
24350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pMachineName));
24351 if (_ptr_pMachineName) {
24352 NDR_PULL_ALLOC(ndr, r->pMachineName);
24354 r->pMachineName = NULL;
24356 NDR_CHECK(ndr_pull_trailer_align(ndr, 5));
24358 if (ndr_flags & NDR_BUFFERS) {
24359 if (r->pMachineName) {
24360 _mem_save_pMachineName_0 = NDR_PULL_GET_MEM_CTX(ndr);
24361 NDR_PULL_SET_MEM_CTX(ndr, r->pMachineName, 0);
24362 NDR_CHECK(ndr_pull_array_size(ndr, &r->pMachineName));
24363 NDR_CHECK(ndr_pull_array_length(ndr, &r->pMachineName));
24364 size_pMachineName_1 = ndr_get_array_size(ndr, &r->pMachineName);
24365 length_pMachineName_1 = ndr_get_array_length(ndr, &r->pMachineName);
24366 if (length_pMachineName_1 > size_pMachineName_1) {
24367 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pMachineName_1, length_pMachineName_1);
24369 NDR_CHECK(ndr_check_string_terminator(ndr, length_pMachineName_1, sizeof(uint16_t)));
24370 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->pMachineName, length_pMachineName_1, sizeof(uint16_t), CH_UTF16));
24371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pMachineName_0, 0);
24374 return NDR_ERR_SUCCESS;
24377 _PUBLIC_ void ndr_print_spoolss_BranchOfficeLogOfflineFileFull(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeLogOfflineFileFull *r)
24379 ndr_print_struct(ndr, name, "spoolss_BranchOfficeLogOfflineFileFull");
24380 if (r == NULL) { ndr_print_null(ndr); return; }
24382 ndr_print_ptr(ndr, "pMachineName", r->pMachineName);
24384 if (r->pMachineName) {
24385 ndr_print_string(ndr, "pMachineName", r->pMachineName);
24391 static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_BranchOfficeJobInfo *r)
24393 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24394 if (ndr_flags & NDR_SCALARS) {
24395 uint32_t level = ndr_push_get_switch_value(ndr, r);
24396 NDR_CHECK(ndr_push_union_align(ndr, 8));
24397 NDR_CHECK(ndr_push_EBranchOfficeJobEventType(ndr, NDR_SCALARS, level));
24398 /* ms_union is always aligned to the largest union arm*/
24399 NDR_CHECK(ndr_push_align(ndr, 8));
24401 case kLogJobPrinted: {
24402 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_SCALARS, &r->LogJobPrinted));
24405 case kLogJobRendered: {
24406 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataRendered(ndr, NDR_SCALARS, &r->LogJobRendered));
24409 case kLogJobError: {
24410 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataError(ndr, NDR_SCALARS, &r->LogJobError));
24413 case kLogJobPipelineError: {
24414 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_SCALARS, &r->LogPipelineFailed));
24417 case kLogOfflineFileFull: {
24418 NDR_CHECK(ndr_push_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_SCALARS, &r->LogOfflineFileFull));
24422 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
24425 if (ndr_flags & NDR_BUFFERS) {
24426 uint32_t level = ndr_push_get_switch_value(ndr, r);
24428 case kLogJobPrinted:
24429 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_BUFFERS, &r->LogJobPrinted));
24432 case kLogJobRendered:
24436 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataError(ndr, NDR_BUFFERS, &r->LogJobError));
24439 case kLogJobPipelineError:
24440 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_BUFFERS, &r->LogPipelineFailed));
24443 case kLogOfflineFileFull:
24444 NDR_CHECK(ndr_push_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_BUFFERS, &r->LogOfflineFileFull));
24448 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
24451 return NDR_ERR_SUCCESS;
24454 static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_BranchOfficeJobInfo *r)
24458 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24459 if (ndr_flags & NDR_SCALARS) {
24460 level = ndr_pull_get_switch_value(ndr, r);
24461 NDR_CHECK(ndr_pull_union_align(ndr, 8));
24462 NDR_CHECK(ndr_pull_uint1632(ndr, NDR_SCALARS, &_level));
24463 if (_level != level) {
24464 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r at %s", _level, __location__);
24466 /* ms_union is always aligned to the largest union arm*/
24467 NDR_CHECK(ndr_pull_align(ndr, 8));
24469 case kLogJobPrinted: {
24470 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_SCALARS, &r->LogJobPrinted));
24473 case kLogJobRendered: {
24474 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataRendered(ndr, NDR_SCALARS, &r->LogJobRendered));
24477 case kLogJobError: {
24478 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataError(ndr, NDR_SCALARS, &r->LogJobError));
24481 case kLogJobPipelineError: {
24482 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_SCALARS, &r->LogPipelineFailed));
24485 case kLogOfflineFileFull: {
24486 NDR_CHECK(ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_SCALARS, &r->LogOfflineFileFull));
24490 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
24493 if (ndr_flags & NDR_BUFFERS) {
24494 /* The token is not needed after this. */
24495 level = ndr_pull_steal_switch_value(ndr, r);
24497 case kLogJobPrinted:
24498 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPrinted(ndr, NDR_BUFFERS, &r->LogJobPrinted));
24501 case kLogJobRendered:
24505 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataError(ndr, NDR_BUFFERS, &r->LogJobError));
24508 case kLogJobPipelineError:
24509 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataPipelineFailed(ndr, NDR_BUFFERS, &r->LogPipelineFailed));
24512 case kLogOfflineFileFull:
24513 NDR_CHECK(ndr_pull_spoolss_BranchOfficeLogOfflineFileFull(ndr, NDR_BUFFERS, &r->LogOfflineFileFull));
24517 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u at %s", level, __location__);
24520 return NDR_ERR_SUCCESS;
24523 _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_BranchOfficeJobInfo *r)
24526 level = ndr_print_get_switch_value(ndr, r);
24527 ndr_print_union(ndr, name, level, "spoolss_BranchOfficeJobInfo");
24529 case kLogJobPrinted:
24530 ndr_print_spoolss_BranchOfficeJobDataPrinted(ndr, "LogJobPrinted", &r->LogJobPrinted);
24533 case kLogJobRendered:
24534 ndr_print_spoolss_BranchOfficeJobDataRendered(ndr, "LogJobRendered", &r->LogJobRendered);
24538 ndr_print_spoolss_BranchOfficeJobDataError(ndr, "LogJobError", &r->LogJobError);
24541 case kLogJobPipelineError:
24542 ndr_print_spoolss_BranchOfficeJobDataPipelineFailed(ndr, "LogPipelineFailed", &r->LogPipelineFailed);
24545 case kLogOfflineFileFull:
24546 ndr_print_spoolss_BranchOfficeLogOfflineFileFull(ndr, "LogOfflineFileFull", &r->LogOfflineFileFull);
24550 ndr_print_bad_level(ndr, name, level);
24554 static enum ndr_err_code ndr_push_spoolss_BranchOfficeJobData(struct ndr_push *ndr, int ndr_flags, const struct spoolss_BranchOfficeJobData *r)
24556 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24557 if (ndr_flags & NDR_SCALARS) {
24558 NDR_CHECK(ndr_push_align(ndr, 8));
24559 NDR_CHECK(ndr_push_EBranchOfficeJobEventType(ndr, NDR_SCALARS, r->eEventType));
24560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->JobId));
24561 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->JobInfo, r->eEventType));
24562 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobInfo(ndr, NDR_SCALARS, &r->JobInfo));
24563 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
24565 if (ndr_flags & NDR_BUFFERS) {
24566 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobInfo(ndr, NDR_BUFFERS, &r->JobInfo));
24568 return NDR_ERR_SUCCESS;
24571 static enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobData(struct ndr_pull *ndr, int ndr_flags, struct spoolss_BranchOfficeJobData *r)
24573 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24574 if (ndr_flags & NDR_SCALARS) {
24575 NDR_CHECK(ndr_pull_align(ndr, 8));
24576 NDR_CHECK(ndr_pull_EBranchOfficeJobEventType(ndr, NDR_SCALARS, &r->eEventType));
24577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->JobId));
24578 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->JobInfo, r->eEventType));
24579 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobInfo(ndr, NDR_SCALARS, &r->JobInfo));
24580 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
24582 if (ndr_flags & NDR_BUFFERS) {
24583 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobInfo(ndr, NDR_BUFFERS, &r->JobInfo));
24585 return NDR_ERR_SUCCESS;
24588 _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobData(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobData *r)
24590 ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobData");
24591 if (r == NULL) { ndr_print_null(ndr); return; }
24593 ndr_print_EBranchOfficeJobEventType(ndr, "eEventType", r->eEventType);
24594 ndr_print_uint32(ndr, "JobId", r->JobId);
24595 ndr_print_set_switch_value(ndr, &r->JobInfo, r->eEventType);
24596 ndr_print_spoolss_BranchOfficeJobInfo(ndr, "JobInfo", &r->JobInfo);
24600 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_BranchOfficeJobDataContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_BranchOfficeJobDataContainer *r)
24602 uint32_t cntr_JobData_0;
24603 NDR_PUSH_CHECK_FLAGS(ndr, ndr_flags);
24604 if (ndr_flags & NDR_SCALARS) {
24605 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->cJobDataEntries));
24606 NDR_CHECK(ndr_push_align(ndr, 8));
24607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cJobDataEntries));
24608 for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
24609 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobData(ndr, NDR_SCALARS, &r->JobData[cntr_JobData_0]));
24611 NDR_CHECK(ndr_push_trailer_align(ndr, 8));
24613 if (ndr_flags & NDR_BUFFERS) {
24614 for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
24615 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobData(ndr, NDR_BUFFERS, &r->JobData[cntr_JobData_0]));
24618 return NDR_ERR_SUCCESS;
24621 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_BranchOfficeJobDataContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_BranchOfficeJobDataContainer *r)
24623 uint32_t size_JobData_0 = 0;
24624 uint32_t cntr_JobData_0;
24625 TALLOC_CTX *_mem_save_JobData_0 = NULL;
24626 NDR_PULL_CHECK_FLAGS(ndr, ndr_flags);
24627 if (ndr_flags & NDR_SCALARS) {
24628 NDR_CHECK(ndr_pull_array_size(ndr, &r->JobData));
24629 NDR_CHECK(ndr_pull_align(ndr, 8));
24630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cJobDataEntries));
24631 size_JobData_0 = ndr_get_array_size(ndr, &r->JobData);
24632 NDR_PULL_ALLOC_N(ndr, r->JobData, size_JobData_0);
24633 _mem_save_JobData_0 = NDR_PULL_GET_MEM_CTX(ndr);
24634 NDR_PULL_SET_MEM_CTX(ndr, r->JobData, 0);
24635 for (cntr_JobData_0 = 0; cntr_JobData_0 < (size_JobData_0); cntr_JobData_0++) {
24636 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobData(ndr, NDR_SCALARS, &r->JobData[cntr_JobData_0]));
24638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobData_0, 0);
24640 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->JobData, r->cJobDataEntries));
24642 NDR_CHECK(ndr_pull_trailer_align(ndr, 8));
24644 if (ndr_flags & NDR_BUFFERS) {
24645 size_JobData_0 = ndr_get_array_size(ndr, &r->JobData);
24646 _mem_save_JobData_0 = NDR_PULL_GET_MEM_CTX(ndr);
24647 NDR_PULL_SET_MEM_CTX(ndr, r->JobData, 0);
24648 for (cntr_JobData_0 = 0; cntr_JobData_0 < (size_JobData_0); cntr_JobData_0++) {
24649 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobData(ndr, NDR_BUFFERS, &r->JobData[cntr_JobData_0]));
24651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_JobData_0, 0);
24653 return NDR_ERR_SUCCESS;
24656 _PUBLIC_ void ndr_print_spoolss_BranchOfficeJobDataContainer(struct ndr_print *ndr, const char *name, const struct spoolss_BranchOfficeJobDataContainer *r)
24658 uint32_t cntr_JobData_0;
24659 ndr_print_struct(ndr, name, "spoolss_BranchOfficeJobDataContainer");
24660 if (r == NULL) { ndr_print_null(ndr); return; }
24662 ndr_print_uint32(ndr, "cJobDataEntries", r->cJobDataEntries);
24663 ndr->print(ndr, "%s: ARRAY(%d)", "JobData", (int)r->cJobDataEntries);
24665 for (cntr_JobData_0 = 0; cntr_JobData_0 < (r->cJobDataEntries); cntr_JobData_0++) {
24666 ndr_print_spoolss_BranchOfficeJobData(ndr, "JobData", &r->JobData[cntr_JobData_0]);
24672 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
24674 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
24675 if (flags & NDR_IN) {
24676 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
24677 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
24678 if (r->in.server) {
24679 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
24680 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24681 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
24682 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24685 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24686 if (r->in.buffer) {
24687 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
24689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
24691 if (flags & NDR_OUT) {
24692 if (r->out.needed == NULL) {
24693 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24695 if (r->out.count == NULL) {
24696 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
24700 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
24702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
24704 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24706 return NDR_ERR_SUCCESS;
24709 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
24711 uint32_t _ptr_server;
24712 uint32_t size_server_1 = 0;
24713 uint32_t length_server_1 = 0;
24714 uint32_t _ptr_buffer;
24715 uint32_t _ptr_info;
24716 TALLOC_CTX *_mem_save_server_0 = NULL;
24717 TALLOC_CTX *_mem_save_buffer_0 = NULL;
24718 TALLOC_CTX *_mem_save_info_0 = NULL;
24719 TALLOC_CTX *_mem_save_needed_0 = NULL;
24720 TALLOC_CTX *_mem_save_count_0 = NULL;
24721 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
24722 if (flags & NDR_IN) {
24723 ZERO_STRUCT(r->out);
24725 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
24726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
24728 NDR_PULL_ALLOC(ndr, r->in.server);
24730 r->in.server = NULL;
24732 if (r->in.server) {
24733 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
24734 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
24735 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
24736 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
24737 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
24738 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
24739 if (length_server_1 > size_server_1) {
24740 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
24742 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
24743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
24744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
24746 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24749 NDR_PULL_ALLOC(ndr, r->in.buffer);
24751 r->in.buffer = NULL;
24753 if (r->in.buffer) {
24754 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24755 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24756 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24759 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24760 NDR_PULL_ALLOC(ndr, r->out.needed);
24761 ZERO_STRUCTP(r->out.needed);
24762 NDR_PULL_ALLOC(ndr, r->out.count);
24763 ZERO_STRUCTP(r->out.count);
24765 if (flags & NDR_OUT) {
24766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24768 NDR_PULL_ALLOC(ndr, r->out.info);
24770 r->out.info = NULL;
24773 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24774 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24775 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
24776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24778 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24779 NDR_PULL_ALLOC(ndr, r->out.needed);
24781 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24782 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24785 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24786 NDR_PULL_ALLOC(ndr, r->out.count);
24788 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
24789 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
24790 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
24791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
24792 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24794 return NDR_ERR_SUCCESS;
24797 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
24799 uint32_t cntr_info_0;
24800 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
24801 if (flags & NDR_IN) {
24802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
24803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
24805 if (flags & NDR_OUT) {
24806 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
24807 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24808 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24810 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
24811 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24814 return NDR_ERR_SUCCESS;
24817 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
24819 uint32_t size_info_0 = 0;
24820 uint32_t cntr_info_0;
24821 TALLOC_CTX *_mem_save_info_0 = NULL;
24822 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
24823 if (flags & NDR_IN) {
24824 ZERO_STRUCT(r->out);
24826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
24829 if (flags & NDR_OUT) {
24830 size_info_0 = r->in.count;
24831 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
24832 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24833 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24834 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
24835 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
24836 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
24838 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
24839 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
24841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24843 return NDR_ERR_SUCCESS;
24846 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
24848 uint32_t cntr_info_2;
24849 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
24850 if (r == NULL) { ndr_print_null(ndr); return; }
24852 if (flags & NDR_SET_VALUES) {
24853 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24855 if (flags & NDR_IN) {
24856 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
24858 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
24859 ndr_print_ptr(ndr, "server", r->in.server);
24861 if (r->in.server) {
24862 ndr_print_string(ndr, "server", r->in.server);
24865 ndr_print_uint32(ndr, "level", r->in.level);
24866 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24868 if (r->in.buffer) {
24869 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24872 ndr_print_uint32(ndr, "offered", r->in.offered);
24875 if (flags & NDR_OUT) {
24876 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
24878 ndr_print_ptr(ndr, "count", r->out.count);
24880 ndr_print_uint32(ndr, "count", *r->out.count);
24882 ndr_print_ptr(ndr, "info", r->out.info);
24884 ndr_print_ptr(ndr, "info", *r->out.info);
24886 if (*r->out.info) {
24887 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
24889 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
24890 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
24891 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
24897 ndr_print_ptr(ndr, "needed", r->out.needed);
24899 ndr_print_uint32(ndr, "needed", *r->out.needed);
24901 ndr_print_WERROR(ndr, "result", r->out.result);
24907 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
24909 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
24910 if (flags & NDR_IN) {
24911 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
24912 if (r->in.printername) {
24913 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
24914 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24915 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
24916 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24918 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
24919 if (r->in.datatype) {
24920 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
24921 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
24922 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
24923 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
24925 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
24926 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
24928 if (flags & NDR_OUT) {
24929 if (r->out.handle == NULL) {
24930 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24932 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24933 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24935 return NDR_ERR_SUCCESS;
24938 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
24940 uint32_t _ptr_printername;
24941 uint32_t size_printername_1 = 0;
24942 uint32_t length_printername_1 = 0;
24943 uint32_t _ptr_datatype;
24944 uint32_t size_datatype_1 = 0;
24945 uint32_t length_datatype_1 = 0;
24946 TALLOC_CTX *_mem_save_printername_0 = NULL;
24947 TALLOC_CTX *_mem_save_datatype_0 = NULL;
24948 TALLOC_CTX *_mem_save_handle_0 = NULL;
24949 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
24950 if (flags & NDR_IN) {
24951 ZERO_STRUCT(r->out);
24953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
24954 if (_ptr_printername) {
24955 NDR_PULL_ALLOC(ndr, r->in.printername);
24957 r->in.printername = NULL;
24959 if (r->in.printername) {
24960 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
24961 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
24962 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
24963 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
24964 size_printername_1 = ndr_get_array_size(ndr, &r->in.printername);
24965 length_printername_1 = ndr_get_array_length(ndr, &r->in.printername);
24966 if (length_printername_1 > size_printername_1) {
24967 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
24969 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
24970 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
24971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
24973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
24974 if (_ptr_datatype) {
24975 NDR_PULL_ALLOC(ndr, r->in.datatype);
24977 r->in.datatype = NULL;
24979 if (r->in.datatype) {
24980 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
24981 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
24982 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
24983 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
24984 size_datatype_1 = ndr_get_array_size(ndr, &r->in.datatype);
24985 length_datatype_1 = ndr_get_array_length(ndr, &r->in.datatype);
24986 if (length_datatype_1 > size_datatype_1) {
24987 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
24989 NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
24990 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
24991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
24993 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
24994 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
24995 NDR_PULL_ALLOC(ndr, r->out.handle);
24996 ZERO_STRUCTP(r->out.handle);
24998 if (flags & NDR_OUT) {
24999 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25000 NDR_PULL_ALLOC(ndr, r->out.handle);
25002 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25003 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25004 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25006 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25008 return NDR_ERR_SUCCESS;
25011 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
25013 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
25014 if (r == NULL) { ndr_print_null(ndr); return; }
25016 if (flags & NDR_SET_VALUES) {
25017 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25019 if (flags & NDR_IN) {
25020 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
25022 ndr_print_ptr(ndr, "printername", r->in.printername);
25024 if (r->in.printername) {
25025 ndr_print_string(ndr, "printername", r->in.printername);
25028 ndr_print_ptr(ndr, "datatype", r->in.datatype);
25030 if (r->in.datatype) {
25031 ndr_print_string(ndr, "datatype", r->in.datatype);
25034 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
25035 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
25038 if (flags & NDR_OUT) {
25039 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
25041 ndr_print_ptr(ndr, "handle", r->out.handle);
25043 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25045 ndr_print_WERROR(ndr, "result", r->out.result);
25051 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
25053 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25054 if (flags & NDR_IN) {
25055 if (r->in.handle == NULL) {
25056 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25058 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
25060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
25062 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
25064 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
25066 if (flags & NDR_OUT) {
25067 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25069 return NDR_ERR_SUCCESS;
25072 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
25075 TALLOC_CTX *_mem_save_handle_0 = NULL;
25076 TALLOC_CTX *_mem_save_ctr_0 = NULL;
25077 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25078 if (flags & NDR_IN) {
25079 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25080 NDR_PULL_ALLOC(ndr, r->in.handle);
25082 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25083 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25084 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25086 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
25087 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
25089 NDR_PULL_ALLOC(ndr, r->in.ctr);
25094 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25095 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
25096 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
25097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
25099 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
25101 if (flags & NDR_OUT) {
25102 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25104 return NDR_ERR_SUCCESS;
25107 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
25109 ndr_print_struct(ndr, name, "spoolss_SetJob");
25110 if (r == NULL) { ndr_print_null(ndr); return; }
25112 if (flags & NDR_SET_VALUES) {
25113 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25115 if (flags & NDR_IN) {
25116 ndr_print_struct(ndr, "in", "spoolss_SetJob");
25118 ndr_print_ptr(ndr, "handle", r->in.handle);
25120 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25122 ndr_print_uint32(ndr, "job_id", r->in.job_id);
25123 ndr_print_ptr(ndr, "ctr", r->in.ctr);
25126 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
25129 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
25132 if (flags & NDR_OUT) {
25133 ndr_print_struct(ndr, "out", "spoolss_SetJob");
25135 ndr_print_WERROR(ndr, "result", r->out.result);
25141 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
25143 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25144 if (flags & NDR_IN) {
25145 if (r->in.handle == NULL) {
25146 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25148 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
25150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25151 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25152 if (r->in.buffer) {
25153 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25157 if (flags & NDR_OUT) {
25158 if (r->out.needed == NULL) {
25159 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25161 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25164 struct ndr_push *_ndr_info;
25165 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25166 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25167 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25168 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25172 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25174 return NDR_ERR_SUCCESS;
25177 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
25179 uint32_t _ptr_buffer;
25180 uint32_t _ptr_info;
25181 TALLOC_CTX *_mem_save_handle_0 = NULL;
25182 TALLOC_CTX *_mem_save_buffer_0 = NULL;
25183 TALLOC_CTX *_mem_save_info_0 = NULL;
25184 TALLOC_CTX *_mem_save_needed_0 = NULL;
25185 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25186 if (flags & NDR_IN) {
25187 ZERO_STRUCT(r->out);
25189 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25190 NDR_PULL_ALLOC(ndr, r->in.handle);
25192 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25193 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25194 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
25197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25198 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25200 NDR_PULL_ALLOC(ndr, r->in.buffer);
25202 r->in.buffer = NULL;
25204 if (r->in.buffer) {
25205 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25206 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25207 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25211 NDR_PULL_ALLOC(ndr, r->out.needed);
25212 ZERO_STRUCTP(r->out.needed);
25214 if (flags & NDR_OUT) {
25215 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25217 NDR_PULL_ALLOC(ndr, r->out.info);
25219 r->out.info = NULL;
25222 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25223 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25225 struct ndr_pull *_ndr_info;
25226 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25227 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25228 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25229 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25233 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25234 NDR_PULL_ALLOC(ndr, r->out.needed);
25236 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25237 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25240 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25242 return NDR_ERR_SUCCESS;
25245 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
25247 ndr_print_struct(ndr, name, "spoolss_GetJob");
25248 if (r == NULL) { ndr_print_null(ndr); return; }
25250 if (flags & NDR_SET_VALUES) {
25251 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25253 if (flags & NDR_IN) {
25254 ndr_print_struct(ndr, "in", "spoolss_GetJob");
25256 ndr_print_ptr(ndr, "handle", r->in.handle);
25258 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25260 ndr_print_uint32(ndr, "job_id", r->in.job_id);
25261 ndr_print_uint32(ndr, "level", r->in.level);
25262 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25264 if (r->in.buffer) {
25265 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25268 ndr_print_uint32(ndr, "offered", r->in.offered);
25271 if (flags & NDR_OUT) {
25272 ndr_print_struct(ndr, "out", "spoolss_GetJob");
25274 ndr_print_ptr(ndr, "info", r->out.info);
25277 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25278 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
25281 ndr_print_ptr(ndr, "needed", r->out.needed);
25283 ndr_print_uint32(ndr, "needed", *r->out.needed);
25285 ndr_print_WERROR(ndr, "result", r->out.result);
25291 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
25293 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25294 if (flags & NDR_IN) {
25295 if (r->in.handle == NULL) {
25296 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25298 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
25300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
25301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25302 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25303 if (r->in.buffer) {
25304 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25308 if (flags & NDR_OUT) {
25309 if (r->out.needed == NULL) {
25310 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25312 if (r->out.count == NULL) {
25313 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25315 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25317 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
25319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
25321 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25323 return NDR_ERR_SUCCESS;
25326 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
25328 uint32_t _ptr_buffer;
25329 uint32_t _ptr_info;
25330 TALLOC_CTX *_mem_save_handle_0 = NULL;
25331 TALLOC_CTX *_mem_save_buffer_0 = NULL;
25332 TALLOC_CTX *_mem_save_info_0 = NULL;
25333 TALLOC_CTX *_mem_save_needed_0 = NULL;
25334 TALLOC_CTX *_mem_save_count_0 = NULL;
25335 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25336 if (flags & NDR_IN) {
25337 ZERO_STRUCT(r->out);
25339 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25340 NDR_PULL_ALLOC(ndr, r->in.handle);
25342 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25343 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25344 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
25347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
25348 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25351 NDR_PULL_ALLOC(ndr, r->in.buffer);
25353 r->in.buffer = NULL;
25355 if (r->in.buffer) {
25356 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25357 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25358 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25362 NDR_PULL_ALLOC(ndr, r->out.needed);
25363 ZERO_STRUCTP(r->out.needed);
25364 NDR_PULL_ALLOC(ndr, r->out.count);
25365 ZERO_STRUCTP(r->out.count);
25367 if (flags & NDR_OUT) {
25368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25370 NDR_PULL_ALLOC(ndr, r->out.info);
25372 r->out.info = NULL;
25375 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25376 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25377 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
25378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25380 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25381 NDR_PULL_ALLOC(ndr, r->out.needed);
25383 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25384 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25387 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25388 NDR_PULL_ALLOC(ndr, r->out.count);
25390 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
25391 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
25392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
25393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
25394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25396 return NDR_ERR_SUCCESS;
25399 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
25401 uint32_t cntr_info_0;
25402 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25403 if (flags & NDR_IN) {
25404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
25407 if (flags & NDR_OUT) {
25408 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
25409 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25410 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25412 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
25413 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25416 return NDR_ERR_SUCCESS;
25419 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
25421 uint32_t size_info_0 = 0;
25422 uint32_t cntr_info_0;
25423 TALLOC_CTX *_mem_save_info_0 = NULL;
25424 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25425 if (flags & NDR_IN) {
25426 ZERO_STRUCT(r->out);
25428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
25431 if (flags & NDR_OUT) {
25432 size_info_0 = r->in.count;
25433 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
25434 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25435 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25436 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
25437 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
25438 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
25440 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
25441 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
25443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25445 return NDR_ERR_SUCCESS;
25448 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
25450 uint32_t cntr_info_2;
25451 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
25452 if (r == NULL) { ndr_print_null(ndr); return; }
25454 if (flags & NDR_SET_VALUES) {
25455 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25457 if (flags & NDR_IN) {
25458 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
25460 ndr_print_ptr(ndr, "handle", r->in.handle);
25462 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25464 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
25465 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
25466 ndr_print_uint32(ndr, "level", r->in.level);
25467 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25469 if (r->in.buffer) {
25470 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25473 ndr_print_uint32(ndr, "offered", r->in.offered);
25476 if (flags & NDR_OUT) {
25477 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
25479 ndr_print_ptr(ndr, "count", r->out.count);
25481 ndr_print_uint32(ndr, "count", *r->out.count);
25483 ndr_print_ptr(ndr, "info", r->out.info);
25485 ndr_print_ptr(ndr, "info", *r->out.info);
25487 if (*r->out.info) {
25488 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
25490 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
25491 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
25492 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
25498 ndr_print_ptr(ndr, "needed", r->out.needed);
25500 ndr_print_uint32(ndr, "needed", *r->out.needed);
25502 ndr_print_WERROR(ndr, "result", r->out.result);
25508 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
25510 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25511 if (flags & NDR_IN) {
25512 if (r->in.info_ctr == NULL) {
25513 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25515 if (r->in.devmode_ctr == NULL) {
25516 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25518 if (r->in.secdesc_ctr == NULL) {
25519 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25521 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
25522 if (r->in.server) {
25523 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25524 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25525 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25526 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25528 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25529 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25530 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25532 if (flags & NDR_OUT) {
25533 if (r->out.handle == NULL) {
25534 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25536 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25537 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25539 return NDR_ERR_SUCCESS;
25542 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
25544 uint32_t _ptr_server;
25545 uint32_t size_server_1 = 0;
25546 uint32_t length_server_1 = 0;
25547 TALLOC_CTX *_mem_save_server_0 = NULL;
25548 TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
25549 TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
25550 TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
25551 TALLOC_CTX *_mem_save_handle_0 = NULL;
25552 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25553 if (flags & NDR_IN) {
25554 ZERO_STRUCT(r->out);
25556 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
25558 NDR_PULL_ALLOC(ndr, r->in.server);
25560 r->in.server = NULL;
25562 if (r->in.server) {
25563 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
25564 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
25565 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
25566 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
25567 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
25568 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
25569 if (length_server_1 > size_server_1) {
25570 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
25572 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
25573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
25574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
25576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25577 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
25579 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25580 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
25581 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25583 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25584 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25586 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25587 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25588 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25589 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25590 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25591 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
25593 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25594 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
25595 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25597 NDR_PULL_ALLOC(ndr, r->out.handle);
25598 ZERO_STRUCTP(r->out.handle);
25600 if (flags & NDR_OUT) {
25601 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25602 NDR_PULL_ALLOC(ndr, r->out.handle);
25604 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25605 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25606 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25608 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25610 return NDR_ERR_SUCCESS;
25613 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
25615 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
25616 if (r == NULL) { ndr_print_null(ndr); return; }
25618 if (flags & NDR_SET_VALUES) {
25619 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25621 if (flags & NDR_IN) {
25622 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
25624 ndr_print_ptr(ndr, "server", r->in.server);
25626 if (r->in.server) {
25627 ndr_print_string(ndr, "server", r->in.server);
25630 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25632 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25634 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25636 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25638 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25640 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25644 if (flags & NDR_OUT) {
25645 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
25647 ndr_print_ptr(ndr, "handle", r->out.handle);
25649 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25651 ndr_print_WERROR(ndr, "result", r->out.result);
25657 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
25659 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25660 if (flags & NDR_IN) {
25661 if (r->in.handle == NULL) {
25662 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25664 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25666 if (flags & NDR_OUT) {
25667 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25669 return NDR_ERR_SUCCESS;
25672 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
25674 TALLOC_CTX *_mem_save_handle_0 = NULL;
25675 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25676 if (flags & NDR_IN) {
25677 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25678 NDR_PULL_ALLOC(ndr, r->in.handle);
25680 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25681 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25682 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25685 if (flags & NDR_OUT) {
25686 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25688 return NDR_ERR_SUCCESS;
25691 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
25693 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
25694 if (r == NULL) { ndr_print_null(ndr); return; }
25696 if (flags & NDR_SET_VALUES) {
25697 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25699 if (flags & NDR_IN) {
25700 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
25702 ndr_print_ptr(ndr, "handle", r->in.handle);
25704 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25708 if (flags & NDR_OUT) {
25709 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
25711 ndr_print_WERROR(ndr, "result", r->out.result);
25717 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
25719 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25720 if (flags & NDR_IN) {
25721 if (r->in.handle == NULL) {
25722 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25724 if (r->in.info_ctr == NULL) {
25725 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25727 if (r->in.devmode_ctr == NULL) {
25728 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25730 if (r->in.secdesc_ctr == NULL) {
25731 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25733 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25734 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25735 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25736 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25737 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
25739 if (flags & NDR_OUT) {
25740 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25742 return NDR_ERR_SUCCESS;
25745 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
25747 TALLOC_CTX *_mem_save_handle_0 = NULL;
25748 TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
25749 TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
25750 TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
25751 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25752 if (flags & NDR_IN) {
25753 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25754 NDR_PULL_ALLOC(ndr, r->in.handle);
25756 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25757 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25758 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25760 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25761 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
25763 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25764 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
25765 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25767 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25768 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25770 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25771 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25772 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25774 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25775 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
25777 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25778 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
25779 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25781 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
25783 if (flags & NDR_OUT) {
25784 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25786 return NDR_ERR_SUCCESS;
25789 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
25791 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
25792 if (r == NULL) { ndr_print_null(ndr); return; }
25794 if (flags & NDR_SET_VALUES) {
25795 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25797 if (flags & NDR_IN) {
25798 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
25800 ndr_print_ptr(ndr, "handle", r->in.handle);
25802 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25804 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25806 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25808 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25810 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25812 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25814 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25816 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
25819 if (flags & NDR_OUT) {
25820 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
25822 ndr_print_WERROR(ndr, "result", r->out.result);
25828 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
25830 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25831 if (flags & NDR_IN) {
25832 if (r->in.handle == NULL) {
25833 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25835 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
25838 if (r->in.buffer) {
25839 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
25841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25843 if (flags & NDR_OUT) {
25844 if (r->out.needed == NULL) {
25845 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25847 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
25850 struct ndr_push *_ndr_info;
25851 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25852 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
25853 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25854 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25858 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25860 return NDR_ERR_SUCCESS;
25863 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
25865 uint32_t _ptr_buffer;
25866 uint32_t _ptr_info;
25867 TALLOC_CTX *_mem_save_handle_0 = NULL;
25868 TALLOC_CTX *_mem_save_buffer_0 = NULL;
25869 TALLOC_CTX *_mem_save_info_0 = NULL;
25870 TALLOC_CTX *_mem_save_needed_0 = NULL;
25871 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
25872 if (flags & NDR_IN) {
25873 ZERO_STRUCT(r->out);
25875 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25876 NDR_PULL_ALLOC(ndr, r->in.handle);
25878 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25879 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25880 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
25885 NDR_PULL_ALLOC(ndr, r->in.buffer);
25887 r->in.buffer = NULL;
25889 if (r->in.buffer) {
25890 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25891 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
25892 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
25893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
25895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25896 NDR_PULL_ALLOC(ndr, r->out.needed);
25897 ZERO_STRUCTP(r->out.needed);
25899 if (flags & NDR_OUT) {
25900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25902 NDR_PULL_ALLOC(ndr, r->out.info);
25904 r->out.info = NULL;
25907 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25908 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
25910 struct ndr_pull *_ndr_info;
25911 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
25912 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
25913 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
25914 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
25916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
25918 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25919 NDR_PULL_ALLOC(ndr, r->out.needed);
25921 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25922 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25925 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25927 return NDR_ERR_SUCCESS;
25930 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
25932 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
25933 if (r == NULL) { ndr_print_null(ndr); return; }
25935 if (flags & NDR_SET_VALUES) {
25936 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25938 if (flags & NDR_IN) {
25939 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
25941 ndr_print_ptr(ndr, "handle", r->in.handle);
25943 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25945 ndr_print_uint32(ndr, "level", r->in.level);
25946 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25948 if (r->in.buffer) {
25949 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
25952 ndr_print_uint32(ndr, "offered", r->in.offered);
25955 if (flags & NDR_OUT) {
25956 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
25958 ndr_print_ptr(ndr, "info", r->out.info);
25961 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
25962 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
25965 ndr_print_ptr(ndr, "needed", r->out.needed);
25967 ndr_print_uint32(ndr, "needed", *r->out.needed);
25969 ndr_print_WERROR(ndr, "result", r->out.result);
25975 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
25977 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
25978 if (flags & NDR_IN) {
25979 if (r->in.info_ctr == NULL) {
25980 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25982 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
25983 if (r->in.servername) {
25984 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
25986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
25987 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25989 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25991 if (flags & NDR_OUT) {
25992 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25994 return NDR_ERR_SUCCESS;
25997 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
25999 uint32_t _ptr_servername;
26000 uint32_t size_servername_1 = 0;
26001 uint32_t length_servername_1 = 0;
26002 TALLOC_CTX *_mem_save_servername_0 = NULL;
26003 TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
26004 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26005 if (flags & NDR_IN) {
26006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26007 if (_ptr_servername) {
26008 NDR_PULL_ALLOC(ndr, r->in.servername);
26010 r->in.servername = NULL;
26012 if (r->in.servername) {
26013 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26014 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26015 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26016 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26017 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
26018 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
26019 if (length_servername_1 > size_servername_1) {
26020 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
26022 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
26023 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
26024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26026 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26027 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26029 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26030 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26031 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26034 if (flags & NDR_OUT) {
26035 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26037 return NDR_ERR_SUCCESS;
26040 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
26042 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
26043 if (r == NULL) { ndr_print_null(ndr); return; }
26045 if (flags & NDR_SET_VALUES) {
26046 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26048 if (flags & NDR_IN) {
26049 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
26051 ndr_print_ptr(ndr, "servername", r->in.servername);
26053 if (r->in.servername) {
26054 ndr_print_string(ndr, "servername", r->in.servername);
26057 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26059 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26063 if (flags & NDR_OUT) {
26064 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
26066 ndr_print_WERROR(ndr, "result", r->out.result);
26072 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
26074 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26075 if (flags & NDR_IN) {
26076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26077 if (r->in.server) {
26078 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26079 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26080 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26081 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26083 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
26084 if (r->in.environment) {
26085 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
26086 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26087 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
26088 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26091 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26092 if (r->in.buffer) {
26093 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26097 if (flags & NDR_OUT) {
26098 if (r->out.needed == NULL) {
26099 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26101 if (r->out.count == NULL) {
26102 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26106 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
26108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26112 return NDR_ERR_SUCCESS;
26115 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
26117 uint32_t _ptr_server;
26118 uint32_t size_server_1 = 0;
26119 uint32_t length_server_1 = 0;
26120 uint32_t _ptr_environment;
26121 uint32_t size_environment_1 = 0;
26122 uint32_t length_environment_1 = 0;
26123 uint32_t _ptr_buffer;
26124 uint32_t _ptr_info;
26125 TALLOC_CTX *_mem_save_server_0 = NULL;
26126 TALLOC_CTX *_mem_save_environment_0 = NULL;
26127 TALLOC_CTX *_mem_save_buffer_0 = NULL;
26128 TALLOC_CTX *_mem_save_info_0 = NULL;
26129 TALLOC_CTX *_mem_save_needed_0 = NULL;
26130 TALLOC_CTX *_mem_save_count_0 = NULL;
26131 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26132 if (flags & NDR_IN) {
26133 ZERO_STRUCT(r->out);
26135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26137 NDR_PULL_ALLOC(ndr, r->in.server);
26139 r->in.server = NULL;
26141 if (r->in.server) {
26142 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26143 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26144 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26145 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26146 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
26147 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
26148 if (length_server_1 > size_server_1) {
26149 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
26151 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
26152 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
26153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
26156 if (_ptr_environment) {
26157 NDR_PULL_ALLOC(ndr, r->in.environment);
26159 r->in.environment = NULL;
26161 if (r->in.environment) {
26162 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
26163 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
26164 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
26165 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
26166 size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
26167 length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
26168 if (length_environment_1 > size_environment_1) {
26169 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
26171 NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
26172 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
26173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
26175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26176 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26178 NDR_PULL_ALLOC(ndr, r->in.buffer);
26180 r->in.buffer = NULL;
26182 if (r->in.buffer) {
26183 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26184 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26185 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26189 NDR_PULL_ALLOC(ndr, r->out.needed);
26190 ZERO_STRUCTP(r->out.needed);
26191 NDR_PULL_ALLOC(ndr, r->out.count);
26192 ZERO_STRUCTP(r->out.count);
26194 if (flags & NDR_OUT) {
26195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26197 NDR_PULL_ALLOC(ndr, r->out.info);
26199 r->out.info = NULL;
26202 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26203 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26204 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
26205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26207 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26208 NDR_PULL_ALLOC(ndr, r->out.needed);
26210 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26211 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26212 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26215 NDR_PULL_ALLOC(ndr, r->out.count);
26217 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26218 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26221 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26223 return NDR_ERR_SUCCESS;
26226 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
26228 uint32_t cntr_info_0;
26229 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26230 if (flags & NDR_IN) {
26231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
26234 if (flags & NDR_OUT) {
26235 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
26236 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26237 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26239 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
26240 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26243 return NDR_ERR_SUCCESS;
26246 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
26248 uint32_t size_info_0 = 0;
26249 uint32_t cntr_info_0;
26250 TALLOC_CTX *_mem_save_info_0 = NULL;
26251 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26252 if (flags & NDR_IN) {
26253 ZERO_STRUCT(r->out);
26255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26256 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
26258 if (flags & NDR_OUT) {
26259 size_info_0 = r->in.count;
26260 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
26261 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26262 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26263 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
26264 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
26265 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
26267 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
26268 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
26270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26272 return NDR_ERR_SUCCESS;
26275 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
26277 uint32_t cntr_info_2;
26278 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
26279 if (r == NULL) { ndr_print_null(ndr); return; }
26281 if (flags & NDR_SET_VALUES) {
26282 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26284 if (flags & NDR_IN) {
26285 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
26287 ndr_print_ptr(ndr, "server", r->in.server);
26289 if (r->in.server) {
26290 ndr_print_string(ndr, "server", r->in.server);
26293 ndr_print_ptr(ndr, "environment", r->in.environment);
26295 if (r->in.environment) {
26296 ndr_print_string(ndr, "environment", r->in.environment);
26299 ndr_print_uint32(ndr, "level", r->in.level);
26300 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26302 if (r->in.buffer) {
26303 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26306 ndr_print_uint32(ndr, "offered", r->in.offered);
26309 if (flags & NDR_OUT) {
26310 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
26312 ndr_print_ptr(ndr, "count", r->out.count);
26314 ndr_print_uint32(ndr, "count", *r->out.count);
26316 ndr_print_ptr(ndr, "info", r->out.info);
26318 ndr_print_ptr(ndr, "info", *r->out.info);
26320 if (*r->out.info) {
26321 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
26323 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
26324 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
26325 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
26331 ndr_print_ptr(ndr, "needed", r->out.needed);
26333 ndr_print_uint32(ndr, "needed", *r->out.needed);
26335 ndr_print_WERROR(ndr, "result", r->out.result);
26341 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
26343 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26344 if (flags & NDR_IN) {
26345 if (r->in.handle == NULL) {
26346 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26348 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
26350 if (r->in.architecture) {
26351 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26352 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26353 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26354 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26358 if (r->in.buffer) {
26359 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26363 if (flags & NDR_OUT) {
26364 if (r->out.needed == NULL) {
26365 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26367 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26370 struct ndr_push *_ndr_info;
26371 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26372 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26373 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26374 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26378 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26380 return NDR_ERR_SUCCESS;
26383 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
26385 uint32_t _ptr_architecture;
26386 uint32_t size_architecture_1 = 0;
26387 uint32_t length_architecture_1 = 0;
26388 uint32_t _ptr_buffer;
26389 uint32_t _ptr_info;
26390 TALLOC_CTX *_mem_save_handle_0 = NULL;
26391 TALLOC_CTX *_mem_save_architecture_0 = NULL;
26392 TALLOC_CTX *_mem_save_buffer_0 = NULL;
26393 TALLOC_CTX *_mem_save_info_0 = NULL;
26394 TALLOC_CTX *_mem_save_needed_0 = NULL;
26395 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26396 if (flags & NDR_IN) {
26397 ZERO_STRUCT(r->out);
26399 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26400 NDR_PULL_ALLOC(ndr, r->in.handle);
26402 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26403 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26404 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26406 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
26407 if (_ptr_architecture) {
26408 NDR_PULL_ALLOC(ndr, r->in.architecture);
26410 r->in.architecture = NULL;
26412 if (r->in.architecture) {
26413 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
26414 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
26415 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26416 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26417 size_architecture_1 = ndr_get_array_size(ndr, &r->in.architecture);
26418 length_architecture_1 = ndr_get_array_length(ndr, &r->in.architecture);
26419 if (length_architecture_1 > size_architecture_1) {
26420 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
26422 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
26423 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
26424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
26426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26429 NDR_PULL_ALLOC(ndr, r->in.buffer);
26431 r->in.buffer = NULL;
26433 if (r->in.buffer) {
26434 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26435 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26436 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26440 NDR_PULL_ALLOC(ndr, r->out.needed);
26441 ZERO_STRUCTP(r->out.needed);
26443 if (flags & NDR_OUT) {
26444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26446 NDR_PULL_ALLOC(ndr, r->out.info);
26448 r->out.info = NULL;
26451 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26452 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26454 struct ndr_pull *_ndr_info;
26455 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26456 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26457 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
26458 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26462 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26463 NDR_PULL_ALLOC(ndr, r->out.needed);
26465 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26466 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26469 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26471 return NDR_ERR_SUCCESS;
26474 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
26476 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
26477 if (r == NULL) { ndr_print_null(ndr); return; }
26479 if (flags & NDR_SET_VALUES) {
26480 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26482 if (flags & NDR_IN) {
26483 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
26485 ndr_print_ptr(ndr, "handle", r->in.handle);
26487 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26489 ndr_print_ptr(ndr, "architecture", r->in.architecture);
26491 if (r->in.architecture) {
26492 ndr_print_string(ndr, "architecture", r->in.architecture);
26495 ndr_print_uint32(ndr, "level", r->in.level);
26496 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26498 if (r->in.buffer) {
26499 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26502 ndr_print_uint32(ndr, "offered", r->in.offered);
26505 if (flags & NDR_OUT) {
26506 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
26508 ndr_print_ptr(ndr, "info", r->out.info);
26511 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26512 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
26515 ndr_print_ptr(ndr, "needed", r->out.needed);
26517 ndr_print_uint32(ndr, "needed", *r->out.needed);
26519 ndr_print_WERROR(ndr, "result", r->out.result);
26525 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
26527 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26528 if (flags & NDR_IN) {
26529 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26530 if (r->in.server) {
26531 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26532 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26533 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26534 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26536 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
26537 if (r->in.environment) {
26538 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
26539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26540 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
26541 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26544 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26545 if (r->in.buffer) {
26546 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26550 if (flags & NDR_OUT) {
26551 if (r->out.needed == NULL) {
26552 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26554 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
26557 struct ndr_push *_ndr_info;
26558 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26559 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
26560 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
26561 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26565 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26567 return NDR_ERR_SUCCESS;
26570 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
26572 uint32_t _ptr_server;
26573 uint32_t size_server_1 = 0;
26574 uint32_t length_server_1 = 0;
26575 uint32_t _ptr_environment;
26576 uint32_t size_environment_1 = 0;
26577 uint32_t length_environment_1 = 0;
26578 uint32_t _ptr_buffer;
26579 uint32_t _ptr_info;
26580 TALLOC_CTX *_mem_save_server_0 = NULL;
26581 TALLOC_CTX *_mem_save_environment_0 = NULL;
26582 TALLOC_CTX *_mem_save_buffer_0 = NULL;
26583 TALLOC_CTX *_mem_save_info_0 = NULL;
26584 TALLOC_CTX *_mem_save_needed_0 = NULL;
26585 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26586 if (flags & NDR_IN) {
26587 ZERO_STRUCT(r->out);
26589 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26591 NDR_PULL_ALLOC(ndr, r->in.server);
26593 r->in.server = NULL;
26595 if (r->in.server) {
26596 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26597 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26598 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26599 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26600 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
26601 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
26602 if (length_server_1 > size_server_1) {
26603 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
26605 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
26606 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
26607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
26610 if (_ptr_environment) {
26611 NDR_PULL_ALLOC(ndr, r->in.environment);
26613 r->in.environment = NULL;
26615 if (r->in.environment) {
26616 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
26617 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
26618 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
26619 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
26620 size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
26621 length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
26622 if (length_environment_1 > size_environment_1) {
26623 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
26625 NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
26626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
26627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
26629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
26630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
26632 NDR_PULL_ALLOC(ndr, r->in.buffer);
26634 r->in.buffer = NULL;
26636 if (r->in.buffer) {
26637 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26638 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
26639 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
26640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
26642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26643 NDR_PULL_ALLOC(ndr, r->out.needed);
26644 ZERO_STRUCTP(r->out.needed);
26646 if (flags & NDR_OUT) {
26647 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
26649 NDR_PULL_ALLOC(ndr, r->out.info);
26651 r->out.info = NULL;
26654 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
26655 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
26657 struct ndr_pull *_ndr_info;
26658 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
26659 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
26660 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
26661 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
26663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
26665 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26666 NDR_PULL_ALLOC(ndr, r->out.needed);
26668 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26669 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26672 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26674 return NDR_ERR_SUCCESS;
26677 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
26679 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
26680 if (r == NULL) { ndr_print_null(ndr); return; }
26682 if (flags & NDR_SET_VALUES) {
26683 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26685 if (flags & NDR_IN) {
26686 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
26688 ndr_print_ptr(ndr, "server", r->in.server);
26690 if (r->in.server) {
26691 ndr_print_string(ndr, "server", r->in.server);
26694 ndr_print_ptr(ndr, "environment", r->in.environment);
26696 if (r->in.environment) {
26697 ndr_print_string(ndr, "environment", r->in.environment);
26700 ndr_print_uint32(ndr, "level", r->in.level);
26701 ndr_print_ptr(ndr, "buffer", r->in.buffer);
26703 if (r->in.buffer) {
26704 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
26707 ndr_print_uint32(ndr, "offered", r->in.offered);
26710 if (flags & NDR_OUT) {
26711 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
26713 ndr_print_ptr(ndr, "info", r->out.info);
26716 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
26717 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
26720 ndr_print_ptr(ndr, "needed", r->out.needed);
26722 ndr_print_uint32(ndr, "needed", *r->out.needed);
26724 ndr_print_WERROR(ndr, "result", r->out.result);
26730 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
26732 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26733 if (flags & NDR_IN) {
26734 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26735 if (r->in.server) {
26736 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26737 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26738 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26741 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26742 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26743 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26744 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26745 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26746 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26747 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26750 if (flags & NDR_OUT) {
26751 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26753 return NDR_ERR_SUCCESS;
26756 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
26758 uint32_t _ptr_server;
26759 uint32_t size_server_1 = 0;
26760 uint32_t length_server_1 = 0;
26761 uint32_t size_architecture_0 = 0;
26762 uint32_t length_architecture_0 = 0;
26763 uint32_t size_driver_0 = 0;
26764 uint32_t length_driver_0 = 0;
26765 TALLOC_CTX *_mem_save_server_0 = NULL;
26766 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26767 if (flags & NDR_IN) {
26768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26770 NDR_PULL_ALLOC(ndr, r->in.server);
26772 r->in.server = NULL;
26774 if (r->in.server) {
26775 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26776 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26777 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26778 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26779 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
26780 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
26781 if (length_server_1 > size_server_1) {
26782 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
26784 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
26785 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
26786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26788 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26789 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26790 size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
26791 length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
26792 if (length_architecture_0 > size_architecture_0) {
26793 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
26795 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
26796 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
26797 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26798 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26799 size_driver_0 = ndr_get_array_size(ndr, &r->in.driver);
26800 length_driver_0 = ndr_get_array_length(ndr, &r->in.driver);
26801 if (length_driver_0 > size_driver_0) {
26802 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_0, length_driver_0);
26804 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
26805 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
26807 if (flags & NDR_OUT) {
26808 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26810 return NDR_ERR_SUCCESS;
26813 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
26815 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
26816 if (r == NULL) { ndr_print_null(ndr); return; }
26818 if (flags & NDR_SET_VALUES) {
26819 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26821 if (flags & NDR_IN) {
26822 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
26824 ndr_print_ptr(ndr, "server", r->in.server);
26826 if (r->in.server) {
26827 ndr_print_string(ndr, "server", r->in.server);
26830 ndr_print_string(ndr, "architecture", r->in.architecture);
26831 ndr_print_string(ndr, "driver", r->in.driver);
26834 if (flags & NDR_OUT) {
26835 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
26837 ndr_print_WERROR(ndr, "result", r->out.result);
26843 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
26845 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26846 if (flags & NDR_IN) {
26847 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26848 if (r->in.server) {
26849 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26850 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26851 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26852 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26854 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26855 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26856 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26857 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
26859 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26860 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
26861 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));
26862 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
26863 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26864 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
26865 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));
26867 if (flags & NDR_OUT) {
26868 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26870 return NDR_ERR_SUCCESS;
26873 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
26875 uint32_t _ptr_server;
26876 uint32_t size_server_1 = 0;
26877 uint32_t length_server_1 = 0;
26878 uint32_t size_architecture_0 = 0;
26879 uint32_t length_architecture_0 = 0;
26880 uint32_t size_path_name_0 = 0;
26881 uint32_t length_path_name_0 = 0;
26882 uint32_t size_print_processor_name_0 = 0;
26883 uint32_t length_print_processor_name_0 = 0;
26884 TALLOC_CTX *_mem_save_server_0 = NULL;
26885 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
26886 if (flags & NDR_IN) {
26887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26889 NDR_PULL_ALLOC(ndr, r->in.server);
26891 r->in.server = NULL;
26893 if (r->in.server) {
26894 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26895 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26896 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26897 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26898 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
26899 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
26900 if (length_server_1 > size_server_1) {
26901 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
26903 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
26904 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
26905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26907 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26908 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26909 size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
26910 length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
26911 if (length_architecture_0 > size_architecture_0) {
26912 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
26914 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
26915 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
26916 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
26917 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
26918 size_path_name_0 = ndr_get_array_size(ndr, &r->in.path_name);
26919 length_path_name_0 = ndr_get_array_length(ndr, &r->in.path_name);
26920 if (length_path_name_0 > size_path_name_0) {
26921 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_path_name_0, length_path_name_0);
26923 NDR_CHECK(ndr_check_string_terminator(ndr, length_path_name_0, sizeof(uint16_t)));
26924 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, length_path_name_0, sizeof(uint16_t), CH_UTF16));
26925 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
26926 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
26927 size_print_processor_name_0 = ndr_get_array_size(ndr, &r->in.print_processor_name);
26928 length_print_processor_name_0 = ndr_get_array_length(ndr, &r->in.print_processor_name);
26929 if (length_print_processor_name_0 > size_print_processor_name_0) {
26930 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_name_0, length_print_processor_name_0);
26932 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_0, sizeof(uint16_t)));
26933 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_0, sizeof(uint16_t), CH_UTF16));
26935 if (flags & NDR_OUT) {
26936 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26938 return NDR_ERR_SUCCESS;
26941 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
26943 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
26944 if (r == NULL) { ndr_print_null(ndr); return; }
26946 if (flags & NDR_SET_VALUES) {
26947 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26949 if (flags & NDR_IN) {
26950 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
26952 ndr_print_ptr(ndr, "server", r->in.server);
26954 if (r->in.server) {
26955 ndr_print_string(ndr, "server", r->in.server);
26958 ndr_print_string(ndr, "architecture", r->in.architecture);
26959 ndr_print_string(ndr, "path_name", r->in.path_name);
26960 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
26963 if (flags & NDR_OUT) {
26964 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
26966 ndr_print_WERROR(ndr, "result", r->out.result);
26972 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
26974 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
26975 if (flags & NDR_IN) {
26976 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26977 if (r->in.servername) {
26978 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26979 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26980 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26981 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26983 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
26984 if (r->in.environment) {
26985 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
26986 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
26987 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
26988 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
26991 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
26992 if (r->in.buffer) {
26993 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
26995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26997 if (flags & NDR_OUT) {
26998 if (r->out.needed == NULL) {
26999 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27001 if (r->out.count == NULL) {
27002 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
27006 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
27008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
27010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27012 return NDR_ERR_SUCCESS;
27015 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
27017 uint32_t _ptr_servername;
27018 uint32_t size_servername_1 = 0;
27019 uint32_t length_servername_1 = 0;
27020 uint32_t _ptr_environment;
27021 uint32_t size_environment_1 = 0;
27022 uint32_t length_environment_1 = 0;
27023 uint32_t _ptr_buffer;
27024 uint32_t _ptr_info;
27025 TALLOC_CTX *_mem_save_servername_0 = NULL;
27026 TALLOC_CTX *_mem_save_environment_0 = NULL;
27027 TALLOC_CTX *_mem_save_buffer_0 = NULL;
27028 TALLOC_CTX *_mem_save_info_0 = NULL;
27029 TALLOC_CTX *_mem_save_needed_0 = NULL;
27030 TALLOC_CTX *_mem_save_count_0 = NULL;
27031 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27032 if (flags & NDR_IN) {
27033 ZERO_STRUCT(r->out);
27035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
27036 if (_ptr_servername) {
27037 NDR_PULL_ALLOC(ndr, r->in.servername);
27039 r->in.servername = NULL;
27041 if (r->in.servername) {
27042 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27043 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
27044 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
27045 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
27046 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
27047 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
27048 if (length_servername_1 > size_servername_1) {
27049 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
27051 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
27052 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
27053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
27055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
27056 if (_ptr_environment) {
27057 NDR_PULL_ALLOC(ndr, r->in.environment);
27059 r->in.environment = NULL;
27061 if (r->in.environment) {
27062 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
27063 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
27064 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
27065 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
27066 size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
27067 length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
27068 if (length_environment_1 > size_environment_1) {
27069 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
27071 NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
27072 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
27073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
27075 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27076 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27078 NDR_PULL_ALLOC(ndr, r->in.buffer);
27080 r->in.buffer = NULL;
27082 if (r->in.buffer) {
27083 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27084 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27085 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
27086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27088 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27089 NDR_PULL_ALLOC(ndr, r->out.needed);
27090 ZERO_STRUCTP(r->out.needed);
27091 NDR_PULL_ALLOC(ndr, r->out.count);
27092 ZERO_STRUCTP(r->out.count);
27094 if (flags & NDR_OUT) {
27095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27097 NDR_PULL_ALLOC(ndr, r->out.info);
27099 r->out.info = NULL;
27102 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27103 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27104 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
27105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27107 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27108 NDR_PULL_ALLOC(ndr, r->out.needed);
27110 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27111 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27113 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27114 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27115 NDR_PULL_ALLOC(ndr, r->out.count);
27117 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
27118 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
27119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
27120 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
27121 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27123 return NDR_ERR_SUCCESS;
27126 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
27128 uint32_t cntr_info_0;
27129 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27130 if (flags & NDR_IN) {
27131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
27134 if (flags & NDR_OUT) {
27135 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
27136 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
27137 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27139 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
27140 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27143 return NDR_ERR_SUCCESS;
27146 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
27148 uint32_t size_info_0 = 0;
27149 uint32_t cntr_info_0;
27150 TALLOC_CTX *_mem_save_info_0 = NULL;
27151 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27152 if (flags & NDR_IN) {
27153 ZERO_STRUCT(r->out);
27155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
27158 if (flags & NDR_OUT) {
27159 size_info_0 = r->in.count;
27160 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
27161 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27162 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27163 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
27164 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
27165 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
27167 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
27168 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
27170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27172 return NDR_ERR_SUCCESS;
27175 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
27177 uint32_t cntr_info_2;
27178 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
27179 if (r == NULL) { ndr_print_null(ndr); return; }
27181 if (flags & NDR_SET_VALUES) {
27182 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27184 if (flags & NDR_IN) {
27185 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
27187 ndr_print_ptr(ndr, "servername", r->in.servername);
27189 if (r->in.servername) {
27190 ndr_print_string(ndr, "servername", r->in.servername);
27193 ndr_print_ptr(ndr, "environment", r->in.environment);
27195 if (r->in.environment) {
27196 ndr_print_string(ndr, "environment", r->in.environment);
27199 ndr_print_uint32(ndr, "level", r->in.level);
27200 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27202 if (r->in.buffer) {
27203 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
27206 ndr_print_uint32(ndr, "offered", r->in.offered);
27209 if (flags & NDR_OUT) {
27210 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
27212 ndr_print_ptr(ndr, "count", r->out.count);
27214 ndr_print_uint32(ndr, "count", *r->out.count);
27216 ndr_print_ptr(ndr, "info", r->out.info);
27218 ndr_print_ptr(ndr, "info", *r->out.info);
27220 if (*r->out.info) {
27221 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
27223 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
27224 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
27225 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
27231 ndr_print_ptr(ndr, "needed", r->out.needed);
27233 ndr_print_uint32(ndr, "needed", *r->out.needed);
27235 ndr_print_WERROR(ndr, "result", r->out.result);
27241 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
27243 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27244 if (flags & NDR_IN) {
27245 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
27246 if (r->in.server) {
27247 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27248 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27249 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
27250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27252 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
27253 if (r->in.environment) {
27254 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
27255 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
27256 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
27257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
27259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27261 if (r->in.buffer) {
27262 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
27264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27266 if (flags & NDR_OUT) {
27267 if (r->out.needed == NULL) {
27268 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27270 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
27273 struct ndr_push *_ndr_info;
27274 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
27275 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
27276 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
27277 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
27280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27281 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27283 return NDR_ERR_SUCCESS;
27286 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
27288 uint32_t _ptr_server;
27289 uint32_t size_server_1 = 0;
27290 uint32_t length_server_1 = 0;
27291 uint32_t _ptr_environment;
27292 uint32_t size_environment_1 = 0;
27293 uint32_t length_environment_1 = 0;
27294 uint32_t _ptr_buffer;
27295 uint32_t _ptr_info;
27296 TALLOC_CTX *_mem_save_server_0 = NULL;
27297 TALLOC_CTX *_mem_save_environment_0 = NULL;
27298 TALLOC_CTX *_mem_save_buffer_0 = NULL;
27299 TALLOC_CTX *_mem_save_info_0 = NULL;
27300 TALLOC_CTX *_mem_save_needed_0 = NULL;
27301 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27302 if (flags & NDR_IN) {
27303 ZERO_STRUCT(r->out);
27305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
27307 NDR_PULL_ALLOC(ndr, r->in.server);
27309 r->in.server = NULL;
27311 if (r->in.server) {
27312 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
27313 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
27314 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
27315 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
27316 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
27317 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
27318 if (length_server_1 > size_server_1) {
27319 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
27321 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
27322 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
27323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
27325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
27326 if (_ptr_environment) {
27327 NDR_PULL_ALLOC(ndr, r->in.environment);
27329 r->in.environment = NULL;
27331 if (r->in.environment) {
27332 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
27333 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
27334 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
27335 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
27336 size_environment_1 = ndr_get_array_size(ndr, &r->in.environment);
27337 length_environment_1 = ndr_get_array_length(ndr, &r->in.environment);
27338 if (length_environment_1 > size_environment_1) {
27339 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_environment_1, length_environment_1);
27341 NDR_CHECK(ndr_check_string_terminator(ndr, length_environment_1, sizeof(uint16_t)));
27342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, length_environment_1, sizeof(uint16_t), CH_UTF16));
27343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
27345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
27346 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
27348 NDR_PULL_ALLOC(ndr, r->in.buffer);
27350 r->in.buffer = NULL;
27352 if (r->in.buffer) {
27353 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
27354 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
27355 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
27356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
27358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
27359 NDR_PULL_ALLOC(ndr, r->out.needed);
27360 ZERO_STRUCTP(r->out.needed);
27362 if (flags & NDR_OUT) {
27363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
27365 NDR_PULL_ALLOC(ndr, r->out.info);
27367 r->out.info = NULL;
27370 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
27371 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
27373 struct ndr_pull *_ndr_info;
27374 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
27375 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
27376 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
27377 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
27379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
27381 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27382 NDR_PULL_ALLOC(ndr, r->out.needed);
27384 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
27385 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
27386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
27387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
27388 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27390 return NDR_ERR_SUCCESS;
27393 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
27395 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
27396 if (r == NULL) { ndr_print_null(ndr); return; }
27398 if (flags & NDR_SET_VALUES) {
27399 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27401 if (flags & NDR_IN) {
27402 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
27404 ndr_print_ptr(ndr, "server", r->in.server);
27406 if (r->in.server) {
27407 ndr_print_string(ndr, "server", r->in.server);
27410 ndr_print_ptr(ndr, "environment", r->in.environment);
27412 if (r->in.environment) {
27413 ndr_print_string(ndr, "environment", r->in.environment);
27416 ndr_print_uint32(ndr, "level", r->in.level);
27417 ndr_print_ptr(ndr, "buffer", r->in.buffer);
27419 if (r->in.buffer) {
27420 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
27423 ndr_print_uint32(ndr, "offered", r->in.offered);
27426 if (flags & NDR_OUT) {
27427 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
27429 ndr_print_ptr(ndr, "info", r->out.info);
27432 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
27433 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
27436 ndr_print_ptr(ndr, "needed", r->out.needed);
27438 ndr_print_uint32(ndr, "needed", *r->out.needed);
27440 ndr_print_WERROR(ndr, "result", r->out.result);
27446 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
27448 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27449 if (flags & NDR_IN) {
27450 if (r->in.handle == NULL) {
27451 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27453 if (r->in.info_ctr == NULL) {
27454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27456 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27457 NDR_CHECK(ndr_push_spoolss_DocumentInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27459 if (flags & NDR_OUT) {
27460 if (r->out.job_id == NULL) {
27461 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
27464 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27466 return NDR_ERR_SUCCESS;
27469 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
27471 TALLOC_CTX *_mem_save_handle_0 = NULL;
27472 TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
27473 TALLOC_CTX *_mem_save_job_id_0 = NULL;
27474 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27475 if (flags & NDR_IN) {
27476 ZERO_STRUCT(r->out);
27478 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27479 NDR_PULL_ALLOC(ndr, r->in.handle);
27481 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27482 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27483 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27485 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27486 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27488 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27489 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27490 NDR_CHECK(ndr_pull_spoolss_DocumentInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27492 NDR_PULL_ALLOC(ndr, r->out.job_id);
27493 ZERO_STRUCTP(r->out.job_id);
27495 if (flags & NDR_OUT) {
27496 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27497 NDR_PULL_ALLOC(ndr, r->out.job_id);
27499 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
27500 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
27501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
27502 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
27503 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27505 return NDR_ERR_SUCCESS;
27508 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
27510 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
27511 if (r == NULL) { ndr_print_null(ndr); return; }
27513 if (flags & NDR_SET_VALUES) {
27514 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27516 if (flags & NDR_IN) {
27517 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
27519 ndr_print_ptr(ndr, "handle", r->in.handle);
27521 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27523 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27525 ndr_print_spoolss_DocumentInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27529 if (flags & NDR_OUT) {
27530 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
27532 ndr_print_ptr(ndr, "job_id", r->out.job_id);
27534 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
27536 ndr_print_WERROR(ndr, "result", r->out.result);
27542 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
27544 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27545 if (flags & NDR_IN) {
27546 if (r->in.handle == NULL) {
27547 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27549 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27551 if (flags & NDR_OUT) {
27552 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27554 return NDR_ERR_SUCCESS;
27557 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
27559 TALLOC_CTX *_mem_save_handle_0 = NULL;
27560 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27561 if (flags & NDR_IN) {
27562 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27563 NDR_PULL_ALLOC(ndr, r->in.handle);
27565 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27566 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27567 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27570 if (flags & NDR_OUT) {
27571 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27573 return NDR_ERR_SUCCESS;
27576 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
27578 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
27579 if (r == NULL) { ndr_print_null(ndr); return; }
27581 if (flags & NDR_SET_VALUES) {
27582 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27584 if (flags & NDR_IN) {
27585 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
27587 ndr_print_ptr(ndr, "handle", r->in.handle);
27589 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27593 if (flags & NDR_OUT) {
27594 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
27596 ndr_print_WERROR(ndr, "result", r->out.result);
27602 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
27604 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27605 if (flags & NDR_IN) {
27606 if (r->in.handle == NULL) {
27607 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27609 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27610 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
27611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
27613 if (flags & NDR_OUT) {
27614 if (r->out.num_written == NULL) {
27615 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
27618 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27620 return NDR_ERR_SUCCESS;
27623 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
27625 TALLOC_CTX *_mem_save_handle_0 = NULL;
27626 TALLOC_CTX *_mem_save_num_written_0 = NULL;
27627 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27628 if (flags & NDR_IN) {
27629 ZERO_STRUCT(r->out);
27631 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27632 NDR_PULL_ALLOC(ndr, r->in.handle);
27634 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27635 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27636 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27638 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
27639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
27640 NDR_PULL_ALLOC(ndr, r->out.num_written);
27641 ZERO_STRUCTP(r->out.num_written);
27643 if (flags & NDR_OUT) {
27644 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27645 NDR_PULL_ALLOC(ndr, r->out.num_written);
27647 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
27648 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
27649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
27650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
27651 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27653 return NDR_ERR_SUCCESS;
27656 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
27658 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
27659 if (r == NULL) { ndr_print_null(ndr); return; }
27661 if (flags & NDR_SET_VALUES) {
27662 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27664 if (flags & NDR_IN) {
27665 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
27667 ndr_print_ptr(ndr, "handle", r->in.handle);
27669 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27671 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
27672 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
27675 if (flags & NDR_OUT) {
27676 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
27678 ndr_print_ptr(ndr, "num_written", r->out.num_written);
27680 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
27682 ndr_print_WERROR(ndr, "result", r->out.result);
27688 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
27690 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27691 if (flags & NDR_IN) {
27692 if (r->in.handle == NULL) {
27693 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27695 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27697 if (flags & NDR_OUT) {
27698 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27700 return NDR_ERR_SUCCESS;
27703 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
27705 TALLOC_CTX *_mem_save_handle_0 = NULL;
27706 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27707 if (flags & NDR_IN) {
27708 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27709 NDR_PULL_ALLOC(ndr, r->in.handle);
27711 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27712 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27713 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27716 if (flags & NDR_OUT) {
27717 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27719 return NDR_ERR_SUCCESS;
27722 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
27724 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
27725 if (r == NULL) { ndr_print_null(ndr); return; }
27727 if (flags & NDR_SET_VALUES) {
27728 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27730 if (flags & NDR_IN) {
27731 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
27733 ndr_print_ptr(ndr, "handle", r->in.handle);
27735 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27739 if (flags & NDR_OUT) {
27740 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
27742 ndr_print_WERROR(ndr, "result", r->out.result);
27748 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
27750 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27751 if (flags & NDR_IN) {
27752 if (r->in.handle == NULL) {
27753 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27755 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27757 if (flags & NDR_OUT) {
27758 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27760 return NDR_ERR_SUCCESS;
27763 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
27765 TALLOC_CTX *_mem_save_handle_0 = NULL;
27766 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27767 if (flags & NDR_IN) {
27768 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27769 NDR_PULL_ALLOC(ndr, r->in.handle);
27771 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27772 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27773 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27776 if (flags & NDR_OUT) {
27777 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27779 return NDR_ERR_SUCCESS;
27782 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
27784 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
27785 if (r == NULL) { ndr_print_null(ndr); return; }
27787 if (flags & NDR_SET_VALUES) {
27788 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27790 if (flags & NDR_IN) {
27791 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
27793 ndr_print_ptr(ndr, "handle", r->in.handle);
27795 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27799 if (flags & NDR_OUT) {
27800 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
27802 ndr_print_WERROR(ndr, "result", r->out.result);
27808 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
27810 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27811 if (flags & NDR_IN) {
27812 if (r->in.handle == NULL) {
27813 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27815 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
27818 if (flags & NDR_OUT) {
27819 if (r->out.data == NULL) {
27820 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27822 if (r->out._data_size == NULL) {
27823 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27825 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_size));
27826 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
27827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
27828 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27830 return NDR_ERR_SUCCESS;
27833 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
27835 uint32_t size_data_1 = 0;
27836 TALLOC_CTX *_mem_save_handle_0 = NULL;
27837 TALLOC_CTX *_mem_save__data_size_0 = NULL;
27838 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27839 if (flags & NDR_IN) {
27840 ZERO_STRUCT(r->out);
27842 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27843 NDR_PULL_ALLOC(ndr, r->in.handle);
27845 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27846 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27847 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
27850 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
27851 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
27852 NDR_PULL_ALLOC(ndr, r->out._data_size);
27853 ZERO_STRUCTP(r->out._data_size);
27855 if (flags & NDR_OUT) {
27856 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
27857 size_data_1 = ndr_get_array_size(ndr, &r->out.data);
27858 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27859 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
27861 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
27862 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27863 NDR_PULL_ALLOC(ndr, r->out._data_size);
27865 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
27866 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
27867 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
27868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
27869 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27871 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
27874 return NDR_ERR_SUCCESS;
27877 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
27879 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
27880 if (r == NULL) { ndr_print_null(ndr); return; }
27882 if (flags & NDR_SET_VALUES) {
27883 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27885 if (flags & NDR_IN) {
27886 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
27888 ndr_print_ptr(ndr, "handle", r->in.handle);
27890 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27892 ndr_print_uint32(ndr, "data_size", r->in.data_size);
27895 if (flags & NDR_OUT) {
27896 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
27898 ndr_print_ptr(ndr, "data", r->out.data);
27900 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
27902 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
27904 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
27906 ndr_print_WERROR(ndr, "result", r->out.result);
27912 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
27914 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27915 if (flags & NDR_IN) {
27916 if (r->in.handle == NULL) {
27917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27919 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27921 if (flags & NDR_OUT) {
27922 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27924 return NDR_ERR_SUCCESS;
27927 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
27929 TALLOC_CTX *_mem_save_handle_0 = NULL;
27930 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
27931 if (flags & NDR_IN) {
27932 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27933 NDR_PULL_ALLOC(ndr, r->in.handle);
27935 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
27936 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
27937 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
27940 if (flags & NDR_OUT) {
27941 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27943 return NDR_ERR_SUCCESS;
27946 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
27948 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
27949 if (r == NULL) { ndr_print_null(ndr); return; }
27951 if (flags & NDR_SET_VALUES) {
27952 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27954 if (flags & NDR_IN) {
27955 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
27957 ndr_print_ptr(ndr, "handle", r->in.handle);
27959 ndr_print_policy_handle(ndr, "handle", r->in.handle);
27963 if (flags & NDR_OUT) {
27964 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
27966 ndr_print_WERROR(ndr, "result", r->out.result);
27972 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
27974 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
27975 if (flags & NDR_IN) {
27976 if (r->in.handle == NULL) {
27977 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27979 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
27980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
27981 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
27982 if (r->in.buffer) {
27983 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
27984 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
27986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
27988 if (flags & NDR_OUT) {
27989 if (r->out.needed == NULL) {
27990 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
27992 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
27993 if (r->out.buffer) {
27994 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
27995 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
27997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
27998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28000 return NDR_ERR_SUCCESS;
28003 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
28005 uint32_t _ptr_buffer;
28006 uint32_t size_buffer_1 = 0;
28007 TALLOC_CTX *_mem_save_handle_0 = NULL;
28008 TALLOC_CTX *_mem_save_buffer_0 = NULL;
28009 TALLOC_CTX *_mem_save_needed_0 = NULL;
28010 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28011 if (flags & NDR_IN) {
28012 ZERO_STRUCT(r->out);
28014 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28015 NDR_PULL_ALLOC(ndr, r->in.handle);
28017 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28018 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28019 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28021 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
28022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
28024 NDR_PULL_ALLOC(ndr, r->in.buffer);
28026 r->in.buffer = NULL;
28028 if (r->in.buffer) {
28029 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28030 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
28031 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
28032 size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
28033 NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
28034 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
28035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
28037 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28038 NDR_PULL_ALLOC(ndr, r->out.needed);
28039 ZERO_STRUCTP(r->out.needed);
28040 if (r->in.buffer) {
28041 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
28044 if (flags & NDR_OUT) {
28045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
28047 NDR_PULL_ALLOC(ndr, r->out.buffer);
28049 r->out.buffer = NULL;
28051 if (r->out.buffer) {
28052 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28053 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
28054 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
28055 size_buffer_1 = ndr_get_array_size(ndr, &r->out.buffer);
28056 NDR_PULL_ALLOC_N(ndr, r->out.buffer, size_buffer_1);
28057 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, size_buffer_1));
28058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
28060 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28061 NDR_PULL_ALLOC(ndr, r->out.needed);
28063 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28064 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28067 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28068 if (r->out.buffer) {
28069 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
28072 return NDR_ERR_SUCCESS;
28075 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
28077 ndr_print_struct(ndr, name, "spoolss_AddJob");
28078 if (r == NULL) { ndr_print_null(ndr); return; }
28080 if (flags & NDR_SET_VALUES) {
28081 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28083 if (flags & NDR_IN) {
28084 ndr_print_struct(ndr, "in", "spoolss_AddJob");
28086 ndr_print_ptr(ndr, "handle", r->in.handle);
28088 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28090 ndr_print_uint32(ndr, "level", r->in.level);
28091 ndr_print_ptr(ndr, "buffer", r->in.buffer);
28093 if (r->in.buffer) {
28094 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
28097 ndr_print_uint32(ndr, "offered", r->in.offered);
28100 if (flags & NDR_OUT) {
28101 ndr_print_struct(ndr, "out", "spoolss_AddJob");
28103 ndr_print_ptr(ndr, "buffer", r->out.buffer);
28105 if (r->out.buffer) {
28106 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
28109 ndr_print_ptr(ndr, "needed", r->out.needed);
28111 ndr_print_uint32(ndr, "needed", *r->out.needed);
28113 ndr_print_WERROR(ndr, "result", r->out.result);
28119 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
28121 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28122 if (flags & NDR_IN) {
28123 if (r->in.handle == NULL) {
28124 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28126 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
28129 if (flags & NDR_OUT) {
28130 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28132 return NDR_ERR_SUCCESS;
28135 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
28137 TALLOC_CTX *_mem_save_handle_0 = NULL;
28138 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28139 if (flags & NDR_IN) {
28140 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28141 NDR_PULL_ALLOC(ndr, r->in.handle);
28143 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28144 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28145 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
28149 if (flags & NDR_OUT) {
28150 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28152 return NDR_ERR_SUCCESS;
28155 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
28157 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
28158 if (r == NULL) { ndr_print_null(ndr); return; }
28160 if (flags & NDR_SET_VALUES) {
28161 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28163 if (flags & NDR_IN) {
28164 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
28166 ndr_print_ptr(ndr, "handle", r->in.handle);
28168 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28170 ndr_print_uint32(ndr, "jobid", r->in.jobid);
28173 if (flags & NDR_OUT) {
28174 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
28176 ndr_print_WERROR(ndr, "result", r->out.result);
28182 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterData *r)
28184 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28185 if (flags & NDR_IN) {
28186 if (r->in.handle == NULL) {
28187 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28189 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28190 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28191 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28192 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28193 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));
28194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28196 if (flags & NDR_OUT) {
28197 if (r->out.type == NULL) {
28198 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28200 if (r->out.data == NULL) {
28201 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28203 if (r->out.needed == NULL) {
28204 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28206 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
28207 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
28208 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
28209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28210 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28212 return NDR_ERR_SUCCESS;
28215 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterData *r)
28217 uint32_t size_value_name_0 = 0;
28218 uint32_t length_value_name_0 = 0;
28219 uint32_t size_data_1 = 0;
28220 TALLOC_CTX *_mem_save_handle_0 = NULL;
28221 TALLOC_CTX *_mem_save_type_0 = NULL;
28222 TALLOC_CTX *_mem_save_needed_0 = NULL;
28223 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28224 if (flags & NDR_IN) {
28225 ZERO_STRUCT(r->out);
28227 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28228 NDR_PULL_ALLOC(ndr, r->in.handle);
28230 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28231 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28232 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28234 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28235 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28236 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
28237 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
28238 if (length_value_name_0 > size_value_name_0) {
28239 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
28241 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
28242 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
28243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28244 NDR_PULL_ALLOC(ndr, r->out.type);
28245 ZERO_STRUCTP(r->out.type);
28246 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
28247 memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
28248 NDR_PULL_ALLOC(ndr, r->out.needed);
28249 ZERO_STRUCTP(r->out.needed);
28251 if (flags & NDR_OUT) {
28252 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28253 NDR_PULL_ALLOC(ndr, r->out.type);
28255 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
28256 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
28257 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
28258 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
28259 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
28260 size_data_1 = ndr_get_array_size(ndr, &r->out.data);
28261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28262 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
28264 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
28265 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28266 NDR_PULL_ALLOC(ndr, r->out.needed);
28268 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28269 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28272 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28274 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.offered));
28277 return NDR_ERR_SUCCESS;
28280 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
28282 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
28283 if (r == NULL) { ndr_print_null(ndr); return; }
28285 if (flags & NDR_SET_VALUES) {
28286 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28288 if (flags & NDR_IN) {
28289 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
28291 ndr_print_ptr(ndr, "handle", r->in.handle);
28293 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28295 ndr_print_string(ndr, "value_name", r->in.value_name);
28296 ndr_print_uint32(ndr, "offered", r->in.offered);
28299 if (flags & NDR_OUT) {
28300 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
28302 ndr_print_ptr(ndr, "type", r->out.type);
28304 ndr_print_winreg_Type(ndr, "type", *r->out.type);
28306 ndr_print_ptr(ndr, "data", r->out.data);
28308 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
28310 ndr_print_ptr(ndr, "needed", r->out.needed);
28312 ndr_print_uint32(ndr, "needed", *r->out.needed);
28314 ndr_print_WERROR(ndr, "result", r->out.result);
28320 static enum ndr_err_code ndr_push_spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterData *r)
28322 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28323 if (flags & NDR_IN) {
28324 if (r->in.handle == NULL) {
28325 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28327 if (r->in.data == NULL) {
28328 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28330 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28331 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28333 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
28334 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));
28335 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
28336 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
28337 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
28338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28340 if (flags & NDR_OUT) {
28341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28343 return NDR_ERR_SUCCESS;
28346 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
28348 uint32_t size_value_name_0 = 0;
28349 uint32_t length_value_name_0 = 0;
28350 uint32_t size_data_1 = 0;
28351 TALLOC_CTX *_mem_save_handle_0 = NULL;
28352 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28353 if (flags & NDR_IN) {
28354 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28355 NDR_PULL_ALLOC(ndr, r->in.handle);
28357 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28358 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28359 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28361 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
28362 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
28363 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
28364 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
28365 if (length_value_name_0 > size_value_name_0) {
28366 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
28368 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
28369 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
28370 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
28371 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
28372 size_data_1 = ndr_get_array_size(ndr, &r->in.data);
28373 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28374 NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1);
28376 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1));
28377 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28379 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.offered));
28382 if (flags & NDR_OUT) {
28383 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28385 return NDR_ERR_SUCCESS;
28388 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
28390 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
28391 if (r == NULL) { ndr_print_null(ndr); return; }
28393 if (flags & NDR_SET_VALUES) {
28394 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28396 if (flags & NDR_IN) {
28397 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
28399 ndr_print_ptr(ndr, "handle", r->in.handle);
28401 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28403 ndr_print_string(ndr, "value_name", r->in.value_name);
28404 ndr_print_winreg_Type(ndr, "type", r->in.type);
28405 ndr_print_ptr(ndr, "data", r->in.data);
28407 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
28409 ndr_print_uint32(ndr, "offered", r->in.offered);
28412 if (flags & NDR_OUT) {
28413 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
28415 ndr_print_WERROR(ndr, "result", r->out.result);
28421 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
28423 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28424 if (flags & NDR_IN) {
28426 if (flags & NDR_OUT) {
28427 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28429 return NDR_ERR_SUCCESS;
28432 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
28434 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28435 if (flags & NDR_IN) {
28437 if (flags & NDR_OUT) {
28438 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28440 return NDR_ERR_SUCCESS;
28443 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
28445 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
28446 if (r == NULL) { ndr_print_null(ndr); return; }
28448 if (flags & NDR_SET_VALUES) {
28449 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28451 if (flags & NDR_IN) {
28452 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
28456 if (flags & NDR_OUT) {
28457 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
28459 ndr_print_WERROR(ndr, "result", r->out.result);
28465 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
28467 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28468 if (flags & NDR_IN) {
28469 if (r->in.handle == NULL) {
28470 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28472 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28474 if (flags & NDR_OUT) {
28475 if (r->out.handle == NULL) {
28476 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28478 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
28479 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28481 return NDR_ERR_SUCCESS;
28484 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
28486 TALLOC_CTX *_mem_save_handle_0 = NULL;
28487 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28488 if (flags & NDR_IN) {
28489 ZERO_STRUCT(r->out);
28491 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28492 NDR_PULL_ALLOC(ndr, r->in.handle);
28494 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28495 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28496 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28498 NDR_PULL_ALLOC(ndr, r->out.handle);
28499 *r->out.handle = *r->in.handle;
28501 if (flags & NDR_OUT) {
28502 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28503 NDR_PULL_ALLOC(ndr, r->out.handle);
28505 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28506 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
28507 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
28508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28509 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28511 return NDR_ERR_SUCCESS;
28514 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
28516 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
28517 if (r == NULL) { ndr_print_null(ndr); return; }
28519 if (flags & NDR_SET_VALUES) {
28520 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28522 if (flags & NDR_IN) {
28523 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
28525 ndr_print_ptr(ndr, "handle", r->in.handle);
28527 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28531 if (flags & NDR_OUT) {
28532 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
28534 ndr_print_ptr(ndr, "handle", r->out.handle);
28536 ndr_print_policy_handle(ndr, "handle", r->out.handle);
28538 ndr_print_WERROR(ndr, "result", r->out.result);
28544 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
28546 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28547 if (flags & NDR_IN) {
28548 if (r->in.handle == NULL) {
28549 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28551 if (r->in.info_ctr == NULL) {
28552 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28554 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28555 NDR_CHECK(ndr_push_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28557 if (flags & NDR_OUT) {
28558 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28560 return NDR_ERR_SUCCESS;
28563 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
28565 TALLOC_CTX *_mem_save_handle_0 = NULL;
28566 TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
28567 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28568 if (flags & NDR_IN) {
28569 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28570 NDR_PULL_ALLOC(ndr, r->in.handle);
28572 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28573 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28574 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28577 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28579 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28580 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28581 NDR_CHECK(ndr_pull_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28584 if (flags & NDR_OUT) {
28585 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28587 return NDR_ERR_SUCCESS;
28590 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
28592 ndr_print_struct(ndr, name, "spoolss_AddForm");
28593 if (r == NULL) { ndr_print_null(ndr); return; }
28595 if (flags & NDR_SET_VALUES) {
28596 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28598 if (flags & NDR_IN) {
28599 ndr_print_struct(ndr, "in", "spoolss_AddForm");
28601 ndr_print_ptr(ndr, "handle", r->in.handle);
28603 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28605 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28607 ndr_print_spoolss_AddFormInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28611 if (flags & NDR_OUT) {
28612 ndr_print_struct(ndr, "out", "spoolss_AddForm");
28614 ndr_print_WERROR(ndr, "result", r->out.result);
28620 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
28622 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28623 if (flags & NDR_IN) {
28624 if (r->in.handle == NULL) {
28625 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28627 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28628 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
28629 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28630 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
28631 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));
28633 if (flags & NDR_OUT) {
28634 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28636 return NDR_ERR_SUCCESS;
28639 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
28641 uint32_t size_form_name_0 = 0;
28642 uint32_t length_form_name_0 = 0;
28643 TALLOC_CTX *_mem_save_handle_0 = NULL;
28644 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28645 if (flags & NDR_IN) {
28646 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28647 NDR_PULL_ALLOC(ndr, r->in.handle);
28649 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28650 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28651 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28653 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
28654 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
28655 size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
28656 length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
28657 if (length_form_name_0 > size_form_name_0) {
28658 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
28660 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
28661 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
28663 if (flags & NDR_OUT) {
28664 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28666 return NDR_ERR_SUCCESS;
28669 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
28671 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
28672 if (r == NULL) { ndr_print_null(ndr); return; }
28674 if (flags & NDR_SET_VALUES) {
28675 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28677 if (flags & NDR_IN) {
28678 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
28680 ndr_print_ptr(ndr, "handle", r->in.handle);
28682 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28684 ndr_print_string(ndr, "form_name", r->in.form_name);
28687 if (flags & NDR_OUT) {
28688 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
28690 ndr_print_WERROR(ndr, "result", r->out.result);
28696 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
28698 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28699 if (flags & NDR_IN) {
28700 if (r->in.handle == NULL) {
28701 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28703 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28704 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
28705 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28706 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
28707 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));
28708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
28709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
28710 if (r->in.buffer) {
28711 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
28713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28715 if (flags & NDR_OUT) {
28716 if (r->out.needed == NULL) {
28717 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28719 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
28722 struct ndr_push *_ndr_info;
28723 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
28724 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
28725 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
28726 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
28729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28730 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28732 return NDR_ERR_SUCCESS;
28735 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
28737 uint32_t size_form_name_0 = 0;
28738 uint32_t length_form_name_0 = 0;
28739 uint32_t _ptr_buffer;
28740 uint32_t _ptr_info;
28741 TALLOC_CTX *_mem_save_handle_0 = NULL;
28742 TALLOC_CTX *_mem_save_buffer_0 = NULL;
28743 TALLOC_CTX *_mem_save_info_0 = NULL;
28744 TALLOC_CTX *_mem_save_needed_0 = NULL;
28745 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28746 if (flags & NDR_IN) {
28747 ZERO_STRUCT(r->out);
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.form_name));
28757 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
28758 size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
28759 length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
28760 if (length_form_name_0 > size_form_name_0) {
28761 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
28763 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
28764 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
28765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
28766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
28768 NDR_PULL_ALLOC(ndr, r->in.buffer);
28770 r->in.buffer = NULL;
28772 if (r->in.buffer) {
28773 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
28774 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
28775 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
28776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
28778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
28779 NDR_PULL_ALLOC(ndr, r->out.needed);
28780 ZERO_STRUCTP(r->out.needed);
28782 if (flags & NDR_OUT) {
28783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
28785 NDR_PULL_ALLOC(ndr, r->out.info);
28787 r->out.info = NULL;
28790 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
28791 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
28793 struct ndr_pull *_ndr_info;
28794 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
28795 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
28796 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
28797 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
28799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
28801 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28802 NDR_PULL_ALLOC(ndr, r->out.needed);
28804 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
28805 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
28806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
28807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
28808 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28810 return NDR_ERR_SUCCESS;
28813 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
28815 ndr_print_struct(ndr, name, "spoolss_GetForm");
28816 if (r == NULL) { ndr_print_null(ndr); return; }
28818 if (flags & NDR_SET_VALUES) {
28819 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28821 if (flags & NDR_IN) {
28822 ndr_print_struct(ndr, "in", "spoolss_GetForm");
28824 ndr_print_ptr(ndr, "handle", r->in.handle);
28826 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28828 ndr_print_string(ndr, "form_name", r->in.form_name);
28829 ndr_print_uint32(ndr, "level", r->in.level);
28830 ndr_print_ptr(ndr, "buffer", r->in.buffer);
28832 if (r->in.buffer) {
28833 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
28836 ndr_print_uint32(ndr, "offered", r->in.offered);
28839 if (flags & NDR_OUT) {
28840 ndr_print_struct(ndr, "out", "spoolss_GetForm");
28842 ndr_print_ptr(ndr, "info", r->out.info);
28845 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
28846 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
28849 ndr_print_ptr(ndr, "needed", r->out.needed);
28851 ndr_print_uint32(ndr, "needed", *r->out.needed);
28853 ndr_print_WERROR(ndr, "result", r->out.result);
28859 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
28861 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28862 if (flags & NDR_IN) {
28863 if (r->in.handle == NULL) {
28864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28866 if (r->in.info_ctr == NULL) {
28867 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28869 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28870 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
28871 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
28872 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
28873 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));
28874 NDR_CHECK(ndr_push_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28876 if (flags & NDR_OUT) {
28877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28879 return NDR_ERR_SUCCESS;
28882 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
28884 uint32_t size_form_name_0 = 0;
28885 uint32_t length_form_name_0 = 0;
28886 TALLOC_CTX *_mem_save_handle_0 = NULL;
28887 TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
28888 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28889 if (flags & NDR_IN) {
28890 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28891 NDR_PULL_ALLOC(ndr, r->in.handle);
28893 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
28894 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
28895 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
28897 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
28898 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
28899 size_form_name_0 = ndr_get_array_size(ndr, &r->in.form_name);
28900 length_form_name_0 = ndr_get_array_length(ndr, &r->in.form_name);
28901 if (length_form_name_0 > size_form_name_0) {
28902 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_form_name_0, length_form_name_0);
28904 NDR_CHECK(ndr_check_string_terminator(ndr, length_form_name_0, sizeof(uint16_t)));
28905 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, length_form_name_0, sizeof(uint16_t), CH_UTF16));
28906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28907 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
28909 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
28910 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
28911 NDR_CHECK(ndr_pull_spoolss_AddFormInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
28912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
28914 if (flags & NDR_OUT) {
28915 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
28917 return NDR_ERR_SUCCESS;
28920 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
28922 ndr_print_struct(ndr, name, "spoolss_SetForm");
28923 if (r == NULL) { ndr_print_null(ndr); return; }
28925 if (flags & NDR_SET_VALUES) {
28926 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
28928 if (flags & NDR_IN) {
28929 ndr_print_struct(ndr, "in", "spoolss_SetForm");
28931 ndr_print_ptr(ndr, "handle", r->in.handle);
28933 ndr_print_policy_handle(ndr, "handle", r->in.handle);
28935 ndr_print_string(ndr, "form_name", r->in.form_name);
28936 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
28938 ndr_print_spoolss_AddFormInfoCtr(ndr, "info_ctr", r->in.info_ctr);
28942 if (flags & NDR_OUT) {
28943 ndr_print_struct(ndr, "out", "spoolss_SetForm");
28945 ndr_print_WERROR(ndr, "result", r->out.result);
28951 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
28953 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
28954 if (flags & NDR_IN) {
28955 if (r->in.handle == NULL) {
28956 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28958 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
28959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
28960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
28961 if (r->in.buffer) {
28962 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
28964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
28966 if (flags & NDR_OUT) {
28967 if (r->out.needed == NULL) {
28968 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28970 if (r->out.count == NULL) {
28971 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
28973 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
28975 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
28977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
28978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
28979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
28981 return NDR_ERR_SUCCESS;
28984 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
28986 uint32_t _ptr_buffer;
28987 uint32_t _ptr_info;
28988 TALLOC_CTX *_mem_save_handle_0 = NULL;
28989 TALLOC_CTX *_mem_save_buffer_0 = NULL;
28990 TALLOC_CTX *_mem_save_info_0 = NULL;
28991 TALLOC_CTX *_mem_save_needed_0 = NULL;
28992 TALLOC_CTX *_mem_save_count_0 = NULL;
28993 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
28994 if (flags & NDR_IN) {
28995 ZERO_STRUCT(r->out);
28997 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
28998 NDR_PULL_ALLOC(ndr, r->in.handle);
29000 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29001 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29002 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
29005 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
29007 NDR_PULL_ALLOC(ndr, r->in.buffer);
29009 r->in.buffer = NULL;
29011 if (r->in.buffer) {
29012 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
29013 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
29014 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
29015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
29017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
29018 NDR_PULL_ALLOC(ndr, r->out.needed);
29019 ZERO_STRUCTP(r->out.needed);
29020 NDR_PULL_ALLOC(ndr, r->out.count);
29021 ZERO_STRUCTP(r->out.count);
29023 if (flags & NDR_OUT) {
29024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
29026 NDR_PULL_ALLOC(ndr, r->out.info);
29028 r->out.info = NULL;
29031 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
29032 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
29033 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
29034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
29036 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29037 NDR_PULL_ALLOC(ndr, r->out.needed);
29039 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29040 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29043 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29044 NDR_PULL_ALLOC(ndr, r->out.count);
29046 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
29047 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
29048 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
29049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
29050 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29052 return NDR_ERR_SUCCESS;
29055 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
29057 uint32_t cntr_info_0;
29058 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29059 if (flags & NDR_IN) {
29060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
29061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
29063 if (flags & NDR_OUT) {
29064 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
29065 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
29066 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
29068 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
29069 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
29072 return NDR_ERR_SUCCESS;
29075 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
29077 uint32_t size_info_0 = 0;
29078 uint32_t cntr_info_0;
29079 TALLOC_CTX *_mem_save_info_0 = NULL;
29080 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29081 if (flags & NDR_IN) {
29082 ZERO_STRUCT(r->out);
29084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
29085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
29087 if (flags & NDR_OUT) {
29088 size_info_0 = r->in.count;
29089 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
29090 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
29091 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
29092 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
29093 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
29094 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
29096 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
29097 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
29099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
29101 return NDR_ERR_SUCCESS;
29104 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
29106 uint32_t cntr_info_2;
29107 ndr_print_struct(ndr, name, "spoolss_EnumForms");
29108 if (r == NULL) { ndr_print_null(ndr); return; }
29110 if (flags & NDR_SET_VALUES) {
29111 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29113 if (flags & NDR_IN) {
29114 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
29116 ndr_print_ptr(ndr, "handle", r->in.handle);
29118 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29120 ndr_print_uint32(ndr, "level", r->in.level);
29121 ndr_print_ptr(ndr, "buffer", r->in.buffer);
29123 if (r->in.buffer) {
29124 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
29127 ndr_print_uint32(ndr, "offered", r->in.offered);
29130 if (flags & NDR_OUT) {
29131 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
29133 ndr_print_ptr(ndr, "count", r->out.count);
29135 ndr_print_uint32(ndr, "count", *r->out.count);
29137 ndr_print_ptr(ndr, "info", r->out.info);
29139 ndr_print_ptr(ndr, "info", *r->out.info);
29141 if (*r->out.info) {
29142 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
29144 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
29145 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
29146 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
29152 ndr_print_ptr(ndr, "needed", r->out.needed);
29154 ndr_print_uint32(ndr, "needed", *r->out.needed);
29156 ndr_print_WERROR(ndr, "result", r->out.result);
29162 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
29164 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29165 if (flags & NDR_IN) {
29166 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29167 if (r->in.servername) {
29168 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29169 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29170 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29171 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
29174 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
29175 if (r->in.buffer) {
29176 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
29178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
29180 if (flags & NDR_OUT) {
29181 if (r->out.needed == NULL) {
29182 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29184 if (r->out.count == NULL) {
29185 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
29189 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
29191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
29193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29195 return NDR_ERR_SUCCESS;
29198 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
29200 uint32_t _ptr_servername;
29201 uint32_t size_servername_1 = 0;
29202 uint32_t length_servername_1 = 0;
29203 uint32_t _ptr_buffer;
29204 uint32_t _ptr_info;
29205 TALLOC_CTX *_mem_save_servername_0 = NULL;
29206 TALLOC_CTX *_mem_save_buffer_0 = NULL;
29207 TALLOC_CTX *_mem_save_info_0 = NULL;
29208 TALLOC_CTX *_mem_save_needed_0 = NULL;
29209 TALLOC_CTX *_mem_save_count_0 = NULL;
29210 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29211 if (flags & NDR_IN) {
29212 ZERO_STRUCT(r->out);
29214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29215 if (_ptr_servername) {
29216 NDR_PULL_ALLOC(ndr, r->in.servername);
29218 r->in.servername = NULL;
29220 if (r->in.servername) {
29221 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29222 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29223 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29224 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29225 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
29226 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
29227 if (length_servername_1 > size_servername_1) {
29228 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
29230 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
29231 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
29232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
29235 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
29237 NDR_PULL_ALLOC(ndr, r->in.buffer);
29239 r->in.buffer = NULL;
29241 if (r->in.buffer) {
29242 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
29243 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
29244 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
29245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
29247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
29248 NDR_PULL_ALLOC(ndr, r->out.needed);
29249 ZERO_STRUCTP(r->out.needed);
29250 NDR_PULL_ALLOC(ndr, r->out.count);
29251 ZERO_STRUCTP(r->out.count);
29253 if (flags & NDR_OUT) {
29254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
29256 NDR_PULL_ALLOC(ndr, r->out.info);
29258 r->out.info = NULL;
29261 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
29262 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
29263 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
29264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
29266 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29267 NDR_PULL_ALLOC(ndr, r->out.needed);
29269 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29270 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29273 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29274 NDR_PULL_ALLOC(ndr, r->out.count);
29276 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
29277 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
29278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
29279 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
29280 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29282 return NDR_ERR_SUCCESS;
29285 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
29287 uint32_t cntr_info_0;
29288 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29289 if (flags & NDR_IN) {
29290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
29291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
29293 if (flags & NDR_OUT) {
29294 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
29295 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
29296 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
29298 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
29299 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
29302 return NDR_ERR_SUCCESS;
29305 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
29307 uint32_t size_info_0 = 0;
29308 uint32_t cntr_info_0;
29309 TALLOC_CTX *_mem_save_info_0 = NULL;
29310 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29311 if (flags & NDR_IN) {
29312 ZERO_STRUCT(r->out);
29314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
29315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
29317 if (flags & NDR_OUT) {
29318 size_info_0 = r->in.count;
29319 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
29320 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
29321 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
29322 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
29323 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
29324 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
29326 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
29327 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
29329 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
29331 return NDR_ERR_SUCCESS;
29334 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
29336 uint32_t cntr_info_2;
29337 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
29338 if (r == NULL) { ndr_print_null(ndr); return; }
29340 if (flags & NDR_SET_VALUES) {
29341 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29343 if (flags & NDR_IN) {
29344 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
29346 ndr_print_ptr(ndr, "servername", r->in.servername);
29348 if (r->in.servername) {
29349 ndr_print_string(ndr, "servername", r->in.servername);
29352 ndr_print_uint32(ndr, "level", r->in.level);
29353 ndr_print_ptr(ndr, "buffer", r->in.buffer);
29355 if (r->in.buffer) {
29356 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
29359 ndr_print_uint32(ndr, "offered", r->in.offered);
29362 if (flags & NDR_OUT) {
29363 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
29365 ndr_print_ptr(ndr, "count", r->out.count);
29367 ndr_print_uint32(ndr, "count", *r->out.count);
29369 ndr_print_ptr(ndr, "info", r->out.info);
29371 ndr_print_ptr(ndr, "info", *r->out.info);
29373 if (*r->out.info) {
29374 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
29376 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
29377 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
29378 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
29384 ndr_print_ptr(ndr, "needed", r->out.needed);
29386 ndr_print_uint32(ndr, "needed", *r->out.needed);
29388 ndr_print_WERROR(ndr, "result", r->out.result);
29394 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
29396 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29397 if (flags & NDR_IN) {
29398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
29399 if (r->in.servername) {
29400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29401 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29402 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
29403 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
29406 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
29407 if (r->in.buffer) {
29408 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
29410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
29412 if (flags & NDR_OUT) {
29413 if (r->out.needed == NULL) {
29414 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29416 if (r->out.count == NULL) {
29417 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29419 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
29421 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
29423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
29424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
29425 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29427 return NDR_ERR_SUCCESS;
29430 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
29432 uint32_t _ptr_servername;
29433 uint32_t size_servername_1 = 0;
29434 uint32_t length_servername_1 = 0;
29435 uint32_t _ptr_buffer;
29436 uint32_t _ptr_info;
29437 TALLOC_CTX *_mem_save_servername_0 = NULL;
29438 TALLOC_CTX *_mem_save_buffer_0 = NULL;
29439 TALLOC_CTX *_mem_save_info_0 = NULL;
29440 TALLOC_CTX *_mem_save_needed_0 = NULL;
29441 TALLOC_CTX *_mem_save_count_0 = NULL;
29442 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29443 if (flags & NDR_IN) {
29444 ZERO_STRUCT(r->out);
29446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
29447 if (_ptr_servername) {
29448 NDR_PULL_ALLOC(ndr, r->in.servername);
29450 r->in.servername = NULL;
29452 if (r->in.servername) {
29453 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
29454 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
29455 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
29456 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
29457 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
29458 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
29459 if (length_servername_1 > size_servername_1) {
29460 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
29462 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
29463 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
29464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
29466 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
29467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
29469 NDR_PULL_ALLOC(ndr, r->in.buffer);
29471 r->in.buffer = NULL;
29473 if (r->in.buffer) {
29474 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
29475 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
29476 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
29477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
29479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
29480 NDR_PULL_ALLOC(ndr, r->out.needed);
29481 ZERO_STRUCTP(r->out.needed);
29482 NDR_PULL_ALLOC(ndr, r->out.count);
29483 ZERO_STRUCTP(r->out.count);
29485 if (flags & NDR_OUT) {
29486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
29488 NDR_PULL_ALLOC(ndr, r->out.info);
29490 r->out.info = NULL;
29493 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
29494 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
29495 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
29496 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
29498 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29499 NDR_PULL_ALLOC(ndr, r->out.needed);
29501 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
29502 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
29503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
29504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
29505 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29506 NDR_PULL_ALLOC(ndr, r->out.count);
29508 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
29509 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
29510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
29511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
29512 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29514 return NDR_ERR_SUCCESS;
29517 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
29519 uint32_t cntr_info_0;
29520 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29521 if (flags & NDR_IN) {
29522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
29523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
29525 if (flags & NDR_OUT) {
29526 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
29527 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
29528 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
29530 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
29531 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
29534 return NDR_ERR_SUCCESS;
29537 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
29539 uint32_t size_info_0 = 0;
29540 uint32_t cntr_info_0;
29541 TALLOC_CTX *_mem_save_info_0 = NULL;
29542 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29543 if (flags & NDR_IN) {
29544 ZERO_STRUCT(r->out);
29546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
29547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
29549 if (flags & NDR_OUT) {
29550 size_info_0 = r->in.count;
29551 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
29552 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
29553 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
29554 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
29555 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
29556 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
29558 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
29559 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
29561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
29563 return NDR_ERR_SUCCESS;
29566 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
29568 uint32_t cntr_info_2;
29569 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
29570 if (r == NULL) { ndr_print_null(ndr); return; }
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_EnumMonitors");
29578 ndr_print_ptr(ndr, "servername", r->in.servername);
29580 if (r->in.servername) {
29581 ndr_print_string(ndr, "servername", r->in.servername);
29584 ndr_print_uint32(ndr, "level", r->in.level);
29585 ndr_print_ptr(ndr, "buffer", r->in.buffer);
29587 if (r->in.buffer) {
29588 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
29591 ndr_print_uint32(ndr, "offered", r->in.offered);
29594 if (flags & NDR_OUT) {
29595 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
29597 ndr_print_ptr(ndr, "count", r->out.count);
29599 ndr_print_uint32(ndr, "count", *r->out.count);
29601 ndr_print_ptr(ndr, "info", r->out.info);
29603 ndr_print_ptr(ndr, "info", *r->out.info);
29605 if (*r->out.info) {
29606 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
29608 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
29609 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
29610 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
29616 ndr_print_ptr(ndr, "needed", r->out.needed);
29618 ndr_print_uint32(ndr, "needed", *r->out.needed);
29620 ndr_print_WERROR(ndr, "result", r->out.result);
29626 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
29628 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29629 if (flags & NDR_IN) {
29630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
29631 if (r->in.server_name) {
29632 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
29633 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29634 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
29635 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));
29637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
29638 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
29639 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29640 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
29641 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));
29643 if (flags & NDR_OUT) {
29644 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29646 return NDR_ERR_SUCCESS;
29649 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
29651 uint32_t _ptr_server_name;
29652 uint32_t size_server_name_1 = 0;
29653 uint32_t length_server_name_1 = 0;
29654 uint32_t size_monitor_name_0 = 0;
29655 uint32_t length_monitor_name_0 = 0;
29656 TALLOC_CTX *_mem_save_server_name_0 = NULL;
29657 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29658 if (flags & NDR_IN) {
29659 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
29660 if (_ptr_server_name) {
29661 NDR_PULL_ALLOC(ndr, r->in.server_name);
29663 r->in.server_name = NULL;
29665 if (r->in.server_name) {
29666 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
29667 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
29668 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
29669 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
29670 size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name);
29671 length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name);
29672 if (length_server_name_1 > size_server_name_1) {
29673 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
29675 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
29676 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
29677 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
29679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
29680 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
29681 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
29682 size_monitor_name_0 = ndr_get_array_size(ndr, &r->in.monitor_name);
29683 length_monitor_name_0 = ndr_get_array_length(ndr, &r->in.monitor_name);
29684 if (length_monitor_name_0 > size_monitor_name_0) {
29685 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_0, length_monitor_name_0);
29687 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_0, sizeof(uint16_t)));
29688 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, length_monitor_name_0, sizeof(uint16_t), CH_UTF16));
29690 if (flags & NDR_OUT) {
29691 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29693 return NDR_ERR_SUCCESS;
29696 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
29698 ndr_print_struct(ndr, name, "spoolss_AddPort");
29699 if (r == NULL) { ndr_print_null(ndr); return; }
29701 if (flags & NDR_SET_VALUES) {
29702 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29704 if (flags & NDR_IN) {
29705 ndr_print_struct(ndr, "in", "spoolss_AddPort");
29707 ndr_print_ptr(ndr, "server_name", r->in.server_name);
29709 if (r->in.server_name) {
29710 ndr_print_string(ndr, "server_name", r->in.server_name);
29713 ndr_print_uint32(ndr, "unknown", r->in.unknown);
29714 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
29717 if (flags & NDR_OUT) {
29718 ndr_print_struct(ndr, "out", "spoolss_AddPort");
29720 ndr_print_WERROR(ndr, "result", r->out.result);
29726 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
29728 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29729 if (flags & NDR_IN) {
29731 if (flags & NDR_OUT) {
29732 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29734 return NDR_ERR_SUCCESS;
29737 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
29739 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29740 if (flags & NDR_IN) {
29742 if (flags & NDR_OUT) {
29743 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29745 return NDR_ERR_SUCCESS;
29748 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
29750 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
29751 if (r == NULL) { ndr_print_null(ndr); return; }
29753 if (flags & NDR_SET_VALUES) {
29754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29756 if (flags & NDR_IN) {
29757 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
29761 if (flags & NDR_OUT) {
29762 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
29764 ndr_print_WERROR(ndr, "result", r->out.result);
29770 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
29772 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29773 if (flags & NDR_IN) {
29774 if (r->in.port_name == NULL) {
29775 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
29778 if (r->in.server_name) {
29779 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
29780 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29781 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
29782 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));
29784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.ptr));
29785 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
29786 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
29787 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
29788 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.port_name, ndr_charset_length(r->in.port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
29790 if (flags & NDR_OUT) {
29791 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29793 return NDR_ERR_SUCCESS;
29796 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
29798 uint32_t _ptr_server_name;
29799 uint32_t size_server_name_1 = 0;
29800 uint32_t length_server_name_1 = 0;
29801 uint32_t size_port_name_1 = 0;
29802 uint32_t length_port_name_1 = 0;
29803 TALLOC_CTX *_mem_save_server_name_0 = NULL;
29804 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29805 if (flags & NDR_IN) {
29806 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
29807 if (_ptr_server_name) {
29808 NDR_PULL_ALLOC(ndr, r->in.server_name);
29810 r->in.server_name = NULL;
29812 if (r->in.server_name) {
29813 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
29814 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
29815 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
29816 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
29817 size_server_name_1 = ndr_get_array_size(ndr, &r->in.server_name);
29818 length_server_name_1 = ndr_get_array_length(ndr, &r->in.server_name);
29819 if (length_server_name_1 > size_server_name_1) {
29820 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_1, length_server_name_1);
29822 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_1, sizeof(uint16_t)));
29823 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_1, sizeof(uint16_t), CH_UTF16));
29824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
29826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.ptr));
29827 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.port_name));
29828 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.port_name));
29829 size_port_name_1 = ndr_get_array_size(ndr, &r->in.port_name);
29830 length_port_name_1 = ndr_get_array_length(ndr, &r->in.port_name);
29831 if (length_port_name_1 > size_port_name_1) {
29832 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_port_name_1, length_port_name_1);
29834 NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
29835 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
29837 if (flags & NDR_OUT) {
29838 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29840 return NDR_ERR_SUCCESS;
29843 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
29845 ndr_print_struct(ndr, name, "spoolss_DeletePort");
29846 if (r == NULL) { ndr_print_null(ndr); return; }
29848 if (flags & NDR_SET_VALUES) {
29849 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29851 if (flags & NDR_IN) {
29852 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
29854 ndr_print_ptr(ndr, "server_name", r->in.server_name);
29856 if (r->in.server_name) {
29857 ndr_print_string(ndr, "server_name", r->in.server_name);
29860 ndr_print_uint32(ndr, "ptr", r->in.ptr);
29861 ndr_print_ptr(ndr, "port_name", r->in.port_name);
29863 ndr_print_string(ndr, "port_name", r->in.port_name);
29867 if (flags & NDR_OUT) {
29868 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
29870 ndr_print_WERROR(ndr, "result", r->out.result);
29876 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
29878 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29879 if (flags & NDR_IN) {
29880 if (r->in.handle == NULL) {
29881 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29883 if (r->in.devmode_ctr == NULL) {
29884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29886 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29887 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
29889 if (flags & NDR_OUT) {
29890 if (r->out.gdi_handle == NULL) {
29891 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29893 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
29894 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29896 return NDR_ERR_SUCCESS;
29899 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
29901 TALLOC_CTX *_mem_save_handle_0 = NULL;
29902 TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
29903 TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
29904 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
29905 if (flags & NDR_IN) {
29906 ZERO_STRUCT(r->out);
29908 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29909 NDR_PULL_ALLOC(ndr, r->in.handle);
29911 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29912 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
29913 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
29914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
29915 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29916 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
29918 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
29919 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
29920 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
29921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
29922 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
29923 ZERO_STRUCTP(r->out.gdi_handle);
29925 if (flags & NDR_OUT) {
29926 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
29927 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
29929 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
29930 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
29931 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
29932 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
29933 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
29935 return NDR_ERR_SUCCESS;
29938 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
29940 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
29941 if (r == NULL) { ndr_print_null(ndr); return; }
29943 if (flags & NDR_SET_VALUES) {
29944 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
29946 if (flags & NDR_IN) {
29947 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
29949 ndr_print_ptr(ndr, "handle", r->in.handle);
29951 ndr_print_policy_handle(ndr, "handle", r->in.handle);
29953 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
29955 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
29959 if (flags & NDR_OUT) {
29960 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
29962 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
29964 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
29966 ndr_print_WERROR(ndr, "result", r->out.result);
29972 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
29974 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
29975 if (flags & NDR_IN) {
29976 if (r->in.gdi_handle == NULL) {
29977 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29979 if (r->in.pIn == NULL) {
29980 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29982 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
29983 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.cIn));
29984 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.pIn, r->in.cIn));
29985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.cIn));
29986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.cOut));
29987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.ul));
29989 if (flags & NDR_OUT) {
29990 if (r->out.pOut == NULL) {
29991 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
29993 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.cOut));
29994 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.pOut, r->in.cOut));
29995 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
29997 return NDR_ERR_SUCCESS;
30000 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
30002 uint32_t size_pIn_1 = 0;
30003 uint32_t size_pOut_1 = 0;
30004 TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
30005 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30006 if (flags & NDR_IN) {
30007 ZERO_STRUCT(r->out);
30009 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30010 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
30012 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
30013 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
30014 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
30015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
30016 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pIn));
30017 size_pIn_1 = ndr_get_array_size(ndr, &r->in.pIn);
30018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30019 NDR_PULL_ALLOC_N(ndr, r->in.pIn, size_pIn_1);
30021 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.pIn, size_pIn_1));
30022 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.cIn));
30023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.cOut));
30024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.ul));
30025 NDR_PULL_ALLOC_N(ndr, r->out.pOut, r->in.cOut);
30026 memset(r->out.pOut, 0, (r->in.cOut) * sizeof(*r->out.pOut));
30028 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.pIn, r->in.cIn));
30031 if (flags & NDR_OUT) {
30032 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.pOut));
30033 size_pOut_1 = ndr_get_array_size(ndr, &r->out.pOut);
30034 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30035 NDR_PULL_ALLOC_N(ndr, r->out.pOut, size_pOut_1);
30037 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.pOut, size_pOut_1));
30038 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30040 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.pOut, r->in.cOut));
30043 return NDR_ERR_SUCCESS;
30046 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
30048 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
30049 if (r == NULL) { ndr_print_null(ndr); return; }
30051 if (flags & NDR_SET_VALUES) {
30052 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30054 if (flags & NDR_IN) {
30055 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
30057 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
30059 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
30061 ndr_print_ptr(ndr, "pIn", r->in.pIn);
30063 ndr_print_array_uint8(ndr, "pIn", r->in.pIn, r->in.cIn);
30065 ndr_print_uint32(ndr, "cIn", r->in.cIn);
30066 ndr_print_uint32(ndr, "cOut", r->in.cOut);
30067 ndr_print_uint32(ndr, "ul", r->in.ul);
30070 if (flags & NDR_OUT) {
30071 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
30073 ndr_print_ptr(ndr, "pOut", r->out.pOut);
30075 ndr_print_array_uint8(ndr, "pOut", r->out.pOut, r->in.cOut);
30077 ndr_print_WERROR(ndr, "result", r->out.result);
30083 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
30085 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30086 if (flags & NDR_IN) {
30087 if (r->in.gdi_handle == NULL) {
30088 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30090 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
30092 if (flags & NDR_OUT) {
30093 if (r->out.gdi_handle == NULL) {
30094 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30096 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
30097 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30099 return NDR_ERR_SUCCESS;
30102 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
30104 TALLOC_CTX *_mem_save_gdi_handle_0 = NULL;
30105 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30106 if (flags & NDR_IN) {
30107 ZERO_STRUCT(r->out);
30109 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30110 NDR_PULL_ALLOC(ndr, r->in.gdi_handle);
30112 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
30113 NDR_PULL_SET_MEM_CTX(ndr, r->in.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
30114 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.gdi_handle));
30115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
30116 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
30117 *r->out.gdi_handle = *r->in.gdi_handle;
30119 if (flags & NDR_OUT) {
30120 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30121 NDR_PULL_ALLOC(ndr, r->out.gdi_handle);
30123 _mem_save_gdi_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
30124 NDR_PULL_SET_MEM_CTX(ndr, r->out.gdi_handle, LIBNDR_FLAG_REF_ALLOC);
30125 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.gdi_handle));
30126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_gdi_handle_0, LIBNDR_FLAG_REF_ALLOC);
30127 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30129 return NDR_ERR_SUCCESS;
30132 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
30134 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
30135 if (r == NULL) { ndr_print_null(ndr); return; }
30137 if (flags & NDR_SET_VALUES) {
30138 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30140 if (flags & NDR_IN) {
30141 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
30143 ndr_print_ptr(ndr, "gdi_handle", r->in.gdi_handle);
30145 ndr_print_policy_handle(ndr, "gdi_handle", r->in.gdi_handle);
30149 if (flags & NDR_OUT) {
30150 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
30152 ndr_print_ptr(ndr, "gdi_handle", r->out.gdi_handle);
30154 ndr_print_policy_handle(ndr, "gdi_handle", r->out.gdi_handle);
30156 ndr_print_WERROR(ndr, "result", r->out.result);
30162 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
30164 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30165 if (flags & NDR_IN) {
30167 if (flags & NDR_OUT) {
30168 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30170 return NDR_ERR_SUCCESS;
30173 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
30175 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30176 if (flags & NDR_IN) {
30178 if (flags & NDR_OUT) {
30179 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30181 return NDR_ERR_SUCCESS;
30184 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
30186 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
30187 if (r == NULL) { ndr_print_null(ndr); return; }
30189 if (flags & NDR_SET_VALUES) {
30190 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30192 if (flags & NDR_IN) {
30193 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
30197 if (flags & NDR_OUT) {
30198 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
30200 ndr_print_WERROR(ndr, "result", r->out.result);
30206 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
30208 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30209 if (flags & NDR_IN) {
30211 if (flags & NDR_OUT) {
30212 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30214 return NDR_ERR_SUCCESS;
30217 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
30219 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30220 if (flags & NDR_IN) {
30222 if (flags & NDR_OUT) {
30223 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30225 return NDR_ERR_SUCCESS;
30228 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
30230 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
30231 if (r == NULL) { ndr_print_null(ndr); return; }
30233 if (flags & NDR_SET_VALUES) {
30234 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30236 if (flags & NDR_IN) {
30237 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
30241 if (flags & NDR_OUT) {
30242 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
30244 ndr_print_WERROR(ndr, "result", r->out.result);
30250 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
30252 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30253 if (flags & NDR_IN) {
30255 if (flags & NDR_OUT) {
30256 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30258 return NDR_ERR_SUCCESS;
30261 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
30263 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30264 if (flags & NDR_IN) {
30266 if (flags & NDR_OUT) {
30267 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30269 return NDR_ERR_SUCCESS;
30272 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
30274 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
30275 if (r == NULL) { ndr_print_null(ndr); return; }
30277 if (flags & NDR_SET_VALUES) {
30278 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30280 if (flags & NDR_IN) {
30281 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
30285 if (flags & NDR_OUT) {
30286 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
30288 ndr_print_WERROR(ndr, "result", r->out.result);
30294 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
30296 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30297 if (flags & NDR_IN) {
30299 if (flags & NDR_OUT) {
30300 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30302 return NDR_ERR_SUCCESS;
30305 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
30307 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30308 if (flags & NDR_IN) {
30310 if (flags & NDR_OUT) {
30311 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30313 return NDR_ERR_SUCCESS;
30316 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
30318 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
30319 if (r == NULL) { ndr_print_null(ndr); return; }
30321 if (flags & NDR_SET_VALUES) {
30322 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30324 if (flags & NDR_IN) {
30325 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
30329 if (flags & NDR_OUT) {
30330 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
30332 ndr_print_WERROR(ndr, "result", r->out.result);
30338 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
30340 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30341 if (flags & NDR_IN) {
30343 if (flags & NDR_OUT) {
30344 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30346 return NDR_ERR_SUCCESS;
30349 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
30351 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30352 if (flags & NDR_IN) {
30354 if (flags & NDR_OUT) {
30355 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30357 return NDR_ERR_SUCCESS;
30360 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
30362 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
30363 if (r == NULL) { ndr_print_null(ndr); return; }
30365 if (flags & NDR_SET_VALUES) {
30366 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30368 if (flags & NDR_IN) {
30369 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
30373 if (flags & NDR_OUT) {
30374 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
30376 ndr_print_WERROR(ndr, "result", r->out.result);
30382 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
30384 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30385 if (flags & NDR_IN) {
30386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
30387 if (r->in.server) {
30388 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
30389 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30390 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
30391 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
30394 if (r->in.architecture) {
30395 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30396 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30397 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30398 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
30401 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30402 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
30403 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));
30405 if (flags & NDR_OUT) {
30406 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30408 return NDR_ERR_SUCCESS;
30411 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
30413 uint32_t _ptr_server;
30414 uint32_t size_server_1 = 0;
30415 uint32_t length_server_1 = 0;
30416 uint32_t _ptr_architecture;
30417 uint32_t size_architecture_1 = 0;
30418 uint32_t length_architecture_1 = 0;
30419 uint32_t size_print_processor_name_0 = 0;
30420 uint32_t length_print_processor_name_0 = 0;
30421 TALLOC_CTX *_mem_save_server_0 = NULL;
30422 TALLOC_CTX *_mem_save_architecture_0 = NULL;
30423 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30424 if (flags & NDR_IN) {
30425 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
30427 NDR_PULL_ALLOC(ndr, r->in.server);
30429 r->in.server = NULL;
30431 if (r->in.server) {
30432 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
30433 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
30434 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
30435 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
30436 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
30437 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
30438 if (length_server_1 > size_server_1) {
30439 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
30441 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
30442 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
30443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
30445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
30446 if (_ptr_architecture) {
30447 NDR_PULL_ALLOC(ndr, r->in.architecture);
30449 r->in.architecture = NULL;
30451 if (r->in.architecture) {
30452 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
30453 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
30454 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
30455 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
30456 size_architecture_1 = ndr_get_array_size(ndr, &r->in.architecture);
30457 length_architecture_1 = ndr_get_array_length(ndr, &r->in.architecture);
30458 if (length_architecture_1 > size_architecture_1) {
30459 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
30461 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
30462 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
30463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
30465 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
30466 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
30467 size_print_processor_name_0 = ndr_get_array_size(ndr, &r->in.print_processor_name);
30468 length_print_processor_name_0 = ndr_get_array_length(ndr, &r->in.print_processor_name);
30469 if (length_print_processor_name_0 > size_print_processor_name_0) {
30470 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_name_0, length_print_processor_name_0);
30472 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_0, sizeof(uint16_t)));
30473 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_0, sizeof(uint16_t), CH_UTF16));
30475 if (flags & NDR_OUT) {
30476 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30478 return NDR_ERR_SUCCESS;
30481 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
30483 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
30484 if (r == NULL) { ndr_print_null(ndr); return; }
30486 if (flags & NDR_SET_VALUES) {
30487 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30489 if (flags & NDR_IN) {
30490 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
30492 ndr_print_ptr(ndr, "server", r->in.server);
30494 if (r->in.server) {
30495 ndr_print_string(ndr, "server", r->in.server);
30498 ndr_print_ptr(ndr, "architecture", r->in.architecture);
30500 if (r->in.architecture) {
30501 ndr_print_string(ndr, "architecture", r->in.architecture);
30504 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
30507 if (flags & NDR_OUT) {
30508 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
30510 ndr_print_WERROR(ndr, "result", r->out.result);
30516 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
30518 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30519 if (flags & NDR_IN) {
30521 if (flags & NDR_OUT) {
30522 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30524 return NDR_ERR_SUCCESS;
30527 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
30529 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30530 if (flags & NDR_IN) {
30532 if (flags & NDR_OUT) {
30533 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30535 return NDR_ERR_SUCCESS;
30538 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
30540 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
30541 if (r == NULL) { ndr_print_null(ndr); return; }
30543 if (flags & NDR_SET_VALUES) {
30544 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30546 if (flags & NDR_IN) {
30547 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
30551 if (flags & NDR_OUT) {
30552 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
30554 ndr_print_WERROR(ndr, "result", r->out.result);
30560 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
30562 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30563 if (flags & NDR_IN) {
30565 if (flags & NDR_OUT) {
30566 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30568 return NDR_ERR_SUCCESS;
30571 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
30573 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30574 if (flags & NDR_IN) {
30576 if (flags & NDR_OUT) {
30577 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30579 return NDR_ERR_SUCCESS;
30582 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
30584 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
30585 if (r == NULL) { ndr_print_null(ndr); return; }
30587 if (flags & NDR_SET_VALUES) {
30588 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30590 if (flags & NDR_IN) {
30591 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
30595 if (flags & NDR_OUT) {
30596 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
30598 ndr_print_WERROR(ndr, "result", r->out.result);
30604 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessorDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessorDataTypes *r)
30606 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30607 if (flags & NDR_IN) {
30608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
30609 if (r->in.servername) {
30610 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30611 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30612 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
30613 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
30615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
30616 if (r->in.print_processor_name) {
30617 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
30618 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30619 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
30620 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));
30622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
30623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
30624 if (r->in.buffer) {
30625 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
30627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
30629 if (flags & NDR_OUT) {
30630 if (r->out.needed == NULL) {
30631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30633 if (r->out.count == NULL) {
30634 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30636 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
30638 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
30640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
30641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
30642 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30644 return NDR_ERR_SUCCESS;
30647 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessorDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessorDataTypes *r)
30649 uint32_t _ptr_servername;
30650 uint32_t size_servername_1 = 0;
30651 uint32_t length_servername_1 = 0;
30652 uint32_t _ptr_print_processor_name;
30653 uint32_t size_print_processor_name_1 = 0;
30654 uint32_t length_print_processor_name_1 = 0;
30655 uint32_t _ptr_buffer;
30656 uint32_t _ptr_info;
30657 TALLOC_CTX *_mem_save_servername_0 = NULL;
30658 TALLOC_CTX *_mem_save_print_processor_name_0 = NULL;
30659 TALLOC_CTX *_mem_save_buffer_0 = NULL;
30660 TALLOC_CTX *_mem_save_info_0 = NULL;
30661 TALLOC_CTX *_mem_save_needed_0 = NULL;
30662 TALLOC_CTX *_mem_save_count_0 = NULL;
30663 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30664 if (flags & NDR_IN) {
30665 ZERO_STRUCT(r->out);
30667 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
30668 if (_ptr_servername) {
30669 NDR_PULL_ALLOC(ndr, r->in.servername);
30671 r->in.servername = NULL;
30673 if (r->in.servername) {
30674 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
30675 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
30676 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
30677 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
30678 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
30679 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
30680 if (length_servername_1 > size_servername_1) {
30681 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
30683 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
30684 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
30685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
30687 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
30688 if (_ptr_print_processor_name) {
30689 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
30691 r->in.print_processor_name = NULL;
30693 if (r->in.print_processor_name) {
30694 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
30695 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
30696 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
30697 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
30698 size_print_processor_name_1 = ndr_get_array_size(ndr, &r->in.print_processor_name);
30699 length_print_processor_name_1 = ndr_get_array_length(ndr, &r->in.print_processor_name);
30700 if (length_print_processor_name_1 > size_print_processor_name_1) {
30701 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_print_processor_name_1, length_print_processor_name_1);
30703 NDR_CHECK(ndr_check_string_terminator(ndr, length_print_processor_name_1, sizeof(uint16_t)));
30704 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, length_print_processor_name_1, sizeof(uint16_t), CH_UTF16));
30705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
30707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
30708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
30710 NDR_PULL_ALLOC(ndr, r->in.buffer);
30712 r->in.buffer = NULL;
30714 if (r->in.buffer) {
30715 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
30716 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
30717 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
30718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
30720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
30721 NDR_PULL_ALLOC(ndr, r->out.needed);
30722 ZERO_STRUCTP(r->out.needed);
30723 NDR_PULL_ALLOC(ndr, r->out.count);
30724 ZERO_STRUCTP(r->out.count);
30726 if (flags & NDR_OUT) {
30727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
30729 NDR_PULL_ALLOC(ndr, r->out.info);
30731 r->out.info = NULL;
30734 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
30735 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
30736 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
30737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
30739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30740 NDR_PULL_ALLOC(ndr, r->out.needed);
30742 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
30743 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
30744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
30745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
30746 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30747 NDR_PULL_ALLOC(ndr, r->out.count);
30749 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
30750 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
30751 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
30752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
30753 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30755 return NDR_ERR_SUCCESS;
30758 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessorDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessorDataTypes *r)
30760 uint32_t cntr_info_0;
30761 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30762 if (flags & NDR_IN) {
30763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
30764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
30766 if (flags & NDR_OUT) {
30767 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
30768 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30769 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
30771 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
30772 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
30775 return NDR_ERR_SUCCESS;
30778 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessorDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessorDataTypes *r)
30780 uint32_t size_info_0 = 0;
30781 uint32_t cntr_info_0;
30782 TALLOC_CTX *_mem_save_info_0 = NULL;
30783 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30784 if (flags & NDR_IN) {
30785 ZERO_STRUCT(r->out);
30787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
30788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
30790 if (flags & NDR_OUT) {
30791 size_info_0 = r->in.count;
30792 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
30793 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
30794 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
30795 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
30796 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
30797 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
30799 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
30800 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
30802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
30804 return NDR_ERR_SUCCESS;
30807 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessorDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessorDataTypes *r)
30809 uint32_t cntr_info_2;
30810 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessorDataTypes");
30811 if (r == NULL) { ndr_print_null(ndr); return; }
30813 if (flags & NDR_SET_VALUES) {
30814 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30816 if (flags & NDR_IN) {
30817 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessorDataTypes");
30819 ndr_print_ptr(ndr, "servername", r->in.servername);
30821 if (r->in.servername) {
30822 ndr_print_string(ndr, "servername", r->in.servername);
30825 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
30827 if (r->in.print_processor_name) {
30828 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
30831 ndr_print_uint32(ndr, "level", r->in.level);
30832 ndr_print_ptr(ndr, "buffer", r->in.buffer);
30834 if (r->in.buffer) {
30835 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
30838 ndr_print_uint32(ndr, "offered", r->in.offered);
30841 if (flags & NDR_OUT) {
30842 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessorDataTypes");
30844 ndr_print_ptr(ndr, "count", r->out.count);
30846 ndr_print_uint32(ndr, "count", *r->out.count);
30848 ndr_print_ptr(ndr, "info", r->out.info);
30850 ndr_print_ptr(ndr, "info", *r->out.info);
30852 if (*r->out.info) {
30853 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
30855 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
30856 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
30857 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
30863 ndr_print_ptr(ndr, "needed", r->out.needed);
30865 ndr_print_uint32(ndr, "needed", *r->out.needed);
30867 ndr_print_WERROR(ndr, "result", r->out.result);
30873 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
30875 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30876 if (flags & NDR_IN) {
30877 if (r->in.handle == NULL) {
30878 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30880 if (r->in.devmode_ctr == NULL) {
30881 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30883 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30884 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
30885 if (r->in.data_type) {
30886 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
30887 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30888 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
30889 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));
30891 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
30893 if (flags & NDR_OUT) {
30894 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
30896 return NDR_ERR_SUCCESS;
30899 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
30901 uint32_t _ptr_data_type;
30902 uint32_t size_data_type_1 = 0;
30903 uint32_t length_data_type_1 = 0;
30904 TALLOC_CTX *_mem_save_handle_0 = NULL;
30905 TALLOC_CTX *_mem_save_data_type_0 = NULL;
30906 TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
30907 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
30908 if (flags & NDR_IN) {
30909 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30910 NDR_PULL_ALLOC(ndr, r->in.handle);
30912 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
30913 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
30914 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
30916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
30917 if (_ptr_data_type) {
30918 NDR_PULL_ALLOC(ndr, r->in.data_type);
30920 r->in.data_type = NULL;
30922 if (r->in.data_type) {
30923 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
30924 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
30925 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
30926 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
30927 size_data_type_1 = ndr_get_array_size(ndr, &r->in.data_type);
30928 length_data_type_1 = ndr_get_array_length(ndr, &r->in.data_type);
30929 if (length_data_type_1 > size_data_type_1) {
30930 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_data_type_1, length_data_type_1);
30932 NDR_CHECK(ndr_check_string_terminator(ndr, length_data_type_1, sizeof(uint16_t)));
30933 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, length_data_type_1, sizeof(uint16_t), CH_UTF16));
30934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
30936 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
30937 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
30939 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
30940 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
30941 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
30942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
30944 if (flags & NDR_OUT) {
30945 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
30947 return NDR_ERR_SUCCESS;
30950 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
30952 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
30953 if (r == NULL) { ndr_print_null(ndr); return; }
30955 if (flags & NDR_SET_VALUES) {
30956 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
30958 if (flags & NDR_IN) {
30959 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
30961 ndr_print_ptr(ndr, "handle", r->in.handle);
30963 ndr_print_policy_handle(ndr, "handle", r->in.handle);
30965 ndr_print_ptr(ndr, "data_type", r->in.data_type);
30967 if (r->in.data_type) {
30968 ndr_print_string(ndr, "data_type", r->in.data_type);
30971 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
30973 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
30977 if (flags & NDR_OUT) {
30978 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
30980 ndr_print_WERROR(ndr, "result", r->out.result);
30986 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
30988 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
30989 if (flags & NDR_IN) {
30990 if (r->in.handle == NULL) {
30991 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
30993 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
30994 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
30995 if (r->in.architecture) {
30996 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30997 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
30998 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
30999 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
31001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
31002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
31003 if (r->in.buffer) {
31004 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
31006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
31007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
31008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
31010 if (flags & NDR_OUT) {
31011 if (r->out.needed == NULL) {
31012 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31014 if (r->out.server_major_version == NULL) {
31015 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31017 if (r->out.server_minor_version == NULL) {
31018 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
31023 struct ndr_push *_ndr_info;
31024 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
31025 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
31026 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
31027 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
31030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
31031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
31032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
31033 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31035 return NDR_ERR_SUCCESS;
31038 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
31040 uint32_t _ptr_architecture;
31041 uint32_t size_architecture_1 = 0;
31042 uint32_t length_architecture_1 = 0;
31043 uint32_t _ptr_buffer;
31044 uint32_t _ptr_info;
31045 TALLOC_CTX *_mem_save_handle_0 = NULL;
31046 TALLOC_CTX *_mem_save_architecture_0 = NULL;
31047 TALLOC_CTX *_mem_save_buffer_0 = NULL;
31048 TALLOC_CTX *_mem_save_info_0 = NULL;
31049 TALLOC_CTX *_mem_save_needed_0 = NULL;
31050 TALLOC_CTX *_mem_save_server_major_version_0 = NULL;
31051 TALLOC_CTX *_mem_save_server_minor_version_0 = NULL;
31052 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31053 if (flags & NDR_IN) {
31054 ZERO_STRUCT(r->out);
31056 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31057 NDR_PULL_ALLOC(ndr, r->in.handle);
31059 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31060 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
31061 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
31063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
31064 if (_ptr_architecture) {
31065 NDR_PULL_ALLOC(ndr, r->in.architecture);
31067 r->in.architecture = NULL;
31069 if (r->in.architecture) {
31070 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
31071 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
31072 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
31073 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
31074 size_architecture_1 = ndr_get_array_size(ndr, &r->in.architecture);
31075 length_architecture_1 = ndr_get_array_length(ndr, &r->in.architecture);
31076 if (length_architecture_1 > size_architecture_1) {
31077 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
31079 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
31080 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
31081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
31083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
31084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
31086 NDR_PULL_ALLOC(ndr, r->in.buffer);
31088 r->in.buffer = NULL;
31090 if (r->in.buffer) {
31091 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
31092 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
31093 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
31094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
31096 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
31097 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
31098 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
31099 NDR_PULL_ALLOC(ndr, r->out.needed);
31100 ZERO_STRUCTP(r->out.needed);
31101 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
31102 ZERO_STRUCTP(r->out.server_major_version);
31103 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
31104 ZERO_STRUCTP(r->out.server_minor_version);
31106 if (flags & NDR_OUT) {
31107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
31109 NDR_PULL_ALLOC(ndr, r->out.info);
31111 r->out.info = NULL;
31114 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
31115 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
31117 struct ndr_pull *_ndr_info;
31118 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
31119 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
31120 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
31121 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
31123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
31125 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31126 NDR_PULL_ALLOC(ndr, r->out.needed);
31128 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
31129 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
31130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
31131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
31132 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31133 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
31135 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
31136 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
31137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
31138 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
31139 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31140 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
31142 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
31143 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
31144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
31145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
31146 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31148 return NDR_ERR_SUCCESS;
31151 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
31153 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
31154 if (r == NULL) { ndr_print_null(ndr); return; }
31156 if (flags & NDR_SET_VALUES) {
31157 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31159 if (flags & NDR_IN) {
31160 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
31162 ndr_print_ptr(ndr, "handle", r->in.handle);
31164 ndr_print_policy_handle(ndr, "handle", r->in.handle);
31166 ndr_print_ptr(ndr, "architecture", r->in.architecture);
31168 if (r->in.architecture) {
31169 ndr_print_string(ndr, "architecture", r->in.architecture);
31172 ndr_print_uint32(ndr, "level", r->in.level);
31173 ndr_print_ptr(ndr, "buffer", r->in.buffer);
31175 if (r->in.buffer) {
31176 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
31179 ndr_print_uint32(ndr, "offered", r->in.offered);
31180 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
31181 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
31184 if (flags & NDR_OUT) {
31185 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
31187 ndr_print_ptr(ndr, "info", r->out.info);
31190 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
31191 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
31194 ndr_print_ptr(ndr, "needed", r->out.needed);
31196 ndr_print_uint32(ndr, "needed", *r->out.needed);
31198 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
31200 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
31202 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
31204 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
31206 ndr_print_WERROR(ndr, "result", r->out.result);
31212 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
31214 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31215 if (flags & NDR_IN) {
31217 if (flags & NDR_OUT) {
31218 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31220 return NDR_ERR_SUCCESS;
31223 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
31225 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31226 if (flags & NDR_IN) {
31228 if (flags & NDR_OUT) {
31229 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31231 return NDR_ERR_SUCCESS;
31234 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
31236 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
31237 if (r == NULL) { ndr_print_null(ndr); return; }
31239 if (flags & NDR_SET_VALUES) {
31240 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31242 if (flags & NDR_IN) {
31243 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
31247 if (flags & NDR_OUT) {
31248 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
31250 ndr_print_WERROR(ndr, "result", r->out.result);
31256 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
31258 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31259 if (flags & NDR_IN) {
31261 if (flags & NDR_OUT) {
31262 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31264 return NDR_ERR_SUCCESS;
31267 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
31269 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31270 if (flags & NDR_IN) {
31272 if (flags & NDR_OUT) {
31273 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31275 return NDR_ERR_SUCCESS;
31278 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
31280 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
31281 if (r == NULL) { ndr_print_null(ndr); return; }
31283 if (flags & NDR_SET_VALUES) {
31284 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31286 if (flags & NDR_IN) {
31287 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
31291 if (flags & NDR_OUT) {
31292 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
31294 ndr_print_WERROR(ndr, "result", r->out.result);
31300 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
31302 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31303 if (flags & NDR_IN) {
31304 if (r->in.handle == NULL) {
31305 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31307 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31309 if (flags & NDR_OUT) {
31310 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31312 return NDR_ERR_SUCCESS;
31315 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
31317 TALLOC_CTX *_mem_save_handle_0 = NULL;
31318 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31319 if (flags & NDR_IN) {
31320 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31321 NDR_PULL_ALLOC(ndr, r->in.handle);
31323 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31324 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
31325 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
31328 if (flags & NDR_OUT) {
31329 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31331 return NDR_ERR_SUCCESS;
31334 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
31336 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
31337 if (r == NULL) { ndr_print_null(ndr); return; }
31339 if (flags & NDR_SET_VALUES) {
31340 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31342 if (flags & NDR_IN) {
31343 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
31345 ndr_print_ptr(ndr, "handle", r->in.handle);
31347 ndr_print_policy_handle(ndr, "handle", r->in.handle);
31351 if (flags & NDR_OUT) {
31352 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
31354 ndr_print_WERROR(ndr, "result", r->out.result);
31360 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
31362 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31363 if (flags & NDR_IN) {
31365 if (flags & NDR_OUT) {
31366 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31368 return NDR_ERR_SUCCESS;
31371 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
31373 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31374 if (flags & NDR_IN) {
31376 if (flags & NDR_OUT) {
31377 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31379 return NDR_ERR_SUCCESS;
31382 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
31384 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
31385 if (r == NULL) { ndr_print_null(ndr); return; }
31387 if (flags & NDR_SET_VALUES) {
31388 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31390 if (flags & NDR_IN) {
31391 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
31395 if (flags & NDR_OUT) {
31396 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
31398 ndr_print_WERROR(ndr, "result", r->out.result);
31404 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
31406 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31407 if (flags & NDR_IN) {
31408 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
31409 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31410 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
31411 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));
31412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
31413 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
31414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
31415 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
31416 if (r->in.buffer) {
31417 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
31418 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
31421 if (flags & NDR_OUT) {
31422 if (r->out.handle == NULL) {
31423 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31425 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
31426 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31428 return NDR_ERR_SUCCESS;
31431 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
31433 uint32_t size_server_name_0 = 0;
31434 uint32_t length_server_name_0 = 0;
31435 uint32_t _ptr_buffer;
31436 uint32_t size_buffer_1 = 0;
31437 TALLOC_CTX *_mem_save_buffer_0 = NULL;
31438 TALLOC_CTX *_mem_save_handle_0 = NULL;
31439 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31440 if (flags & NDR_IN) {
31441 ZERO_STRUCT(r->out);
31443 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
31444 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
31445 size_server_name_0 = ndr_get_array_size(ndr, &r->in.server_name);
31446 length_server_name_0 = ndr_get_array_length(ndr, &r->in.server_name);
31447 if (length_server_name_0 > size_server_name_0) {
31448 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_name_0, length_server_name_0);
31450 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_name_0, sizeof(uint16_t)));
31451 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, length_server_name_0, sizeof(uint16_t), CH_UTF16));
31452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
31453 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
31454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
31455 if (r->in.bufsize > 512) {
31456 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
31458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
31460 NDR_PULL_ALLOC(ndr, r->in.buffer);
31462 r->in.buffer = NULL;
31464 if (r->in.buffer) {
31465 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
31466 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
31467 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
31468 size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
31469 NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
31470 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
31471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
31473 NDR_PULL_ALLOC(ndr, r->out.handle);
31474 ZERO_STRUCTP(r->out.handle);
31475 if (r->in.buffer) {
31476 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
31479 if (flags & NDR_OUT) {
31480 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31481 NDR_PULL_ALLOC(ndr, r->out.handle);
31483 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31484 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
31485 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
31486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
31487 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31489 return NDR_ERR_SUCCESS;
31492 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
31494 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
31495 if (r == NULL) { ndr_print_null(ndr); return; }
31497 if (flags & NDR_SET_VALUES) {
31498 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31500 if (flags & NDR_IN) {
31501 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
31503 ndr_print_string(ndr, "server_name", r->in.server_name);
31504 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
31505 ndr_print_winreg_Type(ndr, "type", r->in.type);
31506 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
31507 ndr_print_ptr(ndr, "buffer", r->in.buffer);
31509 if (r->in.buffer) {
31510 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
31515 if (flags & NDR_OUT) {
31516 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
31518 ndr_print_ptr(ndr, "handle", r->out.handle);
31520 ndr_print_policy_handle(ndr, "handle", r->out.handle);
31522 ndr_print_WERROR(ndr, "result", r->out.result);
31528 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
31530 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31531 if (flags & NDR_IN) {
31532 if (r->in.handle == NULL) {
31533 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31535 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31536 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
31537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
31538 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
31539 if (r->in.buffer) {
31540 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.bufsize));
31541 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
31544 if (flags & NDR_OUT) {
31545 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31547 return NDR_ERR_SUCCESS;
31550 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
31552 uint32_t _ptr_buffer;
31553 uint32_t size_buffer_1 = 0;
31554 TALLOC_CTX *_mem_save_handle_0 = NULL;
31555 TALLOC_CTX *_mem_save_buffer_0 = NULL;
31556 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31557 if (flags & NDR_IN) {
31558 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31559 NDR_PULL_ALLOC(ndr, r->in.handle);
31561 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31562 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
31563 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
31565 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
31566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
31567 if (r->in.bufsize > 512) {
31568 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
31570 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
31572 NDR_PULL_ALLOC(ndr, r->in.buffer);
31574 r->in.buffer = NULL;
31576 if (r->in.buffer) {
31577 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
31578 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
31579 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
31580 size_buffer_1 = ndr_get_array_size(ndr, &r->in.buffer);
31581 NDR_PULL_ALLOC_N(ndr, r->in.buffer, size_buffer_1);
31582 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, size_buffer_1));
31583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
31585 if (r->in.buffer) {
31586 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
31589 if (flags & NDR_OUT) {
31590 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31592 return NDR_ERR_SUCCESS;
31595 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
31597 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
31598 if (r == NULL) { ndr_print_null(ndr); return; }
31600 if (flags & NDR_SET_VALUES) {
31601 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31603 if (flags & NDR_IN) {
31604 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
31606 ndr_print_ptr(ndr, "handle", r->in.handle);
31608 ndr_print_policy_handle(ndr, "handle", r->in.handle);
31610 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
31611 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
31612 ndr_print_ptr(ndr, "buffer", r->in.buffer);
31614 if (r->in.buffer) {
31615 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
31620 if (flags & NDR_OUT) {
31621 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
31623 ndr_print_WERROR(ndr, "result", r->out.result);
31629 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
31631 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31632 if (flags & NDR_IN) {
31633 if (r->in.handle == NULL) {
31634 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31636 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31638 if (flags & NDR_OUT) {
31639 if (r->out.handle == NULL) {
31640 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31642 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
31643 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31645 return NDR_ERR_SUCCESS;
31648 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
31650 TALLOC_CTX *_mem_save_handle_0 = NULL;
31651 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31652 if (flags & NDR_IN) {
31653 ZERO_STRUCT(r->out);
31655 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31656 NDR_PULL_ALLOC(ndr, r->in.handle);
31658 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31659 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
31660 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
31662 NDR_PULL_ALLOC(ndr, r->out.handle);
31663 *r->out.handle = *r->in.handle;
31665 if (flags & NDR_OUT) {
31666 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31667 NDR_PULL_ALLOC(ndr, r->out.handle);
31669 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
31670 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
31671 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
31672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
31673 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31675 return NDR_ERR_SUCCESS;
31678 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
31680 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
31681 if (r == NULL) { ndr_print_null(ndr); return; }
31683 if (flags & NDR_SET_VALUES) {
31684 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31686 if (flags & NDR_IN) {
31687 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
31689 ndr_print_ptr(ndr, "handle", r->in.handle);
31691 ndr_print_policy_handle(ndr, "handle", r->in.handle);
31695 if (flags & NDR_OUT) {
31696 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
31698 ndr_print_ptr(ndr, "handle", r->out.handle);
31700 ndr_print_policy_handle(ndr, "handle", r->out.handle);
31702 ndr_print_WERROR(ndr, "result", r->out.result);
31708 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
31710 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31711 if (flags & NDR_IN) {
31712 if (r->in.port_ctr == NULL) {
31713 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31715 if (r->in.port_var_ctr == NULL) {
31716 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31718 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
31719 if (r->in.servername) {
31720 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
31721 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31722 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
31723 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
31725 NDR_CHECK(ndr_push_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
31726 NDR_CHECK(ndr_push_spoolss_PortVarContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_var_ctr));
31727 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.monitor_name));
31728 if (r->in.monitor_name) {
31729 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
31730 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
31731 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
31732 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));
31735 if (flags & NDR_OUT) {
31736 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31738 return NDR_ERR_SUCCESS;
31741 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
31743 uint32_t _ptr_servername;
31744 uint32_t size_servername_1 = 0;
31745 uint32_t length_servername_1 = 0;
31746 uint32_t _ptr_monitor_name;
31747 uint32_t size_monitor_name_1 = 0;
31748 uint32_t length_monitor_name_1 = 0;
31749 TALLOC_CTX *_mem_save_servername_0 = NULL;
31750 TALLOC_CTX *_mem_save_port_ctr_0 = NULL;
31751 TALLOC_CTX *_mem_save_port_var_ctr_0 = NULL;
31752 TALLOC_CTX *_mem_save_monitor_name_0 = NULL;
31753 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31754 if (flags & NDR_IN) {
31755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
31756 if (_ptr_servername) {
31757 NDR_PULL_ALLOC(ndr, r->in.servername);
31759 r->in.servername = NULL;
31761 if (r->in.servername) {
31762 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
31763 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
31764 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
31765 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
31766 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
31767 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
31768 if (length_servername_1 > size_servername_1) {
31769 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
31771 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
31772 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
31773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
31775 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31776 NDR_PULL_ALLOC(ndr, r->in.port_ctr);
31778 _mem_save_port_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
31779 NDR_PULL_SET_MEM_CTX(ndr, r->in.port_ctr, LIBNDR_FLAG_REF_ALLOC);
31780 NDR_CHECK(ndr_pull_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
31781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_ctr_0, LIBNDR_FLAG_REF_ALLOC);
31782 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
31783 NDR_PULL_ALLOC(ndr, r->in.port_var_ctr);
31785 _mem_save_port_var_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
31786 NDR_PULL_SET_MEM_CTX(ndr, r->in.port_var_ctr, LIBNDR_FLAG_REF_ALLOC);
31787 NDR_CHECK(ndr_pull_spoolss_PortVarContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_var_ctr));
31788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_var_ctr_0, LIBNDR_FLAG_REF_ALLOC);
31789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
31790 if (_ptr_monitor_name) {
31791 NDR_PULL_ALLOC(ndr, r->in.monitor_name);
31793 r->in.monitor_name = NULL;
31795 if (r->in.monitor_name) {
31796 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
31797 NDR_PULL_SET_MEM_CTX(ndr, r->in.monitor_name, 0);
31798 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
31799 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
31800 size_monitor_name_1 = ndr_get_array_size(ndr, &r->in.monitor_name);
31801 length_monitor_name_1 = ndr_get_array_length(ndr, &r->in.monitor_name);
31802 if (length_monitor_name_1 > size_monitor_name_1) {
31803 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_monitor_name_1, length_monitor_name_1);
31805 NDR_CHECK(ndr_check_string_terminator(ndr, length_monitor_name_1, sizeof(uint16_t)));
31806 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, length_monitor_name_1, sizeof(uint16_t), CH_UTF16));
31807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
31810 if (flags & NDR_OUT) {
31811 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31813 return NDR_ERR_SUCCESS;
31816 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
31818 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
31819 if (r == NULL) { ndr_print_null(ndr); return; }
31821 if (flags & NDR_SET_VALUES) {
31822 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31824 if (flags & NDR_IN) {
31825 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
31827 ndr_print_ptr(ndr, "servername", r->in.servername);
31829 if (r->in.servername) {
31830 ndr_print_string(ndr, "servername", r->in.servername);
31833 ndr_print_ptr(ndr, "port_ctr", r->in.port_ctr);
31835 ndr_print_spoolss_SetPortInfoContainer(ndr, "port_ctr", r->in.port_ctr);
31837 ndr_print_ptr(ndr, "port_var_ctr", r->in.port_var_ctr);
31839 ndr_print_spoolss_PortVarContainer(ndr, "port_var_ctr", r->in.port_var_ctr);
31841 ndr_print_ptr(ndr, "monitor_name", r->in.monitor_name);
31843 if (r->in.monitor_name) {
31844 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
31849 if (flags & NDR_OUT) {
31850 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
31852 ndr_print_WERROR(ndr, "result", r->out.result);
31858 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
31860 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31861 if (flags & NDR_IN) {
31863 if (flags & NDR_OUT) {
31864 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31866 return NDR_ERR_SUCCESS;
31869 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
31871 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31872 if (flags & NDR_IN) {
31874 if (flags & NDR_OUT) {
31875 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31877 return NDR_ERR_SUCCESS;
31880 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
31882 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
31883 if (r == NULL) { ndr_print_null(ndr); return; }
31885 if (flags & NDR_SET_VALUES) {
31886 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31888 if (flags & NDR_IN) {
31889 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
31893 if (flags & NDR_OUT) {
31894 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
31896 ndr_print_WERROR(ndr, "result", r->out.result);
31902 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
31904 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31905 if (flags & NDR_IN) {
31907 if (flags & NDR_OUT) {
31908 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31910 return NDR_ERR_SUCCESS;
31913 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
31915 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31916 if (flags & NDR_IN) {
31918 if (flags & NDR_OUT) {
31919 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31921 return NDR_ERR_SUCCESS;
31924 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
31926 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
31927 if (r == NULL) { ndr_print_null(ndr); return; }
31929 if (flags & NDR_SET_VALUES) {
31930 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31932 if (flags & NDR_IN) {
31933 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
31937 if (flags & NDR_OUT) {
31938 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
31940 ndr_print_WERROR(ndr, "result", r->out.result);
31946 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
31948 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31949 if (flags & NDR_IN) {
31951 if (flags & NDR_OUT) {
31952 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
31954 return NDR_ERR_SUCCESS;
31957 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
31959 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
31960 if (flags & NDR_IN) {
31962 if (flags & NDR_OUT) {
31963 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
31965 return NDR_ERR_SUCCESS;
31968 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
31970 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
31971 if (r == NULL) { ndr_print_null(ndr); return; }
31973 if (flags & NDR_SET_VALUES) {
31974 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
31976 if (flags & NDR_IN) {
31977 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
31981 if (flags & NDR_OUT) {
31982 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
31984 ndr_print_WERROR(ndr, "result", r->out.result);
31990 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
31992 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
31993 if (flags & NDR_IN) {
31994 if (r->in.handle == NULL) {
31995 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
31997 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
31998 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
31999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
32000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
32001 if (r->in.local_machine) {
32002 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
32003 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32004 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
32005 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));
32007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
32008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
32009 if (r->in.notify_options) {
32010 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
32013 if (flags & NDR_OUT) {
32014 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32016 return NDR_ERR_SUCCESS;
32019 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
32021 uint32_t _ptr_local_machine;
32022 uint32_t size_local_machine_1 = 0;
32023 uint32_t length_local_machine_1 = 0;
32024 uint32_t _ptr_notify_options;
32025 TALLOC_CTX *_mem_save_handle_0 = NULL;
32026 TALLOC_CTX *_mem_save_local_machine_0 = NULL;
32027 TALLOC_CTX *_mem_save_notify_options_0 = NULL;
32028 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32029 if (flags & NDR_IN) {
32030 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32031 NDR_PULL_ALLOC(ndr, r->in.handle);
32033 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32034 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
32035 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32037 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
32038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
32039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
32040 if (_ptr_local_machine) {
32041 NDR_PULL_ALLOC(ndr, r->in.local_machine);
32043 r->in.local_machine = NULL;
32045 if (r->in.local_machine) {
32046 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
32047 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
32048 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
32049 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
32050 size_local_machine_1 = ndr_get_array_size(ndr, &r->in.local_machine);
32051 length_local_machine_1 = ndr_get_array_length(ndr, &r->in.local_machine);
32052 if (length_local_machine_1 > size_local_machine_1) {
32053 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_local_machine_1, length_local_machine_1);
32055 NDR_CHECK(ndr_check_string_terminator(ndr, length_local_machine_1, sizeof(uint16_t)));
32056 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, length_local_machine_1, sizeof(uint16_t), CH_UTF16));
32057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
32059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
32060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
32061 if (_ptr_notify_options) {
32062 NDR_PULL_ALLOC(ndr, r->in.notify_options);
32064 r->in.notify_options = NULL;
32066 if (r->in.notify_options) {
32067 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
32068 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
32069 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
32070 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
32073 if (flags & NDR_OUT) {
32074 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32076 return NDR_ERR_SUCCESS;
32079 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
32081 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
32082 if (r == NULL) { ndr_print_null(ndr); return; }
32084 if (flags & NDR_SET_VALUES) {
32085 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32087 if (flags & NDR_IN) {
32088 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
32090 ndr_print_ptr(ndr, "handle", r->in.handle);
32092 ndr_print_policy_handle(ndr, "handle", r->in.handle);
32094 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
32095 ndr_print_uint32(ndr, "options", r->in.options);
32096 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
32098 if (r->in.local_machine) {
32099 ndr_print_string(ndr, "local_machine", r->in.local_machine);
32102 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
32103 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
32105 if (r->in.notify_options) {
32106 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
32111 if (flags & NDR_OUT) {
32112 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
32114 ndr_print_WERROR(ndr, "result", r->out.result);
32120 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
32122 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32123 if (flags & NDR_IN) {
32124 if (r->in.handle == NULL) {
32125 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32127 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
32129 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
32130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
32131 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
32132 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
32134 if (flags & NDR_OUT) {
32135 if (r->out.reply_result == NULL) {
32136 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32138 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
32139 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32141 return NDR_ERR_SUCCESS;
32144 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
32146 TALLOC_CTX *_mem_save_handle_0 = NULL;
32147 TALLOC_CTX *_mem_save_reply_result_0 = NULL;
32148 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32149 if (flags & NDR_IN) {
32150 ZERO_STRUCT(r->out);
32152 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32153 NDR_PULL_ALLOC(ndr, r->in.handle);
32155 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32156 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
32157 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
32160 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
32161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
32162 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
32163 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
32164 NDR_PULL_ALLOC(ndr, r->out.reply_result);
32165 ZERO_STRUCTP(r->out.reply_result);
32167 if (flags & NDR_OUT) {
32168 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32169 NDR_PULL_ALLOC(ndr, r->out.reply_result);
32171 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
32172 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
32173 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
32174 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
32175 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32177 return NDR_ERR_SUCCESS;
32180 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
32182 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
32183 if (r == NULL) { ndr_print_null(ndr); return; }
32185 if (flags & NDR_SET_VALUES) {
32186 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32188 if (flags & NDR_IN) {
32189 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
32191 ndr_print_ptr(ndr, "handle", r->in.handle);
32193 ndr_print_policy_handle(ndr, "handle", r->in.handle);
32195 ndr_print_uint32(ndr, "color", r->in.color);
32196 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
32197 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
32198 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
32199 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
32202 if (flags & NDR_OUT) {
32203 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
32205 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
32207 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
32209 ndr_print_WERROR(ndr, "result", r->out.result);
32215 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
32217 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32218 if (flags & NDR_IN) {
32219 if (r->in.handle == NULL) {
32220 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32222 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
32224 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
32225 if (r->in.options) {
32226 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
32229 if (flags & NDR_OUT) {
32230 if (r->out.info == NULL) {
32231 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32233 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
32234 if (*r->out.info) {
32235 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
32237 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32239 return NDR_ERR_SUCCESS;
32242 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
32244 uint32_t _ptr_options;
32245 uint32_t _ptr_info;
32246 TALLOC_CTX *_mem_save_handle_0 = NULL;
32247 TALLOC_CTX *_mem_save_options_0 = NULL;
32248 TALLOC_CTX *_mem_save_info_0 = NULL;
32249 TALLOC_CTX *_mem_save_info_1 = NULL;
32250 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32251 if (flags & NDR_IN) {
32252 ZERO_STRUCT(r->out);
32254 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32255 NDR_PULL_ALLOC(ndr, r->in.handle);
32257 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32258 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
32259 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32261 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
32262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
32263 if (_ptr_options) {
32264 NDR_PULL_ALLOC(ndr, r->in.options);
32266 r->in.options = NULL;
32268 if (r->in.options) {
32269 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
32270 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
32271 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
32272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
32274 NDR_PULL_ALLOC(ndr, r->out.info);
32275 ZERO_STRUCTP(r->out.info);
32277 if (flags & NDR_OUT) {
32278 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32279 NDR_PULL_ALLOC(ndr, r->out.info);
32281 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
32282 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
32283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
32285 NDR_PULL_ALLOC(ndr, *r->out.info);
32287 *r->out.info = NULL;
32289 if (*r->out.info) {
32290 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
32291 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
32292 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
32293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
32295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
32296 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32298 return NDR_ERR_SUCCESS;
32301 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
32303 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
32304 if (r == NULL) { ndr_print_null(ndr); return; }
32306 if (flags & NDR_SET_VALUES) {
32307 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32309 if (flags & NDR_IN) {
32310 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
32312 ndr_print_ptr(ndr, "handle", r->in.handle);
32314 ndr_print_policy_handle(ndr, "handle", r->in.handle);
32316 ndr_print_uint32(ndr, "change_low", r->in.change_low);
32317 ndr_print_ptr(ndr, "options", r->in.options);
32319 if (r->in.options) {
32320 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
32325 if (flags & NDR_OUT) {
32326 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
32328 ndr_print_ptr(ndr, "info", r->out.info);
32330 ndr_print_ptr(ndr, "info", *r->out.info);
32332 if (*r->out.info) {
32333 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
32337 ndr_print_WERROR(ndr, "result", r->out.result);
32343 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
32345 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32346 if (flags & NDR_IN) {
32348 if (flags & NDR_OUT) {
32349 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32351 return NDR_ERR_SUCCESS;
32354 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
32356 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32357 if (flags & NDR_IN) {
32359 if (flags & NDR_OUT) {
32360 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32362 return NDR_ERR_SUCCESS;
32365 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
32367 ndr_print_struct(ndr, name, "spoolss_44");
32368 if (r == NULL) { ndr_print_null(ndr); return; }
32370 if (flags & NDR_SET_VALUES) {
32371 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32373 if (flags & NDR_IN) {
32374 ndr_print_struct(ndr, "in", "spoolss_44");
32378 if (flags & NDR_OUT) {
32379 ndr_print_struct(ndr, "out", "spoolss_44");
32381 ndr_print_WERROR(ndr, "result", r->out.result);
32387 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
32389 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32390 if (flags & NDR_IN) {
32391 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
32392 if (r->in.printername) {
32393 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
32394 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32395 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
32396 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
32398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
32399 if (r->in.datatype) {
32400 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
32401 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32402 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
32403 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
32405 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
32406 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
32407 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel_ctr));
32409 if (flags & NDR_OUT) {
32410 if (r->out.handle == NULL) {
32411 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32413 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
32414 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32416 return NDR_ERR_SUCCESS;
32419 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
32421 uint32_t _ptr_printername;
32422 uint32_t size_printername_1 = 0;
32423 uint32_t length_printername_1 = 0;
32424 uint32_t _ptr_datatype;
32425 uint32_t size_datatype_1 = 0;
32426 uint32_t length_datatype_1 = 0;
32427 TALLOC_CTX *_mem_save_printername_0 = NULL;
32428 TALLOC_CTX *_mem_save_datatype_0 = NULL;
32429 TALLOC_CTX *_mem_save_handle_0 = NULL;
32430 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32431 if (flags & NDR_IN) {
32432 ZERO_STRUCT(r->out);
32434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
32435 if (_ptr_printername) {
32436 NDR_PULL_ALLOC(ndr, r->in.printername);
32438 r->in.printername = NULL;
32440 if (r->in.printername) {
32441 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
32442 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
32443 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
32444 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
32445 size_printername_1 = ndr_get_array_size(ndr, &r->in.printername);
32446 length_printername_1 = ndr_get_array_length(ndr, &r->in.printername);
32447 if (length_printername_1 > size_printername_1) {
32448 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
32450 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
32451 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
32452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
32454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
32455 if (_ptr_datatype) {
32456 NDR_PULL_ALLOC(ndr, r->in.datatype);
32458 r->in.datatype = NULL;
32460 if (r->in.datatype) {
32461 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
32462 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
32463 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
32464 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
32465 size_datatype_1 = ndr_get_array_size(ndr, &r->in.datatype);
32466 length_datatype_1 = ndr_get_array_length(ndr, &r->in.datatype);
32467 if (length_datatype_1 > size_datatype_1) {
32468 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_datatype_1, length_datatype_1);
32470 NDR_CHECK(ndr_check_string_terminator(ndr, length_datatype_1, sizeof(uint16_t)));
32471 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, length_datatype_1, sizeof(uint16_t), CH_UTF16));
32472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
32474 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
32475 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
32476 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel_ctr));
32477 NDR_PULL_ALLOC(ndr, r->out.handle);
32478 ZERO_STRUCTP(r->out.handle);
32480 if (flags & NDR_OUT) {
32481 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32482 NDR_PULL_ALLOC(ndr, r->out.handle);
32484 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32485 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
32486 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
32487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32488 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32490 return NDR_ERR_SUCCESS;
32493 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
32495 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
32496 if (r == NULL) { ndr_print_null(ndr); return; }
32498 if (flags & NDR_SET_VALUES) {
32499 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32501 if (flags & NDR_IN) {
32502 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
32504 ndr_print_ptr(ndr, "printername", r->in.printername);
32506 if (r->in.printername) {
32507 ndr_print_string(ndr, "printername", r->in.printername);
32510 ndr_print_ptr(ndr, "datatype", r->in.datatype);
32512 if (r->in.datatype) {
32513 ndr_print_string(ndr, "datatype", r->in.datatype);
32516 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
32517 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
32518 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", &r->in.userlevel_ctr);
32521 if (flags & NDR_OUT) {
32522 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
32524 ndr_print_ptr(ndr, "handle", r->out.handle);
32526 ndr_print_policy_handle(ndr, "handle", r->out.handle);
32528 ndr_print_WERROR(ndr, "result", r->out.result);
32534 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
32536 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32537 if (flags & NDR_IN) {
32538 if (r->in.info_ctr == NULL) {
32539 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32541 if (r->in.devmode_ctr == NULL) {
32542 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32544 if (r->in.secdesc_ctr == NULL) {
32545 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32547 if (r->in.userlevel_ctr == NULL) {
32548 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32550 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
32551 if (r->in.server) {
32552 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
32553 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32554 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
32555 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
32557 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
32558 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
32559 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
32560 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
32562 if (flags & NDR_OUT) {
32563 if (r->out.handle == NULL) {
32564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32566 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
32567 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32569 return NDR_ERR_SUCCESS;
32572 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
32574 uint32_t _ptr_server;
32575 uint32_t size_server_1 = 0;
32576 uint32_t length_server_1 = 0;
32577 TALLOC_CTX *_mem_save_server_0 = NULL;
32578 TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
32579 TALLOC_CTX *_mem_save_devmode_ctr_0 = NULL;
32580 TALLOC_CTX *_mem_save_secdesc_ctr_0 = NULL;
32581 TALLOC_CTX *_mem_save_userlevel_ctr_0 = NULL;
32582 TALLOC_CTX *_mem_save_handle_0 = NULL;
32583 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32584 if (flags & NDR_IN) {
32585 ZERO_STRUCT(r->out);
32587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
32589 NDR_PULL_ALLOC(ndr, r->in.server);
32591 r->in.server = NULL;
32593 if (r->in.server) {
32594 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
32595 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
32596 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
32597 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
32598 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
32599 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
32600 if (length_server_1 > size_server_1) {
32601 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
32603 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
32604 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
32605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
32607 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32608 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
32610 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
32611 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
32612 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
32613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
32614 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32615 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
32617 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
32618 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
32619 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
32620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
32621 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32622 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
32624 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
32625 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
32626 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
32627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
32628 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32629 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
32631 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
32632 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
32633 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
32634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
32635 NDR_PULL_ALLOC(ndr, r->out.handle);
32636 ZERO_STRUCTP(r->out.handle);
32638 if (flags & NDR_OUT) {
32639 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32640 NDR_PULL_ALLOC(ndr, r->out.handle);
32642 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32643 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
32644 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
32645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32646 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32648 return NDR_ERR_SUCCESS;
32651 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
32653 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
32654 if (r == NULL) { ndr_print_null(ndr); return; }
32656 if (flags & NDR_SET_VALUES) {
32657 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32659 if (flags & NDR_IN) {
32660 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
32662 ndr_print_ptr(ndr, "server", r->in.server);
32664 if (r->in.server) {
32665 ndr_print_string(ndr, "server", r->in.server);
32668 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
32670 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
32672 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
32674 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
32676 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
32678 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
32680 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
32682 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
32686 if (flags & NDR_OUT) {
32687 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
32689 ndr_print_ptr(ndr, "handle", r->out.handle);
32691 ndr_print_policy_handle(ndr, "handle", r->out.handle);
32693 ndr_print_WERROR(ndr, "result", r->out.result);
32699 static enum ndr_err_code ndr_push_spoolss_SetPort(struct ndr_push *ndr, int flags, const struct spoolss_SetPort *r)
32701 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32702 if (flags & NDR_IN) {
32703 if (r->in.port_ctr == NULL) {
32704 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
32707 if (r->in.servername) {
32708 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
32709 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32710 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
32711 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
32713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.port_name));
32714 if (r->in.port_name) {
32715 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
32716 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
32717 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.port_name, CH_UTF16)));
32718 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.port_name, ndr_charset_length(r->in.port_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
32720 NDR_CHECK(ndr_push_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
32722 if (flags & NDR_OUT) {
32723 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32725 return NDR_ERR_SUCCESS;
32728 static enum ndr_err_code ndr_pull_spoolss_SetPort(struct ndr_pull *ndr, int flags, struct spoolss_SetPort *r)
32730 uint32_t _ptr_servername;
32731 uint32_t size_servername_1 = 0;
32732 uint32_t length_servername_1 = 0;
32733 uint32_t _ptr_port_name;
32734 uint32_t size_port_name_1 = 0;
32735 uint32_t length_port_name_1 = 0;
32736 TALLOC_CTX *_mem_save_servername_0 = NULL;
32737 TALLOC_CTX *_mem_save_port_name_0 = NULL;
32738 TALLOC_CTX *_mem_save_port_ctr_0 = NULL;
32739 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32740 if (flags & NDR_IN) {
32741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
32742 if (_ptr_servername) {
32743 NDR_PULL_ALLOC(ndr, r->in.servername);
32745 r->in.servername = NULL;
32747 if (r->in.servername) {
32748 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
32749 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
32750 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
32751 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
32752 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
32753 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
32754 if (length_servername_1 > size_servername_1) {
32755 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
32757 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
32758 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
32759 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
32761 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
32762 if (_ptr_port_name) {
32763 NDR_PULL_ALLOC(ndr, r->in.port_name);
32765 r->in.port_name = NULL;
32767 if (r->in.port_name) {
32768 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
32769 NDR_PULL_SET_MEM_CTX(ndr, r->in.port_name, 0);
32770 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.port_name));
32771 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.port_name));
32772 size_port_name_1 = ndr_get_array_size(ndr, &r->in.port_name);
32773 length_port_name_1 = ndr_get_array_length(ndr, &r->in.port_name);
32774 if (length_port_name_1 > size_port_name_1) {
32775 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_port_name_1, length_port_name_1);
32777 NDR_CHECK(ndr_check_string_terminator(ndr, length_port_name_1, sizeof(uint16_t)));
32778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.port_name, length_port_name_1, sizeof(uint16_t), CH_UTF16));
32779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
32781 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32782 NDR_PULL_ALLOC(ndr, r->in.port_ctr);
32784 _mem_save_port_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
32785 NDR_PULL_SET_MEM_CTX(ndr, r->in.port_ctr, LIBNDR_FLAG_REF_ALLOC);
32786 NDR_CHECK(ndr_pull_spoolss_SetPortInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.port_ctr));
32787 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_ctr_0, LIBNDR_FLAG_REF_ALLOC);
32789 if (flags & NDR_OUT) {
32790 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32792 return NDR_ERR_SUCCESS;
32795 _PUBLIC_ void ndr_print_spoolss_SetPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPort *r)
32797 ndr_print_struct(ndr, name, "spoolss_SetPort");
32798 if (r == NULL) { ndr_print_null(ndr); return; }
32800 if (flags & NDR_SET_VALUES) {
32801 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32803 if (flags & NDR_IN) {
32804 ndr_print_struct(ndr, "in", "spoolss_SetPort");
32806 ndr_print_ptr(ndr, "servername", r->in.servername);
32808 if (r->in.servername) {
32809 ndr_print_string(ndr, "servername", r->in.servername);
32812 ndr_print_ptr(ndr, "port_name", r->in.port_name);
32814 if (r->in.port_name) {
32815 ndr_print_string(ndr, "port_name", r->in.port_name);
32818 ndr_print_ptr(ndr, "port_ctr", r->in.port_ctr);
32820 ndr_print_spoolss_SetPortInfoContainer(ndr, "port_ctr", r->in.port_ctr);
32824 if (flags & NDR_OUT) {
32825 ndr_print_struct(ndr, "out", "spoolss_SetPort");
32827 ndr_print_WERROR(ndr, "result", r->out.result);
32833 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
32835 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
32836 if (flags & NDR_IN) {
32837 if (r->in.handle == NULL) {
32838 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32840 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
32842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
32843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
32845 if (flags & NDR_OUT) {
32846 if (r->out.value_needed == NULL) {
32847 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32849 if (r->out.type == NULL) {
32850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32852 if (r->out.data == NULL) {
32853 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32855 if (r->out.data_needed == NULL) {
32856 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
32858 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.value_offered / 2));
32859 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
32860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
32861 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
32863 uint32_t _flags_save_uint8 = ndr->flags;
32864 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
32865 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.data_offered));
32866 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
32867 ndr->flags = _flags_save_uint8;
32869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
32870 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
32872 return NDR_ERR_SUCCESS;
32875 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
32877 uint32_t size_value_name_0 = 0;
32878 uint32_t size_data_1 = 0;
32879 TALLOC_CTX *_mem_save_handle_0 = NULL;
32880 TALLOC_CTX *_mem_save_value_needed_0 = NULL;
32881 TALLOC_CTX *_mem_save_type_0 = NULL;
32882 TALLOC_CTX *_mem_save_data_needed_0 = NULL;
32883 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
32884 if (flags & NDR_IN) {
32885 ZERO_STRUCT(r->out);
32887 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32888 NDR_PULL_ALLOC(ndr, r->in.handle);
32890 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
32891 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
32892 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
32893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
32894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
32895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
32896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
32897 NDR_PULL_ALLOC(ndr, r->out.value_needed);
32898 ZERO_STRUCTP(r->out.value_needed);
32899 NDR_PULL_ALLOC(ndr, r->out.type);
32900 ZERO_STRUCTP(r->out.type);
32901 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
32902 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
32903 NDR_PULL_ALLOC(ndr, r->out.data_needed);
32904 ZERO_STRUCTP(r->out.data_needed);
32906 if (flags & NDR_OUT) {
32907 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
32908 size_value_name_0 = ndr_get_array_size(ndr, &r->out.value_name);
32909 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, size_value_name_0, sizeof(uint16_t), CH_UTF16));
32910 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32911 NDR_PULL_ALLOC(ndr, r->out.value_needed);
32913 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
32914 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
32915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
32916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
32917 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32918 NDR_PULL_ALLOC(ndr, r->out.type);
32920 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
32921 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
32922 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
32923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
32925 uint32_t _flags_save_uint8 = ndr->flags;
32926 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
32927 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
32928 size_data_1 = ndr_get_array_size(ndr, &r->out.data);
32929 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32930 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
32932 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
32933 ndr->flags = _flags_save_uint8;
32935 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
32936 NDR_PULL_ALLOC(ndr, r->out.data_needed);
32938 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
32939 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
32940 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
32941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
32942 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
32943 if (r->out.value_name) {
32944 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
32947 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
32950 return NDR_ERR_SUCCESS;
32953 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
32955 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
32956 if (r == NULL) { ndr_print_null(ndr); return; }
32958 if (flags & NDR_SET_VALUES) {
32959 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
32961 if (flags & NDR_IN) {
32962 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
32964 ndr_print_ptr(ndr, "handle", r->in.handle);
32966 ndr_print_policy_handle(ndr, "handle", r->in.handle);
32968 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
32969 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
32970 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
32973 if (flags & NDR_OUT) {
32974 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
32976 ndr_print_string(ndr, "value_name", r->out.value_name);
32977 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
32979 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
32981 ndr_print_ptr(ndr, "type", r->out.type);
32983 ndr_print_winreg_Type(ndr, "type", *r->out.type);
32985 ndr_print_ptr(ndr, "data", r->out.data);
32987 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
32989 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
32991 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
32993 ndr_print_WERROR(ndr, "result", r->out.result);
32999 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
33001 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33002 if (flags & NDR_IN) {
33003 if (r->in.handle == NULL) {
33004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33006 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
33008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
33010 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));
33012 if (flags & NDR_OUT) {
33013 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33015 return NDR_ERR_SUCCESS;
33018 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
33020 uint32_t size_value_name_0 = 0;
33021 uint32_t length_value_name_0 = 0;
33022 TALLOC_CTX *_mem_save_handle_0 = NULL;
33023 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33024 if (flags & NDR_IN) {
33025 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33026 NDR_PULL_ALLOC(ndr, r->in.handle);
33028 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33029 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33030 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33032 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
33033 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
33034 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
33035 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
33036 if (length_value_name_0 > size_value_name_0) {
33037 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
33039 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
33040 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
33042 if (flags & NDR_OUT) {
33043 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33045 return NDR_ERR_SUCCESS;
33048 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
33050 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
33051 if (r == NULL) { ndr_print_null(ndr); return; }
33053 if (flags & NDR_SET_VALUES) {
33054 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33056 if (flags & NDR_IN) {
33057 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
33059 ndr_print_ptr(ndr, "handle", r->in.handle);
33061 ndr_print_policy_handle(ndr, "handle", r->in.handle);
33063 ndr_print_string(ndr, "value_name", r->in.value_name);
33066 if (flags & NDR_OUT) {
33067 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
33069 ndr_print_WERROR(ndr, "result", r->out.result);
33075 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
33077 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33078 if (flags & NDR_IN) {
33080 if (flags & NDR_OUT) {
33081 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33083 return NDR_ERR_SUCCESS;
33086 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
33088 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33089 if (flags & NDR_IN) {
33091 if (flags & NDR_OUT) {
33092 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33094 return NDR_ERR_SUCCESS;
33097 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
33099 ndr_print_struct(ndr, name, "spoolss_4a");
33100 if (r == NULL) { ndr_print_null(ndr); return; }
33102 if (flags & NDR_SET_VALUES) {
33103 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33105 if (flags & NDR_IN) {
33106 ndr_print_struct(ndr, "in", "spoolss_4a");
33110 if (flags & NDR_OUT) {
33111 ndr_print_struct(ndr, "out", "spoolss_4a");
33113 ndr_print_WERROR(ndr, "result", r->out.result);
33119 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
33121 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33122 if (flags & NDR_IN) {
33124 if (flags & NDR_OUT) {
33125 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33127 return NDR_ERR_SUCCESS;
33130 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
33132 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33133 if (flags & NDR_IN) {
33135 if (flags & NDR_OUT) {
33136 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33138 return NDR_ERR_SUCCESS;
33141 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
33143 ndr_print_struct(ndr, name, "spoolss_4b");
33144 if (r == NULL) { ndr_print_null(ndr); return; }
33146 if (flags & NDR_SET_VALUES) {
33147 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33149 if (flags & NDR_IN) {
33150 ndr_print_struct(ndr, "in", "spoolss_4b");
33154 if (flags & NDR_OUT) {
33155 ndr_print_struct(ndr, "out", "spoolss_4b");
33157 ndr_print_WERROR(ndr, "result", r->out.result);
33163 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
33165 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33166 if (flags & NDR_IN) {
33168 if (flags & NDR_OUT) {
33169 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33171 return NDR_ERR_SUCCESS;
33174 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
33176 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33177 if (flags & NDR_IN) {
33179 if (flags & NDR_OUT) {
33180 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33182 return NDR_ERR_SUCCESS;
33185 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
33187 ndr_print_struct(ndr, name, "spoolss_4c");
33188 if (r == NULL) { ndr_print_null(ndr); return; }
33190 if (flags & NDR_SET_VALUES) {
33191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33193 if (flags & NDR_IN) {
33194 ndr_print_struct(ndr, "in", "spoolss_4c");
33198 if (flags & NDR_OUT) {
33199 ndr_print_struct(ndr, "out", "spoolss_4c");
33201 ndr_print_WERROR(ndr, "result", r->out.result);
33207 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
33209 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33210 if (flags & NDR_IN) {
33211 if (r->in.handle == NULL) {
33212 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33214 if (r->in.data == NULL) {
33215 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33217 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33218 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33219 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33220 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33221 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));
33222 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
33223 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33224 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
33225 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));
33226 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
33227 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
33228 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.data, r->in.offered));
33229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
33231 if (flags & NDR_OUT) {
33232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33234 return NDR_ERR_SUCCESS;
33237 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
33239 uint32_t size_key_name_0 = 0;
33240 uint32_t length_key_name_0 = 0;
33241 uint32_t size_value_name_0 = 0;
33242 uint32_t length_value_name_0 = 0;
33243 uint32_t size_data_1 = 0;
33244 TALLOC_CTX *_mem_save_handle_0 = NULL;
33245 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33246 if (flags & NDR_IN) {
33247 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33248 NDR_PULL_ALLOC(ndr, r->in.handle);
33250 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33251 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33252 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33254 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
33255 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
33256 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
33257 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
33258 if (length_key_name_0 > size_key_name_0) {
33259 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
33261 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
33262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
33263 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
33264 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
33265 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
33266 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
33267 if (length_value_name_0 > size_value_name_0) {
33268 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
33270 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
33271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
33272 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
33273 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data));
33274 size_data_1 = ndr_get_array_size(ndr, &r->in.data);
33275 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33276 NDR_PULL_ALLOC_N(ndr, r->in.data, size_data_1);
33278 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.data, size_data_1));
33279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
33281 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.data, r->in.offered));
33284 if (flags & NDR_OUT) {
33285 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33287 return NDR_ERR_SUCCESS;
33290 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
33292 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
33293 if (r == NULL) { ndr_print_null(ndr); return; }
33295 if (flags & NDR_SET_VALUES) {
33296 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33298 if (flags & NDR_IN) {
33299 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
33301 ndr_print_ptr(ndr, "handle", r->in.handle);
33303 ndr_print_policy_handle(ndr, "handle", r->in.handle);
33305 ndr_print_string(ndr, "key_name", r->in.key_name);
33306 ndr_print_string(ndr, "value_name", r->in.value_name);
33307 ndr_print_winreg_Type(ndr, "type", r->in.type);
33308 ndr_print_ptr(ndr, "data", r->in.data);
33310 ndr_print_array_uint8(ndr, "data", r->in.data, r->in.offered);
33312 ndr_print_uint32(ndr, "offered", r->in.offered);
33315 if (flags & NDR_OUT) {
33316 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
33318 ndr_print_WERROR(ndr, "result", r->out.result);
33324 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
33326 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33327 if (flags & NDR_IN) {
33328 if (r->in.handle == NULL) {
33329 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33331 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33333 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33334 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33335 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));
33336 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
33337 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33338 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
33339 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));
33340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
33342 if (flags & NDR_OUT) {
33343 if (r->out.type == NULL) {
33344 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33346 if (r->out.data == NULL) {
33347 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33349 if (r->out.needed == NULL) {
33350 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33352 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
33353 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.offered));
33354 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.offered));
33355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
33356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33358 return NDR_ERR_SUCCESS;
33361 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
33363 uint32_t size_key_name_0 = 0;
33364 uint32_t length_key_name_0 = 0;
33365 uint32_t size_value_name_0 = 0;
33366 uint32_t length_value_name_0 = 0;
33367 uint32_t size_data_1 = 0;
33368 TALLOC_CTX *_mem_save_handle_0 = NULL;
33369 TALLOC_CTX *_mem_save_type_0 = NULL;
33370 TALLOC_CTX *_mem_save_needed_0 = NULL;
33371 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33372 if (flags & NDR_IN) {
33373 ZERO_STRUCT(r->out);
33375 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33376 NDR_PULL_ALLOC(ndr, r->in.handle);
33378 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33379 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33380 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33382 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
33383 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
33384 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
33385 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
33386 if (length_key_name_0 > size_key_name_0) {
33387 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
33389 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
33390 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
33391 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
33392 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
33393 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
33394 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
33395 if (length_value_name_0 > size_value_name_0) {
33396 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
33398 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
33399 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
33400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
33401 NDR_PULL_ALLOC(ndr, r->out.type);
33402 ZERO_STRUCTP(r->out.type);
33403 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.offered);
33404 memset(r->out.data, 0, (r->in.offered) * sizeof(*r->out.data));
33405 NDR_PULL_ALLOC(ndr, r->out.needed);
33406 ZERO_STRUCTP(r->out.needed);
33408 if (flags & NDR_OUT) {
33409 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33410 NDR_PULL_ALLOC(ndr, r->out.type);
33412 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
33413 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
33414 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
33415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
33416 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
33417 size_data_1 = ndr_get_array_size(ndr, &r->out.data);
33418 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33419 NDR_PULL_ALLOC_N(ndr, r->out.data, size_data_1);
33421 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, size_data_1));
33422 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33423 NDR_PULL_ALLOC(ndr, r->out.needed);
33425 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
33426 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
33427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
33428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
33429 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33431 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.offered));
33434 return NDR_ERR_SUCCESS;
33437 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
33439 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
33440 if (r == NULL) { ndr_print_null(ndr); return; }
33442 if (flags & NDR_SET_VALUES) {
33443 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33445 if (flags & NDR_IN) {
33446 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
33448 ndr_print_ptr(ndr, "handle", r->in.handle);
33450 ndr_print_policy_handle(ndr, "handle", r->in.handle);
33452 ndr_print_string(ndr, "key_name", r->in.key_name);
33453 ndr_print_string(ndr, "value_name", r->in.value_name);
33454 ndr_print_uint32(ndr, "offered", r->in.offered);
33457 if (flags & NDR_OUT) {
33458 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
33460 ndr_print_ptr(ndr, "type", r->out.type);
33462 ndr_print_winreg_Type(ndr, "type", *r->out.type);
33464 ndr_print_ptr(ndr, "data", r->out.data);
33466 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.offered);
33468 ndr_print_ptr(ndr, "needed", r->out.needed);
33470 ndr_print_uint32(ndr, "needed", *r->out.needed);
33472 ndr_print_WERROR(ndr, "result", r->out.result);
33478 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDataEx *r)
33480 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33481 if (flags & NDR_IN) {
33482 if (r->in.handle == NULL) {
33483 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33485 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33486 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33487 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33488 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33489 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));
33490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
33492 if (flags & NDR_OUT) {
33493 if (r->out.needed == NULL) {
33494 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33496 if (r->out.count == NULL) {
33497 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33499 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
33500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
33501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
33502 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33504 return NDR_ERR_SUCCESS;
33507 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDataEx *r)
33509 uint32_t size_key_name_0 = 0;
33510 uint32_t length_key_name_0 = 0;
33511 TALLOC_CTX *_mem_save_handle_0 = NULL;
33512 TALLOC_CTX *_mem_save_needed_0 = NULL;
33513 TALLOC_CTX *_mem_save_count_0 = NULL;
33514 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33515 if (flags & NDR_IN) {
33516 ZERO_STRUCT(r->out);
33518 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33519 NDR_PULL_ALLOC(ndr, r->in.handle);
33521 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33522 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33523 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33525 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
33526 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
33527 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
33528 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
33529 if (length_key_name_0 > size_key_name_0) {
33530 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
33532 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
33533 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
33534 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
33535 NDR_PULL_ALLOC(ndr, r->out.needed);
33536 ZERO_STRUCTP(r->out.needed);
33537 NDR_PULL_ALLOC(ndr, r->out.count);
33538 ZERO_STRUCTP(r->out.count);
33540 if (flags & NDR_OUT) {
33541 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.info));
33542 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33543 NDR_PULL_ALLOC(ndr, r->out.needed);
33545 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
33546 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
33547 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
33548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
33549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33550 NDR_PULL_ALLOC(ndr, r->out.count);
33552 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
33553 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
33554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
33555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
33556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33558 return NDR_ERR_SUCCESS;
33561 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDataEx *r)
33563 uint32_t cntr_info_0;
33564 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33565 if (flags & NDR_IN) {
33566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
33568 if (flags & NDR_OUT) {
33569 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
33570 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
33572 for (cntr_info_0 = 0; cntr_info_0 < (r->in.count); cntr_info_0++) {
33573 NDR_CHECK(ndr_push_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
33576 return NDR_ERR_SUCCESS;
33579 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDataEx *r)
33581 uint32_t size_info_0 = 0;
33582 uint32_t cntr_info_0;
33583 TALLOC_CTX *_mem_save_info_0 = NULL;
33584 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33585 if (flags & NDR_IN) {
33586 ZERO_STRUCT(r->out);
33588 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
33590 if (flags & NDR_OUT) {
33591 size_info_0 = r->in.count;
33592 NDR_PULL_ALLOC_N(ndr, r->out.info, size_info_0);
33593 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
33594 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
33595 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
33596 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
33598 for (cntr_info_0 = 0; cntr_info_0 < (size_info_0); cntr_info_0++) {
33599 NDR_CHECK(ndr_pull_spoolss_PrinterEnumValues(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
33601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
33603 return NDR_ERR_SUCCESS;
33606 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
33608 uint32_t cntr_info_2;
33609 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
33610 if (r == NULL) { ndr_print_null(ndr); return; }
33612 if (flags & NDR_SET_VALUES) {
33613 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33615 if (flags & NDR_IN) {
33616 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
33618 ndr_print_ptr(ndr, "handle", r->in.handle);
33620 ndr_print_policy_handle(ndr, "handle", r->in.handle);
33622 ndr_print_string(ndr, "key_name", r->in.key_name);
33623 ndr_print_uint32(ndr, "offered", r->in.offered);
33626 if (flags & NDR_OUT) {
33627 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
33629 ndr_print_ptr(ndr, "count", r->out.count);
33631 ndr_print_uint32(ndr, "count", *r->out.count);
33633 ndr_print_ptr(ndr, "info", r->out.info);
33635 ndr_print_ptr(ndr, "info", *r->out.info);
33637 if (*r->out.info) {
33638 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
33640 for (cntr_info_2 = 0; cntr_info_2 < (*r->out.count); cntr_info_2++) {
33641 ndr_print_spoolss_PrinterEnumValues(ndr, "info", &(*r->out.info)[cntr_info_2]);
33647 ndr_print_ptr(ndr, "needed", r->out.needed);
33649 ndr_print_uint32(ndr, "needed", *r->out.needed);
33651 ndr_print_WERROR(ndr, "result", r->out.result);
33657 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
33659 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33660 if (flags & NDR_IN) {
33661 if (r->in.handle == NULL) {
33662 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33664 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33665 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33666 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33667 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33668 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));
33669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
33671 if (flags & NDR_OUT) {
33672 if (r->out._ndr_size == NULL) {
33673 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33675 if (r->out.key_buffer == NULL) {
33676 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33678 if (r->out.needed == NULL) {
33679 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._ndr_size));
33683 struct ndr_push *_ndr_key_buffer;
33684 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
33685 NDR_CHECK(ndr_push_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
33686 NDR_CHECK(ndr_push_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
33687 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
33689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
33690 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33692 return NDR_ERR_SUCCESS;
33695 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
33697 uint32_t size_key_name_0 = 0;
33698 uint32_t length_key_name_0 = 0;
33699 TALLOC_CTX *_mem_save_handle_0 = NULL;
33700 TALLOC_CTX *_mem_save__ndr_size_0 = NULL;
33701 TALLOC_CTX *_mem_save_key_buffer_0 = NULL;
33702 TALLOC_CTX *_mem_save_needed_0 = NULL;
33703 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33704 if (flags & NDR_IN) {
33705 ZERO_STRUCT(r->out);
33707 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33708 NDR_PULL_ALLOC(ndr, r->in.handle);
33710 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33711 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33712 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33714 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
33715 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
33716 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
33717 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
33718 if (length_key_name_0 > size_key_name_0) {
33719 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
33721 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
33722 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
33723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
33724 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
33725 ZERO_STRUCTP(r->out._ndr_size);
33726 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
33727 ZERO_STRUCTP(r->out.key_buffer);
33728 NDR_PULL_ALLOC(ndr, r->out.needed);
33729 ZERO_STRUCTP(r->out.needed);
33731 if (flags & NDR_OUT) {
33732 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33733 NDR_PULL_ALLOC(ndr, r->out._ndr_size);
33735 _mem_save__ndr_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
33736 NDR_PULL_SET_MEM_CTX(ndr, r->out._ndr_size, LIBNDR_FLAG_REF_ALLOC);
33737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._ndr_size));
33738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__ndr_size_0, LIBNDR_FLAG_REF_ALLOC);
33739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33740 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
33742 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
33743 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
33745 struct ndr_pull *_ndr_key_buffer;
33746 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, *r->out._ndr_size * 2));
33747 NDR_CHECK(ndr_pull_set_switch_value(_ndr_key_buffer, r->out.key_buffer, *r->out._ndr_size));
33748 NDR_CHECK(ndr_pull_spoolss_KeyNames(_ndr_key_buffer, NDR_SCALARS|NDR_BUFFERS, r->out.key_buffer));
33749 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, *r->out._ndr_size * 2));
33751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
33752 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33753 NDR_PULL_ALLOC(ndr, r->out.needed);
33755 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
33756 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
33757 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
33758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
33759 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33761 return NDR_ERR_SUCCESS;
33764 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
33766 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
33767 if (r == NULL) { ndr_print_null(ndr); return; }
33769 if (flags & NDR_SET_VALUES) {
33770 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33772 if (flags & NDR_IN) {
33773 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
33775 ndr_print_ptr(ndr, "handle", r->in.handle);
33777 ndr_print_policy_handle(ndr, "handle", r->in.handle);
33779 ndr_print_string(ndr, "key_name", r->in.key_name);
33780 ndr_print_uint32(ndr, "offered", r->in.offered);
33783 if (flags & NDR_OUT) {
33784 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
33786 ndr_print_ptr(ndr, "_ndr_size", r->out._ndr_size);
33788 ndr_print_uint32(ndr, "_ndr_size", *r->out._ndr_size);
33790 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
33792 ndr_print_set_switch_value(ndr, r->out.key_buffer, *r->out._ndr_size);
33793 ndr_print_spoolss_KeyNames(ndr, "key_buffer", r->out.key_buffer);
33795 ndr_print_ptr(ndr, "needed", r->out.needed);
33797 ndr_print_uint32(ndr, "needed", *r->out.needed);
33799 ndr_print_WERROR(ndr, "result", r->out.result);
33805 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
33807 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33808 if (flags & NDR_IN) {
33809 if (r->in.handle == NULL) {
33810 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33812 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33813 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33814 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33815 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33816 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));
33817 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
33818 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33819 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
33820 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));
33822 if (flags & NDR_OUT) {
33823 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33825 return NDR_ERR_SUCCESS;
33828 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
33830 uint32_t size_key_name_0 = 0;
33831 uint32_t length_key_name_0 = 0;
33832 uint32_t size_value_name_0 = 0;
33833 uint32_t length_value_name_0 = 0;
33834 TALLOC_CTX *_mem_save_handle_0 = NULL;
33835 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33836 if (flags & NDR_IN) {
33837 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33838 NDR_PULL_ALLOC(ndr, r->in.handle);
33840 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33841 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33842 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33844 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
33845 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
33846 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
33847 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
33848 if (length_key_name_0 > size_key_name_0) {
33849 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
33851 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
33852 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
33853 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
33854 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
33855 size_value_name_0 = ndr_get_array_size(ndr, &r->in.value_name);
33856 length_value_name_0 = ndr_get_array_length(ndr, &r->in.value_name);
33857 if (length_value_name_0 > size_value_name_0) {
33858 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_value_name_0, length_value_name_0);
33860 NDR_CHECK(ndr_check_string_terminator(ndr, length_value_name_0, sizeof(uint16_t)));
33861 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, length_value_name_0, sizeof(uint16_t), CH_UTF16));
33863 if (flags & NDR_OUT) {
33864 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33866 return NDR_ERR_SUCCESS;
33869 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
33871 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
33872 if (r == NULL) { ndr_print_null(ndr); return; }
33874 if (flags & NDR_SET_VALUES) {
33875 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33877 if (flags & NDR_IN) {
33878 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
33880 ndr_print_ptr(ndr, "handle", r->in.handle);
33882 ndr_print_policy_handle(ndr, "handle", r->in.handle);
33884 ndr_print_string(ndr, "key_name", r->in.key_name);
33885 ndr_print_string(ndr, "value_name", r->in.value_name);
33888 if (flags & NDR_OUT) {
33889 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
33891 ndr_print_WERROR(ndr, "result", r->out.result);
33897 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
33899 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33900 if (flags & NDR_IN) {
33901 if (r->in.handle == NULL) {
33902 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
33904 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33905 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33906 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
33907 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
33908 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));
33910 if (flags & NDR_OUT) {
33911 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33913 return NDR_ERR_SUCCESS;
33916 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
33918 uint32_t size_key_name_0 = 0;
33919 uint32_t length_key_name_0 = 0;
33920 TALLOC_CTX *_mem_save_handle_0 = NULL;
33921 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33922 if (flags & NDR_IN) {
33923 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
33924 NDR_PULL_ALLOC(ndr, r->in.handle);
33926 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
33927 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
33928 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
33929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
33930 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
33931 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
33932 size_key_name_0 = ndr_get_array_size(ndr, &r->in.key_name);
33933 length_key_name_0 = ndr_get_array_length(ndr, &r->in.key_name);
33934 if (length_key_name_0 > size_key_name_0) {
33935 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_key_name_0, length_key_name_0);
33937 NDR_CHECK(ndr_check_string_terminator(ndr, length_key_name_0, sizeof(uint16_t)));
33938 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, length_key_name_0, sizeof(uint16_t), CH_UTF16));
33940 if (flags & NDR_OUT) {
33941 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33943 return NDR_ERR_SUCCESS;
33946 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
33948 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
33949 if (r == NULL) { ndr_print_null(ndr); return; }
33951 if (flags & NDR_SET_VALUES) {
33952 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
33954 if (flags & NDR_IN) {
33955 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
33957 ndr_print_ptr(ndr, "handle", r->in.handle);
33959 ndr_print_policy_handle(ndr, "handle", r->in.handle);
33961 ndr_print_string(ndr, "key_name", r->in.key_name);
33964 if (flags & NDR_OUT) {
33965 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
33967 ndr_print_WERROR(ndr, "result", r->out.result);
33973 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
33975 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
33976 if (flags & NDR_IN) {
33978 if (flags & NDR_OUT) {
33979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
33981 return NDR_ERR_SUCCESS;
33984 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
33986 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
33987 if (flags & NDR_IN) {
33989 if (flags & NDR_OUT) {
33990 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
33992 return NDR_ERR_SUCCESS;
33995 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
33997 ndr_print_struct(ndr, name, "spoolss_53");
33998 if (r == NULL) { ndr_print_null(ndr); return; }
34000 if (flags & NDR_SET_VALUES) {
34001 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34003 if (flags & NDR_IN) {
34004 ndr_print_struct(ndr, "in", "spoolss_53");
34008 if (flags & NDR_OUT) {
34009 ndr_print_struct(ndr, "out", "spoolss_53");
34011 ndr_print_WERROR(ndr, "result", r->out.result);
34017 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
34019 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34020 if (flags & NDR_IN) {
34021 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
34022 if (r->in.server) {
34023 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
34024 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34025 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
34026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34028 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
34029 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34030 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
34031 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34032 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
34033 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34034 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
34035 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34036 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
34037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
34039 if (flags & NDR_OUT) {
34040 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34042 return NDR_ERR_SUCCESS;
34045 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
34047 uint32_t _ptr_server;
34048 uint32_t size_server_1 = 0;
34049 uint32_t length_server_1 = 0;
34050 uint32_t size_architecture_0 = 0;
34051 uint32_t length_architecture_0 = 0;
34052 uint32_t size_driver_0 = 0;
34053 uint32_t length_driver_0 = 0;
34054 TALLOC_CTX *_mem_save_server_0 = NULL;
34055 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34056 if (flags & NDR_IN) {
34057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
34059 NDR_PULL_ALLOC(ndr, r->in.server);
34061 r->in.server = NULL;
34063 if (r->in.server) {
34064 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
34065 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
34066 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
34067 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
34068 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
34069 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
34070 if (length_server_1 > size_server_1) {
34071 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
34073 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
34074 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
34075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
34077 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
34078 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
34079 size_architecture_0 = ndr_get_array_size(ndr, &r->in.architecture);
34080 length_architecture_0 = ndr_get_array_length(ndr, &r->in.architecture);
34081 if (length_architecture_0 > size_architecture_0) {
34082 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_0, length_architecture_0);
34084 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_0, sizeof(uint16_t)));
34085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_0, sizeof(uint16_t), CH_UTF16));
34086 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
34087 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
34088 size_driver_0 = ndr_get_array_size(ndr, &r->in.driver);
34089 length_driver_0 = ndr_get_array_length(ndr, &r->in.driver);
34090 if (length_driver_0 > size_driver_0) {
34091 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_driver_0, length_driver_0);
34093 NDR_CHECK(ndr_check_string_terminator(ndr, length_driver_0, sizeof(uint16_t)));
34094 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, length_driver_0, sizeof(uint16_t), CH_UTF16));
34095 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
34096 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
34098 if (flags & NDR_OUT) {
34099 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34101 return NDR_ERR_SUCCESS;
34104 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
34106 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
34107 if (r == NULL) { ndr_print_null(ndr); return; }
34109 if (flags & NDR_SET_VALUES) {
34110 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34112 if (flags & NDR_IN) {
34113 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
34115 ndr_print_ptr(ndr, "server", r->in.server);
34117 if (r->in.server) {
34118 ndr_print_string(ndr, "server", r->in.server);
34121 ndr_print_string(ndr, "architecture", r->in.architecture);
34122 ndr_print_string(ndr, "driver", r->in.driver);
34123 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
34124 ndr_print_uint32(ndr, "version", r->in.version);
34127 if (flags & NDR_OUT) {
34128 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
34130 ndr_print_WERROR(ndr, "result", r->out.result);
34136 static enum ndr_err_code ndr_push_spoolss_AddPerMachineConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPerMachineConnection *r)
34138 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34139 if (flags & NDR_IN) {
34140 if (r->in.printername == NULL) {
34141 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34143 if (r->in.printserver == NULL) {
34144 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34146 if (r->in.provider == NULL) {
34147 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
34150 if (r->in.server) {
34151 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
34152 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34153 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
34154 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34156 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
34157 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34158 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
34159 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34160 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printserver, CH_UTF16)));
34161 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34162 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printserver, CH_UTF16)));
34163 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printserver, ndr_charset_length(r->in.printserver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34164 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.provider, CH_UTF16)));
34165 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34166 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.provider, CH_UTF16)));
34167 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.provider, ndr_charset_length(r->in.provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34169 if (flags & NDR_OUT) {
34170 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34172 return NDR_ERR_SUCCESS;
34175 static enum ndr_err_code ndr_pull_spoolss_AddPerMachineConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPerMachineConnection *r)
34177 uint32_t _ptr_server;
34178 uint32_t size_server_1 = 0;
34179 uint32_t length_server_1 = 0;
34180 uint32_t size_printername_1 = 0;
34181 uint32_t length_printername_1 = 0;
34182 uint32_t size_printserver_1 = 0;
34183 uint32_t length_printserver_1 = 0;
34184 uint32_t size_provider_1 = 0;
34185 uint32_t length_provider_1 = 0;
34186 TALLOC_CTX *_mem_save_server_0 = NULL;
34187 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34188 if (flags & NDR_IN) {
34189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
34191 NDR_PULL_ALLOC(ndr, r->in.server);
34193 r->in.server = NULL;
34195 if (r->in.server) {
34196 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
34197 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
34198 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
34199 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
34200 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
34201 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
34202 if (length_server_1 > size_server_1) {
34203 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
34205 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
34206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
34207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
34209 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
34210 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
34211 size_printername_1 = ndr_get_array_size(ndr, &r->in.printername);
34212 length_printername_1 = ndr_get_array_length(ndr, &r->in.printername);
34213 if (length_printername_1 > size_printername_1) {
34214 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
34216 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
34217 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
34218 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printserver));
34219 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printserver));
34220 size_printserver_1 = ndr_get_array_size(ndr, &r->in.printserver);
34221 length_printserver_1 = ndr_get_array_length(ndr, &r->in.printserver);
34222 if (length_printserver_1 > size_printserver_1) {
34223 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printserver_1, length_printserver_1);
34225 NDR_CHECK(ndr_check_string_terminator(ndr, length_printserver_1, sizeof(uint16_t)));
34226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printserver, length_printserver_1, sizeof(uint16_t), CH_UTF16));
34227 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.provider));
34228 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.provider));
34229 size_provider_1 = ndr_get_array_size(ndr, &r->in.provider);
34230 length_provider_1 = ndr_get_array_length(ndr, &r->in.provider);
34231 if (length_provider_1 > size_provider_1) {
34232 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_provider_1, length_provider_1);
34234 NDR_CHECK(ndr_check_string_terminator(ndr, length_provider_1, sizeof(uint16_t)));
34235 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.provider, length_provider_1, sizeof(uint16_t), CH_UTF16));
34237 if (flags & NDR_OUT) {
34238 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34240 return NDR_ERR_SUCCESS;
34243 _PUBLIC_ void ndr_print_spoolss_AddPerMachineConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPerMachineConnection *r)
34245 ndr_print_struct(ndr, name, "spoolss_AddPerMachineConnection");
34246 if (r == NULL) { ndr_print_null(ndr); return; }
34248 if (flags & NDR_SET_VALUES) {
34249 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34251 if (flags & NDR_IN) {
34252 ndr_print_struct(ndr, "in", "spoolss_AddPerMachineConnection");
34254 ndr_print_ptr(ndr, "server", r->in.server);
34256 if (r->in.server) {
34257 ndr_print_string(ndr, "server", r->in.server);
34260 ndr_print_ptr(ndr, "printername", r->in.printername);
34262 ndr_print_string(ndr, "printername", r->in.printername);
34264 ndr_print_ptr(ndr, "printserver", r->in.printserver);
34266 ndr_print_string(ndr, "printserver", r->in.printserver);
34268 ndr_print_ptr(ndr, "provider", r->in.provider);
34270 ndr_print_string(ndr, "provider", r->in.provider);
34274 if (flags & NDR_OUT) {
34275 ndr_print_struct(ndr, "out", "spoolss_AddPerMachineConnection");
34277 ndr_print_WERROR(ndr, "result", r->out.result);
34283 static enum ndr_err_code ndr_push_spoolss_DeletePerMachineConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePerMachineConnection *r)
34285 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34286 if (flags & NDR_IN) {
34287 if (r->in.printername == NULL) {
34288 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34290 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
34291 if (r->in.server) {
34292 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
34293 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34294 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
34295 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34297 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
34298 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34299 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
34300 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34302 if (flags & NDR_OUT) {
34303 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34305 return NDR_ERR_SUCCESS;
34308 static enum ndr_err_code ndr_pull_spoolss_DeletePerMachineConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePerMachineConnection *r)
34310 uint32_t _ptr_server;
34311 uint32_t size_server_1 = 0;
34312 uint32_t length_server_1 = 0;
34313 uint32_t size_printername_1 = 0;
34314 uint32_t length_printername_1 = 0;
34315 TALLOC_CTX *_mem_save_server_0 = NULL;
34316 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34317 if (flags & NDR_IN) {
34318 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
34320 NDR_PULL_ALLOC(ndr, r->in.server);
34322 r->in.server = NULL;
34324 if (r->in.server) {
34325 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
34326 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
34327 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
34328 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
34329 size_server_1 = ndr_get_array_size(ndr, &r->in.server);
34330 length_server_1 = ndr_get_array_length(ndr, &r->in.server);
34331 if (length_server_1 > size_server_1) {
34332 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_server_1, length_server_1);
34334 NDR_CHECK(ndr_check_string_terminator(ndr, length_server_1, sizeof(uint16_t)));
34335 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, length_server_1, sizeof(uint16_t), CH_UTF16));
34336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
34338 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
34339 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
34340 size_printername_1 = ndr_get_array_size(ndr, &r->in.printername);
34341 length_printername_1 = ndr_get_array_length(ndr, &r->in.printername);
34342 if (length_printername_1 > size_printername_1) {
34343 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_printername_1, length_printername_1);
34345 NDR_CHECK(ndr_check_string_terminator(ndr, length_printername_1, sizeof(uint16_t)));
34346 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, length_printername_1, sizeof(uint16_t), CH_UTF16));
34348 if (flags & NDR_OUT) {
34349 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34351 return NDR_ERR_SUCCESS;
34354 _PUBLIC_ void ndr_print_spoolss_DeletePerMachineConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePerMachineConnection *r)
34356 ndr_print_struct(ndr, name, "spoolss_DeletePerMachineConnection");
34357 if (r == NULL) { ndr_print_null(ndr); return; }
34359 if (flags & NDR_SET_VALUES) {
34360 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34362 if (flags & NDR_IN) {
34363 ndr_print_struct(ndr, "in", "spoolss_DeletePerMachineConnection");
34365 ndr_print_ptr(ndr, "server", r->in.server);
34367 if (r->in.server) {
34368 ndr_print_string(ndr, "server", r->in.server);
34371 ndr_print_ptr(ndr, "printername", r->in.printername);
34373 ndr_print_string(ndr, "printername", r->in.printername);
34377 if (flags & NDR_OUT) {
34378 ndr_print_struct(ndr, "out", "spoolss_DeletePerMachineConnection");
34380 ndr_print_WERROR(ndr, "result", r->out.result);
34386 static enum ndr_err_code ndr_push_spoolss_EnumPerMachineConnections(struct ndr_push *ndr, int flags, const struct spoolss_EnumPerMachineConnections *r)
34388 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34389 if (flags & NDR_IN) {
34391 if (flags & NDR_OUT) {
34392 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34394 return NDR_ERR_SUCCESS;
34397 static enum ndr_err_code ndr_pull_spoolss_EnumPerMachineConnections(struct ndr_pull *ndr, int flags, struct spoolss_EnumPerMachineConnections *r)
34399 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34400 if (flags & NDR_IN) {
34402 if (flags & NDR_OUT) {
34403 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34405 return NDR_ERR_SUCCESS;
34408 _PUBLIC_ void ndr_print_spoolss_EnumPerMachineConnections(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPerMachineConnections *r)
34410 ndr_print_struct(ndr, name, "spoolss_EnumPerMachineConnections");
34411 if (r == NULL) { ndr_print_null(ndr); return; }
34413 if (flags & NDR_SET_VALUES) {
34414 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34416 if (flags & NDR_IN) {
34417 ndr_print_struct(ndr, "in", "spoolss_EnumPerMachineConnections");
34421 if (flags & NDR_OUT) {
34422 ndr_print_struct(ndr, "out", "spoolss_EnumPerMachineConnections");
34424 ndr_print_WERROR(ndr, "result", r->out.result);
34430 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
34432 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34433 if (flags & NDR_IN) {
34434 if (r->in.handle == NULL) {
34435 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34437 if (r->in.status_code == NULL) {
34438 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34440 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
34441 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
34442 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34443 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
34444 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));
34445 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
34446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
34447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
34448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
34450 if (flags & NDR_OUT) {
34451 if (r->out.out_data == NULL) {
34452 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34454 if (r->out.needed == NULL) {
34455 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34457 if (r->out.status_code == NULL) {
34458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34460 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.out_data_size));
34461 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
34462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
34463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
34464 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34466 return NDR_ERR_SUCCESS;
34469 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
34471 uint32_t size_function_name_0 = 0;
34472 uint32_t length_function_name_0 = 0;
34473 uint32_t size_out_data_1 = 0;
34474 TALLOC_CTX *_mem_save_handle_0 = NULL;
34475 TALLOC_CTX *_mem_save_needed_0 = NULL;
34476 TALLOC_CTX *_mem_save_status_code_0 = NULL;
34477 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34478 if (flags & NDR_IN) {
34479 ZERO_STRUCT(r->out);
34481 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34482 NDR_PULL_ALLOC(ndr, r->in.handle);
34484 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
34485 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
34486 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
34487 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
34488 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
34489 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
34490 size_function_name_0 = ndr_get_array_size(ndr, &r->in.function_name);
34491 length_function_name_0 = ndr_get_array_length(ndr, &r->in.function_name);
34492 if (length_function_name_0 > size_function_name_0) {
34493 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_function_name_0, length_function_name_0);
34495 NDR_CHECK(ndr_check_string_terminator(ndr, length_function_name_0, sizeof(uint16_t)));
34496 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, length_function_name_0, sizeof(uint16_t), CH_UTF16));
34497 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
34498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
34499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
34500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34501 NDR_PULL_ALLOC(ndr, r->in.status_code);
34503 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
34504 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
34505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
34506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
34507 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
34508 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
34509 NDR_PULL_ALLOC(ndr, r->out.needed);
34510 ZERO_STRUCTP(r->out.needed);
34511 NDR_PULL_ALLOC(ndr, r->out.status_code);
34512 *r->out.status_code = *r->in.status_code;
34514 if (flags & NDR_OUT) {
34515 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
34516 size_out_data_1 = ndr_get_array_size(ndr, &r->out.out_data);
34517 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34518 NDR_PULL_ALLOC_N(ndr, r->out.out_data, size_out_data_1);
34520 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, size_out_data_1));
34521 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34522 NDR_PULL_ALLOC(ndr, r->out.needed);
34524 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
34525 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
34526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
34527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
34528 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34529 NDR_PULL_ALLOC(ndr, r->out.status_code);
34531 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
34532 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
34533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
34534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
34535 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34536 if (r->out.out_data) {
34537 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
34540 return NDR_ERR_SUCCESS;
34543 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
34545 ndr_print_struct(ndr, name, "spoolss_XcvData");
34546 if (r == NULL) { ndr_print_null(ndr); return; }
34548 if (flags & NDR_SET_VALUES) {
34549 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34551 if (flags & NDR_IN) {
34552 ndr_print_struct(ndr, "in", "spoolss_XcvData");
34554 ndr_print_ptr(ndr, "handle", r->in.handle);
34556 ndr_print_policy_handle(ndr, "handle", r->in.handle);
34558 ndr_print_string(ndr, "function_name", r->in.function_name);
34559 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
34560 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
34561 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
34562 ndr_print_ptr(ndr, "status_code", r->in.status_code);
34564 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
34568 if (flags & NDR_OUT) {
34569 ndr_print_struct(ndr, "out", "spoolss_XcvData");
34571 ndr_print_ptr(ndr, "out_data", r->out.out_data);
34573 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
34575 ndr_print_ptr(ndr, "needed", r->out.needed);
34577 ndr_print_uint32(ndr, "needed", *r->out.needed);
34579 ndr_print_ptr(ndr, "status_code", r->out.status_code);
34581 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
34583 ndr_print_WERROR(ndr, "result", r->out.result);
34589 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
34591 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34592 if (flags & NDR_IN) {
34593 if (r->in.info_ctr == NULL) {
34594 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
34596 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
34597 if (r->in.servername) {
34598 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
34599 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
34600 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
34601 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
34603 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
34604 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
34606 if (flags & NDR_OUT) {
34607 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34609 return NDR_ERR_SUCCESS;
34612 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
34614 uint32_t _ptr_servername;
34615 uint32_t size_servername_1 = 0;
34616 uint32_t length_servername_1 = 0;
34617 TALLOC_CTX *_mem_save_servername_0 = NULL;
34618 TALLOC_CTX *_mem_save_info_ctr_0 = NULL;
34619 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34620 if (flags & NDR_IN) {
34621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
34622 if (_ptr_servername) {
34623 NDR_PULL_ALLOC(ndr, r->in.servername);
34625 r->in.servername = NULL;
34627 if (r->in.servername) {
34628 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
34629 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
34630 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
34631 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
34632 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
34633 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
34634 if (length_servername_1 > size_servername_1) {
34635 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
34637 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
34638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
34639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
34641 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
34642 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
34644 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
34645 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
34646 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
34647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
34648 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
34650 if (flags & NDR_OUT) {
34651 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34653 return NDR_ERR_SUCCESS;
34656 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
34658 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
34659 if (r == NULL) { ndr_print_null(ndr); return; }
34661 if (flags & NDR_SET_VALUES) {
34662 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34664 if (flags & NDR_IN) {
34665 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
34667 ndr_print_ptr(ndr, "servername", r->in.servername);
34669 if (r->in.servername) {
34670 ndr_print_string(ndr, "servername", r->in.servername);
34673 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
34675 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
34677 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
34680 if (flags & NDR_OUT) {
34681 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
34683 ndr_print_WERROR(ndr, "result", r->out.result);
34689 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
34691 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34692 if (flags & NDR_IN) {
34694 if (flags & NDR_OUT) {
34695 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34697 return NDR_ERR_SUCCESS;
34700 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
34702 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34703 if (flags & NDR_IN) {
34705 if (flags & NDR_OUT) {
34706 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34708 return NDR_ERR_SUCCESS;
34711 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
34713 ndr_print_struct(ndr, name, "spoolss_5a");
34714 if (r == NULL) { ndr_print_null(ndr); return; }
34716 if (flags & NDR_SET_VALUES) {
34717 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34719 if (flags & NDR_IN) {
34720 ndr_print_struct(ndr, "in", "spoolss_5a");
34724 if (flags & NDR_OUT) {
34725 ndr_print_struct(ndr, "out", "spoolss_5a");
34727 ndr_print_WERROR(ndr, "result", r->out.result);
34733 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
34735 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34736 if (flags & NDR_IN) {
34738 if (flags & NDR_OUT) {
34739 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34741 return NDR_ERR_SUCCESS;
34744 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
34746 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34747 if (flags & NDR_IN) {
34749 if (flags & NDR_OUT) {
34750 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34752 return NDR_ERR_SUCCESS;
34755 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
34757 ndr_print_struct(ndr, name, "spoolss_5b");
34758 if (r == NULL) { ndr_print_null(ndr); return; }
34760 if (flags & NDR_SET_VALUES) {
34761 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34763 if (flags & NDR_IN) {
34764 ndr_print_struct(ndr, "in", "spoolss_5b");
34768 if (flags & NDR_OUT) {
34769 ndr_print_struct(ndr, "out", "spoolss_5b");
34771 ndr_print_WERROR(ndr, "result", r->out.result);
34777 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
34779 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34780 if (flags & NDR_IN) {
34782 if (flags & NDR_OUT) {
34783 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34785 return NDR_ERR_SUCCESS;
34788 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
34790 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34791 if (flags & NDR_IN) {
34793 if (flags & NDR_OUT) {
34794 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34796 return NDR_ERR_SUCCESS;
34799 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
34801 ndr_print_struct(ndr, name, "spoolss_5c");
34802 if (r == NULL) { ndr_print_null(ndr); return; }
34804 if (flags & NDR_SET_VALUES) {
34805 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34807 if (flags & NDR_IN) {
34808 ndr_print_struct(ndr, "in", "spoolss_5c");
34812 if (flags & NDR_OUT) {
34813 ndr_print_struct(ndr, "out", "spoolss_5c");
34815 ndr_print_WERROR(ndr, "result", r->out.result);
34821 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
34823 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34824 if (flags & NDR_IN) {
34826 if (flags & NDR_OUT) {
34827 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34829 return NDR_ERR_SUCCESS;
34832 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
34834 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34835 if (flags & NDR_IN) {
34837 if (flags & NDR_OUT) {
34838 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34840 return NDR_ERR_SUCCESS;
34843 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
34845 ndr_print_struct(ndr, name, "spoolss_5d");
34846 if (r == NULL) { ndr_print_null(ndr); return; }
34848 if (flags & NDR_SET_VALUES) {
34849 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34851 if (flags & NDR_IN) {
34852 ndr_print_struct(ndr, "in", "spoolss_5d");
34856 if (flags & NDR_OUT) {
34857 ndr_print_struct(ndr, "out", "spoolss_5d");
34859 ndr_print_WERROR(ndr, "result", r->out.result);
34865 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
34867 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34868 if (flags & NDR_IN) {
34870 if (flags & NDR_OUT) {
34871 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34873 return NDR_ERR_SUCCESS;
34876 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
34878 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34879 if (flags & NDR_IN) {
34881 if (flags & NDR_OUT) {
34882 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34884 return NDR_ERR_SUCCESS;
34887 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
34889 ndr_print_struct(ndr, name, "spoolss_5e");
34890 if (r == NULL) { ndr_print_null(ndr); return; }
34892 if (flags & NDR_SET_VALUES) {
34893 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34895 if (flags & NDR_IN) {
34896 ndr_print_struct(ndr, "in", "spoolss_5e");
34900 if (flags & NDR_OUT) {
34901 ndr_print_struct(ndr, "out", "spoolss_5e");
34903 ndr_print_WERROR(ndr, "result", r->out.result);
34909 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
34911 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34912 if (flags & NDR_IN) {
34914 if (flags & NDR_OUT) {
34915 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34917 return NDR_ERR_SUCCESS;
34920 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
34922 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34923 if (flags & NDR_IN) {
34925 if (flags & NDR_OUT) {
34926 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34928 return NDR_ERR_SUCCESS;
34931 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
34933 ndr_print_struct(ndr, name, "spoolss_5f");
34934 if (r == NULL) { ndr_print_null(ndr); return; }
34936 if (flags & NDR_SET_VALUES) {
34937 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34939 if (flags & NDR_IN) {
34940 ndr_print_struct(ndr, "in", "spoolss_5f");
34944 if (flags & NDR_OUT) {
34945 ndr_print_struct(ndr, "out", "spoolss_5f");
34947 ndr_print_WERROR(ndr, "result", r->out.result);
34953 static enum ndr_err_code ndr_push_spoolss_60(struct ndr_push *ndr, int flags, const struct spoolss_60 *r)
34955 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
34956 if (flags & NDR_IN) {
34958 if (flags & NDR_OUT) {
34959 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
34961 return NDR_ERR_SUCCESS;
34964 static enum ndr_err_code ndr_pull_spoolss_60(struct ndr_pull *ndr, int flags, struct spoolss_60 *r)
34966 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
34967 if (flags & NDR_IN) {
34969 if (flags & NDR_OUT) {
34970 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
34972 return NDR_ERR_SUCCESS;
34975 _PUBLIC_ void ndr_print_spoolss_60(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_60 *r)
34977 ndr_print_struct(ndr, name, "spoolss_60");
34978 if (r == NULL) { ndr_print_null(ndr); return; }
34980 if (flags & NDR_SET_VALUES) {
34981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
34983 if (flags & NDR_IN) {
34984 ndr_print_struct(ndr, "in", "spoolss_60");
34988 if (flags & NDR_OUT) {
34989 ndr_print_struct(ndr, "out", "spoolss_60");
34991 ndr_print_WERROR(ndr, "result", r->out.result);
34997 static enum ndr_err_code ndr_push_spoolss_SendRecvBidiData(struct ndr_push *ndr, int flags, const struct spoolss_SendRecvBidiData *r)
34999 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35000 if (flags & NDR_IN) {
35001 if (r->in.pReqData == NULL) {
35002 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35004 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, &r->in.hPrinter));
35005 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.pAction));
35006 if (r->in.pAction) {
35007 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pAction, CH_UTF16)));
35008 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35009 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pAction, CH_UTF16)));
35010 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pAction, ndr_charset_length(r->in.pAction, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35012 NDR_CHECK(ndr_push_RPC_BIDI_REQUEST_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pReqData));
35014 if (flags & NDR_OUT) {
35015 if (r->out.ppRespData == NULL) {
35016 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35018 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppRespData));
35019 if (*r->out.ppRespData) {
35020 NDR_CHECK(ndr_push_RPC_BIDI_RESPONSE_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppRespData));
35022 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35024 return NDR_ERR_SUCCESS;
35027 static enum ndr_err_code ndr_pull_spoolss_SendRecvBidiData(struct ndr_pull *ndr, int flags, struct spoolss_SendRecvBidiData *r)
35029 uint32_t _ptr_pAction;
35030 uint32_t size_pAction_1 = 0;
35031 uint32_t length_pAction_1 = 0;
35032 uint32_t _ptr_ppRespData;
35033 TALLOC_CTX *_mem_save_pAction_0 = NULL;
35034 TALLOC_CTX *_mem_save_pReqData_0 = NULL;
35035 TALLOC_CTX *_mem_save_ppRespData_0 = NULL;
35036 TALLOC_CTX *_mem_save_ppRespData_1 = NULL;
35037 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35038 if (flags & NDR_IN) {
35039 ZERO_STRUCT(r->out);
35041 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, &r->in.hPrinter));
35042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_pAction));
35043 if (_ptr_pAction) {
35044 NDR_PULL_ALLOC(ndr, r->in.pAction);
35046 r->in.pAction = NULL;
35048 if (r->in.pAction) {
35049 _mem_save_pAction_0 = NDR_PULL_GET_MEM_CTX(ndr);
35050 NDR_PULL_SET_MEM_CTX(ndr, r->in.pAction, 0);
35051 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pAction));
35052 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pAction));
35053 size_pAction_1 = ndr_get_array_size(ndr, &r->in.pAction);
35054 length_pAction_1 = ndr_get_array_length(ndr, &r->in.pAction);
35055 if (length_pAction_1 > size_pAction_1) {
35056 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pAction_1, length_pAction_1);
35058 NDR_CHECK(ndr_check_string_terminator(ndr, length_pAction_1, sizeof(uint16_t)));
35059 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pAction, length_pAction_1, sizeof(uint16_t), CH_UTF16));
35060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pAction_0, 0);
35062 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35063 NDR_PULL_ALLOC(ndr, r->in.pReqData);
35065 _mem_save_pReqData_0 = NDR_PULL_GET_MEM_CTX(ndr);
35066 NDR_PULL_SET_MEM_CTX(ndr, r->in.pReqData, LIBNDR_FLAG_REF_ALLOC);
35067 NDR_CHECK(ndr_pull_RPC_BIDI_REQUEST_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pReqData));
35068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pReqData_0, LIBNDR_FLAG_REF_ALLOC);
35069 NDR_PULL_ALLOC(ndr, r->out.ppRespData);
35070 ZERO_STRUCTP(r->out.ppRespData);
35072 if (flags & NDR_OUT) {
35073 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35074 NDR_PULL_ALLOC(ndr, r->out.ppRespData);
35076 _mem_save_ppRespData_0 = NDR_PULL_GET_MEM_CTX(ndr);
35077 NDR_PULL_SET_MEM_CTX(ndr, r->out.ppRespData, LIBNDR_FLAG_REF_ALLOC);
35078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppRespData));
35079 if (_ptr_ppRespData) {
35080 NDR_PULL_ALLOC(ndr, *r->out.ppRespData);
35082 *r->out.ppRespData = NULL;
35084 if (*r->out.ppRespData) {
35085 _mem_save_ppRespData_1 = NDR_PULL_GET_MEM_CTX(ndr);
35086 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppRespData, 0);
35087 NDR_CHECK(ndr_pull_RPC_BIDI_RESPONSE_CONTAINER(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.ppRespData));
35088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppRespData_1, 0);
35090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppRespData_0, LIBNDR_FLAG_REF_ALLOC);
35091 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35093 return NDR_ERR_SUCCESS;
35096 _PUBLIC_ void ndr_print_spoolss_SendRecvBidiData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SendRecvBidiData *r)
35098 ndr_print_struct(ndr, name, "spoolss_SendRecvBidiData");
35099 if (r == NULL) { ndr_print_null(ndr); return; }
35101 if (flags & NDR_SET_VALUES) {
35102 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35104 if (flags & NDR_IN) {
35105 ndr_print_struct(ndr, "in", "spoolss_SendRecvBidiData");
35107 ndr_print_policy_handle(ndr, "hPrinter", &r->in.hPrinter);
35108 ndr_print_ptr(ndr, "pAction", r->in.pAction);
35110 if (r->in.pAction) {
35111 ndr_print_string(ndr, "pAction", r->in.pAction);
35114 ndr_print_ptr(ndr, "pReqData", r->in.pReqData);
35116 ndr_print_RPC_BIDI_REQUEST_CONTAINER(ndr, "pReqData", r->in.pReqData);
35120 if (flags & NDR_OUT) {
35121 ndr_print_struct(ndr, "out", "spoolss_SendRecvBidiData");
35123 ndr_print_ptr(ndr, "ppRespData", r->out.ppRespData);
35125 ndr_print_ptr(ndr, "ppRespData", *r->out.ppRespData);
35127 if (*r->out.ppRespData) {
35128 ndr_print_RPC_BIDI_RESPONSE_CONTAINER(ndr, "ppRespData", *r->out.ppRespData);
35132 ndr_print_WERROR(ndr, "result", r->out.result);
35138 static enum ndr_err_code ndr_push_spoolss_62(struct ndr_push *ndr, int flags, const struct spoolss_62 *r)
35140 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35141 if (flags & NDR_IN) {
35143 if (flags & NDR_OUT) {
35144 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35146 return NDR_ERR_SUCCESS;
35149 static enum ndr_err_code ndr_pull_spoolss_62(struct ndr_pull *ndr, int flags, struct spoolss_62 *r)
35151 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35152 if (flags & NDR_IN) {
35154 if (flags & NDR_OUT) {
35155 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35157 return NDR_ERR_SUCCESS;
35160 _PUBLIC_ void ndr_print_spoolss_62(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_62 *r)
35162 ndr_print_struct(ndr, name, "spoolss_62");
35163 if (r == NULL) { ndr_print_null(ndr); return; }
35165 if (flags & NDR_SET_VALUES) {
35166 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35168 if (flags & NDR_IN) {
35169 ndr_print_struct(ndr, "in", "spoolss_62");
35173 if (flags & NDR_OUT) {
35174 ndr_print_struct(ndr, "out", "spoolss_62");
35176 ndr_print_WERROR(ndr, "result", r->out.result);
35182 static enum ndr_err_code ndr_push_spoolss_63(struct ndr_push *ndr, int flags, const struct spoolss_63 *r)
35184 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35185 if (flags & NDR_IN) {
35187 if (flags & NDR_OUT) {
35188 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35190 return NDR_ERR_SUCCESS;
35193 static enum ndr_err_code ndr_pull_spoolss_63(struct ndr_pull *ndr, int flags, struct spoolss_63 *r)
35195 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35196 if (flags & NDR_IN) {
35198 if (flags & NDR_OUT) {
35199 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35201 return NDR_ERR_SUCCESS;
35204 _PUBLIC_ void ndr_print_spoolss_63(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_63 *r)
35206 ndr_print_struct(ndr, name, "spoolss_63");
35207 if (r == NULL) { ndr_print_null(ndr); return; }
35209 if (flags & NDR_SET_VALUES) {
35210 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35212 if (flags & NDR_IN) {
35213 ndr_print_struct(ndr, "in", "spoolss_63");
35217 if (flags & NDR_OUT) {
35218 ndr_print_struct(ndr, "out", "spoolss_63");
35220 ndr_print_WERROR(ndr, "result", r->out.result);
35226 static enum ndr_err_code ndr_push_spoolss_64(struct ndr_push *ndr, int flags, const struct spoolss_64 *r)
35228 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35229 if (flags & NDR_IN) {
35231 if (flags & NDR_OUT) {
35232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35234 return NDR_ERR_SUCCESS;
35237 static enum ndr_err_code ndr_pull_spoolss_64(struct ndr_pull *ndr, int flags, struct spoolss_64 *r)
35239 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35240 if (flags & NDR_IN) {
35242 if (flags & NDR_OUT) {
35243 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35245 return NDR_ERR_SUCCESS;
35248 _PUBLIC_ void ndr_print_spoolss_64(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_64 *r)
35250 ndr_print_struct(ndr, name, "spoolss_64");
35251 if (r == NULL) { ndr_print_null(ndr); return; }
35253 if (flags & NDR_SET_VALUES) {
35254 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35256 if (flags & NDR_IN) {
35257 ndr_print_struct(ndr, "in", "spoolss_64");
35261 if (flags & NDR_OUT) {
35262 ndr_print_struct(ndr, "out", "spoolss_64");
35264 ndr_print_WERROR(ndr, "result", r->out.result);
35270 static enum ndr_err_code ndr_push_spoolss_65(struct ndr_push *ndr, int flags, const struct spoolss_65 *r)
35272 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35273 if (flags & NDR_IN) {
35275 if (flags & NDR_OUT) {
35276 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35278 return NDR_ERR_SUCCESS;
35281 static enum ndr_err_code ndr_pull_spoolss_65(struct ndr_pull *ndr, int flags, struct spoolss_65 *r)
35283 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35284 if (flags & NDR_IN) {
35286 if (flags & NDR_OUT) {
35287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35289 return NDR_ERR_SUCCESS;
35292 _PUBLIC_ void ndr_print_spoolss_65(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_65 *r)
35294 ndr_print_struct(ndr, name, "spoolss_65");
35295 if (r == NULL) { ndr_print_null(ndr); return; }
35297 if (flags & NDR_SET_VALUES) {
35298 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35300 if (flags & NDR_IN) {
35301 ndr_print_struct(ndr, "in", "spoolss_65");
35305 if (flags & NDR_OUT) {
35306 ndr_print_struct(ndr, "out", "spoolss_65");
35308 ndr_print_WERROR(ndr, "result", r->out.result);
35314 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetCorePrinterDrivers(struct ndr_push *ndr, int flags, const struct spoolss_GetCorePrinterDrivers *r)
35316 uint32_t cntr_core_printer_drivers_1;
35317 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35318 if (flags & NDR_IN) {
35319 if (r->in.architecture == NULL) {
35320 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35322 if (r->in.core_driver_dependencies == NULL) {
35323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
35326 if (r->in.servername) {
35327 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
35328 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35329 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
35330 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35332 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
35333 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35334 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
35335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_driver_size));
35337 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_driver_size));
35338 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.core_driver_dependencies, r->in.core_driver_size, sizeof(uint16_t), CH_UTF16));
35339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
35341 if (flags & NDR_OUT) {
35342 if (r->out.core_printer_drivers == NULL) {
35343 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35345 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.core_printer_driver_count));
35346 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (r->in.core_printer_driver_count); cntr_core_printer_drivers_1++) {
35347 NDR_CHECK(ndr_push_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
35349 NDR_CHECK(ndr_push_HRESULT(ndr, NDR_SCALARS, r->out.result));
35351 return NDR_ERR_SUCCESS;
35354 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetCorePrinterDrivers(struct ndr_pull *ndr, int flags, struct spoolss_GetCorePrinterDrivers *r)
35356 uint32_t _ptr_servername;
35357 uint32_t size_servername_1 = 0;
35358 uint32_t length_servername_1 = 0;
35359 uint32_t size_architecture_1 = 0;
35360 uint32_t length_architecture_1 = 0;
35361 uint32_t size_core_driver_dependencies_1 = 0;
35362 uint32_t size_core_printer_drivers_1 = 0;
35363 uint32_t cntr_core_printer_drivers_1;
35364 TALLOC_CTX *_mem_save_servername_0 = NULL;
35365 TALLOC_CTX *_mem_save_core_printer_drivers_1 = NULL;
35366 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35367 if (flags & NDR_IN) {
35368 ZERO_STRUCT(r->out);
35370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
35371 if (_ptr_servername) {
35372 NDR_PULL_ALLOC(ndr, r->in.servername);
35374 r->in.servername = NULL;
35376 if (r->in.servername) {
35377 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
35378 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
35379 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
35380 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
35381 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
35382 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
35383 if (length_servername_1 > size_servername_1) {
35384 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
35386 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
35387 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
35388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
35390 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
35391 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
35392 size_architecture_1 = ndr_get_array_size(ndr, &r->in.architecture);
35393 length_architecture_1 = ndr_get_array_length(ndr, &r->in.architecture);
35394 if (length_architecture_1 > size_architecture_1) {
35395 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
35397 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
35398 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
35399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_driver_size));
35400 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.core_driver_dependencies));
35401 size_core_driver_dependencies_1 = ndr_get_array_size(ndr, &r->in.core_driver_dependencies);
35402 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.core_driver_dependencies, size_core_driver_dependencies_1, sizeof(uint16_t), CH_UTF16));
35403 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.core_printer_driver_count));
35404 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, r->in.core_printer_driver_count);
35405 memset(r->out.core_printer_drivers, 0, (r->in.core_printer_driver_count) * sizeof(*r->out.core_printer_drivers));
35406 if (r->in.core_driver_dependencies) {
35407 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.core_driver_dependencies, r->in.core_driver_size));
35410 if (flags & NDR_OUT) {
35411 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.core_printer_drivers));
35412 size_core_printer_drivers_1 = ndr_get_array_size(ndr, &r->out.core_printer_drivers);
35413 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35414 NDR_PULL_ALLOC_N(ndr, r->out.core_printer_drivers, size_core_printer_drivers_1);
35416 _mem_save_core_printer_drivers_1 = NDR_PULL_GET_MEM_CTX(ndr);
35417 NDR_PULL_SET_MEM_CTX(ndr, r->out.core_printer_drivers, 0);
35418 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (size_core_printer_drivers_1); cntr_core_printer_drivers_1++) {
35419 NDR_CHECK(ndr_pull_spoolss_CorePrinterDriver(ndr, NDR_SCALARS, &r->out.core_printer_drivers[cntr_core_printer_drivers_1]));
35421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_printer_drivers_1, 0);
35422 NDR_CHECK(ndr_pull_HRESULT(ndr, NDR_SCALARS, &r->out.result));
35423 if (r->out.core_printer_drivers) {
35424 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.core_printer_drivers, r->in.core_printer_driver_count));
35427 return NDR_ERR_SUCCESS;
35430 _PUBLIC_ void ndr_print_spoolss_GetCorePrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetCorePrinterDrivers *r)
35432 uint32_t cntr_core_printer_drivers_1;
35433 ndr_print_struct(ndr, name, "spoolss_GetCorePrinterDrivers");
35434 if (r == NULL) { ndr_print_null(ndr); return; }
35436 if (flags & NDR_SET_VALUES) {
35437 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35439 if (flags & NDR_IN) {
35440 ndr_print_struct(ndr, "in", "spoolss_GetCorePrinterDrivers");
35442 ndr_print_ptr(ndr, "servername", r->in.servername);
35444 if (r->in.servername) {
35445 ndr_print_string(ndr, "servername", r->in.servername);
35448 ndr_print_ptr(ndr, "architecture", r->in.architecture);
35450 ndr_print_string(ndr, "architecture", r->in.architecture);
35452 ndr_print_uint32(ndr, "core_driver_size", r->in.core_driver_size);
35453 ndr_print_ptr(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
35455 ndr_print_string(ndr, "core_driver_dependencies", r->in.core_driver_dependencies);
35457 ndr_print_uint32(ndr, "core_printer_driver_count", r->in.core_printer_driver_count);
35460 if (flags & NDR_OUT) {
35461 ndr_print_struct(ndr, "out", "spoolss_GetCorePrinterDrivers");
35463 ndr_print_ptr(ndr, "core_printer_drivers", r->out.core_printer_drivers);
35465 ndr->print(ndr, "%s: ARRAY(%d)", "core_printer_drivers", (int)r->in.core_printer_driver_count);
35467 for (cntr_core_printer_drivers_1 = 0; cntr_core_printer_drivers_1 < (r->in.core_printer_driver_count); cntr_core_printer_drivers_1++) {
35468 ndr_print_spoolss_CorePrinterDriver(ndr, "core_printer_drivers", &r->out.core_printer_drivers[cntr_core_printer_drivers_1]);
35472 ndr_print_HRESULT(ndr, "result", r->out.result);
35478 static enum ndr_err_code ndr_push_spoolss_67(struct ndr_push *ndr, int flags, const struct spoolss_67 *r)
35480 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35481 if (flags & NDR_IN) {
35483 if (flags & NDR_OUT) {
35484 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35486 return NDR_ERR_SUCCESS;
35489 static enum ndr_err_code ndr_pull_spoolss_67(struct ndr_pull *ndr, int flags, struct spoolss_67 *r)
35491 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35492 if (flags & NDR_IN) {
35494 if (flags & NDR_OUT) {
35495 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35497 return NDR_ERR_SUCCESS;
35500 _PUBLIC_ void ndr_print_spoolss_67(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_67 *r)
35502 ndr_print_struct(ndr, name, "spoolss_67");
35503 if (r == NULL) { ndr_print_null(ndr); return; }
35505 if (flags & NDR_SET_VALUES) {
35506 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35508 if (flags & NDR_IN) {
35509 ndr_print_struct(ndr, "in", "spoolss_67");
35513 if (flags & NDR_OUT) {
35514 ndr_print_struct(ndr, "out", "spoolss_67");
35516 ndr_print_WERROR(ndr, "result", r->out.result);
35522 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriverPackagePath(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
35524 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35525 if (flags & NDR_IN) {
35526 if (r->in.architecture == NULL) {
35527 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35529 if (r->in.package_id == NULL) {
35530 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
35533 if (r->in.servername) {
35534 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
35535 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35536 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
35537 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35539 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
35540 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35541 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
35542 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.language));
35544 if (r->in.language) {
35545 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
35546 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35547 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.language, CH_UTF16)));
35548 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.language, ndr_charset_length(r->in.language, CH_UTF16), sizeof(uint16_t), CH_UTF16));
35550 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
35551 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
35552 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.package_id, CH_UTF16)));
35553 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));
35554 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.driver_package_cab));
35555 if (r->in.driver_package_cab) {
35556 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
35557 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
35559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
35561 if (flags & NDR_OUT) {
35562 if (r->out.required == NULL) {
35563 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35565 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.driver_package_cab));
35566 if (r->out.driver_package_cab) {
35567 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, r->in.driver_package_cab_size));
35568 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.driver_package_cab, r->in.driver_package_cab_size, sizeof(uint16_t), CH_UTF16));
35570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.required));
35571 NDR_CHECK(ndr_push_HRESULT(ndr, NDR_SCALARS, r->out.result));
35573 return NDR_ERR_SUCCESS;
35576 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverPackagePath(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverPackagePath *r)
35578 uint32_t _ptr_servername;
35579 uint32_t size_servername_1 = 0;
35580 uint32_t length_servername_1 = 0;
35581 uint32_t size_architecture_1 = 0;
35582 uint32_t length_architecture_1 = 0;
35583 uint32_t _ptr_language;
35584 uint32_t size_language_1 = 0;
35585 uint32_t length_language_1 = 0;
35586 uint32_t size_package_id_1 = 0;
35587 uint32_t length_package_id_1 = 0;
35588 uint32_t _ptr_driver_package_cab;
35589 uint32_t size_driver_package_cab_1 = 0;
35590 TALLOC_CTX *_mem_save_servername_0 = NULL;
35591 TALLOC_CTX *_mem_save_language_0 = NULL;
35592 TALLOC_CTX *_mem_save_driver_package_cab_0 = NULL;
35593 TALLOC_CTX *_mem_save_required_0 = NULL;
35594 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35595 if (flags & NDR_IN) {
35596 ZERO_STRUCT(r->out);
35598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
35599 if (_ptr_servername) {
35600 NDR_PULL_ALLOC(ndr, r->in.servername);
35602 r->in.servername = NULL;
35604 if (r->in.servername) {
35605 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
35606 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
35607 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
35608 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
35609 size_servername_1 = ndr_get_array_size(ndr, &r->in.servername);
35610 length_servername_1 = ndr_get_array_length(ndr, &r->in.servername);
35611 if (length_servername_1 > size_servername_1) {
35612 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_servername_1, length_servername_1);
35614 NDR_CHECK(ndr_check_string_terminator(ndr, length_servername_1, sizeof(uint16_t)));
35615 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, length_servername_1, sizeof(uint16_t), CH_UTF16));
35616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
35618 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
35619 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
35620 size_architecture_1 = ndr_get_array_size(ndr, &r->in.architecture);
35621 length_architecture_1 = ndr_get_array_length(ndr, &r->in.architecture);
35622 if (length_architecture_1 > size_architecture_1) {
35623 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_architecture_1, length_architecture_1);
35625 NDR_CHECK(ndr_check_string_terminator(ndr, length_architecture_1, sizeof(uint16_t)));
35626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, length_architecture_1, sizeof(uint16_t), CH_UTF16));
35627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_language));
35628 if (_ptr_language) {
35629 NDR_PULL_ALLOC(ndr, r->in.language);
35631 r->in.language = NULL;
35633 if (r->in.language) {
35634 _mem_save_language_0 = NDR_PULL_GET_MEM_CTX(ndr);
35635 NDR_PULL_SET_MEM_CTX(ndr, r->in.language, 0);
35636 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.language));
35637 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.language));
35638 size_language_1 = ndr_get_array_size(ndr, &r->in.language);
35639 length_language_1 = ndr_get_array_length(ndr, &r->in.language);
35640 if (length_language_1 > size_language_1) {
35641 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_language_1, length_language_1);
35643 NDR_CHECK(ndr_check_string_terminator(ndr, length_language_1, sizeof(uint16_t)));
35644 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.language, length_language_1, sizeof(uint16_t), CH_UTF16));
35645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_language_0, 0);
35647 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.package_id));
35648 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.package_id));
35649 size_package_id_1 = ndr_get_array_size(ndr, &r->in.package_id);
35650 length_package_id_1 = ndr_get_array_length(ndr, &r->in.package_id);
35651 if (length_package_id_1 > size_package_id_1) {
35652 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_package_id_1, length_package_id_1);
35654 NDR_CHECK(ndr_check_string_terminator(ndr, length_package_id_1, sizeof(uint16_t)));
35655 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.package_id, length_package_id_1, sizeof(uint16_t), CH_UTF16));
35656 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
35657 if (_ptr_driver_package_cab) {
35658 NDR_PULL_ALLOC(ndr, r->in.driver_package_cab);
35660 r->in.driver_package_cab = NULL;
35662 if (r->in.driver_package_cab) {
35663 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
35664 NDR_PULL_SET_MEM_CTX(ndr, r->in.driver_package_cab, 0);
35665 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver_package_cab));
35666 size_driver_package_cab_1 = ndr_get_array_size(ndr, &r->in.driver_package_cab);
35667 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver_package_cab, size_driver_package_cab_1, sizeof(uint16_t), CH_UTF16));
35668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
35670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.driver_package_cab_size));
35671 NDR_PULL_ALLOC(ndr, r->out.required);
35672 ZERO_STRUCTP(r->out.required);
35673 if (r->in.driver_package_cab) {
35674 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.driver_package_cab, r->in.driver_package_cab_size));
35677 if (flags & NDR_OUT) {
35678 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_package_cab));
35679 if (_ptr_driver_package_cab) {
35680 NDR_PULL_ALLOC(ndr, r->out.driver_package_cab);
35682 r->out.driver_package_cab = NULL;
35684 if (r->out.driver_package_cab) {
35685 _mem_save_driver_package_cab_0 = NDR_PULL_GET_MEM_CTX(ndr);
35686 NDR_PULL_SET_MEM_CTX(ndr, r->out.driver_package_cab, 0);
35687 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.driver_package_cab));
35688 size_driver_package_cab_1 = ndr_get_array_size(ndr, &r->out.driver_package_cab);
35689 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.driver_package_cab, size_driver_package_cab_1, sizeof(uint16_t), CH_UTF16));
35690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_package_cab_0, 0);
35692 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
35693 NDR_PULL_ALLOC(ndr, r->out.required);
35695 _mem_save_required_0 = NDR_PULL_GET_MEM_CTX(ndr);
35696 NDR_PULL_SET_MEM_CTX(ndr, r->out.required, LIBNDR_FLAG_REF_ALLOC);
35697 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.required));
35698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_required_0, LIBNDR_FLAG_REF_ALLOC);
35699 NDR_CHECK(ndr_pull_HRESULT(ndr, NDR_SCALARS, &r->out.result));
35700 if (r->out.driver_package_cab) {
35701 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.driver_package_cab, r->in.driver_package_cab_size));
35704 return NDR_ERR_SUCCESS;
35707 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverPackagePath(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverPackagePath *r)
35709 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverPackagePath");
35710 if (r == NULL) { ndr_print_null(ndr); return; }
35712 if (flags & NDR_SET_VALUES) {
35713 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35715 if (flags & NDR_IN) {
35716 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverPackagePath");
35718 ndr_print_ptr(ndr, "servername", r->in.servername);
35720 if (r->in.servername) {
35721 ndr_print_string(ndr, "servername", r->in.servername);
35724 ndr_print_ptr(ndr, "architecture", r->in.architecture);
35726 ndr_print_string(ndr, "architecture", r->in.architecture);
35728 ndr_print_ptr(ndr, "language", r->in.language);
35730 if (r->in.language) {
35731 ndr_print_string(ndr, "language", r->in.language);
35734 ndr_print_ptr(ndr, "package_id", r->in.package_id);
35736 ndr_print_string(ndr, "package_id", r->in.package_id);
35738 ndr_print_ptr(ndr, "driver_package_cab", r->in.driver_package_cab);
35740 if (r->in.driver_package_cab) {
35741 ndr_print_string(ndr, "driver_package_cab", r->in.driver_package_cab);
35744 ndr_print_uint32(ndr, "driver_package_cab_size", r->in.driver_package_cab_size);
35747 if (flags & NDR_OUT) {
35748 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverPackagePath");
35750 ndr_print_ptr(ndr, "driver_package_cab", r->out.driver_package_cab);
35752 if (r->out.driver_package_cab) {
35753 ndr_print_string(ndr, "driver_package_cab", r->out.driver_package_cab);
35756 ndr_print_ptr(ndr, "required", r->out.required);
35758 ndr_print_uint32(ndr, "required", *r->out.required);
35760 ndr_print_HRESULT(ndr, "result", r->out.result);
35766 static enum ndr_err_code ndr_push_spoolss_69(struct ndr_push *ndr, int flags, const struct spoolss_69 *r)
35768 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35769 if (flags & NDR_IN) {
35771 if (flags & NDR_OUT) {
35772 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35774 return NDR_ERR_SUCCESS;
35777 static enum ndr_err_code ndr_pull_spoolss_69(struct ndr_pull *ndr, int flags, struct spoolss_69 *r)
35779 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35780 if (flags & NDR_IN) {
35782 if (flags & NDR_OUT) {
35783 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35785 return NDR_ERR_SUCCESS;
35788 _PUBLIC_ void ndr_print_spoolss_69(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_69 *r)
35790 ndr_print_struct(ndr, name, "spoolss_69");
35791 if (r == NULL) { ndr_print_null(ndr); return; }
35793 if (flags & NDR_SET_VALUES) {
35794 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35796 if (flags & NDR_IN) {
35797 ndr_print_struct(ndr, "in", "spoolss_69");
35801 if (flags & NDR_OUT) {
35802 ndr_print_struct(ndr, "out", "spoolss_69");
35804 ndr_print_WERROR(ndr, "result", r->out.result);
35810 static enum ndr_err_code ndr_push_spoolss_6a(struct ndr_push *ndr, int flags, const struct spoolss_6a *r)
35812 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35813 if (flags & NDR_IN) {
35815 if (flags & NDR_OUT) {
35816 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35818 return NDR_ERR_SUCCESS;
35821 static enum ndr_err_code ndr_pull_spoolss_6a(struct ndr_pull *ndr, int flags, struct spoolss_6a *r)
35823 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35824 if (flags & NDR_IN) {
35826 if (flags & NDR_OUT) {
35827 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35829 return NDR_ERR_SUCCESS;
35832 _PUBLIC_ void ndr_print_spoolss_6a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6a *r)
35834 ndr_print_struct(ndr, name, "spoolss_6a");
35835 if (r == NULL) { ndr_print_null(ndr); return; }
35837 if (flags & NDR_SET_VALUES) {
35838 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35840 if (flags & NDR_IN) {
35841 ndr_print_struct(ndr, "in", "spoolss_6a");
35845 if (flags & NDR_OUT) {
35846 ndr_print_struct(ndr, "out", "spoolss_6a");
35848 ndr_print_WERROR(ndr, "result", r->out.result);
35854 static enum ndr_err_code ndr_push_spoolss_6b(struct ndr_push *ndr, int flags, const struct spoolss_6b *r)
35856 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35857 if (flags & NDR_IN) {
35859 if (flags & NDR_OUT) {
35860 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35862 return NDR_ERR_SUCCESS;
35865 static enum ndr_err_code ndr_pull_spoolss_6b(struct ndr_pull *ndr, int flags, struct spoolss_6b *r)
35867 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35868 if (flags & NDR_IN) {
35870 if (flags & NDR_OUT) {
35871 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35873 return NDR_ERR_SUCCESS;
35876 _PUBLIC_ void ndr_print_spoolss_6b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6b *r)
35878 ndr_print_struct(ndr, name, "spoolss_6b");
35879 if (r == NULL) { ndr_print_null(ndr); return; }
35881 if (flags & NDR_SET_VALUES) {
35882 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35884 if (flags & NDR_IN) {
35885 ndr_print_struct(ndr, "in", "spoolss_6b");
35889 if (flags & NDR_OUT) {
35890 ndr_print_struct(ndr, "out", "spoolss_6b");
35892 ndr_print_WERROR(ndr, "result", r->out.result);
35898 static enum ndr_err_code ndr_push_spoolss_6c(struct ndr_push *ndr, int flags, const struct spoolss_6c *r)
35900 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35901 if (flags & NDR_IN) {
35903 if (flags & NDR_OUT) {
35904 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35906 return NDR_ERR_SUCCESS;
35909 static enum ndr_err_code ndr_pull_spoolss_6c(struct ndr_pull *ndr, int flags, struct spoolss_6c *r)
35911 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35912 if (flags & NDR_IN) {
35914 if (flags & NDR_OUT) {
35915 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35917 return NDR_ERR_SUCCESS;
35920 _PUBLIC_ void ndr_print_spoolss_6c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6c *r)
35922 ndr_print_struct(ndr, name, "spoolss_6c");
35923 if (r == NULL) { ndr_print_null(ndr); return; }
35925 if (flags & NDR_SET_VALUES) {
35926 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35928 if (flags & NDR_IN) {
35929 ndr_print_struct(ndr, "in", "spoolss_6c");
35933 if (flags & NDR_OUT) {
35934 ndr_print_struct(ndr, "out", "spoolss_6c");
35936 ndr_print_WERROR(ndr, "result", r->out.result);
35942 static enum ndr_err_code ndr_push_spoolss_6d(struct ndr_push *ndr, int flags, const struct spoolss_6d *r)
35944 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35945 if (flags & NDR_IN) {
35947 if (flags & NDR_OUT) {
35948 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
35950 return NDR_ERR_SUCCESS;
35953 static enum ndr_err_code ndr_pull_spoolss_6d(struct ndr_pull *ndr, int flags, struct spoolss_6d *r)
35955 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
35956 if (flags & NDR_IN) {
35958 if (flags & NDR_OUT) {
35959 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
35961 return NDR_ERR_SUCCESS;
35964 _PUBLIC_ void ndr_print_spoolss_6d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_6d *r)
35966 ndr_print_struct(ndr, name, "spoolss_6d");
35967 if (r == NULL) { ndr_print_null(ndr); return; }
35969 if (flags & NDR_SET_VALUES) {
35970 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
35972 if (flags & NDR_IN) {
35973 ndr_print_struct(ndr, "in", "spoolss_6d");
35977 if (flags & NDR_OUT) {
35978 ndr_print_struct(ndr, "out", "spoolss_6d");
35980 ndr_print_WERROR(ndr, "result", r->out.result);
35986 static enum ndr_err_code ndr_push_spoolss_GetJobNamedPropertyValue(struct ndr_push *ndr, int flags, const struct spoolss_GetJobNamedPropertyValue *r)
35988 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
35989 if (flags & NDR_IN) {
35990 if (r->in.hPrinter == NULL) {
35991 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35993 if (r->in.pszName == NULL) {
35994 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
35996 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
35997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
35998 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
35999 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36000 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
36001 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pszName, ndr_charset_length(r->in.pszName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36003 if (flags & NDR_OUT) {
36004 if (r->out.pValue == NULL) {
36005 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36007 NDR_CHECK(ndr_push_spoolss_PrintPropertyValue(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.pValue));
36008 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36010 return NDR_ERR_SUCCESS;
36013 static enum ndr_err_code ndr_pull_spoolss_GetJobNamedPropertyValue(struct ndr_pull *ndr, int flags, struct spoolss_GetJobNamedPropertyValue *r)
36015 uint32_t size_pszName_1 = 0;
36016 uint32_t length_pszName_1 = 0;
36017 TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
36018 TALLOC_CTX *_mem_save_pValue_0 = NULL;
36019 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36020 if (flags & NDR_IN) {
36021 ZERO_STRUCT(r->out);
36023 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36024 NDR_PULL_ALLOC(ndr, r->in.hPrinter);
36026 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
36027 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
36028 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
36030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
36031 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pszName));
36032 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pszName));
36033 size_pszName_1 = ndr_get_array_size(ndr, &r->in.pszName);
36034 length_pszName_1 = ndr_get_array_length(ndr, &r->in.pszName);
36035 if (length_pszName_1 > size_pszName_1) {
36036 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszName_1, length_pszName_1);
36038 NDR_CHECK(ndr_check_string_terminator(ndr, length_pszName_1, sizeof(uint16_t)));
36039 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pszName, length_pszName_1, sizeof(uint16_t), CH_UTF16));
36040 NDR_PULL_ALLOC(ndr, r->out.pValue);
36041 ZERO_STRUCTP(r->out.pValue);
36043 if (flags & NDR_OUT) {
36044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36045 NDR_PULL_ALLOC(ndr, r->out.pValue);
36047 _mem_save_pValue_0 = NDR_PULL_GET_MEM_CTX(ndr);
36048 NDR_PULL_SET_MEM_CTX(ndr, r->out.pValue, LIBNDR_FLAG_REF_ALLOC);
36049 NDR_CHECK(ndr_pull_spoolss_PrintPropertyValue(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.pValue));
36050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pValue_0, LIBNDR_FLAG_REF_ALLOC);
36051 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36053 return NDR_ERR_SUCCESS;
36056 _PUBLIC_ void ndr_print_spoolss_GetJobNamedPropertyValue(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJobNamedPropertyValue *r)
36058 ndr_print_struct(ndr, name, "spoolss_GetJobNamedPropertyValue");
36059 if (r == NULL) { ndr_print_null(ndr); return; }
36061 if (flags & NDR_SET_VALUES) {
36062 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36064 if (flags & NDR_IN) {
36065 ndr_print_struct(ndr, "in", "spoolss_GetJobNamedPropertyValue");
36067 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
36069 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
36071 ndr_print_uint32(ndr, "JobId", r->in.JobId);
36072 ndr_print_ptr(ndr, "pszName", r->in.pszName);
36074 ndr_print_string(ndr, "pszName", r->in.pszName);
36078 if (flags & NDR_OUT) {
36079 ndr_print_struct(ndr, "out", "spoolss_GetJobNamedPropertyValue");
36081 ndr_print_ptr(ndr, "pValue", r->out.pValue);
36083 ndr_print_spoolss_PrintPropertyValue(ndr, "pValue", r->out.pValue);
36085 ndr_print_WERROR(ndr, "result", r->out.result);
36091 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobNamedProperty(struct ndr_push *ndr, int flags, const struct spoolss_SetJobNamedProperty *r)
36093 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36094 if (flags & NDR_IN) {
36095 if (r->in.hPrinter == NULL) {
36096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36098 if (r->in.pProperty == NULL) {
36099 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36101 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
36103 NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pProperty));
36105 if (flags & NDR_OUT) {
36106 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36108 return NDR_ERR_SUCCESS;
36111 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobNamedProperty(struct ndr_pull *ndr, int flags, struct spoolss_SetJobNamedProperty *r)
36113 TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
36114 TALLOC_CTX *_mem_save_pProperty_0 = NULL;
36115 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36116 if (flags & NDR_IN) {
36117 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36118 NDR_PULL_ALLOC(ndr, r->in.hPrinter);
36120 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
36121 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
36122 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36123 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
36124 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
36125 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36126 NDR_PULL_ALLOC(ndr, r->in.pProperty);
36128 _mem_save_pProperty_0 = NDR_PULL_GET_MEM_CTX(ndr);
36129 NDR_PULL_SET_MEM_CTX(ndr, r->in.pProperty, LIBNDR_FLAG_REF_ALLOC);
36130 NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pProperty));
36131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pProperty_0, LIBNDR_FLAG_REF_ALLOC);
36133 if (flags & NDR_OUT) {
36134 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36136 return NDR_ERR_SUCCESS;
36139 _PUBLIC_ void ndr_print_spoolss_SetJobNamedProperty(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJobNamedProperty *r)
36141 ndr_print_struct(ndr, name, "spoolss_SetJobNamedProperty");
36142 if (r == NULL) { ndr_print_null(ndr); return; }
36144 if (flags & NDR_SET_VALUES) {
36145 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36147 if (flags & NDR_IN) {
36148 ndr_print_struct(ndr, "in", "spoolss_SetJobNamedProperty");
36150 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
36152 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
36154 ndr_print_uint32(ndr, "JobId", r->in.JobId);
36155 ndr_print_ptr(ndr, "pProperty", r->in.pProperty);
36157 ndr_print_spoolss_PrintNamedProperty(ndr, "pProperty", r->in.pProperty);
36161 if (flags & NDR_OUT) {
36162 ndr_print_struct(ndr, "out", "spoolss_SetJobNamedProperty");
36164 ndr_print_WERROR(ndr, "result", r->out.result);
36170 static enum ndr_err_code ndr_push_spoolss_DeleteJobNamedProperty(struct ndr_push *ndr, int flags, const struct spoolss_DeleteJobNamedProperty *r)
36172 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36173 if (flags & NDR_IN) {
36174 if (r->in.hPrinter == NULL) {
36175 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36177 if (r->in.pszName == NULL) {
36178 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36180 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
36182 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
36183 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, 0));
36184 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, ndr_charset_length(r->in.pszName, CH_UTF16)));
36185 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.pszName, ndr_charset_length(r->in.pszName, CH_UTF16), sizeof(uint16_t), CH_UTF16));
36187 if (flags & NDR_OUT) {
36188 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36190 return NDR_ERR_SUCCESS;
36193 static enum ndr_err_code ndr_pull_spoolss_DeleteJobNamedProperty(struct ndr_pull *ndr, int flags, struct spoolss_DeleteJobNamedProperty *r)
36195 uint32_t size_pszName_1 = 0;
36196 uint32_t length_pszName_1 = 0;
36197 TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
36198 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36199 if (flags & NDR_IN) {
36200 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36201 NDR_PULL_ALLOC(ndr, r->in.hPrinter);
36203 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
36204 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
36205 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
36207 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
36208 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.pszName));
36209 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.pszName));
36210 size_pszName_1 = ndr_get_array_size(ndr, &r->in.pszName);
36211 length_pszName_1 = ndr_get_array_length(ndr, &r->in.pszName);
36212 if (length_pszName_1 > size_pszName_1) {
36213 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", size_pszName_1, length_pszName_1);
36215 NDR_CHECK(ndr_check_string_terminator(ndr, length_pszName_1, sizeof(uint16_t)));
36216 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.pszName, length_pszName_1, sizeof(uint16_t), CH_UTF16));
36218 if (flags & NDR_OUT) {
36219 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36221 return NDR_ERR_SUCCESS;
36224 _PUBLIC_ void ndr_print_spoolss_DeleteJobNamedProperty(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteJobNamedProperty *r)
36226 ndr_print_struct(ndr, name, "spoolss_DeleteJobNamedProperty");
36227 if (r == NULL) { ndr_print_null(ndr); return; }
36229 if (flags & NDR_SET_VALUES) {
36230 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36232 if (flags & NDR_IN) {
36233 ndr_print_struct(ndr, "in", "spoolss_DeleteJobNamedProperty");
36235 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
36237 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
36239 ndr_print_uint32(ndr, "JobId", r->in.JobId);
36240 ndr_print_ptr(ndr, "pszName", r->in.pszName);
36242 ndr_print_string(ndr, "pszName", r->in.pszName);
36246 if (flags & NDR_OUT) {
36247 ndr_print_struct(ndr, "out", "spoolss_DeleteJobNamedProperty");
36249 ndr_print_WERROR(ndr, "result", r->out.result);
36255 static enum ndr_err_code ndr_push_spoolss_EnumJobNamedProperties(struct ndr_push *ndr, int flags, const struct spoolss_EnumJobNamedProperties *r)
36257 uint32_t cntr_ppProperties_2;
36258 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36259 if (flags & NDR_IN) {
36260 if (r->in.hPrinter == NULL) {
36261 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36263 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.JobId));
36266 if (flags & NDR_OUT) {
36267 if (r->out.pcProperties == NULL) {
36268 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36270 if (r->out.ppProperties == NULL) {
36271 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.pcProperties));
36274 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.ppProperties));
36275 if (*r->out.ppProperties) {
36276 NDR_CHECK(ndr_push_uint3264(ndr, NDR_SCALARS, *r->out.pcProperties));
36277 for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
36278 NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_SCALARS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
36280 for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
36281 NDR_CHECK(ndr_push_spoolss_PrintNamedProperty(ndr, NDR_BUFFERS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
36284 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36286 return NDR_ERR_SUCCESS;
36289 static enum ndr_err_code ndr_pull_spoolss_EnumJobNamedProperties(struct ndr_pull *ndr, int flags, struct spoolss_EnumJobNamedProperties *r)
36291 uint32_t _ptr_ppProperties;
36292 uint32_t size_ppProperties_2 = 0;
36293 uint32_t cntr_ppProperties_2;
36294 TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
36295 TALLOC_CTX *_mem_save_pcProperties_0 = NULL;
36296 TALLOC_CTX *_mem_save_ppProperties_0 = NULL;
36297 TALLOC_CTX *_mem_save_ppProperties_1 = NULL;
36298 TALLOC_CTX *_mem_save_ppProperties_2 = NULL;
36299 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36300 if (flags & NDR_IN) {
36301 ZERO_STRUCT(r->out);
36303 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36304 NDR_PULL_ALLOC(ndr, r->in.hPrinter);
36306 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
36307 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
36308 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
36310 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.JobId));
36311 NDR_PULL_ALLOC(ndr, r->out.pcProperties);
36312 ZERO_STRUCTP(r->out.pcProperties);
36313 NDR_PULL_ALLOC(ndr, r->out.ppProperties);
36314 ZERO_STRUCTP(r->out.ppProperties);
36316 if (flags & NDR_OUT) {
36317 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36318 NDR_PULL_ALLOC(ndr, r->out.pcProperties);
36320 _mem_save_pcProperties_0 = NDR_PULL_GET_MEM_CTX(ndr);
36321 NDR_PULL_SET_MEM_CTX(ndr, r->out.pcProperties, LIBNDR_FLAG_REF_ALLOC);
36322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.pcProperties));
36323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pcProperties_0, LIBNDR_FLAG_REF_ALLOC);
36324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36325 NDR_PULL_ALLOC(ndr, r->out.ppProperties);
36327 _mem_save_ppProperties_0 = NDR_PULL_GET_MEM_CTX(ndr);
36328 NDR_PULL_SET_MEM_CTX(ndr, r->out.ppProperties, LIBNDR_FLAG_REF_ALLOC);
36329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ppProperties));
36330 if (_ptr_ppProperties) {
36331 NDR_PULL_ALLOC(ndr, *r->out.ppProperties);
36333 *r->out.ppProperties = NULL;
36335 if (*r->out.ppProperties) {
36336 _mem_save_ppProperties_1 = NDR_PULL_GET_MEM_CTX(ndr);
36337 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppProperties, 0);
36338 NDR_CHECK(ndr_pull_array_size(ndr, r->out.ppProperties));
36339 size_ppProperties_2 = ndr_get_array_size(ndr, r->out.ppProperties);
36340 NDR_PULL_ALLOC_N(ndr, *r->out.ppProperties, size_ppProperties_2);
36341 _mem_save_ppProperties_2 = NDR_PULL_GET_MEM_CTX(ndr);
36342 NDR_PULL_SET_MEM_CTX(ndr, *r->out.ppProperties, 0);
36343 for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (size_ppProperties_2); cntr_ppProperties_2++) {
36344 NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_SCALARS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
36346 for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (size_ppProperties_2); cntr_ppProperties_2++) {
36347 NDR_CHECK(ndr_pull_spoolss_PrintNamedProperty(ndr, NDR_BUFFERS, &(*r->out.ppProperties)[cntr_ppProperties_2]));
36349 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_2, 0);
36350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_1, 0);
36352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ppProperties_0, LIBNDR_FLAG_REF_ALLOC);
36353 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36354 if (*r->out.ppProperties) {
36355 NDR_CHECK(ndr_check_array_size(ndr, (void*)r->out.ppProperties, *r->out.pcProperties));
36358 return NDR_ERR_SUCCESS;
36361 _PUBLIC_ void ndr_print_spoolss_EnumJobNamedProperties(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobNamedProperties *r)
36363 uint32_t cntr_ppProperties_2;
36364 ndr_print_struct(ndr, name, "spoolss_EnumJobNamedProperties");
36365 if (r == NULL) { ndr_print_null(ndr); return; }
36367 if (flags & NDR_SET_VALUES) {
36368 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36370 if (flags & NDR_IN) {
36371 ndr_print_struct(ndr, "in", "spoolss_EnumJobNamedProperties");
36373 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
36375 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
36377 ndr_print_uint32(ndr, "JobId", r->in.JobId);
36380 if (flags & NDR_OUT) {
36381 ndr_print_struct(ndr, "out", "spoolss_EnumJobNamedProperties");
36383 ndr_print_ptr(ndr, "pcProperties", r->out.pcProperties);
36385 ndr_print_uint32(ndr, "pcProperties", *r->out.pcProperties);
36387 ndr_print_ptr(ndr, "ppProperties", r->out.ppProperties);
36389 ndr_print_ptr(ndr, "ppProperties", *r->out.ppProperties);
36391 if (*r->out.ppProperties) {
36392 ndr->print(ndr, "%s: ARRAY(%d)", "ppProperties", (int)*r->out.pcProperties);
36394 for (cntr_ppProperties_2 = 0; cntr_ppProperties_2 < (*r->out.pcProperties); cntr_ppProperties_2++) {
36395 ndr_print_spoolss_PrintNamedProperty(ndr, "ppProperties", &(*r->out.ppProperties)[cntr_ppProperties_2]);
36401 ndr_print_WERROR(ndr, "result", r->out.result);
36407 static enum ndr_err_code ndr_push_spoolss_72(struct ndr_push *ndr, int flags, const struct spoolss_72 *r)
36409 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36410 if (flags & NDR_IN) {
36412 if (flags & NDR_OUT) {
36413 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36415 return NDR_ERR_SUCCESS;
36418 static enum ndr_err_code ndr_pull_spoolss_72(struct ndr_pull *ndr, int flags, struct spoolss_72 *r)
36420 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36421 if (flags & NDR_IN) {
36423 if (flags & NDR_OUT) {
36424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36426 return NDR_ERR_SUCCESS;
36429 _PUBLIC_ void ndr_print_spoolss_72(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_72 *r)
36431 ndr_print_struct(ndr, name, "spoolss_72");
36432 if (r == NULL) { ndr_print_null(ndr); return; }
36434 if (flags & NDR_SET_VALUES) {
36435 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36437 if (flags & NDR_IN) {
36438 ndr_print_struct(ndr, "in", "spoolss_72");
36442 if (flags & NDR_OUT) {
36443 ndr_print_struct(ndr, "out", "spoolss_72");
36445 ndr_print_WERROR(ndr, "result", r->out.result);
36451 static enum ndr_err_code ndr_push_spoolss_73(struct ndr_push *ndr, int flags, const struct spoolss_73 *r)
36453 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36454 if (flags & NDR_IN) {
36456 if (flags & NDR_OUT) {
36457 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36459 return NDR_ERR_SUCCESS;
36462 static enum ndr_err_code ndr_pull_spoolss_73(struct ndr_pull *ndr, int flags, struct spoolss_73 *r)
36464 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36465 if (flags & NDR_IN) {
36467 if (flags & NDR_OUT) {
36468 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36470 return NDR_ERR_SUCCESS;
36473 _PUBLIC_ void ndr_print_spoolss_73(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_73 *r)
36475 ndr_print_struct(ndr, name, "spoolss_73");
36476 if (r == NULL) { ndr_print_null(ndr); return; }
36478 if (flags & NDR_SET_VALUES) {
36479 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36481 if (flags & NDR_IN) {
36482 ndr_print_struct(ndr, "in", "spoolss_73");
36486 if (flags & NDR_OUT) {
36487 ndr_print_struct(ndr, "out", "spoolss_73");
36489 ndr_print_WERROR(ndr, "result", r->out.result);
36495 static enum ndr_err_code ndr_push_spoolss_LogJobInfoForBranchOffice(struct ndr_push *ndr, int flags, const struct spoolss_LogJobInfoForBranchOffice *r)
36497 NDR_PUSH_CHECK_FN_FLAGS(ndr, flags);
36498 if (flags & NDR_IN) {
36499 if (r->in.hPrinter == NULL) {
36500 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36502 if (r->in.pBranchOfficeJobDataContainer == NULL) {
36503 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
36505 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36506 NDR_CHECK(ndr_push_spoolss_BranchOfficeJobDataContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pBranchOfficeJobDataContainer));
36508 if (flags & NDR_OUT) {
36509 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
36511 return NDR_ERR_SUCCESS;
36514 static enum ndr_err_code ndr_pull_spoolss_LogJobInfoForBranchOffice(struct ndr_pull *ndr, int flags, struct spoolss_LogJobInfoForBranchOffice *r)
36516 TALLOC_CTX *_mem_save_hPrinter_0 = NULL;
36517 TALLOC_CTX *_mem_save_pBranchOfficeJobDataContainer_0 = NULL;
36518 NDR_PULL_CHECK_FN_FLAGS(ndr, flags);
36519 if (flags & NDR_IN) {
36520 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36521 NDR_PULL_ALLOC(ndr, r->in.hPrinter);
36523 _mem_save_hPrinter_0 = NDR_PULL_GET_MEM_CTX(ndr);
36524 NDR_PULL_SET_MEM_CTX(ndr, r->in.hPrinter, LIBNDR_FLAG_REF_ALLOC);
36525 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.hPrinter));
36526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hPrinter_0, LIBNDR_FLAG_REF_ALLOC);
36527 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
36528 NDR_PULL_ALLOC(ndr, r->in.pBranchOfficeJobDataContainer);
36530 _mem_save_pBranchOfficeJobDataContainer_0 = NDR_PULL_GET_MEM_CTX(ndr);
36531 NDR_PULL_SET_MEM_CTX(ndr, r->in.pBranchOfficeJobDataContainer, LIBNDR_FLAG_REF_ALLOC);
36532 NDR_CHECK(ndr_pull_spoolss_BranchOfficeJobDataContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.pBranchOfficeJobDataContainer));
36533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_pBranchOfficeJobDataContainer_0, LIBNDR_FLAG_REF_ALLOC);
36535 if (flags & NDR_OUT) {
36536 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
36538 return NDR_ERR_SUCCESS;
36541 _PUBLIC_ void ndr_print_spoolss_LogJobInfoForBranchOffice(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_LogJobInfoForBranchOffice *r)
36543 ndr_print_struct(ndr, name, "spoolss_LogJobInfoForBranchOffice");
36544 if (r == NULL) { ndr_print_null(ndr); return; }
36546 if (flags & NDR_SET_VALUES) {
36547 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
36549 if (flags & NDR_IN) {
36550 ndr_print_struct(ndr, "in", "spoolss_LogJobInfoForBranchOffice");
36552 ndr_print_ptr(ndr, "hPrinter", r->in.hPrinter);
36554 ndr_print_policy_handle(ndr, "hPrinter", r->in.hPrinter);
36556 ndr_print_ptr(ndr, "pBranchOfficeJobDataContainer", r->in.pBranchOfficeJobDataContainer);
36558 ndr_print_spoolss_BranchOfficeJobDataContainer(ndr, "pBranchOfficeJobDataContainer", r->in.pBranchOfficeJobDataContainer);
36562 if (flags & NDR_OUT) {
36563 ndr_print_struct(ndr, "out", "spoolss_LogJobInfoForBranchOffice");
36565 ndr_print_WERROR(ndr, "result", r->out.result);
36571 static const struct ndr_interface_call spoolss_calls[] = {
36573 "spoolss_EnumPrinters",
36574 sizeof(struct spoolss_EnumPrinters),
36575 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
36576 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
36577 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
36582 "spoolss_OpenPrinter",
36583 sizeof(struct spoolss_OpenPrinter),
36584 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
36585 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
36586 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
36592 sizeof(struct spoolss_SetJob),
36593 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
36594 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
36595 (ndr_print_function_t) ndr_print_spoolss_SetJob,
36601 sizeof(struct spoolss_GetJob),
36602 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
36603 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
36604 (ndr_print_function_t) ndr_print_spoolss_GetJob,
36609 "spoolss_EnumJobs",
36610 sizeof(struct spoolss_EnumJobs),
36611 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
36612 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
36613 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
36618 "spoolss_AddPrinter",
36619 sizeof(struct spoolss_AddPrinter),
36620 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
36621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
36622 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
36627 "spoolss_DeletePrinter",
36628 sizeof(struct spoolss_DeletePrinter),
36629 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
36630 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
36631 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
36636 "spoolss_SetPrinter",
36637 sizeof(struct spoolss_SetPrinter),
36638 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
36639 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
36640 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
36645 "spoolss_GetPrinter",
36646 sizeof(struct spoolss_GetPrinter),
36647 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
36648 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
36649 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
36654 "spoolss_AddPrinterDriver",
36655 sizeof(struct spoolss_AddPrinterDriver),
36656 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
36657 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
36658 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
36663 "spoolss_EnumPrinterDrivers",
36664 sizeof(struct spoolss_EnumPrinterDrivers),
36665 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
36666 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
36667 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
36672 "spoolss_GetPrinterDriver",
36673 sizeof(struct spoolss_GetPrinterDriver),
36674 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
36675 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
36676 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
36681 "spoolss_GetPrinterDriverDirectory",
36682 sizeof(struct spoolss_GetPrinterDriverDirectory),
36683 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
36684 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
36685 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
36690 "spoolss_DeletePrinterDriver",
36691 sizeof(struct spoolss_DeletePrinterDriver),
36692 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
36693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
36694 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
36699 "spoolss_AddPrintProcessor",
36700 sizeof(struct spoolss_AddPrintProcessor),
36701 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
36702 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
36703 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
36708 "spoolss_EnumPrintProcessors",
36709 sizeof(struct spoolss_EnumPrintProcessors),
36710 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
36711 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
36712 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
36717 "spoolss_GetPrintProcessorDirectory",
36718 sizeof(struct spoolss_GetPrintProcessorDirectory),
36719 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
36720 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
36721 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
36726 "spoolss_StartDocPrinter",
36727 sizeof(struct spoolss_StartDocPrinter),
36728 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
36729 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
36730 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
36735 "spoolss_StartPagePrinter",
36736 sizeof(struct spoolss_StartPagePrinter),
36737 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
36738 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
36739 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
36744 "spoolss_WritePrinter",
36745 sizeof(struct spoolss_WritePrinter),
36746 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
36747 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
36748 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
36753 "spoolss_EndPagePrinter",
36754 sizeof(struct spoolss_EndPagePrinter),
36755 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
36756 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
36757 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
36762 "spoolss_AbortPrinter",
36763 sizeof(struct spoolss_AbortPrinter),
36764 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
36765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
36766 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
36771 "spoolss_ReadPrinter",
36772 sizeof(struct spoolss_ReadPrinter),
36773 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
36774 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
36775 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
36780 "spoolss_EndDocPrinter",
36781 sizeof(struct spoolss_EndDocPrinter),
36782 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
36783 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
36784 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
36790 sizeof(struct spoolss_AddJob),
36791 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
36792 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
36793 (ndr_print_function_t) ndr_print_spoolss_AddJob,
36798 "spoolss_ScheduleJob",
36799 sizeof(struct spoolss_ScheduleJob),
36800 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
36801 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
36802 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
36807 "spoolss_GetPrinterData",
36808 sizeof(struct spoolss_GetPrinterData),
36809 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
36810 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
36811 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
36816 "spoolss_SetPrinterData",
36817 sizeof(struct spoolss_SetPrinterData),
36818 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
36819 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
36820 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
36825 "spoolss_WaitForPrinterChange",
36826 sizeof(struct spoolss_WaitForPrinterChange),
36827 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
36828 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
36829 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
36834 "spoolss_ClosePrinter",
36835 sizeof(struct spoolss_ClosePrinter),
36836 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
36837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
36838 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
36844 sizeof(struct spoolss_AddForm),
36845 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
36846 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
36847 (ndr_print_function_t) ndr_print_spoolss_AddForm,
36852 "spoolss_DeleteForm",
36853 sizeof(struct spoolss_DeleteForm),
36854 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
36855 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
36856 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
36862 sizeof(struct spoolss_GetForm),
36863 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
36864 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
36865 (ndr_print_function_t) ndr_print_spoolss_GetForm,
36871 sizeof(struct spoolss_SetForm),
36872 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
36873 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
36874 (ndr_print_function_t) ndr_print_spoolss_SetForm,
36879 "spoolss_EnumForms",
36880 sizeof(struct spoolss_EnumForms),
36881 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
36882 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
36883 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
36888 "spoolss_EnumPorts",
36889 sizeof(struct spoolss_EnumPorts),
36890 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
36891 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
36892 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
36897 "spoolss_EnumMonitors",
36898 sizeof(struct spoolss_EnumMonitors),
36899 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
36900 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
36901 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
36907 sizeof(struct spoolss_AddPort),
36908 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
36909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
36910 (ndr_print_function_t) ndr_print_spoolss_AddPort,
36915 "spoolss_ConfigurePort",
36916 sizeof(struct spoolss_ConfigurePort),
36917 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
36918 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
36919 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
36924 "spoolss_DeletePort",
36925 sizeof(struct spoolss_DeletePort),
36926 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
36927 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
36928 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
36933 "spoolss_CreatePrinterIC",
36934 sizeof(struct spoolss_CreatePrinterIC),
36935 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
36936 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
36937 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
36942 "spoolss_PlayGDIScriptOnPrinterIC",
36943 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
36944 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
36945 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
36946 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
36951 "spoolss_DeletePrinterIC",
36952 sizeof(struct spoolss_DeletePrinterIC),
36953 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
36954 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
36955 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
36960 "spoolss_AddPrinterConnection",
36961 sizeof(struct spoolss_AddPrinterConnection),
36962 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
36963 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
36964 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
36969 "spoolss_DeletePrinterConnection",
36970 sizeof(struct spoolss_DeletePrinterConnection),
36971 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
36972 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
36973 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
36978 "spoolss_PrinterMessageBox",
36979 sizeof(struct spoolss_PrinterMessageBox),
36980 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
36981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
36982 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
36987 "spoolss_AddMonitor",
36988 sizeof(struct spoolss_AddMonitor),
36989 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
36990 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
36991 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
36996 "spoolss_DeleteMonitor",
36997 sizeof(struct spoolss_DeleteMonitor),
36998 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
36999 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
37000 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
37005 "spoolss_DeletePrintProcessor",
37006 sizeof(struct spoolss_DeletePrintProcessor),
37007 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
37008 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
37009 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
37014 "spoolss_AddPrintProvidor",
37015 sizeof(struct spoolss_AddPrintProvidor),
37016 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
37017 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
37018 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
37023 "spoolss_DeletePrintProvidor",
37024 sizeof(struct spoolss_DeletePrintProvidor),
37025 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
37026 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
37027 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
37032 "spoolss_EnumPrintProcessorDataTypes",
37033 sizeof(struct spoolss_EnumPrintProcessorDataTypes),
37034 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessorDataTypes,
37035 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessorDataTypes,
37036 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessorDataTypes,
37041 "spoolss_ResetPrinter",
37042 sizeof(struct spoolss_ResetPrinter),
37043 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
37044 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
37045 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
37050 "spoolss_GetPrinterDriver2",
37051 sizeof(struct spoolss_GetPrinterDriver2),
37052 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
37053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
37054 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
37059 "spoolss_FindFirstPrinterChangeNotification",
37060 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
37061 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
37062 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
37063 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
37068 "spoolss_FindNextPrinterChangeNotification",
37069 sizeof(struct spoolss_FindNextPrinterChangeNotification),
37070 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
37071 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
37072 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
37077 "spoolss_FindClosePrinterNotify",
37078 sizeof(struct spoolss_FindClosePrinterNotify),
37079 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
37080 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
37081 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
37086 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
37087 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
37088 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
37089 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
37090 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
37095 "spoolss_ReplyOpenPrinter",
37096 sizeof(struct spoolss_ReplyOpenPrinter),
37097 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
37098 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
37099 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
37104 "spoolss_RouterReplyPrinter",
37105 sizeof(struct spoolss_RouterReplyPrinter),
37106 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
37107 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
37108 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
37113 "spoolss_ReplyClosePrinter",
37114 sizeof(struct spoolss_ReplyClosePrinter),
37115 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
37116 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
37117 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
37122 "spoolss_AddPortEx",
37123 sizeof(struct spoolss_AddPortEx),
37124 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
37125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
37126 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
37131 "spoolss_RouterFindFirstPrinterChangeNotification",
37132 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
37133 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
37134 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
37135 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
37140 "spoolss_SpoolerInit",
37141 sizeof(struct spoolss_SpoolerInit),
37142 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
37143 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
37144 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
37149 "spoolss_ResetPrinterEx",
37150 sizeof(struct spoolss_ResetPrinterEx),
37151 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
37152 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
37153 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
37158 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
37159 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
37160 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
37161 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
37162 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
37167 "spoolss_RouterReplyPrinterEx",
37168 sizeof(struct spoolss_RouterReplyPrinterEx),
37169 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
37170 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
37171 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
37176 "spoolss_RouterRefreshPrinterChangeNotify",
37177 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
37178 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
37179 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
37180 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
37186 sizeof(struct spoolss_44),
37187 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
37188 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
37189 (ndr_print_function_t) ndr_print_spoolss_44,
37194 "spoolss_OpenPrinterEx",
37195 sizeof(struct spoolss_OpenPrinterEx),
37196 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
37197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
37198 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
37203 "spoolss_AddPrinterEx",
37204 sizeof(struct spoolss_AddPrinterEx),
37205 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
37206 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
37207 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
37213 sizeof(struct spoolss_SetPort),
37214 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPort,
37215 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPort,
37216 (ndr_print_function_t) ndr_print_spoolss_SetPort,
37221 "spoolss_EnumPrinterData",
37222 sizeof(struct spoolss_EnumPrinterData),
37223 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
37224 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
37225 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
37230 "spoolss_DeletePrinterData",
37231 sizeof(struct spoolss_DeletePrinterData),
37232 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
37233 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
37234 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
37240 sizeof(struct spoolss_4a),
37241 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
37242 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
37243 (ndr_print_function_t) ndr_print_spoolss_4a,
37249 sizeof(struct spoolss_4b),
37250 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
37251 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
37252 (ndr_print_function_t) ndr_print_spoolss_4b,
37258 sizeof(struct spoolss_4c),
37259 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
37260 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
37261 (ndr_print_function_t) ndr_print_spoolss_4c,
37266 "spoolss_SetPrinterDataEx",
37267 sizeof(struct spoolss_SetPrinterDataEx),
37268 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
37269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
37270 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
37275 "spoolss_GetPrinterDataEx",
37276 sizeof(struct spoolss_GetPrinterDataEx),
37277 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
37278 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
37279 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
37284 "spoolss_EnumPrinterDataEx",
37285 sizeof(struct spoolss_EnumPrinterDataEx),
37286 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
37287 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
37288 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
37293 "spoolss_EnumPrinterKey",
37294 sizeof(struct spoolss_EnumPrinterKey),
37295 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
37296 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
37297 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
37302 "spoolss_DeletePrinterDataEx",
37303 sizeof(struct spoolss_DeletePrinterDataEx),
37304 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
37305 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
37306 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
37311 "spoolss_DeletePrinterKey",
37312 sizeof(struct spoolss_DeletePrinterKey),
37313 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
37314 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
37315 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
37321 sizeof(struct spoolss_53),
37322 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
37323 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
37324 (ndr_print_function_t) ndr_print_spoolss_53,
37329 "spoolss_DeletePrinterDriverEx",
37330 sizeof(struct spoolss_DeletePrinterDriverEx),
37331 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
37332 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
37333 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
37338 "spoolss_AddPerMachineConnection",
37339 sizeof(struct spoolss_AddPerMachineConnection),
37340 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPerMachineConnection,
37341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPerMachineConnection,
37342 (ndr_print_function_t) ndr_print_spoolss_AddPerMachineConnection,
37347 "spoolss_DeletePerMachineConnection",
37348 sizeof(struct spoolss_DeletePerMachineConnection),
37349 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePerMachineConnection,
37350 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePerMachineConnection,
37351 (ndr_print_function_t) ndr_print_spoolss_DeletePerMachineConnection,
37356 "spoolss_EnumPerMachineConnections",
37357 sizeof(struct spoolss_EnumPerMachineConnections),
37358 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPerMachineConnections,
37359 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPerMachineConnections,
37360 (ndr_print_function_t) ndr_print_spoolss_EnumPerMachineConnections,
37366 sizeof(struct spoolss_XcvData),
37367 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
37368 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
37369 (ndr_print_function_t) ndr_print_spoolss_XcvData,
37374 "spoolss_AddPrinterDriverEx",
37375 sizeof(struct spoolss_AddPrinterDriverEx),
37376 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
37377 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
37378 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
37384 sizeof(struct spoolss_5a),
37385 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
37386 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
37387 (ndr_print_function_t) ndr_print_spoolss_5a,
37393 sizeof(struct spoolss_5b),
37394 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
37395 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
37396 (ndr_print_function_t) ndr_print_spoolss_5b,
37402 sizeof(struct spoolss_5c),
37403 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
37404 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
37405 (ndr_print_function_t) ndr_print_spoolss_5c,
37411 sizeof(struct spoolss_5d),
37412 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
37413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
37414 (ndr_print_function_t) ndr_print_spoolss_5d,
37420 sizeof(struct spoolss_5e),
37421 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
37422 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
37423 (ndr_print_function_t) ndr_print_spoolss_5e,
37429 sizeof(struct spoolss_5f),
37430 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
37431 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
37432 (ndr_print_function_t) ndr_print_spoolss_5f,
37438 sizeof(struct spoolss_60),
37439 (ndr_push_flags_fn_t) ndr_push_spoolss_60,
37440 (ndr_pull_flags_fn_t) ndr_pull_spoolss_60,
37441 (ndr_print_function_t) ndr_print_spoolss_60,
37446 "spoolss_SendRecvBidiData",
37447 sizeof(struct spoolss_SendRecvBidiData),
37448 (ndr_push_flags_fn_t) ndr_push_spoolss_SendRecvBidiData,
37449 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SendRecvBidiData,
37450 (ndr_print_function_t) ndr_print_spoolss_SendRecvBidiData,
37456 sizeof(struct spoolss_62),
37457 (ndr_push_flags_fn_t) ndr_push_spoolss_62,
37458 (ndr_pull_flags_fn_t) ndr_pull_spoolss_62,
37459 (ndr_print_function_t) ndr_print_spoolss_62,
37465 sizeof(struct spoolss_63),
37466 (ndr_push_flags_fn_t) ndr_push_spoolss_63,
37467 (ndr_pull_flags_fn_t) ndr_pull_spoolss_63,
37468 (ndr_print_function_t) ndr_print_spoolss_63,
37474 sizeof(struct spoolss_64),
37475 (ndr_push_flags_fn_t) ndr_push_spoolss_64,
37476 (ndr_pull_flags_fn_t) ndr_pull_spoolss_64,
37477 (ndr_print_function_t) ndr_print_spoolss_64,
37483 sizeof(struct spoolss_65),
37484 (ndr_push_flags_fn_t) ndr_push_spoolss_65,
37485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_65,
37486 (ndr_print_function_t) ndr_print_spoolss_65,
37491 "spoolss_GetCorePrinterDrivers",
37492 sizeof(struct spoolss_GetCorePrinterDrivers),
37493 (ndr_push_flags_fn_t) ndr_push_spoolss_GetCorePrinterDrivers,
37494 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetCorePrinterDrivers,
37495 (ndr_print_function_t) ndr_print_spoolss_GetCorePrinterDrivers,
37501 sizeof(struct spoolss_67),
37502 (ndr_push_flags_fn_t) ndr_push_spoolss_67,
37503 (ndr_pull_flags_fn_t) ndr_pull_spoolss_67,
37504 (ndr_print_function_t) ndr_print_spoolss_67,
37509 "spoolss_GetPrinterDriverPackagePath",
37510 sizeof(struct spoolss_GetPrinterDriverPackagePath),
37511 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverPackagePath,
37512 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverPackagePath,
37513 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverPackagePath,
37519 sizeof(struct spoolss_69),
37520 (ndr_push_flags_fn_t) ndr_push_spoolss_69,
37521 (ndr_pull_flags_fn_t) ndr_pull_spoolss_69,
37522 (ndr_print_function_t) ndr_print_spoolss_69,
37528 sizeof(struct spoolss_6a),
37529 (ndr_push_flags_fn_t) ndr_push_spoolss_6a,
37530 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6a,
37531 (ndr_print_function_t) ndr_print_spoolss_6a,
37537 sizeof(struct spoolss_6b),
37538 (ndr_push_flags_fn_t) ndr_push_spoolss_6b,
37539 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6b,
37540 (ndr_print_function_t) ndr_print_spoolss_6b,
37546 sizeof(struct spoolss_6c),
37547 (ndr_push_flags_fn_t) ndr_push_spoolss_6c,
37548 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6c,
37549 (ndr_print_function_t) ndr_print_spoolss_6c,
37555 sizeof(struct spoolss_6d),
37556 (ndr_push_flags_fn_t) ndr_push_spoolss_6d,
37557 (ndr_pull_flags_fn_t) ndr_pull_spoolss_6d,
37558 (ndr_print_function_t) ndr_print_spoolss_6d,
37563 "spoolss_GetJobNamedPropertyValue",
37564 sizeof(struct spoolss_GetJobNamedPropertyValue),
37565 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJobNamedPropertyValue,
37566 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJobNamedPropertyValue,
37567 (ndr_print_function_t) ndr_print_spoolss_GetJobNamedPropertyValue,
37572 "spoolss_SetJobNamedProperty",
37573 sizeof(struct spoolss_SetJobNamedProperty),
37574 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJobNamedProperty,
37575 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJobNamedProperty,
37576 (ndr_print_function_t) ndr_print_spoolss_SetJobNamedProperty,
37581 "spoolss_DeleteJobNamedProperty",
37582 sizeof(struct spoolss_DeleteJobNamedProperty),
37583 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteJobNamedProperty,
37584 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteJobNamedProperty,
37585 (ndr_print_function_t) ndr_print_spoolss_DeleteJobNamedProperty,
37590 "spoolss_EnumJobNamedProperties",
37591 sizeof(struct spoolss_EnumJobNamedProperties),
37592 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobNamedProperties,
37593 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobNamedProperties,
37594 (ndr_print_function_t) ndr_print_spoolss_EnumJobNamedProperties,
37600 sizeof(struct spoolss_72),
37601 (ndr_push_flags_fn_t) ndr_push_spoolss_72,
37602 (ndr_pull_flags_fn_t) ndr_pull_spoolss_72,
37603 (ndr_print_function_t) ndr_print_spoolss_72,
37609 sizeof(struct spoolss_73),
37610 (ndr_push_flags_fn_t) ndr_push_spoolss_73,
37611 (ndr_pull_flags_fn_t) ndr_pull_spoolss_73,
37612 (ndr_print_function_t) ndr_print_spoolss_73,
37617 "spoolss_LogJobInfoForBranchOffice",
37618 sizeof(struct spoolss_LogJobInfoForBranchOffice),
37619 (ndr_push_flags_fn_t) ndr_push_spoolss_LogJobInfoForBranchOffice,
37620 (ndr_pull_flags_fn_t) ndr_pull_spoolss_LogJobInfoForBranchOffice,
37621 (ndr_print_function_t) ndr_print_spoolss_LogJobInfoForBranchOffice,
37625 { NULL, 0, NULL, NULL, NULL }
37628 static const char * const spoolss_endpoint_strings[] = {
37629 "ncacn_np:[\\pipe\\spoolss]",
37632 static const struct ndr_interface_string_array spoolss_endpoints = {
37634 .names = spoolss_endpoint_strings
37637 static const char * const spoolss_authservice_strings[] = {
37641 static const struct ndr_interface_string_array spoolss_authservices = {
37643 .names = spoolss_authservice_strings
37647 const struct ndr_interface_table ndr_table_spoolss = {
37650 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
37651 NDR_SPOOLSS_VERSION
37653 .helpstring = NDR_SPOOLSS_HELPSTRING,
37655 .calls = spoolss_calls,
37656 .endpoints = &spoolss_endpoints,
37657 .authservices = &spoolss_authservices