1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code ndr_push_spoolss_Time(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Time *r)
11 if (ndr_flags & NDR_SCALARS) {
12 NDR_CHECK(ndr_push_align(ndr, 2));
13 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
14 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
15 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
16 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
17 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
18 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
19 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
20 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
22 if (ndr_flags & NDR_BUFFERS) {
24 return NDR_ERR_SUCCESS;
27 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
29 if (ndr_flags & NDR_SCALARS) {
30 NDR_CHECK(ndr_pull_align(ndr, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 if (ndr_flags & NDR_BUFFERS) {
42 return NDR_ERR_SUCCESS;
45 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
47 ndr_print_struct(ndr, name, "spoolss_Time");
49 ndr_print_uint16(ndr, "year", r->year);
50 ndr_print_uint16(ndr, "month", r->month);
51 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
52 ndr_print_uint16(ndr, "day", r->day);
53 ndr_print_uint16(ndr, "hour", r->hour);
54 ndr_print_uint16(ndr, "minute", r->minute);
55 ndr_print_uint16(ndr, "second", r->second);
56 ndr_print_uint16(ndr, "millisecond", r->millisecond);
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
62 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
65 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
67 if (ndr_flags & NDR_SCALARS) {
68 NDR_CHECK(ndr_push_align(ndr, 4));
69 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
72 if (ndr_flags & NDR_BUFFERS) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
77 return NDR_ERR_SUCCESS;
80 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
83 TALLOC_CTX *_mem_save_time_0;
84 if (ndr_flags & NDR_SCALARS) {
85 NDR_CHECK(ndr_pull_align(ndr, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
89 NDR_PULL_ALLOC(ndr, r->time);
94 if (ndr_flags & NDR_BUFFERS) {
96 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
97 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
99 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
102 return NDR_ERR_SUCCESS;
105 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
107 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
109 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
110 ndr_print_ptr(ndr, "time", r->time);
113 ndr_print_spoolss_Time(ndr, "time", r->time);
119 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
121 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
122 return NDR_ERR_SUCCESS;
125 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
130 return NDR_ERR_SUCCESS;
133 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
135 const char *val = NULL;
138 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr, name, "ENUM", val, r);
145 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
148 return NDR_ERR_SUCCESS;
151 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
156 return NDR_ERR_SUCCESS;
159 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
161 const char *val = NULL;
164 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr, name, "ENUM", val, r);
173 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
176 return NDR_ERR_SUCCESS;
179 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
184 return NDR_ERR_SUCCESS;
187 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
189 const char *val = NULL;
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr, name, "ENUM", val, r);
199 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
202 return NDR_ERR_SUCCESS;
205 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
210 return NDR_ERR_SUCCESS;
213 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
215 const char *val = NULL;
218 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr, name, "ENUM", val, r);
227 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
230 return NDR_ERR_SUCCESS;
233 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
238 return NDR_ERR_SUCCESS;
241 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
243 ndr_print_uint32(ndr, name, r);
245 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
246 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
249 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
250 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
251 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
252 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
253 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
254 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
255 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
256 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
257 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
258 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
259 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
260 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
261 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
262 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
263 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
264 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
265 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
266 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
267 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
268 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
269 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
273 static enum ndr_err_code ndr_push_spoolss_JobStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
276 return NDR_ERR_SUCCESS;
279 static enum ndr_err_code ndr_pull_spoolss_JobStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
284 return NDR_ERR_SUCCESS;
287 _PUBLIC_ void ndr_print_spoolss_JobStatus(struct ndr_print *ndr, const char *name, uint32_t r)
289 ndr_print_uint32(ndr, name, r);
291 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAUSED", JOB_STATUS_PAUSED, r);
292 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_ERROR", JOB_STATUS_ERROR, r);
293 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETING", JOB_STATUS_DELETING, r);
294 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_SPOOLING", JOB_STATUS_SPOOLING, r);
295 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTING", JOB_STATUS_PRINTING, r);
296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_OFFLINE", JOB_STATUS_OFFLINE, r);
297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PAPEROUT", JOB_STATUS_PAPEROUT, r);
298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_PRINTED", JOB_STATUS_PRINTED, r);
299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_DELETED", JOB_STATUS_DELETED, r);
300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_BLOCKED_DEVQ", JOB_STATUS_BLOCKED_DEVQ, r);
301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_USER_INTERVENTION", JOB_STATUS_USER_INTERVENTION, r);
302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_RESTART", JOB_STATUS_RESTART, r);
303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_STATUS_COMPLETE", JOB_STATUS_COMPLETE, r);
307 static enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
309 if (ndr_flags & NDR_SCALARS) {
310 NDR_CHECK(ndr_push_align(ndr, 4));
312 uint32_t _flags_save_string = ndr->flags;
313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
314 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
315 ndr->flags = _flags_save_string;
318 uint32_t _flags_save_string = ndr->flags;
319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
320 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
321 ndr->flags = _flags_save_string;
323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
326 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
336 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->job_error));
337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
338 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
342 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
345 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
346 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
351 if (ndr_flags & NDR_BUFFERS) {
353 uint32_t _flags_save_string = ndr->flags;
354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
355 if (r->printername) {
356 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
357 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
359 ndr->flags = _flags_save_string;
362 uint32_t _flags_save_string = ndr->flags;
363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
365 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
366 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
368 ndr->flags = _flags_save_string;
371 return NDR_ERR_SUCCESS;
374 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
376 uint32_t _ptr_printername;
377 TALLOC_CTX *_mem_save_printername_0;
378 uint32_t _ptr_servername;
379 TALLOC_CTX *_mem_save_servername_0;
380 if (ndr_flags & NDR_SCALARS) {
381 NDR_CHECK(ndr_pull_align(ndr, 4));
383 uint32_t _flags_save_string = ndr->flags;
384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
386 if (_ptr_printername) {
387 NDR_PULL_ALLOC(ndr, r->printername);
388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
390 r->printername = NULL;
392 ndr->flags = _flags_save_string;
395 uint32_t _flags_save_string = ndr->flags;
396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
398 if (_ptr_servername) {
399 NDR_PULL_ALLOC(ndr, r->servername);
400 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
402 r->servername = NULL;
404 ndr->flags = _flags_save_string;
406 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
409 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
410 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
419 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->job_error));
420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
421 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
425 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
428 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
429 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
434 if (ndr_flags & NDR_BUFFERS) {
436 uint32_t _flags_save_string = ndr->flags;
437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
438 if (r->printername) {
439 uint32_t _relative_save_offset;
440 _relative_save_offset = ndr->offset;
441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
442 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
443 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
446 ndr->offset = _relative_save_offset;
448 ndr->flags = _flags_save_string;
451 uint32_t _flags_save_string = ndr->flags;
452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
454 uint32_t _relative_save_offset;
455 _relative_save_offset = ndr->offset;
456 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
457 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
458 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
459 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
461 ndr->offset = _relative_save_offset;
463 ndr->flags = _flags_save_string;
466 return NDR_ERR_SUCCESS;
469 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
471 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
473 ndr_print_ptr(ndr, "printername", r->printername);
475 if (r->printername) {
476 ndr_print_string(ndr, "printername", r->printername);
479 ndr_print_ptr(ndr, "servername", r->servername);
482 ndr_print_string(ndr, "servername", r->servername);
485 ndr_print_uint32(ndr, "cjobs", r->cjobs);
486 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
487 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
488 ndr_print_spoolss_Time(ndr, "time", &r->time);
489 ndr_print_uint32(ndr, "global_counter", r->global_counter);
490 ndr_print_uint32(ndr, "total_pages", r->total_pages);
491 ndr_print_uint32(ndr, "version", r->version);
492 ndr_print_uint32(ndr, "free_build", r->free_build);
493 ndr_print_uint32(ndr, "spooling", r->spooling);
494 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
495 ndr_print_uint32(ndr, "session_counter", r->session_counter);
496 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
497 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
498 ndr_print_spoolss_JobStatus(ndr, "job_error", r->job_error);
499 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
500 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
501 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
502 ndr_print_uint32(ndr, "change_id", r->change_id);
503 ndr_print_WERROR(ndr, "last_error", r->last_error);
504 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
505 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
506 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
507 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
508 ndr_print_uint16(ndr, "processor_level", r->processor_level);
509 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
510 ndr_print_uint32(ndr, "reserved2", r->reserved2);
511 ndr_print_uint32(ndr, "reserved3", r->reserved3);
515 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
518 return NDR_ERR_SUCCESS;
521 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
526 return NDR_ERR_SUCCESS;
529 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
531 ndr_print_uint32(ndr, name, r);
533 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
534 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
535 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
536 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
537 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
564 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
566 if (ndr_flags & NDR_SCALARS) {
567 NDR_CHECK(ndr_push_align(ndr, 4));
568 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
569 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
570 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
571 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
572 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
573 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
574 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
575 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
576 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
577 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
578 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
579 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
580 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
581 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
582 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
583 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
584 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
585 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
586 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
587 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
588 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
603 uint32_t _flags_save_DATA_BLOB = ndr->flags;
604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
606 struct ndr_push *_ndr_driverextra_data;
607 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
608 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
609 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
611 ndr->flags = _flags_save_DATA_BLOB;
614 if (ndr_flags & NDR_BUFFERS) {
616 return NDR_ERR_SUCCESS;
619 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
621 if (ndr_flags & NDR_SCALARS) {
622 NDR_CHECK(ndr_pull_align(ndr, 4));
623 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
624 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
625 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
626 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
627 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
628 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
629 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
630 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
631 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
632 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
633 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
635 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
636 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
638 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
639 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
640 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
642 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
647 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
648 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
658 uint32_t _flags_save_DATA_BLOB = ndr->flags;
659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
661 struct ndr_pull *_ndr_driverextra_data;
662 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
663 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
664 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
666 ndr->flags = _flags_save_DATA_BLOB;
669 if (ndr_flags & NDR_BUFFERS) {
671 return NDR_ERR_SUCCESS;
674 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
676 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
678 ndr_print_string(ndr, "devicename", r->devicename);
679 ndr_print_uint16(ndr, "specversion", r->specversion);
680 ndr_print_uint16(ndr, "driverversion", r->driverversion);
681 ndr_print_uint16(ndr, "size", r->size);
682 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
683 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
684 ndr_print_uint16(ndr, "orientation", r->orientation);
685 ndr_print_uint16(ndr, "papersize", r->papersize);
686 ndr_print_uint16(ndr, "paperlength", r->paperlength);
687 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
688 ndr_print_uint16(ndr, "scale", r->scale);
689 ndr_print_uint16(ndr, "copies", r->copies);
690 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
691 ndr_print_uint16(ndr, "printquality", r->printquality);
692 ndr_print_uint16(ndr, "color", r->color);
693 ndr_print_uint16(ndr, "duplex", r->duplex);
694 ndr_print_uint16(ndr, "yresolution", r->yresolution);
695 ndr_print_uint16(ndr, "ttoption", r->ttoption);
696 ndr_print_uint16(ndr, "collate", r->collate);
697 ndr_print_string(ndr, "formname", r->formname);
698 ndr_print_uint16(ndr, "logpixels", r->logpixels);
699 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
700 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
701 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
702 ndr_print_uint32(ndr, "displayflags", r->displayflags);
703 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
704 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
705 ndr_print_uint32(ndr, "icmintent", r->icmintent);
706 ndr_print_uint32(ndr, "mediatype", r->mediatype);
707 ndr_print_uint32(ndr, "dithertype", r->dithertype);
708 ndr_print_uint32(ndr, "reserved1", r->reserved1);
709 ndr_print_uint32(ndr, "reserved2", r->reserved2);
710 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
711 ndr_print_uint32(ndr, "panningheight", r->panningheight);
712 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
716 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
718 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
721 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
724 return NDR_ERR_SUCCESS;
727 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
732 return NDR_ERR_SUCCESS;
735 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
737 ndr_print_uint32(ndr, name, r);
739 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
740 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
741 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
742 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
743 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
744 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
745 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
761 static enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
763 if (ndr_flags & NDR_SCALARS) {
764 NDR_CHECK(ndr_push_align(ndr, 4));
765 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
767 uint32_t _flags_save_string = ndr->flags;
768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
769 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
770 ndr->flags = _flags_save_string;
773 uint32_t _flags_save_string = ndr->flags;
774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
775 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
776 ndr->flags = _flags_save_string;
779 uint32_t _flags_save_string = ndr->flags;
780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
781 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
782 ndr->flags = _flags_save_string;
785 if (ndr_flags & NDR_BUFFERS) {
787 uint32_t _flags_save_string = ndr->flags;
788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
793 ndr->flags = _flags_save_string;
796 uint32_t _flags_save_string = ndr->flags;
797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
798 if (r->description) {
799 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
800 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
802 ndr->flags = _flags_save_string;
805 uint32_t _flags_save_string = ndr->flags;
806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
808 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
809 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
811 ndr->flags = _flags_save_string;
814 return NDR_ERR_SUCCESS;
817 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
820 TALLOC_CTX *_mem_save_name_0;
821 uint32_t _ptr_description;
822 TALLOC_CTX *_mem_save_description_0;
823 uint32_t _ptr_comment;
824 TALLOC_CTX *_mem_save_comment_0;
825 if (ndr_flags & NDR_SCALARS) {
826 NDR_CHECK(ndr_pull_align(ndr, 4));
827 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
829 uint32_t _flags_save_string = ndr->flags;
830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
833 NDR_PULL_ALLOC(ndr, r->name);
834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
838 ndr->flags = _flags_save_string;
841 uint32_t _flags_save_string = ndr->flags;
842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
844 if (_ptr_description) {
845 NDR_PULL_ALLOC(ndr, r->description);
846 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
848 r->description = NULL;
850 ndr->flags = _flags_save_string;
853 uint32_t _flags_save_string = ndr->flags;
854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
857 NDR_PULL_ALLOC(ndr, r->comment);
858 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
862 ndr->flags = _flags_save_string;
865 if (ndr_flags & NDR_BUFFERS) {
867 uint32_t _flags_save_string = ndr->flags;
868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
870 uint32_t _relative_save_offset;
871 _relative_save_offset = ndr->offset;
872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
873 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
874 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
877 ndr->offset = _relative_save_offset;
879 ndr->flags = _flags_save_string;
882 uint32_t _flags_save_string = ndr->flags;
883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
884 if (r->description) {
885 uint32_t _relative_save_offset;
886 _relative_save_offset = ndr->offset;
887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
888 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
889 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
892 ndr->offset = _relative_save_offset;
894 ndr->flags = _flags_save_string;
897 uint32_t _flags_save_string = ndr->flags;
898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
900 uint32_t _relative_save_offset;
901 _relative_save_offset = ndr->offset;
902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
903 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
904 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
907 ndr->offset = _relative_save_offset;
909 ndr->flags = _flags_save_string;
912 return NDR_ERR_SUCCESS;
915 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
917 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
919 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
920 ndr_print_ptr(ndr, "name", r->name);
923 ndr_print_string(ndr, "name", r->name);
926 ndr_print_ptr(ndr, "description", r->description);
928 if (r->description) {
929 ndr_print_string(ndr, "description", r->description);
932 ndr_print_ptr(ndr, "comment", r->comment);
935 ndr_print_string(ndr, "comment", r->comment);
941 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
944 return NDR_ERR_SUCCESS;
947 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
952 return NDR_ERR_SUCCESS;
955 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
957 ndr_print_uint32(ndr, name, r);
959 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
960 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
961 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
962 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
963 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
964 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
965 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
966 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
967 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
968 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
969 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
971 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
972 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
973 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
978 static enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
980 if (ndr_flags & NDR_SCALARS) {
981 NDR_CHECK(ndr_push_align(ndr, 4));
983 uint32_t _flags_save_string = ndr->flags;
984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
985 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
986 ndr->flags = _flags_save_string;
989 uint32_t _flags_save_string = ndr->flags;
990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
991 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
992 ndr->flags = _flags_save_string;
995 uint32_t _flags_save_string = ndr->flags;
996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
997 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
998 ndr->flags = _flags_save_string;
1001 uint32_t _flags_save_string = ndr->flags;
1002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1003 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1004 ndr->flags = _flags_save_string;
1007 uint32_t _flags_save_string = ndr->flags;
1008 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1009 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1010 ndr->flags = _flags_save_string;
1013 uint32_t _flags_save_string = ndr->flags;
1014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1016 ndr->flags = _flags_save_string;
1019 uint32_t _flags_save_string = ndr->flags;
1020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1022 ndr->flags = _flags_save_string;
1024 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1026 uint32_t _flags_save_string = ndr->flags;
1027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1028 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1029 ndr->flags = _flags_save_string;
1032 uint32_t _flags_save_string = ndr->flags;
1033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1034 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1035 ndr->flags = _flags_save_string;
1038 uint32_t _flags_save_string = ndr->flags;
1039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1040 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1041 ndr->flags = _flags_save_string;
1044 uint32_t _flags_save_string = ndr->flags;
1045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1046 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1047 ndr->flags = _flags_save_string;
1049 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1050 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1055 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1059 if (ndr_flags & NDR_BUFFERS) {
1061 uint32_t _flags_save_string = ndr->flags;
1062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1063 if (r->servername) {
1064 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1065 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1067 ndr->flags = _flags_save_string;
1070 uint32_t _flags_save_string = ndr->flags;
1071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1072 if (r->printername) {
1073 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1076 ndr->flags = _flags_save_string;
1079 uint32_t _flags_save_string = ndr->flags;
1080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1082 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1083 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1085 ndr->flags = _flags_save_string;
1088 uint32_t _flags_save_string = ndr->flags;
1089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1091 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1092 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1094 ndr->flags = _flags_save_string;
1097 uint32_t _flags_save_string = ndr->flags;
1098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1099 if (r->drivername) {
1100 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1101 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1103 ndr->flags = _flags_save_string;
1106 uint32_t _flags_save_string = ndr->flags;
1107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1109 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1110 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1112 ndr->flags = _flags_save_string;
1115 uint32_t _flags_save_string = ndr->flags;
1116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1118 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1119 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1121 ndr->flags = _flags_save_string;
1124 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1126 struct ndr_push *_ndr_devmode;
1127 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1128 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1129 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1133 uint32_t _flags_save_string = ndr->flags;
1134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1136 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1137 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1139 ndr->flags = _flags_save_string;
1142 uint32_t _flags_save_string = ndr->flags;
1143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1144 if (r->printprocessor) {
1145 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1146 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1148 ndr->flags = _flags_save_string;
1151 uint32_t _flags_save_string = ndr->flags;
1152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1154 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1155 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1157 ndr->flags = _flags_save_string;
1160 uint32_t _flags_save_string = ndr->flags;
1161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1162 if (r->parameters) {
1163 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1164 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1166 ndr->flags = _flags_save_string;
1169 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1171 struct ndr_push *_ndr_secdesc;
1172 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1173 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1174 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1178 return NDR_ERR_SUCCESS;
1181 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1183 uint32_t _ptr_servername;
1184 TALLOC_CTX *_mem_save_servername_0;
1185 uint32_t _ptr_printername;
1186 TALLOC_CTX *_mem_save_printername_0;
1187 uint32_t _ptr_sharename;
1188 TALLOC_CTX *_mem_save_sharename_0;
1189 uint32_t _ptr_portname;
1190 TALLOC_CTX *_mem_save_portname_0;
1191 uint32_t _ptr_drivername;
1192 TALLOC_CTX *_mem_save_drivername_0;
1193 uint32_t _ptr_comment;
1194 TALLOC_CTX *_mem_save_comment_0;
1195 uint32_t _ptr_location;
1196 TALLOC_CTX *_mem_save_location_0;
1197 uint32_t _ptr_devmode;
1198 TALLOC_CTX *_mem_save_devmode_0;
1199 uint32_t _ptr_sepfile;
1200 TALLOC_CTX *_mem_save_sepfile_0;
1201 uint32_t _ptr_printprocessor;
1202 TALLOC_CTX *_mem_save_printprocessor_0;
1203 uint32_t _ptr_datatype;
1204 TALLOC_CTX *_mem_save_datatype_0;
1205 uint32_t _ptr_parameters;
1206 TALLOC_CTX *_mem_save_parameters_0;
1207 uint32_t _ptr_secdesc;
1208 TALLOC_CTX *_mem_save_secdesc_0;
1209 if (ndr_flags & NDR_SCALARS) {
1210 NDR_CHECK(ndr_pull_align(ndr, 4));
1212 uint32_t _flags_save_string = ndr->flags;
1213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1215 if (_ptr_servername) {
1216 NDR_PULL_ALLOC(ndr, r->servername);
1217 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1219 r->servername = NULL;
1221 ndr->flags = _flags_save_string;
1224 uint32_t _flags_save_string = ndr->flags;
1225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1226 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1227 if (_ptr_printername) {
1228 NDR_PULL_ALLOC(ndr, r->printername);
1229 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1231 r->printername = NULL;
1233 ndr->flags = _flags_save_string;
1236 uint32_t _flags_save_string = ndr->flags;
1237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1239 if (_ptr_sharename) {
1240 NDR_PULL_ALLOC(ndr, r->sharename);
1241 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1243 r->sharename = NULL;
1245 ndr->flags = _flags_save_string;
1248 uint32_t _flags_save_string = ndr->flags;
1249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1251 if (_ptr_portname) {
1252 NDR_PULL_ALLOC(ndr, r->portname);
1253 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1257 ndr->flags = _flags_save_string;
1260 uint32_t _flags_save_string = ndr->flags;
1261 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1262 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1263 if (_ptr_drivername) {
1264 NDR_PULL_ALLOC(ndr, r->drivername);
1265 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1267 r->drivername = NULL;
1269 ndr->flags = _flags_save_string;
1272 uint32_t _flags_save_string = ndr->flags;
1273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1276 NDR_PULL_ALLOC(ndr, r->comment);
1277 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1281 ndr->flags = _flags_save_string;
1284 uint32_t _flags_save_string = ndr->flags;
1285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1287 if (_ptr_location) {
1288 NDR_PULL_ALLOC(ndr, r->location);
1289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1293 ndr->flags = _flags_save_string;
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1297 NDR_PULL_ALLOC(ndr, r->devmode);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1303 uint32_t _flags_save_string = ndr->flags;
1304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1307 NDR_PULL_ALLOC(ndr, r->sepfile);
1308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1312 ndr->flags = _flags_save_string;
1315 uint32_t _flags_save_string = ndr->flags;
1316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1318 if (_ptr_printprocessor) {
1319 NDR_PULL_ALLOC(ndr, r->printprocessor);
1320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1322 r->printprocessor = NULL;
1324 ndr->flags = _flags_save_string;
1327 uint32_t _flags_save_string = ndr->flags;
1328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1330 if (_ptr_datatype) {
1331 NDR_PULL_ALLOC(ndr, r->datatype);
1332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1336 ndr->flags = _flags_save_string;
1339 uint32_t _flags_save_string = ndr->flags;
1340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1342 if (_ptr_parameters) {
1343 NDR_PULL_ALLOC(ndr, r->parameters);
1344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1346 r->parameters = NULL;
1348 ndr->flags = _flags_save_string;
1350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1352 NDR_PULL_ALLOC(ndr, r->secdesc);
1353 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1357 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1362 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1366 if (ndr_flags & NDR_BUFFERS) {
1368 uint32_t _flags_save_string = ndr->flags;
1369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1370 if (r->servername) {
1371 uint32_t _relative_save_offset;
1372 _relative_save_offset = ndr->offset;
1373 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1374 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1375 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1376 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1378 ndr->offset = _relative_save_offset;
1380 ndr->flags = _flags_save_string;
1383 uint32_t _flags_save_string = ndr->flags;
1384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1385 if (r->printername) {
1386 uint32_t _relative_save_offset;
1387 _relative_save_offset = ndr->offset;
1388 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1389 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1390 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1391 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1393 ndr->offset = _relative_save_offset;
1395 ndr->flags = _flags_save_string;
1398 uint32_t _flags_save_string = ndr->flags;
1399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1401 uint32_t _relative_save_offset;
1402 _relative_save_offset = ndr->offset;
1403 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1404 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1405 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1406 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1408 ndr->offset = _relative_save_offset;
1410 ndr->flags = _flags_save_string;
1413 uint32_t _flags_save_string = ndr->flags;
1414 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1416 uint32_t _relative_save_offset;
1417 _relative_save_offset = ndr->offset;
1418 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1419 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1420 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1421 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1423 ndr->offset = _relative_save_offset;
1425 ndr->flags = _flags_save_string;
1428 uint32_t _flags_save_string = ndr->flags;
1429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1430 if (r->drivername) {
1431 uint32_t _relative_save_offset;
1432 _relative_save_offset = ndr->offset;
1433 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1434 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1435 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1436 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1438 ndr->offset = _relative_save_offset;
1440 ndr->flags = _flags_save_string;
1443 uint32_t _flags_save_string = ndr->flags;
1444 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1446 uint32_t _relative_save_offset;
1447 _relative_save_offset = ndr->offset;
1448 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1449 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1450 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1451 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1452 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1453 ndr->offset = _relative_save_offset;
1455 ndr->flags = _flags_save_string;
1458 uint32_t _flags_save_string = ndr->flags;
1459 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1461 uint32_t _relative_save_offset;
1462 _relative_save_offset = ndr->offset;
1463 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1464 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1465 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1466 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1468 ndr->offset = _relative_save_offset;
1470 ndr->flags = _flags_save_string;
1473 uint32_t _relative_save_offset;
1474 _relative_save_offset = ndr->offset;
1475 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1476 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1477 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1479 struct ndr_pull *_ndr_devmode;
1480 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1481 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1482 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1484 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1485 ndr->offset = _relative_save_offset;
1488 uint32_t _flags_save_string = ndr->flags;
1489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1491 uint32_t _relative_save_offset;
1492 _relative_save_offset = ndr->offset;
1493 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1494 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1495 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1496 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1497 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1498 ndr->offset = _relative_save_offset;
1500 ndr->flags = _flags_save_string;
1503 uint32_t _flags_save_string = ndr->flags;
1504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1505 if (r->printprocessor) {
1506 uint32_t _relative_save_offset;
1507 _relative_save_offset = ndr->offset;
1508 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1509 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1510 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1511 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1513 ndr->offset = _relative_save_offset;
1515 ndr->flags = _flags_save_string;
1518 uint32_t _flags_save_string = ndr->flags;
1519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1521 uint32_t _relative_save_offset;
1522 _relative_save_offset = ndr->offset;
1523 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1524 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1525 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1526 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1528 ndr->offset = _relative_save_offset;
1530 ndr->flags = _flags_save_string;
1533 uint32_t _flags_save_string = ndr->flags;
1534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1535 if (r->parameters) {
1536 uint32_t _relative_save_offset;
1537 _relative_save_offset = ndr->offset;
1538 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1539 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1540 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1541 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1543 ndr->offset = _relative_save_offset;
1545 ndr->flags = _flags_save_string;
1548 uint32_t _relative_save_offset;
1549 _relative_save_offset = ndr->offset;
1550 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1551 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1552 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1554 struct ndr_pull *_ndr_secdesc;
1555 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1556 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1557 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1560 ndr->offset = _relative_save_offset;
1563 return NDR_ERR_SUCCESS;
1566 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1568 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1570 ndr_print_ptr(ndr, "servername", r->servername);
1572 if (r->servername) {
1573 ndr_print_string(ndr, "servername", r->servername);
1576 ndr_print_ptr(ndr, "printername", r->printername);
1578 if (r->printername) {
1579 ndr_print_string(ndr, "printername", r->printername);
1582 ndr_print_ptr(ndr, "sharename", r->sharename);
1585 ndr_print_string(ndr, "sharename", r->sharename);
1588 ndr_print_ptr(ndr, "portname", r->portname);
1591 ndr_print_string(ndr, "portname", r->portname);
1594 ndr_print_ptr(ndr, "drivername", r->drivername);
1596 if (r->drivername) {
1597 ndr_print_string(ndr, "drivername", r->drivername);
1600 ndr_print_ptr(ndr, "comment", r->comment);
1603 ndr_print_string(ndr, "comment", r->comment);
1606 ndr_print_ptr(ndr, "location", r->location);
1609 ndr_print_string(ndr, "location", r->location);
1612 ndr_print_ptr(ndr, "devmode", r->devmode);
1615 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1618 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1621 ndr_print_string(ndr, "sepfile", r->sepfile);
1624 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1626 if (r->printprocessor) {
1627 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1630 ndr_print_ptr(ndr, "datatype", r->datatype);
1633 ndr_print_string(ndr, "datatype", r->datatype);
1636 ndr_print_ptr(ndr, "parameters", r->parameters);
1638 if (r->parameters) {
1639 ndr_print_string(ndr, "parameters", r->parameters);
1642 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1645 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1648 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1649 ndr_print_uint32(ndr, "priority", r->priority);
1650 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1651 ndr_print_uint32(ndr, "starttime", r->starttime);
1652 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1653 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1654 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1655 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1659 static enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1661 if (ndr_flags & NDR_SCALARS) {
1662 NDR_CHECK(ndr_push_align(ndr, 4));
1663 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1665 if (ndr_flags & NDR_BUFFERS) {
1667 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1669 struct ndr_push *_ndr_secdesc;
1670 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1671 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1672 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1676 return NDR_ERR_SUCCESS;
1679 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1681 uint32_t _ptr_secdesc;
1682 TALLOC_CTX *_mem_save_secdesc_0;
1683 if (ndr_flags & NDR_SCALARS) {
1684 NDR_CHECK(ndr_pull_align(ndr, 4));
1685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1687 NDR_PULL_ALLOC(ndr, r->secdesc);
1688 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1693 if (ndr_flags & NDR_BUFFERS) {
1695 uint32_t _relative_save_offset;
1696 _relative_save_offset = ndr->offset;
1697 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1698 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1699 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1701 struct ndr_pull *_ndr_secdesc;
1702 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1703 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1704 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1707 ndr->offset = _relative_save_offset;
1710 return NDR_ERR_SUCCESS;
1713 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1715 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1717 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1720 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1726 static enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1728 if (ndr_flags & NDR_SCALARS) {
1729 NDR_CHECK(ndr_push_align(ndr, 4));
1731 uint32_t _flags_save_string = ndr->flags;
1732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1733 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1734 ndr->flags = _flags_save_string;
1737 uint32_t _flags_save_string = ndr->flags;
1738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1739 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1740 ndr->flags = _flags_save_string;
1742 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1744 if (ndr_flags & NDR_BUFFERS) {
1746 uint32_t _flags_save_string = ndr->flags;
1747 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1748 if (r->printername) {
1749 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1750 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1752 ndr->flags = _flags_save_string;
1755 uint32_t _flags_save_string = ndr->flags;
1756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1757 if (r->servername) {
1758 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1759 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1761 ndr->flags = _flags_save_string;
1764 return NDR_ERR_SUCCESS;
1767 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1769 uint32_t _ptr_printername;
1770 TALLOC_CTX *_mem_save_printername_0;
1771 uint32_t _ptr_servername;
1772 TALLOC_CTX *_mem_save_servername_0;
1773 if (ndr_flags & NDR_SCALARS) {
1774 NDR_CHECK(ndr_pull_align(ndr, 4));
1776 uint32_t _flags_save_string = ndr->flags;
1777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1779 if (_ptr_printername) {
1780 NDR_PULL_ALLOC(ndr, r->printername);
1781 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1783 r->printername = NULL;
1785 ndr->flags = _flags_save_string;
1788 uint32_t _flags_save_string = ndr->flags;
1789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1791 if (_ptr_servername) {
1792 NDR_PULL_ALLOC(ndr, r->servername);
1793 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1795 r->servername = NULL;
1797 ndr->flags = _flags_save_string;
1799 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1801 if (ndr_flags & NDR_BUFFERS) {
1803 uint32_t _flags_save_string = ndr->flags;
1804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1805 if (r->printername) {
1806 uint32_t _relative_save_offset;
1807 _relative_save_offset = ndr->offset;
1808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1809 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1810 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1813 ndr->offset = _relative_save_offset;
1815 ndr->flags = _flags_save_string;
1818 uint32_t _flags_save_string = ndr->flags;
1819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1820 if (r->servername) {
1821 uint32_t _relative_save_offset;
1822 _relative_save_offset = ndr->offset;
1823 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1824 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1825 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1826 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1828 ndr->offset = _relative_save_offset;
1830 ndr->flags = _flags_save_string;
1833 return NDR_ERR_SUCCESS;
1836 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1838 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1840 ndr_print_ptr(ndr, "printername", r->printername);
1842 if (r->printername) {
1843 ndr_print_string(ndr, "printername", r->printername);
1846 ndr_print_ptr(ndr, "servername", r->servername);
1848 if (r->servername) {
1849 ndr_print_string(ndr, "servername", r->servername);
1852 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1856 static enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1858 if (ndr_flags & NDR_SCALARS) {
1859 NDR_CHECK(ndr_push_align(ndr, 4));
1861 uint32_t _flags_save_string = ndr->flags;
1862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1863 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1864 ndr->flags = _flags_save_string;
1867 uint32_t _flags_save_string = ndr->flags;
1868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1869 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1870 ndr->flags = _flags_save_string;
1872 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1876 if (ndr_flags & NDR_BUFFERS) {
1878 uint32_t _flags_save_string = ndr->flags;
1879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1880 if (r->printername) {
1881 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1882 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1884 ndr->flags = _flags_save_string;
1887 uint32_t _flags_save_string = ndr->flags;
1888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1890 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1891 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1893 ndr->flags = _flags_save_string;
1896 return NDR_ERR_SUCCESS;
1899 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1901 uint32_t _ptr_printername;
1902 TALLOC_CTX *_mem_save_printername_0;
1903 uint32_t _ptr_portname;
1904 TALLOC_CTX *_mem_save_portname_0;
1905 if (ndr_flags & NDR_SCALARS) {
1906 NDR_CHECK(ndr_pull_align(ndr, 4));
1908 uint32_t _flags_save_string = ndr->flags;
1909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1911 if (_ptr_printername) {
1912 NDR_PULL_ALLOC(ndr, r->printername);
1913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1915 r->printername = NULL;
1917 ndr->flags = _flags_save_string;
1920 uint32_t _flags_save_string = ndr->flags;
1921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1923 if (_ptr_portname) {
1924 NDR_PULL_ALLOC(ndr, r->portname);
1925 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1929 ndr->flags = _flags_save_string;
1931 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1935 if (ndr_flags & NDR_BUFFERS) {
1937 uint32_t _flags_save_string = ndr->flags;
1938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1939 if (r->printername) {
1940 uint32_t _relative_save_offset;
1941 _relative_save_offset = ndr->offset;
1942 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1943 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1944 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1945 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1947 ndr->offset = _relative_save_offset;
1949 ndr->flags = _flags_save_string;
1952 uint32_t _flags_save_string = ndr->flags;
1953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1955 uint32_t _relative_save_offset;
1956 _relative_save_offset = ndr->offset;
1957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1958 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1959 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1960 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1962 ndr->offset = _relative_save_offset;
1964 ndr->flags = _flags_save_string;
1967 return NDR_ERR_SUCCESS;
1970 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1972 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1974 ndr_print_ptr(ndr, "printername", r->printername);
1976 if (r->printername) {
1977 ndr_print_string(ndr, "printername", r->printername);
1980 ndr_print_ptr(ndr, "portname", r->portname);
1983 ndr_print_string(ndr, "portname", r->portname);
1986 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1987 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1988 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1992 static enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1994 if (ndr_flags & NDR_SCALARS) {
1995 NDR_CHECK(ndr_push_align(ndr, 4));
1996 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1998 if (ndr_flags & NDR_BUFFERS) {
2000 return NDR_ERR_SUCCESS;
2003 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2005 if (ndr_flags & NDR_SCALARS) {
2006 NDR_CHECK(ndr_pull_align(ndr, 4));
2007 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2009 if (ndr_flags & NDR_BUFFERS) {
2011 return NDR_ERR_SUCCESS;
2014 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2016 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2018 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2022 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2025 return NDR_ERR_SUCCESS;
2028 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2033 return NDR_ERR_SUCCESS;
2036 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2038 ndr_print_uint32(ndr, name, r);
2040 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2041 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2042 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2043 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2044 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2048 static enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2050 if (ndr_flags & NDR_SCALARS) {
2051 NDR_CHECK(ndr_push_align(ndr, 4));
2053 uint32_t _flags_save_string = ndr->flags;
2054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2055 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2056 ndr->flags = _flags_save_string;
2058 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2060 if (ndr_flags & NDR_BUFFERS) {
2062 uint32_t _flags_save_string = ndr->flags;
2063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2065 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2066 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2068 ndr->flags = _flags_save_string;
2071 return NDR_ERR_SUCCESS;
2074 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2077 TALLOC_CTX *_mem_save_guid_0;
2078 if (ndr_flags & NDR_SCALARS) {
2079 NDR_CHECK(ndr_pull_align(ndr, 4));
2081 uint32_t _flags_save_string = ndr->flags;
2082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2085 NDR_PULL_ALLOC(ndr, r->guid);
2086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2090 ndr->flags = _flags_save_string;
2092 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2094 if (ndr_flags & NDR_BUFFERS) {
2096 uint32_t _flags_save_string = ndr->flags;
2097 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2099 uint32_t _relative_save_offset;
2100 _relative_save_offset = ndr->offset;
2101 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2102 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2103 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2104 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2106 ndr->offset = _relative_save_offset;
2108 ndr->flags = _flags_save_string;
2111 return NDR_ERR_SUCCESS;
2114 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2116 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2118 ndr_print_ptr(ndr, "guid", r->guid);
2121 ndr_print_string(ndr, "guid", r->guid);
2124 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2128 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2130 if (ndr_flags & NDR_SCALARS) {
2131 NDR_CHECK(ndr_push_align(ndr, 4));
2132 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2134 if (ndr_flags & NDR_BUFFERS) {
2136 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2138 struct ndr_push *_ndr_devmode;
2139 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2140 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2141 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2145 return NDR_ERR_SUCCESS;
2148 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2150 uint32_t _ptr_devmode;
2151 TALLOC_CTX *_mem_save_devmode_0;
2152 if (ndr_flags & NDR_SCALARS) {
2153 NDR_CHECK(ndr_pull_align(ndr, 4));
2154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2156 NDR_PULL_ALLOC(ndr, r->devmode);
2157 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2162 if (ndr_flags & NDR_BUFFERS) {
2164 uint32_t _relative_save_offset;
2165 _relative_save_offset = ndr->offset;
2166 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2167 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2168 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2170 struct ndr_pull *_ndr_devmode;
2171 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2172 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2173 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2176 ndr->offset = _relative_save_offset;
2179 return NDR_ERR_SUCCESS;
2182 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2184 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2186 ndr_print_ptr(ndr, "devmode", r->devmode);
2189 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2195 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2197 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2198 if (ndr_flags & NDR_SCALARS) {
2199 int level = ndr_push_get_switch_value(ndr, r);
2202 NDR_CHECK(ndr_push_align(ndr, 4));
2203 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2204 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2208 NDR_CHECK(ndr_push_align(ndr, 4));
2209 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2210 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2214 NDR_CHECK(ndr_push_align(ndr, 4));
2215 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2216 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2220 NDR_CHECK(ndr_push_align(ndr, 4));
2221 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2222 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2226 NDR_CHECK(ndr_push_align(ndr, 4));
2227 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2228 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2232 NDR_CHECK(ndr_push_align(ndr, 4));
2233 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2234 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2238 NDR_CHECK(ndr_push_align(ndr, 4));
2239 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2240 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2244 NDR_CHECK(ndr_push_align(ndr, 4));
2245 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2246 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2250 NDR_CHECK(ndr_push_align(ndr, 4));
2251 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2252 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2256 NDR_CHECK(ndr_push_align(ndr, 4));
2257 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2258 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2266 if (ndr_flags & NDR_BUFFERS) {
2267 int level = ndr_push_get_switch_value(ndr, r);
2268 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2271 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2275 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2279 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2283 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2287 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2291 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2298 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2302 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2306 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2314 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2315 return NDR_ERR_SUCCESS;
2318 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2320 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2322 level = ndr_pull_get_switch_value(ndr, r);
2323 if (ndr_flags & NDR_SCALARS) {
2326 NDR_CHECK(ndr_pull_align(ndr, 4));
2327 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2328 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2332 NDR_CHECK(ndr_pull_align(ndr, 4));
2333 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2334 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2338 NDR_CHECK(ndr_pull_align(ndr, 4));
2339 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2340 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2344 NDR_CHECK(ndr_pull_align(ndr, 4));
2345 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2346 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2350 NDR_CHECK(ndr_pull_align(ndr, 4));
2351 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2352 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2356 NDR_CHECK(ndr_pull_align(ndr, 4));
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2358 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2362 NDR_CHECK(ndr_pull_align(ndr, 4));
2363 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2368 NDR_CHECK(ndr_pull_align(ndr, 4));
2369 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2370 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2374 NDR_CHECK(ndr_pull_align(ndr, 4));
2375 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2376 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2380 NDR_CHECK(ndr_pull_align(ndr, 4));
2381 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2382 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2390 if (ndr_flags & NDR_BUFFERS) {
2391 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2394 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2398 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2402 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2406 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2410 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2414 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2421 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2425 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2429 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2437 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2438 return NDR_ERR_SUCCESS;
2441 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2444 level = ndr_print_get_switch_value(ndr, r);
2445 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2448 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2452 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2456 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2460 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2464 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2468 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2472 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2476 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2480 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2484 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2493 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2495 if (ndr_flags & NDR_SCALARS) {
2496 NDR_CHECK(ndr_push_align(ndr, 4));
2497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2498 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2500 if (ndr_flags & NDR_BUFFERS) {
2503 struct ndr_push *_ndr_devmode;
2504 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2505 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2506 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2510 return NDR_ERR_SUCCESS;
2513 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2515 uint32_t _ptr_devmode;
2516 TALLOC_CTX *_mem_save_devmode_0;
2517 if (ndr_flags & NDR_SCALARS) {
2518 NDR_CHECK(ndr_pull_align(ndr, 4));
2519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2522 NDR_PULL_ALLOC(ndr, r->devmode);
2527 if (ndr_flags & NDR_BUFFERS) {
2529 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2530 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2532 struct ndr_pull *_ndr_devmode;
2533 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2534 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2535 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2540 return NDR_ERR_SUCCESS;
2543 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2545 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2547 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
2548 ndr_print_ptr(ndr, "devmode", r->devmode);
2551 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2557 static enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2559 if (ndr_flags & NDR_SCALARS) {
2560 NDR_CHECK(ndr_push_align(ndr, 4));
2561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2563 uint32_t _flags_save_string = ndr->flags;
2564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2565 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2566 ndr->flags = _flags_save_string;
2569 uint32_t _flags_save_string = ndr->flags;
2570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2571 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2572 ndr->flags = _flags_save_string;
2575 uint32_t _flags_save_string = ndr->flags;
2576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2577 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2578 ndr->flags = _flags_save_string;
2581 uint32_t _flags_save_string = ndr->flags;
2582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2583 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2584 ndr->flags = _flags_save_string;
2587 uint32_t _flags_save_string = ndr->flags;
2588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2589 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2590 ndr->flags = _flags_save_string;
2593 uint32_t _flags_save_string = ndr->flags;
2594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2595 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2596 ndr->flags = _flags_save_string;
2598 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2603 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2605 if (ndr_flags & NDR_BUFFERS) {
2607 uint32_t _flags_save_string = ndr->flags;
2608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2609 if (r->printer_name) {
2610 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2611 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2613 ndr->flags = _flags_save_string;
2616 uint32_t _flags_save_string = ndr->flags;
2617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2618 if (r->server_name) {
2619 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2622 ndr->flags = _flags_save_string;
2625 uint32_t _flags_save_string = ndr->flags;
2626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2628 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2629 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2631 ndr->flags = _flags_save_string;
2634 uint32_t _flags_save_string = ndr->flags;
2635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2636 if (r->document_name) {
2637 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2638 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2640 ndr->flags = _flags_save_string;
2643 uint32_t _flags_save_string = ndr->flags;
2644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2646 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2649 ndr->flags = _flags_save_string;
2652 uint32_t _flags_save_string = ndr->flags;
2653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2654 if (r->text_status) {
2655 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2658 ndr->flags = _flags_save_string;
2661 return NDR_ERR_SUCCESS;
2664 static enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2666 uint32_t _ptr_printer_name;
2667 TALLOC_CTX *_mem_save_printer_name_0;
2668 uint32_t _ptr_server_name;
2669 TALLOC_CTX *_mem_save_server_name_0;
2670 uint32_t _ptr_user_name;
2671 TALLOC_CTX *_mem_save_user_name_0;
2672 uint32_t _ptr_document_name;
2673 TALLOC_CTX *_mem_save_document_name_0;
2674 uint32_t _ptr_data_type;
2675 TALLOC_CTX *_mem_save_data_type_0;
2676 uint32_t _ptr_text_status;
2677 TALLOC_CTX *_mem_save_text_status_0;
2678 if (ndr_flags & NDR_SCALARS) {
2679 NDR_CHECK(ndr_pull_align(ndr, 4));
2680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2682 uint32_t _flags_save_string = ndr->flags;
2683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2684 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2685 if (_ptr_printer_name) {
2686 NDR_PULL_ALLOC(ndr, r->printer_name);
2687 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2689 r->printer_name = NULL;
2691 ndr->flags = _flags_save_string;
2694 uint32_t _flags_save_string = ndr->flags;
2695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2696 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2697 if (_ptr_server_name) {
2698 NDR_PULL_ALLOC(ndr, r->server_name);
2699 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2701 r->server_name = NULL;
2703 ndr->flags = _flags_save_string;
2706 uint32_t _flags_save_string = ndr->flags;
2707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2709 if (_ptr_user_name) {
2710 NDR_PULL_ALLOC(ndr, r->user_name);
2711 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2713 r->user_name = NULL;
2715 ndr->flags = _flags_save_string;
2718 uint32_t _flags_save_string = ndr->flags;
2719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2721 if (_ptr_document_name) {
2722 NDR_PULL_ALLOC(ndr, r->document_name);
2723 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2725 r->document_name = NULL;
2727 ndr->flags = _flags_save_string;
2730 uint32_t _flags_save_string = ndr->flags;
2731 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2733 if (_ptr_data_type) {
2734 NDR_PULL_ALLOC(ndr, r->data_type);
2735 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2737 r->data_type = NULL;
2739 ndr->flags = _flags_save_string;
2742 uint32_t _flags_save_string = ndr->flags;
2743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2745 if (_ptr_text_status) {
2746 NDR_PULL_ALLOC(ndr, r->text_status);
2747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2749 r->text_status = NULL;
2751 ndr->flags = _flags_save_string;
2753 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
2754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2757 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2758 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2760 if (ndr_flags & NDR_BUFFERS) {
2762 uint32_t _flags_save_string = ndr->flags;
2763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2764 if (r->printer_name) {
2765 uint32_t _relative_save_offset;
2766 _relative_save_offset = ndr->offset;
2767 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2768 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2769 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2770 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2772 ndr->offset = _relative_save_offset;
2774 ndr->flags = _flags_save_string;
2777 uint32_t _flags_save_string = ndr->flags;
2778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2779 if (r->server_name) {
2780 uint32_t _relative_save_offset;
2781 _relative_save_offset = ndr->offset;
2782 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2783 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2784 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2785 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2787 ndr->offset = _relative_save_offset;
2789 ndr->flags = _flags_save_string;
2792 uint32_t _flags_save_string = ndr->flags;
2793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2795 uint32_t _relative_save_offset;
2796 _relative_save_offset = ndr->offset;
2797 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2798 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2799 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2800 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2801 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2802 ndr->offset = _relative_save_offset;
2804 ndr->flags = _flags_save_string;
2807 uint32_t _flags_save_string = ndr->flags;
2808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2809 if (r->document_name) {
2810 uint32_t _relative_save_offset;
2811 _relative_save_offset = ndr->offset;
2812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2813 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2814 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2817 ndr->offset = _relative_save_offset;
2819 ndr->flags = _flags_save_string;
2822 uint32_t _flags_save_string = ndr->flags;
2823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2825 uint32_t _relative_save_offset;
2826 _relative_save_offset = ndr->offset;
2827 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2828 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2829 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2830 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2832 ndr->offset = _relative_save_offset;
2834 ndr->flags = _flags_save_string;
2837 uint32_t _flags_save_string = ndr->flags;
2838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2839 if (r->text_status) {
2840 uint32_t _relative_save_offset;
2841 _relative_save_offset = ndr->offset;
2842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2843 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2844 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2847 ndr->offset = _relative_save_offset;
2849 ndr->flags = _flags_save_string;
2852 return NDR_ERR_SUCCESS;
2855 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2857 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2859 ndr_print_uint32(ndr, "job_id", r->job_id);
2860 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2862 if (r->printer_name) {
2863 ndr_print_string(ndr, "printer_name", r->printer_name);
2866 ndr_print_ptr(ndr, "server_name", r->server_name);
2868 if (r->server_name) {
2869 ndr_print_string(ndr, "server_name", r->server_name);
2872 ndr_print_ptr(ndr, "user_name", r->user_name);
2875 ndr_print_string(ndr, "user_name", r->user_name);
2878 ndr_print_ptr(ndr, "document_name", r->document_name);
2880 if (r->document_name) {
2881 ndr_print_string(ndr, "document_name", r->document_name);
2884 ndr_print_ptr(ndr, "data_type", r->data_type);
2887 ndr_print_string(ndr, "data_type", r->data_type);
2890 ndr_print_ptr(ndr, "text_status", r->text_status);
2892 if (r->text_status) {
2893 ndr_print_string(ndr, "text_status", r->text_status);
2896 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
2897 ndr_print_uint32(ndr, "priority", r->priority);
2898 ndr_print_uint32(ndr, "position", r->position);
2899 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2900 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2901 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
2905 static enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
2907 if (ndr_flags & NDR_SCALARS) {
2908 NDR_CHECK(ndr_push_align(ndr, 4));
2909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2911 uint32_t _flags_save_string = ndr->flags;
2912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2913 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2914 ndr->flags = _flags_save_string;
2917 uint32_t _flags_save_string = ndr->flags;
2918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2919 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2920 ndr->flags = _flags_save_string;
2923 uint32_t _flags_save_string = ndr->flags;
2924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2925 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2926 ndr->flags = _flags_save_string;
2929 uint32_t _flags_save_string = ndr->flags;
2930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2931 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2932 ndr->flags = _flags_save_string;
2935 uint32_t _flags_save_string = ndr->flags;
2936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2937 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
2938 ndr->flags = _flags_save_string;
2941 uint32_t _flags_save_string = ndr->flags;
2942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2943 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2944 ndr->flags = _flags_save_string;
2947 uint32_t _flags_save_string = ndr->flags;
2948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2949 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
2950 ndr->flags = _flags_save_string;
2953 uint32_t _flags_save_string = ndr->flags;
2954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2955 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
2956 ndr->flags = _flags_save_string;
2959 uint32_t _flags_save_string = ndr->flags;
2960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2961 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
2962 ndr->flags = _flags_save_string;
2964 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2966 uint32_t _flags_save_string = ndr->flags;
2967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2968 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2969 ndr->flags = _flags_save_string;
2971 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
2972 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
2976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
2977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
2979 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
2981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2983 if (ndr_flags & NDR_BUFFERS) {
2985 uint32_t _flags_save_string = ndr->flags;
2986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2987 if (r->printer_name) {
2988 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2989 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2991 ndr->flags = _flags_save_string;
2994 uint32_t _flags_save_string = ndr->flags;
2995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2996 if (r->server_name) {
2997 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2998 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3000 ndr->flags = _flags_save_string;
3003 uint32_t _flags_save_string = ndr->flags;
3004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3006 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3007 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3009 ndr->flags = _flags_save_string;
3012 uint32_t _flags_save_string = ndr->flags;
3013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3014 if (r->document_name) {
3015 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3016 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3018 ndr->flags = _flags_save_string;
3021 uint32_t _flags_save_string = ndr->flags;
3022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3023 if (r->notify_name) {
3024 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3025 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3027 ndr->flags = _flags_save_string;
3030 uint32_t _flags_save_string = ndr->flags;
3031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3033 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3034 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3036 ndr->flags = _flags_save_string;
3039 uint32_t _flags_save_string = ndr->flags;
3040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3041 if (r->print_processor) {
3042 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3043 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3045 ndr->flags = _flags_save_string;
3048 uint32_t _flags_save_string = ndr->flags;
3049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3050 if (r->parameters) {
3051 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3052 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3054 ndr->flags = _flags_save_string;
3057 uint32_t _flags_save_string = ndr->flags;
3058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3059 if (r->driver_name) {
3060 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3061 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3063 ndr->flags = _flags_save_string;
3066 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3067 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3070 uint32_t _flags_save_string = ndr->flags;
3071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3072 if (r->text_status) {
3073 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3076 ndr->flags = _flags_save_string;
3079 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3080 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3083 return NDR_ERR_SUCCESS;
3086 static enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3088 uint32_t _ptr_printer_name;
3089 TALLOC_CTX *_mem_save_printer_name_0;
3090 uint32_t _ptr_server_name;
3091 TALLOC_CTX *_mem_save_server_name_0;
3092 uint32_t _ptr_user_name;
3093 TALLOC_CTX *_mem_save_user_name_0;
3094 uint32_t _ptr_document_name;
3095 TALLOC_CTX *_mem_save_document_name_0;
3096 uint32_t _ptr_notify_name;
3097 TALLOC_CTX *_mem_save_notify_name_0;
3098 uint32_t _ptr_data_type;
3099 TALLOC_CTX *_mem_save_data_type_0;
3100 uint32_t _ptr_print_processor;
3101 TALLOC_CTX *_mem_save_print_processor_0;
3102 uint32_t _ptr_parameters;
3103 TALLOC_CTX *_mem_save_parameters_0;
3104 uint32_t _ptr_driver_name;
3105 TALLOC_CTX *_mem_save_driver_name_0;
3106 uint32_t _ptr_devmode;
3107 TALLOC_CTX *_mem_save_devmode_0;
3108 uint32_t _ptr_text_status;
3109 TALLOC_CTX *_mem_save_text_status_0;
3110 uint32_t _ptr_secdesc;
3111 TALLOC_CTX *_mem_save_secdesc_0;
3112 if (ndr_flags & NDR_SCALARS) {
3113 NDR_CHECK(ndr_pull_align(ndr, 4));
3114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3116 uint32_t _flags_save_string = ndr->flags;
3117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3119 if (_ptr_printer_name) {
3120 NDR_PULL_ALLOC(ndr, r->printer_name);
3121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3123 r->printer_name = NULL;
3125 ndr->flags = _flags_save_string;
3128 uint32_t _flags_save_string = ndr->flags;
3129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3131 if (_ptr_server_name) {
3132 NDR_PULL_ALLOC(ndr, r->server_name);
3133 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3135 r->server_name = NULL;
3137 ndr->flags = _flags_save_string;
3140 uint32_t _flags_save_string = ndr->flags;
3141 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3142 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3143 if (_ptr_user_name) {
3144 NDR_PULL_ALLOC(ndr, r->user_name);
3145 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3147 r->user_name = NULL;
3149 ndr->flags = _flags_save_string;
3152 uint32_t _flags_save_string = ndr->flags;
3153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3155 if (_ptr_document_name) {
3156 NDR_PULL_ALLOC(ndr, r->document_name);
3157 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3159 r->document_name = NULL;
3161 ndr->flags = _flags_save_string;
3164 uint32_t _flags_save_string = ndr->flags;
3165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3167 if (_ptr_notify_name) {
3168 NDR_PULL_ALLOC(ndr, r->notify_name);
3169 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3171 r->notify_name = NULL;
3173 ndr->flags = _flags_save_string;
3176 uint32_t _flags_save_string = ndr->flags;
3177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3178 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3179 if (_ptr_data_type) {
3180 NDR_PULL_ALLOC(ndr, r->data_type);
3181 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3183 r->data_type = NULL;
3185 ndr->flags = _flags_save_string;
3188 uint32_t _flags_save_string = ndr->flags;
3189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3191 if (_ptr_print_processor) {
3192 NDR_PULL_ALLOC(ndr, r->print_processor);
3193 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3195 r->print_processor = NULL;
3197 ndr->flags = _flags_save_string;
3200 uint32_t _flags_save_string = ndr->flags;
3201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3203 if (_ptr_parameters) {
3204 NDR_PULL_ALLOC(ndr, r->parameters);
3205 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3207 r->parameters = NULL;
3209 ndr->flags = _flags_save_string;
3212 uint32_t _flags_save_string = ndr->flags;
3213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3214 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3215 if (_ptr_driver_name) {
3216 NDR_PULL_ALLOC(ndr, r->driver_name);
3217 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3219 r->driver_name = NULL;
3221 ndr->flags = _flags_save_string;
3223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3225 NDR_PULL_ALLOC(ndr, r->devmode);
3226 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3231 uint32_t _flags_save_string = ndr->flags;
3232 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3234 if (_ptr_text_status) {
3235 NDR_PULL_ALLOC(ndr, r->text_status);
3236 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3238 r->text_status = NULL;
3240 ndr->flags = _flags_save_string;
3242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3244 NDR_PULL_ALLOC(ndr, r->secdesc);
3245 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3249 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3251 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3256 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3260 if (ndr_flags & NDR_BUFFERS) {
3262 uint32_t _flags_save_string = ndr->flags;
3263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3264 if (r->printer_name) {
3265 uint32_t _relative_save_offset;
3266 _relative_save_offset = ndr->offset;
3267 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3268 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3269 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3270 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3272 ndr->offset = _relative_save_offset;
3274 ndr->flags = _flags_save_string;
3277 uint32_t _flags_save_string = ndr->flags;
3278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3279 if (r->server_name) {
3280 uint32_t _relative_save_offset;
3281 _relative_save_offset = ndr->offset;
3282 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3283 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3284 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3285 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3287 ndr->offset = _relative_save_offset;
3289 ndr->flags = _flags_save_string;
3292 uint32_t _flags_save_string = ndr->flags;
3293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3295 uint32_t _relative_save_offset;
3296 _relative_save_offset = ndr->offset;
3297 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3298 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3299 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3300 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3301 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3302 ndr->offset = _relative_save_offset;
3304 ndr->flags = _flags_save_string;
3307 uint32_t _flags_save_string = ndr->flags;
3308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3309 if (r->document_name) {
3310 uint32_t _relative_save_offset;
3311 _relative_save_offset = ndr->offset;
3312 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3313 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3314 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3315 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3317 ndr->offset = _relative_save_offset;
3319 ndr->flags = _flags_save_string;
3322 uint32_t _flags_save_string = ndr->flags;
3323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3324 if (r->notify_name) {
3325 uint32_t _relative_save_offset;
3326 _relative_save_offset = ndr->offset;
3327 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3328 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3329 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3330 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3332 ndr->offset = _relative_save_offset;
3334 ndr->flags = _flags_save_string;
3337 uint32_t _flags_save_string = ndr->flags;
3338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3340 uint32_t _relative_save_offset;
3341 _relative_save_offset = ndr->offset;
3342 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3343 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3344 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3345 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3347 ndr->offset = _relative_save_offset;
3349 ndr->flags = _flags_save_string;
3352 uint32_t _flags_save_string = ndr->flags;
3353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3354 if (r->print_processor) {
3355 uint32_t _relative_save_offset;
3356 _relative_save_offset = ndr->offset;
3357 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3358 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3359 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3360 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3362 ndr->offset = _relative_save_offset;
3364 ndr->flags = _flags_save_string;
3367 uint32_t _flags_save_string = ndr->flags;
3368 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3369 if (r->parameters) {
3370 uint32_t _relative_save_offset;
3371 _relative_save_offset = ndr->offset;
3372 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3373 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3374 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3375 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3377 ndr->offset = _relative_save_offset;
3379 ndr->flags = _flags_save_string;
3382 uint32_t _flags_save_string = ndr->flags;
3383 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3384 if (r->driver_name) {
3385 uint32_t _relative_save_offset;
3386 _relative_save_offset = ndr->offset;
3387 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3388 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3389 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3390 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3392 ndr->offset = _relative_save_offset;
3394 ndr->flags = _flags_save_string;
3397 uint32_t _relative_save_offset;
3398 _relative_save_offset = ndr->offset;
3399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3400 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3401 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3402 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3404 ndr->offset = _relative_save_offset;
3407 uint32_t _flags_save_string = ndr->flags;
3408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3409 if (r->text_status) {
3410 uint32_t _relative_save_offset;
3411 _relative_save_offset = ndr->offset;
3412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3413 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3414 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3417 ndr->offset = _relative_save_offset;
3419 ndr->flags = _flags_save_string;
3422 uint32_t _relative_save_offset;
3423 _relative_save_offset = ndr->offset;
3424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3425 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3426 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3427 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3429 ndr->offset = _relative_save_offset;
3432 return NDR_ERR_SUCCESS;
3435 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3437 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3439 ndr_print_uint32(ndr, "job_id", r->job_id);
3440 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3442 if (r->printer_name) {
3443 ndr_print_string(ndr, "printer_name", r->printer_name);
3446 ndr_print_ptr(ndr, "server_name", r->server_name);
3448 if (r->server_name) {
3449 ndr_print_string(ndr, "server_name", r->server_name);
3452 ndr_print_ptr(ndr, "user_name", r->user_name);
3455 ndr_print_string(ndr, "user_name", r->user_name);
3458 ndr_print_ptr(ndr, "document_name", r->document_name);
3460 if (r->document_name) {
3461 ndr_print_string(ndr, "document_name", r->document_name);
3464 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3466 if (r->notify_name) {
3467 ndr_print_string(ndr, "notify_name", r->notify_name);
3470 ndr_print_ptr(ndr, "data_type", r->data_type);
3473 ndr_print_string(ndr, "data_type", r->data_type);
3476 ndr_print_ptr(ndr, "print_processor", r->print_processor);
3478 if (r->print_processor) {
3479 ndr_print_string(ndr, "print_processor", r->print_processor);
3482 ndr_print_ptr(ndr, "parameters", r->parameters);
3484 if (r->parameters) {
3485 ndr_print_string(ndr, "parameters", r->parameters);
3488 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3490 if (r->driver_name) {
3491 ndr_print_string(ndr, "driver_name", r->driver_name);
3494 ndr_print_ptr(ndr, "devmode", r->devmode);
3497 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3500 ndr_print_ptr(ndr, "text_status", r->text_status);
3502 if (r->text_status) {
3503 ndr_print_string(ndr, "text_status", r->text_status);
3506 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3509 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3512 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3513 ndr_print_uint32(ndr, "priority", r->priority);
3514 ndr_print_uint32(ndr, "position", r->position);
3515 ndr_print_uint32(ndr, "start_time", r->start_time);
3516 ndr_print_uint32(ndr, "until_time", r->until_time);
3517 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3518 ndr_print_uint32(ndr, "size", r->size);
3519 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3520 ndr_print_uint32(ndr, "time", r->time);
3521 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3525 static enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
3527 if (ndr_flags & NDR_SCALARS) {
3528 NDR_CHECK(ndr_push_align(ndr, 4));
3529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
3531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
3533 if (ndr_flags & NDR_BUFFERS) {
3535 return NDR_ERR_SUCCESS;
3538 static enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
3540 if (ndr_flags & NDR_SCALARS) {
3541 NDR_CHECK(ndr_pull_align(ndr, 4));
3542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
3544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
3546 if (ndr_flags & NDR_BUFFERS) {
3548 return NDR_ERR_SUCCESS;
3551 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
3553 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
3555 ndr_print_uint32(ndr, "job_id", r->job_id);
3556 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
3557 ndr_print_uint32(ndr, "reserved", r->reserved);
3561 static enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
3563 if (ndr_flags & NDR_SCALARS) {
3564 NDR_CHECK(ndr_push_align(ndr, 4));
3565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3567 uint32_t _flags_save_string = ndr->flags;
3568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3570 ndr->flags = _flags_save_string;
3573 uint32_t _flags_save_string = ndr->flags;
3574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3576 ndr->flags = _flags_save_string;
3579 uint32_t _flags_save_string = ndr->flags;
3580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3582 ndr->flags = _flags_save_string;
3585 uint32_t _flags_save_string = ndr->flags;
3586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
3588 ndr->flags = _flags_save_string;
3591 uint32_t _flags_save_string = ndr->flags;
3592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3594 ndr->flags = _flags_save_string;
3597 uint32_t _flags_save_string = ndr->flags;
3598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3600 ndr->flags = _flags_save_string;
3603 uint32_t _flags_save_string = ndr->flags;
3604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3606 ndr->flags = _flags_save_string;
3609 uint32_t _flags_save_string = ndr->flags;
3610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3611 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3612 ndr->flags = _flags_save_string;
3615 uint32_t _flags_save_string = ndr->flags;
3616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3617 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3618 ndr->flags = _flags_save_string;
3620 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3622 uint32_t _flags_save_string = ndr->flags;
3623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3624 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3625 ndr->flags = _flags_save_string;
3627 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3628 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3635 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
3640 if (ndr_flags & NDR_BUFFERS) {
3642 uint32_t _flags_save_string = ndr->flags;
3643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3644 if (r->printer_name) {
3645 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3648 ndr->flags = _flags_save_string;
3651 uint32_t _flags_save_string = ndr->flags;
3652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3653 if (r->server_name) {
3654 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3655 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3657 ndr->flags = _flags_save_string;
3660 uint32_t _flags_save_string = ndr->flags;
3661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3663 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3664 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3666 ndr->flags = _flags_save_string;
3669 uint32_t _flags_save_string = ndr->flags;
3670 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3671 if (r->document_name) {
3672 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3673 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3675 ndr->flags = _flags_save_string;
3678 uint32_t _flags_save_string = ndr->flags;
3679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3680 if (r->notify_name) {
3681 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3682 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3684 ndr->flags = _flags_save_string;
3687 uint32_t _flags_save_string = ndr->flags;
3688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3690 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3691 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3693 ndr->flags = _flags_save_string;
3696 uint32_t _flags_save_string = ndr->flags;
3697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3698 if (r->print_processor) {
3699 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3700 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3702 ndr->flags = _flags_save_string;
3705 uint32_t _flags_save_string = ndr->flags;
3706 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3707 if (r->parameters) {
3708 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3709 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3711 ndr->flags = _flags_save_string;
3714 uint32_t _flags_save_string = ndr->flags;
3715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3716 if (r->driver_name) {
3717 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3718 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3720 ndr->flags = _flags_save_string;
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3724 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3727 uint32_t _flags_save_string = ndr->flags;
3728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3729 if (r->text_status) {
3730 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3731 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3733 ndr->flags = _flags_save_string;
3736 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3737 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3740 return NDR_ERR_SUCCESS;
3743 static enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
3745 uint32_t _ptr_printer_name;
3746 TALLOC_CTX *_mem_save_printer_name_0;
3747 uint32_t _ptr_server_name;
3748 TALLOC_CTX *_mem_save_server_name_0;
3749 uint32_t _ptr_user_name;
3750 TALLOC_CTX *_mem_save_user_name_0;
3751 uint32_t _ptr_document_name;
3752 TALLOC_CTX *_mem_save_document_name_0;
3753 uint32_t _ptr_notify_name;
3754 TALLOC_CTX *_mem_save_notify_name_0;
3755 uint32_t _ptr_data_type;
3756 TALLOC_CTX *_mem_save_data_type_0;
3757 uint32_t _ptr_print_processor;
3758 TALLOC_CTX *_mem_save_print_processor_0;
3759 uint32_t _ptr_parameters;
3760 TALLOC_CTX *_mem_save_parameters_0;
3761 uint32_t _ptr_driver_name;
3762 TALLOC_CTX *_mem_save_driver_name_0;
3763 uint32_t _ptr_devmode;
3764 TALLOC_CTX *_mem_save_devmode_0;
3765 uint32_t _ptr_text_status;
3766 TALLOC_CTX *_mem_save_text_status_0;
3767 uint32_t _ptr_secdesc;
3768 TALLOC_CTX *_mem_save_secdesc_0;
3769 if (ndr_flags & NDR_SCALARS) {
3770 NDR_CHECK(ndr_pull_align(ndr, 4));
3771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3773 uint32_t _flags_save_string = ndr->flags;
3774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3776 if (_ptr_printer_name) {
3777 NDR_PULL_ALLOC(ndr, r->printer_name);
3778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3780 r->printer_name = NULL;
3782 ndr->flags = _flags_save_string;
3785 uint32_t _flags_save_string = ndr->flags;
3786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3788 if (_ptr_server_name) {
3789 NDR_PULL_ALLOC(ndr, r->server_name);
3790 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3792 r->server_name = NULL;
3794 ndr->flags = _flags_save_string;
3797 uint32_t _flags_save_string = ndr->flags;
3798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3799 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3800 if (_ptr_user_name) {
3801 NDR_PULL_ALLOC(ndr, r->user_name);
3802 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3804 r->user_name = NULL;
3806 ndr->flags = _flags_save_string;
3809 uint32_t _flags_save_string = ndr->flags;
3810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3812 if (_ptr_document_name) {
3813 NDR_PULL_ALLOC(ndr, r->document_name);
3814 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3816 r->document_name = NULL;
3818 ndr->flags = _flags_save_string;
3821 uint32_t _flags_save_string = ndr->flags;
3822 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3823 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3824 if (_ptr_notify_name) {
3825 NDR_PULL_ALLOC(ndr, r->notify_name);
3826 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3828 r->notify_name = NULL;
3830 ndr->flags = _flags_save_string;
3833 uint32_t _flags_save_string = ndr->flags;
3834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3836 if (_ptr_data_type) {
3837 NDR_PULL_ALLOC(ndr, r->data_type);
3838 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3840 r->data_type = NULL;
3842 ndr->flags = _flags_save_string;
3845 uint32_t _flags_save_string = ndr->flags;
3846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3848 if (_ptr_print_processor) {
3849 NDR_PULL_ALLOC(ndr, r->print_processor);
3850 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3852 r->print_processor = NULL;
3854 ndr->flags = _flags_save_string;
3857 uint32_t _flags_save_string = ndr->flags;
3858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3860 if (_ptr_parameters) {
3861 NDR_PULL_ALLOC(ndr, r->parameters);
3862 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3864 r->parameters = NULL;
3866 ndr->flags = _flags_save_string;
3869 uint32_t _flags_save_string = ndr->flags;
3870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3872 if (_ptr_driver_name) {
3873 NDR_PULL_ALLOC(ndr, r->driver_name);
3874 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3876 r->driver_name = NULL;
3878 ndr->flags = _flags_save_string;
3880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3882 NDR_PULL_ALLOC(ndr, r->devmode);
3883 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3888 uint32_t _flags_save_string = ndr->flags;
3889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3891 if (_ptr_text_status) {
3892 NDR_PULL_ALLOC(ndr, r->text_status);
3893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3895 r->text_status = NULL;
3897 ndr->flags = _flags_save_string;
3899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3901 NDR_PULL_ALLOC(ndr, r->secdesc);
3902 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3906 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3908 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3909 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3912 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3913 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3914 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
3918 if (ndr_flags & NDR_BUFFERS) {
3920 uint32_t _flags_save_string = ndr->flags;
3921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3922 if (r->printer_name) {
3923 uint32_t _relative_save_offset;
3924 _relative_save_offset = ndr->offset;
3925 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3926 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3927 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3928 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3930 ndr->offset = _relative_save_offset;
3932 ndr->flags = _flags_save_string;
3935 uint32_t _flags_save_string = ndr->flags;
3936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3937 if (r->server_name) {
3938 uint32_t _relative_save_offset;
3939 _relative_save_offset = ndr->offset;
3940 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3941 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3942 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3943 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3945 ndr->offset = _relative_save_offset;
3947 ndr->flags = _flags_save_string;
3950 uint32_t _flags_save_string = ndr->flags;
3951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3953 uint32_t _relative_save_offset;
3954 _relative_save_offset = ndr->offset;
3955 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3956 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3957 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3958 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3960 ndr->offset = _relative_save_offset;
3962 ndr->flags = _flags_save_string;
3965 uint32_t _flags_save_string = ndr->flags;
3966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3967 if (r->document_name) {
3968 uint32_t _relative_save_offset;
3969 _relative_save_offset = ndr->offset;
3970 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3971 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3972 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3973 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3975 ndr->offset = _relative_save_offset;
3977 ndr->flags = _flags_save_string;
3980 uint32_t _flags_save_string = ndr->flags;
3981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3982 if (r->notify_name) {
3983 uint32_t _relative_save_offset;
3984 _relative_save_offset = ndr->offset;
3985 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3986 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3987 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3988 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3990 ndr->offset = _relative_save_offset;
3992 ndr->flags = _flags_save_string;
3995 uint32_t _flags_save_string = ndr->flags;
3996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3998 uint32_t _relative_save_offset;
3999 _relative_save_offset = ndr->offset;
4000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4001 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4002 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4005 ndr->offset = _relative_save_offset;
4007 ndr->flags = _flags_save_string;
4010 uint32_t _flags_save_string = ndr->flags;
4011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4012 if (r->print_processor) {
4013 uint32_t _relative_save_offset;
4014 _relative_save_offset = ndr->offset;
4015 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4016 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4017 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4018 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4020 ndr->offset = _relative_save_offset;
4022 ndr->flags = _flags_save_string;
4025 uint32_t _flags_save_string = ndr->flags;
4026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4027 if (r->parameters) {
4028 uint32_t _relative_save_offset;
4029 _relative_save_offset = ndr->offset;
4030 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4031 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4032 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4033 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4035 ndr->offset = _relative_save_offset;
4037 ndr->flags = _flags_save_string;
4040 uint32_t _flags_save_string = ndr->flags;
4041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4042 if (r->driver_name) {
4043 uint32_t _relative_save_offset;
4044 _relative_save_offset = ndr->offset;
4045 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4046 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4047 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4048 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4050 ndr->offset = _relative_save_offset;
4052 ndr->flags = _flags_save_string;
4055 uint32_t _relative_save_offset;
4056 _relative_save_offset = ndr->offset;
4057 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4058 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4059 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4060 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4062 ndr->offset = _relative_save_offset;
4065 uint32_t _flags_save_string = ndr->flags;
4066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4067 if (r->text_status) {
4068 uint32_t _relative_save_offset;
4069 _relative_save_offset = ndr->offset;
4070 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4071 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4072 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4073 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4075 ndr->offset = _relative_save_offset;
4077 ndr->flags = _flags_save_string;
4080 uint32_t _relative_save_offset;
4081 _relative_save_offset = ndr->offset;
4082 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4083 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4084 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4085 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4087 ndr->offset = _relative_save_offset;
4090 return NDR_ERR_SUCCESS;
4093 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4095 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4097 ndr_print_uint32(ndr, "job_id", r->job_id);
4098 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4100 if (r->printer_name) {
4101 ndr_print_string(ndr, "printer_name", r->printer_name);
4104 ndr_print_ptr(ndr, "server_name", r->server_name);
4106 if (r->server_name) {
4107 ndr_print_string(ndr, "server_name", r->server_name);
4110 ndr_print_ptr(ndr, "user_name", r->user_name);
4113 ndr_print_string(ndr, "user_name", r->user_name);
4116 ndr_print_ptr(ndr, "document_name", r->document_name);
4118 if (r->document_name) {
4119 ndr_print_string(ndr, "document_name", r->document_name);
4122 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4124 if (r->notify_name) {
4125 ndr_print_string(ndr, "notify_name", r->notify_name);
4128 ndr_print_ptr(ndr, "data_type", r->data_type);
4131 ndr_print_string(ndr, "data_type", r->data_type);
4134 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4136 if (r->print_processor) {
4137 ndr_print_string(ndr, "print_processor", r->print_processor);
4140 ndr_print_ptr(ndr, "parameters", r->parameters);
4142 if (r->parameters) {
4143 ndr_print_string(ndr, "parameters", r->parameters);
4146 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4148 if (r->driver_name) {
4149 ndr_print_string(ndr, "driver_name", r->driver_name);
4152 ndr_print_ptr(ndr, "devmode", r->devmode);
4155 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4158 ndr_print_ptr(ndr, "text_status", r->text_status);
4160 if (r->text_status) {
4161 ndr_print_string(ndr, "text_status", r->text_status);
4164 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4167 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4170 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4171 ndr_print_uint32(ndr, "priority", r->priority);
4172 ndr_print_uint32(ndr, "position", r->position);
4173 ndr_print_uint32(ndr, "start_time", r->start_time);
4174 ndr_print_uint32(ndr, "until_time", r->until_time);
4175 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4176 ndr_print_uint32(ndr, "size", r->size);
4177 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4178 ndr_print_uint32(ndr, "time", r->time);
4179 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4180 ndr_print_uint32(ndr, "size_high", r->size_high);
4184 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4186 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4187 if (ndr_flags & NDR_SCALARS) {
4188 int level = ndr_push_get_switch_value(ndr, r);
4191 NDR_CHECK(ndr_push_align(ndr, 4));
4192 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4193 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4197 NDR_CHECK(ndr_push_align(ndr, 4));
4198 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4199 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4203 NDR_CHECK(ndr_push_align(ndr, 4));
4204 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4205 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4209 NDR_CHECK(ndr_push_align(ndr, 4));
4210 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4211 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4219 if (ndr_flags & NDR_BUFFERS) {
4220 int level = ndr_push_get_switch_value(ndr, r);
4221 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4224 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4228 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4235 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4243 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4244 return NDR_ERR_SUCCESS;
4247 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4249 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4251 level = ndr_pull_get_switch_value(ndr, r);
4252 if (ndr_flags & NDR_SCALARS) {
4255 NDR_CHECK(ndr_pull_align(ndr, 4));
4256 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4257 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4261 NDR_CHECK(ndr_pull_align(ndr, 4));
4262 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4263 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4267 NDR_CHECK(ndr_pull_align(ndr, 4));
4268 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4269 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4273 NDR_CHECK(ndr_pull_align(ndr, 4));
4274 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4275 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4283 if (ndr_flags & NDR_BUFFERS) {
4284 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4287 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4291 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4298 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4306 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4307 return NDR_ERR_SUCCESS;
4310 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4313 level = ndr_print_get_switch_value(ndr, r);
4314 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4317 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4321 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4325 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4329 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4338 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4340 if (ndr_flags & NDR_SCALARS) {
4341 NDR_CHECK(ndr_push_align(ndr, 4));
4342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4343 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4344 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4345 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4346 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4349 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4354 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4356 if (ndr_flags & NDR_BUFFERS) {
4357 if (r->printer_name) {
4358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4361 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4363 if (r->server_name) {
4364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4367 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4373 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4375 if (r->document_name) {
4376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4379 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4385 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4387 if (r->text_status) {
4388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4391 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4394 return NDR_ERR_SUCCESS;
4397 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4399 uint32_t _ptr_printer_name;
4400 TALLOC_CTX *_mem_save_printer_name_0;
4401 uint32_t _ptr_server_name;
4402 TALLOC_CTX *_mem_save_server_name_0;
4403 uint32_t _ptr_user_name;
4404 TALLOC_CTX *_mem_save_user_name_0;
4405 uint32_t _ptr_document_name;
4406 TALLOC_CTX *_mem_save_document_name_0;
4407 uint32_t _ptr_data_type;
4408 TALLOC_CTX *_mem_save_data_type_0;
4409 uint32_t _ptr_text_status;
4410 TALLOC_CTX *_mem_save_text_status_0;
4411 if (ndr_flags & NDR_SCALARS) {
4412 NDR_CHECK(ndr_pull_align(ndr, 4));
4413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4415 if (_ptr_printer_name) {
4416 NDR_PULL_ALLOC(ndr, r->printer_name);
4418 r->printer_name = NULL;
4420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4421 if (_ptr_server_name) {
4422 NDR_PULL_ALLOC(ndr, r->server_name);
4424 r->server_name = NULL;
4426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4427 if (_ptr_user_name) {
4428 NDR_PULL_ALLOC(ndr, r->user_name);
4430 r->user_name = NULL;
4432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4433 if (_ptr_document_name) {
4434 NDR_PULL_ALLOC(ndr, r->document_name);
4436 r->document_name = NULL;
4438 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4439 if (_ptr_data_type) {
4440 NDR_PULL_ALLOC(ndr, r->data_type);
4442 r->data_type = NULL;
4444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4445 if (_ptr_text_status) {
4446 NDR_PULL_ALLOC(ndr, r->text_status);
4448 r->text_status = NULL;
4450 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4454 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4455 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4457 if (ndr_flags & NDR_BUFFERS) {
4458 if (r->printer_name) {
4459 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4460 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4461 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4462 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4463 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4464 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
4466 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4467 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4470 if (r->server_name) {
4471 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4472 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4473 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4474 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4475 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4476 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
4478 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4479 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4483 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4484 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4485 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4486 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4487 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4488 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
4490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4491 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4494 if (r->document_name) {
4495 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4496 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4497 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4498 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4499 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4500 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
4502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4504 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4507 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4508 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4509 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4510 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4511 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4512 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
4514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4518 if (r->text_status) {
4519 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4520 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4521 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4522 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4523 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4524 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
4526 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4527 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4531 return NDR_ERR_SUCCESS;
4534 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
4536 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
4538 ndr_print_uint32(ndr, "job_id", r->job_id);
4539 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4541 if (r->printer_name) {
4542 ndr_print_string(ndr, "printer_name", r->printer_name);
4545 ndr_print_ptr(ndr, "server_name", r->server_name);
4547 if (r->server_name) {
4548 ndr_print_string(ndr, "server_name", r->server_name);
4551 ndr_print_ptr(ndr, "user_name", r->user_name);
4554 ndr_print_string(ndr, "user_name", r->user_name);
4557 ndr_print_ptr(ndr, "document_name", r->document_name);
4559 if (r->document_name) {
4560 ndr_print_string(ndr, "document_name", r->document_name);
4563 ndr_print_ptr(ndr, "data_type", r->data_type);
4566 ndr_print_string(ndr, "data_type", r->data_type);
4569 ndr_print_ptr(ndr, "text_status", r->text_status);
4571 if (r->text_status) {
4572 ndr_print_string(ndr, "text_status", r->text_status);
4575 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4576 ndr_print_uint32(ndr, "priority", r->priority);
4577 ndr_print_uint32(ndr, "position", r->position);
4578 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4579 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4580 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4584 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
4586 if (ndr_flags & NDR_SCALARS) {
4587 NDR_CHECK(ndr_push_align(ndr, 4));
4588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4589 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4590 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4591 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4592 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4594 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4595 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4596 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4599 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4601 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4608 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4612 if (ndr_flags & NDR_BUFFERS) {
4613 if (r->printer_name) {
4614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4617 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4619 if (r->server_name) {
4620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4621 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4623 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4629 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4631 if (r->document_name) {
4632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4635 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4637 if (r->notify_name) {
4638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4641 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4647 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4649 if (r->print_processor) {
4650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4653 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4655 if (r->parameters) {
4656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4659 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4661 if (r->driver_name) {
4662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4665 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4667 if (r->text_status) {
4668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4671 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4674 return NDR_ERR_SUCCESS;
4677 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4679 uint32_t _ptr_printer_name;
4680 TALLOC_CTX *_mem_save_printer_name_0;
4681 uint32_t _ptr_server_name;
4682 TALLOC_CTX *_mem_save_server_name_0;
4683 uint32_t _ptr_user_name;
4684 TALLOC_CTX *_mem_save_user_name_0;
4685 uint32_t _ptr_document_name;
4686 TALLOC_CTX *_mem_save_document_name_0;
4687 uint32_t _ptr_notify_name;
4688 TALLOC_CTX *_mem_save_notify_name_0;
4689 uint32_t _ptr_data_type;
4690 TALLOC_CTX *_mem_save_data_type_0;
4691 uint32_t _ptr_print_processor;
4692 TALLOC_CTX *_mem_save_print_processor_0;
4693 uint32_t _ptr_parameters;
4694 TALLOC_CTX *_mem_save_parameters_0;
4695 uint32_t _ptr_driver_name;
4696 TALLOC_CTX *_mem_save_driver_name_0;
4697 uint32_t _ptr_text_status;
4698 TALLOC_CTX *_mem_save_text_status_0;
4699 if (ndr_flags & NDR_SCALARS) {
4700 NDR_CHECK(ndr_pull_align(ndr, 4));
4701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4702 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4703 if (_ptr_printer_name) {
4704 NDR_PULL_ALLOC(ndr, r->printer_name);
4706 r->printer_name = NULL;
4708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4709 if (_ptr_server_name) {
4710 NDR_PULL_ALLOC(ndr, r->server_name);
4712 r->server_name = NULL;
4714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4715 if (_ptr_user_name) {
4716 NDR_PULL_ALLOC(ndr, r->user_name);
4718 r->user_name = NULL;
4720 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4721 if (_ptr_document_name) {
4722 NDR_PULL_ALLOC(ndr, r->document_name);
4724 r->document_name = NULL;
4726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4727 if (_ptr_notify_name) {
4728 NDR_PULL_ALLOC(ndr, r->notify_name);
4730 r->notify_name = NULL;
4732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4733 if (_ptr_data_type) {
4734 NDR_PULL_ALLOC(ndr, r->data_type);
4736 r->data_type = NULL;
4738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4739 if (_ptr_print_processor) {
4740 NDR_PULL_ALLOC(ndr, r->print_processor);
4742 r->print_processor = NULL;
4744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4745 if (_ptr_parameters) {
4746 NDR_PULL_ALLOC(ndr, r->parameters);
4748 r->parameters = NULL;
4750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4751 if (_ptr_driver_name) {
4752 NDR_PULL_ALLOC(ndr, r->driver_name);
4754 r->driver_name = NULL;
4756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
4757 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4758 if (_ptr_text_status) {
4759 NDR_PULL_ALLOC(ndr, r->text_status);
4761 r->text_status = NULL;
4763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
4764 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4771 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4775 if (ndr_flags & NDR_BUFFERS) {
4776 if (r->printer_name) {
4777 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4778 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4779 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4780 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4781 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4782 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
4784 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4785 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4788 if (r->server_name) {
4789 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4790 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4791 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4792 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4793 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4794 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
4796 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4797 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4801 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4802 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4803 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4804 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4805 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4806 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
4808 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4809 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4812 if (r->document_name) {
4813 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4814 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4815 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4816 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4817 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4818 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
4820 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4821 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4824 if (r->notify_name) {
4825 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4826 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4827 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
4828 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
4829 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
4830 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
4832 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
4833 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
4834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4837 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4838 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4839 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4840 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4841 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4842 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
4844 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4845 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4848 if (r->print_processor) {
4849 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4850 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4851 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
4852 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
4853 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
4854 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
4856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
4857 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
4858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4860 if (r->parameters) {
4861 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4862 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4863 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
4864 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
4865 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
4866 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
4868 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
4869 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
4870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4872 if (r->driver_name) {
4873 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4874 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4875 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4876 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4877 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4878 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
4880 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4881 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4884 if (r->text_status) {
4885 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4886 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4887 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4888 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4889 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4890 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
4892 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4893 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4894 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4897 return NDR_ERR_SUCCESS;
4900 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
4902 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
4904 ndr_print_uint32(ndr, "job_id", r->job_id);
4905 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4907 if (r->printer_name) {
4908 ndr_print_string(ndr, "printer_name", r->printer_name);
4911 ndr_print_ptr(ndr, "server_name", r->server_name);
4913 if (r->server_name) {
4914 ndr_print_string(ndr, "server_name", r->server_name);
4917 ndr_print_ptr(ndr, "user_name", r->user_name);
4920 ndr_print_string(ndr, "user_name", r->user_name);
4923 ndr_print_ptr(ndr, "document_name", r->document_name);
4925 if (r->document_name) {
4926 ndr_print_string(ndr, "document_name", r->document_name);
4929 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4931 if (r->notify_name) {
4932 ndr_print_string(ndr, "notify_name", r->notify_name);
4935 ndr_print_ptr(ndr, "data_type", r->data_type);
4938 ndr_print_string(ndr, "data_type", r->data_type);
4941 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4943 if (r->print_processor) {
4944 ndr_print_string(ndr, "print_processor", r->print_processor);
4947 ndr_print_ptr(ndr, "parameters", r->parameters);
4949 if (r->parameters) {
4950 ndr_print_string(ndr, "parameters", r->parameters);
4953 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4955 if (r->driver_name) {
4956 ndr_print_string(ndr, "driver_name", r->driver_name);
4959 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
4960 ndr_print_ptr(ndr, "text_status", r->text_status);
4962 if (r->text_status) {
4963 ndr_print_string(ndr, "text_status", r->text_status);
4966 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
4967 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4968 ndr_print_uint32(ndr, "priority", r->priority);
4969 ndr_print_uint32(ndr, "position", r->position);
4970 ndr_print_uint32(ndr, "start_time", r->start_time);
4971 ndr_print_uint32(ndr, "until_time", r->until_time);
4972 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4973 ndr_print_uint32(ndr, "size", r->size);
4974 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4975 ndr_print_uint32(ndr, "time", r->time);
4976 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4980 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
4982 if (ndr_flags & NDR_SCALARS) {
4983 NDR_CHECK(ndr_push_align(ndr, 4));
4984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4985 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4986 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4987 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4989 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4990 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4991 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4992 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4993 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4997 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5004 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5009 if (ndr_flags & NDR_BUFFERS) {
5010 if (r->printer_name) {
5011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5014 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5016 if (r->server_name) {
5017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5020 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5028 if (r->document_name) {
5029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5032 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5034 if (r->notify_name) {
5035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5038 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5044 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5046 if (r->print_processor) {
5047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5052 if (r->parameters) {
5053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5058 if (r->driver_name) {
5059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5064 if (r->text_status) {
5065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5071 return NDR_ERR_SUCCESS;
5074 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5076 uint32_t _ptr_printer_name;
5077 TALLOC_CTX *_mem_save_printer_name_0;
5078 uint32_t _ptr_server_name;
5079 TALLOC_CTX *_mem_save_server_name_0;
5080 uint32_t _ptr_user_name;
5081 TALLOC_CTX *_mem_save_user_name_0;
5082 uint32_t _ptr_document_name;
5083 TALLOC_CTX *_mem_save_document_name_0;
5084 uint32_t _ptr_notify_name;
5085 TALLOC_CTX *_mem_save_notify_name_0;
5086 uint32_t _ptr_data_type;
5087 TALLOC_CTX *_mem_save_data_type_0;
5088 uint32_t _ptr_print_processor;
5089 TALLOC_CTX *_mem_save_print_processor_0;
5090 uint32_t _ptr_parameters;
5091 TALLOC_CTX *_mem_save_parameters_0;
5092 uint32_t _ptr_driver_name;
5093 TALLOC_CTX *_mem_save_driver_name_0;
5094 uint32_t _ptr_text_status;
5095 TALLOC_CTX *_mem_save_text_status_0;
5096 if (ndr_flags & NDR_SCALARS) {
5097 NDR_CHECK(ndr_pull_align(ndr, 4));
5098 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5100 if (_ptr_printer_name) {
5101 NDR_PULL_ALLOC(ndr, r->printer_name);
5103 r->printer_name = NULL;
5105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5106 if (_ptr_server_name) {
5107 NDR_PULL_ALLOC(ndr, r->server_name);
5109 r->server_name = NULL;
5111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5112 if (_ptr_user_name) {
5113 NDR_PULL_ALLOC(ndr, r->user_name);
5115 r->user_name = NULL;
5117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5118 if (_ptr_document_name) {
5119 NDR_PULL_ALLOC(ndr, r->document_name);
5121 r->document_name = NULL;
5123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5124 if (_ptr_notify_name) {
5125 NDR_PULL_ALLOC(ndr, r->notify_name);
5127 r->notify_name = NULL;
5129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5130 if (_ptr_data_type) {
5131 NDR_PULL_ALLOC(ndr, r->data_type);
5133 r->data_type = NULL;
5135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5136 if (_ptr_print_processor) {
5137 NDR_PULL_ALLOC(ndr, r->print_processor);
5139 r->print_processor = NULL;
5141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5142 if (_ptr_parameters) {
5143 NDR_PULL_ALLOC(ndr, r->parameters);
5145 r->parameters = NULL;
5147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5148 if (_ptr_driver_name) {
5149 NDR_PULL_ALLOC(ndr, r->driver_name);
5151 r->driver_name = NULL;
5153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5155 if (_ptr_text_status) {
5156 NDR_PULL_ALLOC(ndr, r->text_status);
5158 r->text_status = NULL;
5160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5161 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5168 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5173 if (ndr_flags & NDR_BUFFERS) {
5174 if (r->printer_name) {
5175 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5176 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5177 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5178 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5179 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5180 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printer_name), ndr_get_array_length(ndr, &r->printer_name));
5182 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5183 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5186 if (r->server_name) {
5187 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5188 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5189 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5190 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5191 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5192 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->server_name), ndr_get_array_length(ndr, &r->server_name));
5194 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5199 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5200 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5201 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5202 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5203 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5204 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user_name), ndr_get_array_length(ndr, &r->user_name));
5206 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5207 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5210 if (r->document_name) {
5211 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5212 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5213 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5214 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5215 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5216 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
5218 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5219 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5222 if (r->notify_name) {
5223 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5224 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5225 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5226 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5227 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5228 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->notify_name), ndr_get_array_length(ndr, &r->notify_name));
5230 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5231 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5232 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5235 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5236 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5237 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5238 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5239 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5240 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_type), ndr_get_array_length(ndr, &r->data_type));
5242 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5243 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5246 if (r->print_processor) {
5247 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5248 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5249 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5250 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5251 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5252 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
5254 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5255 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5258 if (r->parameters) {
5259 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5260 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5261 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5262 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5263 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5264 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
5266 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5267 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5270 if (r->driver_name) {
5271 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5272 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5273 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5274 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5275 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5276 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5278 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5279 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5282 if (r->text_status) {
5283 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5284 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5285 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5286 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5287 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5288 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->text_status), ndr_get_array_length(ndr, &r->text_status));
5290 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5291 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5295 return NDR_ERR_SUCCESS;
5298 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5300 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5302 ndr_print_uint32(ndr, "job_id", r->job_id);
5303 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5305 if (r->printer_name) {
5306 ndr_print_string(ndr, "printer_name", r->printer_name);
5309 ndr_print_ptr(ndr, "server_name", r->server_name);
5311 if (r->server_name) {
5312 ndr_print_string(ndr, "server_name", r->server_name);
5315 ndr_print_ptr(ndr, "user_name", r->user_name);
5318 ndr_print_string(ndr, "user_name", r->user_name);
5321 ndr_print_ptr(ndr, "document_name", r->document_name);
5323 if (r->document_name) {
5324 ndr_print_string(ndr, "document_name", r->document_name);
5327 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5329 if (r->notify_name) {
5330 ndr_print_string(ndr, "notify_name", r->notify_name);
5333 ndr_print_ptr(ndr, "data_type", r->data_type);
5336 ndr_print_string(ndr, "data_type", r->data_type);
5339 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5341 if (r->print_processor) {
5342 ndr_print_string(ndr, "print_processor", r->print_processor);
5345 ndr_print_ptr(ndr, "parameters", r->parameters);
5347 if (r->parameters) {
5348 ndr_print_string(ndr, "parameters", r->parameters);
5351 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5353 if (r->driver_name) {
5354 ndr_print_string(ndr, "driver_name", r->driver_name);
5357 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5358 ndr_print_ptr(ndr, "text_status", r->text_status);
5360 if (r->text_status) {
5361 ndr_print_string(ndr, "text_status", r->text_status);
5364 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5365 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5366 ndr_print_uint32(ndr, "priority", r->priority);
5367 ndr_print_uint32(ndr, "position", r->position);
5368 ndr_print_uint32(ndr, "start_time", r->start_time);
5369 ndr_print_uint32(ndr, "until_time", r->until_time);
5370 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5371 ndr_print_uint32(ndr, "size", r->size);
5372 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5373 ndr_print_uint32(ndr, "time", r->time);
5374 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5375 ndr_print_uint32(ndr, "size_high", r->size_high);
5379 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5381 if (ndr_flags & NDR_SCALARS) {
5382 int level = ndr_push_get_switch_value(ndr, r);
5383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5386 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5406 if (ndr_flags & NDR_BUFFERS) {
5407 int level = ndr_push_get_switch_value(ndr, r);
5411 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5417 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5423 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5429 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5438 return NDR_ERR_SUCCESS;
5441 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5445 TALLOC_CTX *_mem_save_info1_0;
5446 TALLOC_CTX *_mem_save_info2_0;
5447 TALLOC_CTX *_mem_save_info3_0;
5448 TALLOC_CTX *_mem_save_info4_0;
5449 level = ndr_pull_get_switch_value(ndr, r);
5450 if (ndr_flags & NDR_SCALARS) {
5451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5452 if (_level != level) {
5453 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5457 uint32_t _ptr_info1;
5458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5460 NDR_PULL_ALLOC(ndr, r->info1);
5467 uint32_t _ptr_info2;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5470 NDR_PULL_ALLOC(ndr, r->info2);
5477 uint32_t _ptr_info3;
5478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5480 NDR_PULL_ALLOC(ndr, r->info3);
5487 uint32_t _ptr_info4;
5488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5490 NDR_PULL_ALLOC(ndr, r->info4);
5501 if (ndr_flags & NDR_BUFFERS) {
5505 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5506 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5507 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5514 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5515 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5516 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5523 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5524 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5525 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5532 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5533 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5534 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5544 return NDR_ERR_SUCCESS;
5547 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5550 level = ndr_print_get_switch_value(ndr, r);
5551 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5554 ndr_print_ptr(ndr, "info1", r->info1);
5557 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5563 ndr_print_ptr(ndr, "info2", r->info2);
5566 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5572 ndr_print_ptr(ndr, "info3", r->info3);
5575 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5581 ndr_print_ptr(ndr, "info4", r->info4);
5584 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5595 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5597 if (ndr_flags & NDR_SCALARS) {
5598 NDR_CHECK(ndr_push_align(ndr, 4));
5599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5600 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5601 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5603 if (ndr_flags & NDR_BUFFERS) {
5604 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5606 return NDR_ERR_SUCCESS;
5609 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5611 if (ndr_flags & NDR_SCALARS) {
5612 NDR_CHECK(ndr_pull_align(ndr, 4));
5613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5614 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5615 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5617 if (ndr_flags & NDR_BUFFERS) {
5618 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5620 return NDR_ERR_SUCCESS;
5623 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
5625 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
5627 ndr_print_uint32(ndr, "level", r->level);
5628 ndr_print_set_switch_value(ndr, &r->info, r->level);
5629 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
5633 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
5635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5636 return NDR_ERR_SUCCESS;
5639 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
5642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5644 return NDR_ERR_SUCCESS;
5647 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
5649 const char *val = NULL;
5652 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5653 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
5654 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5655 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
5656 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
5657 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5658 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5659 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5660 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5662 ndr_print_enum(ndr, name, "ENUM", val, r);
5665 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
5667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5668 return NDR_ERR_SUCCESS;
5671 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
5674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5676 return NDR_ERR_SUCCESS;
5679 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
5681 const char *val = NULL;
5684 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5685 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5686 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5687 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5688 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5690 ndr_print_enum(ndr, name, "ENUM", val, r);
5693 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
5695 if (ndr_flags & NDR_SCALARS) {
5696 NDR_CHECK(ndr_push_align(ndr, 4));
5697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
5698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
5699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
5700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
5701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
5702 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
5704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
5706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
5707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
5708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
5709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
5710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
5711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
5712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
5713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
5714 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
5715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
5716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
5717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
5718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
5719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
5720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
5721 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
5722 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
5723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
5724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
5725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
5727 if (ndr_flags & NDR_BUFFERS) {
5728 if (r->servername) {
5729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5732 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5734 if (r->printername) {
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5738 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5741 return NDR_ERR_SUCCESS;
5744 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5746 uint32_t _ptr_servername;
5747 TALLOC_CTX *_mem_save_servername_0;
5748 uint32_t _ptr_printername;
5749 TALLOC_CTX *_mem_save_printername_0;
5750 if (ndr_flags & NDR_SCALARS) {
5751 NDR_CHECK(ndr_pull_align(ndr, 4));
5752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
5753 if (_ptr_servername) {
5754 NDR_PULL_ALLOC(ndr, r->servername);
5756 r->servername = NULL;
5758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
5759 if (_ptr_printername) {
5760 NDR_PULL_ALLOC(ndr, r->printername);
5762 r->printername = NULL;
5764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
5765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
5766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
5767 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
5769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
5771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
5772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
5773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
5774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
5775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
5776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
5777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
5778 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
5779 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
5780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
5781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
5782 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
5783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
5784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
5785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
5786 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
5787 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
5788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
5789 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
5790 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
5792 if (ndr_flags & NDR_BUFFERS) {
5793 if (r->servername) {
5794 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5795 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
5796 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
5797 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
5798 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
5799 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
5801 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
5802 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
5803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
5805 if (r->printername) {
5806 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5807 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
5808 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
5809 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
5810 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
5811 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
5813 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
5814 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
5815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
5818 return NDR_ERR_SUCCESS;
5821 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
5823 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
5825 ndr_print_ptr(ndr, "servername", r->servername);
5827 if (r->servername) {
5828 ndr_print_string(ndr, "servername", r->servername);
5831 ndr_print_ptr(ndr, "printername", r->printername);
5833 if (r->printername) {
5834 ndr_print_string(ndr, "printername", r->printername);
5837 ndr_print_uint32(ndr, "cjobs", r->cjobs);
5838 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
5839 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
5840 ndr_print_spoolss_Time(ndr, "time", &r->time);
5841 ndr_print_uint32(ndr, "global_counter", r->global_counter);
5842 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5843 ndr_print_uint32(ndr, "version", r->version);
5844 ndr_print_uint32(ndr, "free_build", r->free_build);
5845 ndr_print_uint32(ndr, "spooling", r->spooling);
5846 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
5847 ndr_print_uint32(ndr, "session_counter", r->session_counter);
5848 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
5849 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
5850 ndr_print_uint32(ndr, "job_error", r->job_error);
5851 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
5852 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
5853 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
5854 ndr_print_uint32(ndr, "change_id", r->change_id);
5855 ndr_print_WERROR(ndr, "last_error", r->last_error);
5856 ndr_print_uint32(ndr, "status", r->status);
5857 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
5858 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
5859 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
5860 ndr_print_uint16(ndr, "processor_level", r->processor_level);
5861 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
5862 ndr_print_uint32(ndr, "reserved2", r->reserved2);
5863 ndr_print_uint32(ndr, "reserved3", r->reserved3);
5867 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
5869 if (ndr_flags & NDR_SCALARS) {
5870 NDR_CHECK(ndr_push_align(ndr, 4));
5871 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
5872 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
5873 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
5874 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
5876 if (ndr_flags & NDR_BUFFERS) {
5878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5881 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5883 if (r->description) {
5884 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5887 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5893 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5896 return NDR_ERR_SUCCESS;
5899 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
5902 TALLOC_CTX *_mem_save_name_0;
5903 uint32_t _ptr_description;
5904 TALLOC_CTX *_mem_save_description_0;
5905 uint32_t _ptr_comment;
5906 TALLOC_CTX *_mem_save_comment_0;
5907 if (ndr_flags & NDR_SCALARS) {
5908 NDR_CHECK(ndr_pull_align(ndr, 4));
5909 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
5910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5912 NDR_PULL_ALLOC(ndr, r->name);
5916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
5917 if (_ptr_description) {
5918 NDR_PULL_ALLOC(ndr, r->description);
5920 r->description = NULL;
5922 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
5924 NDR_PULL_ALLOC(ndr, r->comment);
5929 if (ndr_flags & NDR_BUFFERS) {
5931 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5932 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
5933 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
5934 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
5935 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
5936 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
5938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
5939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
5940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
5942 if (r->description) {
5943 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
5944 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
5945 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
5946 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
5947 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
5948 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->description), ndr_get_array_length(ndr, &r->description));
5950 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
5951 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
5952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
5955 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
5956 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
5957 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
5958 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
5959 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
5960 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
5962 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
5963 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
5964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
5967 return NDR_ERR_SUCCESS;
5970 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
5972 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
5974 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
5975 ndr_print_ptr(ndr, "name", r->name);
5978 ndr_print_string(ndr, "name", r->name);
5981 ndr_print_ptr(ndr, "description", r->description);
5983 if (r->description) {
5984 ndr_print_string(ndr, "description", r->description);
5987 ndr_print_ptr(ndr, "comment", r->comment);
5990 ndr_print_string(ndr, "comment", r->comment);
5996 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
5998 if (ndr_flags & NDR_SCALARS) {
5999 NDR_CHECK(ndr_push_align(ndr, 4));
6000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6001 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6004 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6005 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6006 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6007 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6010 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6013 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6018 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6022 if (ndr_flags & NDR_BUFFERS) {
6023 if (r->servername) {
6024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6027 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6029 if (r->printername) {
6030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6033 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6039 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6045 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6047 if (r->drivername) {
6048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6051 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6057 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6063 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6067 struct ndr_push *_ndr_devmode;
6068 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6069 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6070 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6077 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6079 if (r->printprocessor) {
6080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6083 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6089 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6091 if (r->parameters) {
6092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6095 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6099 struct ndr_push *_ndr_secdesc;
6100 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6101 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6102 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6106 return NDR_ERR_SUCCESS;
6109 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6111 uint32_t _ptr_servername;
6112 TALLOC_CTX *_mem_save_servername_0;
6113 uint32_t _ptr_printername;
6114 TALLOC_CTX *_mem_save_printername_0;
6115 uint32_t _ptr_sharename;
6116 TALLOC_CTX *_mem_save_sharename_0;
6117 uint32_t _ptr_portname;
6118 TALLOC_CTX *_mem_save_portname_0;
6119 uint32_t _ptr_drivername;
6120 TALLOC_CTX *_mem_save_drivername_0;
6121 uint32_t _ptr_comment;
6122 TALLOC_CTX *_mem_save_comment_0;
6123 uint32_t _ptr_location;
6124 TALLOC_CTX *_mem_save_location_0;
6125 uint32_t _ptr_devmode;
6126 TALLOC_CTX *_mem_save_devmode_0;
6127 uint32_t _ptr_sepfile;
6128 TALLOC_CTX *_mem_save_sepfile_0;
6129 uint32_t _ptr_printprocessor;
6130 TALLOC_CTX *_mem_save_printprocessor_0;
6131 uint32_t _ptr_datatype;
6132 TALLOC_CTX *_mem_save_datatype_0;
6133 uint32_t _ptr_parameters;
6134 TALLOC_CTX *_mem_save_parameters_0;
6135 uint32_t _ptr_secdesc;
6136 TALLOC_CTX *_mem_save_secdesc_0;
6137 if (ndr_flags & NDR_SCALARS) {
6138 NDR_CHECK(ndr_pull_align(ndr, 4));
6139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6140 if (_ptr_servername) {
6141 NDR_PULL_ALLOC(ndr, r->servername);
6143 r->servername = NULL;
6145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6146 if (_ptr_printername) {
6147 NDR_PULL_ALLOC(ndr, r->printername);
6149 r->printername = NULL;
6151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6152 if (_ptr_sharename) {
6153 NDR_PULL_ALLOC(ndr, r->sharename);
6155 r->sharename = NULL;
6157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6158 if (_ptr_portname) {
6159 NDR_PULL_ALLOC(ndr, r->portname);
6163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6164 if (_ptr_drivername) {
6165 NDR_PULL_ALLOC(ndr, r->drivername);
6167 r->drivername = NULL;
6169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6171 NDR_PULL_ALLOC(ndr, r->comment);
6175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6176 if (_ptr_location) {
6177 NDR_PULL_ALLOC(ndr, r->location);
6181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6183 NDR_PULL_ALLOC(ndr, r->devmode);
6187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6189 NDR_PULL_ALLOC(ndr, r->sepfile);
6193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6194 if (_ptr_printprocessor) {
6195 NDR_PULL_ALLOC(ndr, r->printprocessor);
6197 r->printprocessor = NULL;
6199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6200 if (_ptr_datatype) {
6201 NDR_PULL_ALLOC(ndr, r->datatype);
6205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6206 if (_ptr_parameters) {
6207 NDR_PULL_ALLOC(ndr, r->parameters);
6209 r->parameters = NULL;
6211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6213 NDR_PULL_ALLOC(ndr, r->secdesc);
6217 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6220 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6221 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6222 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6224 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6226 if (ndr_flags & NDR_BUFFERS) {
6227 if (r->servername) {
6228 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6229 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6230 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6231 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6232 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6233 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
6235 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6236 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6239 if (r->printername) {
6240 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6241 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6242 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6243 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6244 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6245 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
6247 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6248 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6249 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6252 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6253 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6254 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6255 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6256 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6257 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sharename), ndr_get_array_length(ndr, &r->sharename));
6259 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6260 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6261 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6264 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6265 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6266 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6267 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6268 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6269 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
6271 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6272 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6275 if (r->drivername) {
6276 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6277 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6278 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6279 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6280 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6281 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->drivername), ndr_get_array_length(ndr, &r->drivername));
6283 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6284 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6288 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6289 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6290 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6291 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6292 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6293 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
6295 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6296 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6300 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6301 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6302 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6303 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6304 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6305 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->location), ndr_get_array_length(ndr, &r->location));
6307 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6308 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6312 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6313 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6315 struct ndr_pull *_ndr_devmode;
6316 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6317 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6318 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6323 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6324 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6325 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6326 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6327 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6328 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sepfile), ndr_get_array_length(ndr, &r->sepfile));
6330 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6331 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6334 if (r->printprocessor) {
6335 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6336 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6337 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6338 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6339 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6340 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printprocessor), ndr_get_array_length(ndr, &r->printprocessor));
6342 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6343 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6347 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6348 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6349 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6350 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6351 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6352 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
6354 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6355 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6358 if (r->parameters) {
6359 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6360 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6361 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6362 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6363 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6364 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
6366 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6367 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6371 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6372 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6374 struct ndr_pull *_ndr_secdesc;
6375 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6376 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6377 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6382 return NDR_ERR_SUCCESS;
6385 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6387 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6389 ndr_print_ptr(ndr, "servername", r->servername);
6391 if (r->servername) {
6392 ndr_print_string(ndr, "servername", r->servername);
6395 ndr_print_ptr(ndr, "printername", r->printername);
6397 if (r->printername) {
6398 ndr_print_string(ndr, "printername", r->printername);
6401 ndr_print_ptr(ndr, "sharename", r->sharename);
6404 ndr_print_string(ndr, "sharename", r->sharename);
6407 ndr_print_ptr(ndr, "portname", r->portname);
6410 ndr_print_string(ndr, "portname", r->portname);
6413 ndr_print_ptr(ndr, "drivername", r->drivername);
6415 if (r->drivername) {
6416 ndr_print_string(ndr, "drivername", r->drivername);
6419 ndr_print_ptr(ndr, "comment", r->comment);
6422 ndr_print_string(ndr, "comment", r->comment);
6425 ndr_print_ptr(ndr, "location", r->location);
6428 ndr_print_string(ndr, "location", r->location);
6431 ndr_print_ptr(ndr, "devmode", r->devmode);
6434 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
6437 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6440 ndr_print_string(ndr, "sepfile", r->sepfile);
6443 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6445 if (r->printprocessor) {
6446 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6449 ndr_print_ptr(ndr, "datatype", r->datatype);
6452 ndr_print_string(ndr, "datatype", r->datatype);
6455 ndr_print_ptr(ndr, "parameters", r->parameters);
6457 if (r->parameters) {
6458 ndr_print_string(ndr, "parameters", r->parameters);
6461 ndr_print_ptr(ndr, "secdesc", r->secdesc);
6464 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
6467 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6468 ndr_print_uint32(ndr, "priority", r->priority);
6469 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6470 ndr_print_uint32(ndr, "starttime", r->starttime);
6471 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6472 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6473 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6474 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6478 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6480 if (ndr_flags & NDR_SCALARS) {
6481 NDR_CHECK(ndr_push_align(ndr, 4));
6482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6484 if (ndr_flags & NDR_BUFFERS) {
6486 return NDR_ERR_SUCCESS;
6489 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6491 if (ndr_flags & NDR_SCALARS) {
6492 NDR_CHECK(ndr_pull_align(ndr, 4));
6493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6495 if (ndr_flags & NDR_BUFFERS) {
6497 return NDR_ERR_SUCCESS;
6500 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6502 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6504 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6508 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6510 if (ndr_flags & NDR_SCALARS) {
6511 NDR_CHECK(ndr_push_align(ndr, 4));
6512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6513 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6514 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6516 if (ndr_flags & NDR_BUFFERS) {
6517 if (r->printername) {
6518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6521 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6523 if (r->servername) {
6524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6527 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6530 return NDR_ERR_SUCCESS;
6533 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6535 uint32_t _ptr_printername;
6536 TALLOC_CTX *_mem_save_printername_0;
6537 uint32_t _ptr_servername;
6538 TALLOC_CTX *_mem_save_servername_0;
6539 if (ndr_flags & NDR_SCALARS) {
6540 NDR_CHECK(ndr_pull_align(ndr, 4));
6541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6542 if (_ptr_printername) {
6543 NDR_PULL_ALLOC(ndr, r->printername);
6545 r->printername = NULL;
6547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6548 if (_ptr_servername) {
6549 NDR_PULL_ALLOC(ndr, r->servername);
6551 r->servername = NULL;
6553 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6555 if (ndr_flags & NDR_BUFFERS) {
6556 if (r->printername) {
6557 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6558 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6559 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6560 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6561 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6562 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
6564 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6565 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6568 if (r->servername) {
6569 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6570 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6571 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6572 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6573 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6574 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
6576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6581 return NDR_ERR_SUCCESS;
6584 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6586 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6588 ndr_print_ptr(ndr, "printername", r->printername);
6590 if (r->printername) {
6591 ndr_print_string(ndr, "printername", r->printername);
6594 ndr_print_ptr(ndr, "servername", r->servername);
6596 if (r->servername) {
6597 ndr_print_string(ndr, "servername", r->servername);
6600 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6604 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6606 if (ndr_flags & NDR_SCALARS) {
6607 NDR_CHECK(ndr_push_align(ndr, 4));
6608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6609 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6610 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6614 if (ndr_flags & NDR_BUFFERS) {
6615 if (r->printername) {
6616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6622 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6624 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6625 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6628 return NDR_ERR_SUCCESS;
6631 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6633 uint32_t _ptr_printername;
6634 TALLOC_CTX *_mem_save_printername_0;
6635 uint32_t _ptr_portname;
6636 TALLOC_CTX *_mem_save_portname_0;
6637 if (ndr_flags & NDR_SCALARS) {
6638 NDR_CHECK(ndr_pull_align(ndr, 4));
6639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6640 if (_ptr_printername) {
6641 NDR_PULL_ALLOC(ndr, r->printername);
6643 r->printername = NULL;
6645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6646 if (_ptr_portname) {
6647 NDR_PULL_ALLOC(ndr, r->portname);
6651 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
6653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
6655 if (ndr_flags & NDR_BUFFERS) {
6656 if (r->printername) {
6657 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6658 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6659 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6660 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6661 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6662 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
6664 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6665 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6669 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6670 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6671 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6672 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6673 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6674 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
6676 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6677 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6678 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6681 return NDR_ERR_SUCCESS;
6684 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
6686 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
6688 ndr_print_ptr(ndr, "printername", r->printername);
6690 if (r->printername) {
6691 ndr_print_string(ndr, "printername", r->printername);
6694 ndr_print_ptr(ndr, "portname", r->portname);
6697 ndr_print_string(ndr, "portname", r->portname);
6700 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6701 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
6702 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
6706 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
6708 if (ndr_flags & NDR_SCALARS) {
6709 NDR_CHECK(ndr_push_align(ndr, 4));
6710 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6712 if (ndr_flags & NDR_BUFFERS) {
6714 return NDR_ERR_SUCCESS;
6717 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
6719 if (ndr_flags & NDR_SCALARS) {
6720 NDR_CHECK(ndr_pull_align(ndr, 4));
6721 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6723 if (ndr_flags & NDR_BUFFERS) {
6725 return NDR_ERR_SUCCESS;
6728 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
6730 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
6732 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6736 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
6738 if (ndr_flags & NDR_SCALARS) {
6739 NDR_CHECK(ndr_push_align(ndr, 4));
6740 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
6741 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
6743 if (ndr_flags & NDR_BUFFERS) {
6745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6751 return NDR_ERR_SUCCESS;
6754 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
6757 TALLOC_CTX *_mem_save_guid_0;
6758 if (ndr_flags & NDR_SCALARS) {
6759 NDR_CHECK(ndr_pull_align(ndr, 4));
6760 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
6762 NDR_PULL_ALLOC(ndr, r->guid);
6766 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
6768 if (ndr_flags & NDR_BUFFERS) {
6770 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6771 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
6772 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
6773 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
6774 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
6775 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guid), ndr_get_array_length(ndr, &r->guid));
6777 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
6778 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
6779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
6782 return NDR_ERR_SUCCESS;
6785 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
6787 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
6789 ndr_print_ptr(ndr, "guid", r->guid);
6792 ndr_print_string(ndr, "guid", r->guid);
6795 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
6799 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
6801 if (ndr_flags & NDR_SCALARS) {
6802 int level = ndr_push_get_switch_value(ndr, r);
6803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
6810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6814 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6818 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6822 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6826 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
6830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
6838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
6850 if (ndr_flags & NDR_BUFFERS) {
6851 int level = ndr_push_get_switch_value(ndr, r);
6855 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
6861 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6867 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6873 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
6879 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6885 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
6891 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
6897 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
6903 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6909 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
6918 return NDR_ERR_SUCCESS;
6921 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
6925 TALLOC_CTX *_mem_save_info0_0;
6926 TALLOC_CTX *_mem_save_info1_0;
6927 TALLOC_CTX *_mem_save_info2_0;
6928 TALLOC_CTX *_mem_save_info3_0;
6929 TALLOC_CTX *_mem_save_info4_0;
6930 TALLOC_CTX *_mem_save_info5_0;
6931 TALLOC_CTX *_mem_save_info6_0;
6932 TALLOC_CTX *_mem_save_info7_0;
6933 TALLOC_CTX *_mem_save_info8_0;
6934 TALLOC_CTX *_mem_save_info9_0;
6935 level = ndr_pull_get_switch_value(ndr, r);
6936 if (ndr_flags & NDR_SCALARS) {
6937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6938 if (_level != level) {
6939 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6943 uint32_t _ptr_info0;
6944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
6946 NDR_PULL_ALLOC(ndr, r->info0);
6953 uint32_t _ptr_info1;
6954 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6956 NDR_PULL_ALLOC(ndr, r->info1);
6963 uint32_t _ptr_info2;
6964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6966 NDR_PULL_ALLOC(ndr, r->info2);
6973 uint32_t _ptr_info3;
6974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6976 NDR_PULL_ALLOC(ndr, r->info3);
6983 uint32_t _ptr_info4;
6984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6986 NDR_PULL_ALLOC(ndr, r->info4);
6993 uint32_t _ptr_info5;
6994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
6996 NDR_PULL_ALLOC(ndr, r->info5);
7003 uint32_t _ptr_info6;
7004 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7006 NDR_PULL_ALLOC(ndr, r->info6);
7013 uint32_t _ptr_info7;
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7016 NDR_PULL_ALLOC(ndr, r->info7);
7023 uint32_t _ptr_info8;
7024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7026 NDR_PULL_ALLOC(ndr, r->info8);
7033 uint32_t _ptr_info9;
7034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7036 NDR_PULL_ALLOC(ndr, r->info9);
7047 if (ndr_flags & NDR_BUFFERS) {
7051 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7052 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7053 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7060 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7061 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7062 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7069 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7070 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7071 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7078 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7079 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7080 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7087 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7088 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7089 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7090 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7096 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7097 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7098 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7105 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7106 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7107 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7114 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7115 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7116 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7123 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7124 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7125 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7132 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7133 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7134 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7144 return NDR_ERR_SUCCESS;
7147 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7150 level = ndr_print_get_switch_value(ndr, r);
7151 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7154 ndr_print_ptr(ndr, "info0", r->info0);
7157 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7163 ndr_print_ptr(ndr, "info1", r->info1);
7166 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7172 ndr_print_ptr(ndr, "info2", r->info2);
7175 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7181 ndr_print_ptr(ndr, "info3", r->info3);
7184 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7190 ndr_print_ptr(ndr, "info4", r->info4);
7193 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7199 ndr_print_ptr(ndr, "info5", r->info5);
7202 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7208 ndr_print_ptr(ndr, "info6", r->info6);
7211 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7217 ndr_print_ptr(ndr, "info7", r->info7);
7220 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7226 ndr_print_ptr(ndr, "info8", r->info8);
7229 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7235 ndr_print_ptr(ndr, "info9", r->info9);
7238 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7249 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7251 if (ndr_flags & NDR_SCALARS) {
7252 NDR_CHECK(ndr_push_align(ndr, 4));
7253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7254 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7255 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7257 if (ndr_flags & NDR_BUFFERS) {
7258 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7260 return NDR_ERR_SUCCESS;
7263 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7265 if (ndr_flags & NDR_SCALARS) {
7266 NDR_CHECK(ndr_pull_align(ndr, 4));
7267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7268 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7269 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7271 if (ndr_flags & NDR_BUFFERS) {
7272 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7274 return NDR_ERR_SUCCESS;
7277 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7279 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7281 ndr_print_uint32(ndr, "level", r->level);
7282 ndr_print_set_switch_value(ndr, &r->info, r->level);
7283 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7287 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7289 if (ndr_flags & NDR_SCALARS) {
7290 NDR_CHECK(ndr_push_align(ndr, 4));
7291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7293 uint32_t _flags_save_string_array = ndr->flags;
7294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7295 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7296 ndr->flags = _flags_save_string_array;
7299 if (ndr_flags & NDR_BUFFERS) {
7301 return NDR_ERR_SUCCESS;
7304 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7306 if (ndr_flags & NDR_SCALARS) {
7307 NDR_CHECK(ndr_pull_align(ndr, 4));
7308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7310 uint32_t _flags_save_string_array = ndr->flags;
7311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7312 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7313 ndr->flags = _flags_save_string_array;
7316 if (ndr_flags & NDR_BUFFERS) {
7318 return NDR_ERR_SUCCESS;
7321 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7323 ndr_print_struct(ndr, name, "spoolss_StringArray");
7325 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
7326 ndr_print_string_array(ndr, "string", r->string);
7330 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7332 if (ndr_flags & NDR_SCALARS) {
7333 NDR_CHECK(ndr_push_align(ndr, 4));
7334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7336 if (ndr_flags & NDR_BUFFERS) {
7337 if (r->driver_name) {
7338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7344 return NDR_ERR_SUCCESS;
7347 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7349 uint32_t _ptr_driver_name;
7350 TALLOC_CTX *_mem_save_driver_name_0;
7351 if (ndr_flags & NDR_SCALARS) {
7352 NDR_CHECK(ndr_pull_align(ndr, 4));
7353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7354 if (_ptr_driver_name) {
7355 NDR_PULL_ALLOC(ndr, r->driver_name);
7357 r->driver_name = NULL;
7360 if (ndr_flags & NDR_BUFFERS) {
7361 if (r->driver_name) {
7362 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7363 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7364 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7365 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7366 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7367 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
7369 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7370 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7374 return NDR_ERR_SUCCESS;
7377 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7379 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7381 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7383 if (r->driver_name) {
7384 ndr_print_string(ndr, "driver_name", r->driver_name);
7390 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7393 return NDR_ERR_SUCCESS;
7396 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7401 return NDR_ERR_SUCCESS;
7404 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7406 const char *val = NULL;
7409 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7410 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7411 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7412 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7414 ndr_print_enum(ndr, name, "ENUM", val, r);
7417 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7419 if (ndr_flags & NDR_SCALARS) {
7420 NDR_CHECK(ndr_push_align(ndr, 4));
7421 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7428 if (ndr_flags & NDR_BUFFERS) {
7429 if (r->driver_name) {
7430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7435 if (r->architecture) {
7436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7441 if (r->driver_path) {
7442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7453 if (r->config_file) {
7454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7460 return NDR_ERR_SUCCESS;
7463 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7465 uint32_t _ptr_driver_name;
7466 TALLOC_CTX *_mem_save_driver_name_0;
7467 uint32_t _ptr_architecture;
7468 TALLOC_CTX *_mem_save_architecture_0;
7469 uint32_t _ptr_driver_path;
7470 TALLOC_CTX *_mem_save_driver_path_0;
7471 uint32_t _ptr_data_file;
7472 TALLOC_CTX *_mem_save_data_file_0;
7473 uint32_t _ptr_config_file;
7474 TALLOC_CTX *_mem_save_config_file_0;
7475 if (ndr_flags & NDR_SCALARS) {
7476 NDR_CHECK(ndr_pull_align(ndr, 4));
7477 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7479 if (_ptr_driver_name) {
7480 NDR_PULL_ALLOC(ndr, r->driver_name);
7482 r->driver_name = NULL;
7484 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7485 if (_ptr_architecture) {
7486 NDR_PULL_ALLOC(ndr, r->architecture);
7488 r->architecture = NULL;
7490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7491 if (_ptr_driver_path) {
7492 NDR_PULL_ALLOC(ndr, r->driver_path);
7494 r->driver_path = NULL;
7496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7497 if (_ptr_data_file) {
7498 NDR_PULL_ALLOC(ndr, r->data_file);
7500 r->data_file = NULL;
7502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7503 if (_ptr_config_file) {
7504 NDR_PULL_ALLOC(ndr, r->config_file);
7506 r->config_file = NULL;
7509 if (ndr_flags & NDR_BUFFERS) {
7510 if (r->driver_name) {
7511 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7512 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7513 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7514 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7515 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7516 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
7518 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7519 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7522 if (r->architecture) {
7523 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7524 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7525 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7526 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7527 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7528 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
7530 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7531 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7534 if (r->driver_path) {
7535 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7536 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7537 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7538 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7539 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7540 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
7542 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7547 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7548 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7549 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7550 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7551 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7552 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
7554 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7555 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7558 if (r->config_file) {
7559 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7560 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7561 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7562 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7563 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7564 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
7566 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7567 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7568 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7571 return NDR_ERR_SUCCESS;
7574 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7576 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7578 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7579 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7581 if (r->driver_name) {
7582 ndr_print_string(ndr, "driver_name", r->driver_name);
7585 ndr_print_ptr(ndr, "architecture", r->architecture);
7587 if (r->architecture) {
7588 ndr_print_string(ndr, "architecture", r->architecture);
7591 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7593 if (r->driver_path) {
7594 ndr_print_string(ndr, "driver_path", r->driver_path);
7597 ndr_print_ptr(ndr, "data_file", r->data_file);
7600 ndr_print_string(ndr, "data_file", r->data_file);
7603 ndr_print_ptr(ndr, "config_file", r->config_file);
7605 if (r->config_file) {
7606 ndr_print_string(ndr, "config_file", r->config_file);
7612 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7614 if (ndr_flags & NDR_SCALARS) {
7615 NDR_CHECK(ndr_push_align(ndr, 4));
7616 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7617 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7618 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7620 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7621 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7628 if (ndr_flags & NDR_BUFFERS) {
7629 if (r->driver_name) {
7630 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7631 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7633 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7635 if (r->architecture) {
7636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7638 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7639 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7641 if (r->driver_path) {
7642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7645 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7651 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7653 if (r->config_file) {
7654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7657 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7663 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7665 if (r->monitor_name) {
7666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7671 if (r->default_datatype) {
7672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7675 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7677 if (r->dependent_files) {
7678 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7681 return NDR_ERR_SUCCESS;
7684 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
7686 uint32_t _ptr_driver_name;
7687 TALLOC_CTX *_mem_save_driver_name_0;
7688 uint32_t _ptr_architecture;
7689 TALLOC_CTX *_mem_save_architecture_0;
7690 uint32_t _ptr_driver_path;
7691 TALLOC_CTX *_mem_save_driver_path_0;
7692 uint32_t _ptr_data_file;
7693 TALLOC_CTX *_mem_save_data_file_0;
7694 uint32_t _ptr_config_file;
7695 TALLOC_CTX *_mem_save_config_file_0;
7696 uint32_t _ptr_help_file;
7697 TALLOC_CTX *_mem_save_help_file_0;
7698 uint32_t _ptr_monitor_name;
7699 TALLOC_CTX *_mem_save_monitor_name_0;
7700 uint32_t _ptr_default_datatype;
7701 TALLOC_CTX *_mem_save_default_datatype_0;
7702 uint32_t _ptr_dependent_files;
7703 TALLOC_CTX *_mem_save_dependent_files_0;
7704 if (ndr_flags & NDR_SCALARS) {
7705 NDR_CHECK(ndr_pull_align(ndr, 4));
7706 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7708 if (_ptr_driver_name) {
7709 NDR_PULL_ALLOC(ndr, r->driver_name);
7711 r->driver_name = NULL;
7713 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7714 if (_ptr_architecture) {
7715 NDR_PULL_ALLOC(ndr, r->architecture);
7717 r->architecture = NULL;
7719 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7720 if (_ptr_driver_path) {
7721 NDR_PULL_ALLOC(ndr, r->driver_path);
7723 r->driver_path = NULL;
7725 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7726 if (_ptr_data_file) {
7727 NDR_PULL_ALLOC(ndr, r->data_file);
7729 r->data_file = NULL;
7731 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7732 if (_ptr_config_file) {
7733 NDR_PULL_ALLOC(ndr, r->config_file);
7735 r->config_file = NULL;
7737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7738 if (_ptr_help_file) {
7739 NDR_PULL_ALLOC(ndr, r->help_file);
7741 r->help_file = NULL;
7743 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7744 if (_ptr_monitor_name) {
7745 NDR_PULL_ALLOC(ndr, r->monitor_name);
7747 r->monitor_name = NULL;
7749 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7750 if (_ptr_default_datatype) {
7751 NDR_PULL_ALLOC(ndr, r->default_datatype);
7753 r->default_datatype = NULL;
7755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
7756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7757 if (_ptr_dependent_files) {
7758 NDR_PULL_ALLOC(ndr, r->dependent_files);
7760 r->dependent_files = NULL;
7763 if (ndr_flags & NDR_BUFFERS) {
7764 if (r->driver_name) {
7765 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7766 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7767 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7768 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7769 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7770 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
7772 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7773 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7776 if (r->architecture) {
7777 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7778 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7779 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7780 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7781 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7782 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
7784 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7785 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7788 if (r->driver_path) {
7789 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7790 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7791 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7792 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7793 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7794 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
7796 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7797 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7801 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7802 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7803 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7804 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7805 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7806 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
7808 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7809 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7812 if (r->config_file) {
7813 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7814 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7815 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7816 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7817 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7818 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
7820 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7821 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7825 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7826 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7827 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
7828 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
7829 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
7830 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
7832 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
7833 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
7834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7836 if (r->monitor_name) {
7837 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7838 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7839 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
7840 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
7841 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
7842 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
7844 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
7845 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
7846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7848 if (r->default_datatype) {
7849 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7850 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7851 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
7852 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
7853 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
7854 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
7856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
7857 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
7858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7860 if (r->dependent_files) {
7861 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7862 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7863 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7867 return NDR_ERR_SUCCESS;
7870 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
7872 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
7874 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7875 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7877 if (r->driver_name) {
7878 ndr_print_string(ndr, "driver_name", r->driver_name);
7881 ndr_print_ptr(ndr, "architecture", r->architecture);
7883 if (r->architecture) {
7884 ndr_print_string(ndr, "architecture", r->architecture);
7887 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7889 if (r->driver_path) {
7890 ndr_print_string(ndr, "driver_path", r->driver_path);
7893 ndr_print_ptr(ndr, "data_file", r->data_file);
7896 ndr_print_string(ndr, "data_file", r->data_file);
7899 ndr_print_ptr(ndr, "config_file", r->config_file);
7901 if (r->config_file) {
7902 ndr_print_string(ndr, "config_file", r->config_file);
7905 ndr_print_ptr(ndr, "help_file", r->help_file);
7908 ndr_print_string(ndr, "help_file", r->help_file);
7911 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7913 if (r->monitor_name) {
7914 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7917 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7919 if (r->default_datatype) {
7920 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7923 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
7924 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7926 if (r->dependent_files) {
7927 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
7933 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
7935 if (ndr_flags & NDR_SCALARS) {
7936 NDR_CHECK(ndr_push_align(ndr, 4));
7937 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7938 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7939 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7940 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7941 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7945 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7947 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7949 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
7951 if (ndr_flags & NDR_BUFFERS) {
7952 if (r->driver_name) {
7953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7956 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7958 if (r->architecture) {
7959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7962 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7964 if (r->driver_path) {
7965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7968 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7974 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7976 if (r->config_file) {
7977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7980 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7986 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7988 if (r->monitor_name) {
7989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7992 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7994 if (r->default_datatype) {
7995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7997 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7998 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8000 if (r->dependent_files) {
8001 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8003 if (r->previous_names) {
8004 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8007 return NDR_ERR_SUCCESS;
8010 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8012 uint32_t _ptr_driver_name;
8013 TALLOC_CTX *_mem_save_driver_name_0;
8014 uint32_t _ptr_architecture;
8015 TALLOC_CTX *_mem_save_architecture_0;
8016 uint32_t _ptr_driver_path;
8017 TALLOC_CTX *_mem_save_driver_path_0;
8018 uint32_t _ptr_data_file;
8019 TALLOC_CTX *_mem_save_data_file_0;
8020 uint32_t _ptr_config_file;
8021 TALLOC_CTX *_mem_save_config_file_0;
8022 uint32_t _ptr_help_file;
8023 TALLOC_CTX *_mem_save_help_file_0;
8024 uint32_t _ptr_monitor_name;
8025 TALLOC_CTX *_mem_save_monitor_name_0;
8026 uint32_t _ptr_default_datatype;
8027 TALLOC_CTX *_mem_save_default_datatype_0;
8028 uint32_t _ptr_dependent_files;
8029 TALLOC_CTX *_mem_save_dependent_files_0;
8030 uint32_t _ptr_previous_names;
8031 TALLOC_CTX *_mem_save_previous_names_0;
8032 if (ndr_flags & NDR_SCALARS) {
8033 NDR_CHECK(ndr_pull_align(ndr, 4));
8034 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8035 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8036 if (_ptr_driver_name) {
8037 NDR_PULL_ALLOC(ndr, r->driver_name);
8039 r->driver_name = NULL;
8041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8042 if (_ptr_architecture) {
8043 NDR_PULL_ALLOC(ndr, r->architecture);
8045 r->architecture = NULL;
8047 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8048 if (_ptr_driver_path) {
8049 NDR_PULL_ALLOC(ndr, r->driver_path);
8051 r->driver_path = NULL;
8053 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8054 if (_ptr_data_file) {
8055 NDR_PULL_ALLOC(ndr, r->data_file);
8057 r->data_file = NULL;
8059 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8060 if (_ptr_config_file) {
8061 NDR_PULL_ALLOC(ndr, r->config_file);
8063 r->config_file = NULL;
8065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8066 if (_ptr_help_file) {
8067 NDR_PULL_ALLOC(ndr, r->help_file);
8069 r->help_file = NULL;
8071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8072 if (_ptr_monitor_name) {
8073 NDR_PULL_ALLOC(ndr, r->monitor_name);
8075 r->monitor_name = NULL;
8077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8078 if (_ptr_default_datatype) {
8079 NDR_PULL_ALLOC(ndr, r->default_datatype);
8081 r->default_datatype = NULL;
8083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8085 if (_ptr_dependent_files) {
8086 NDR_PULL_ALLOC(ndr, r->dependent_files);
8088 r->dependent_files = NULL;
8090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8092 if (_ptr_previous_names) {
8093 NDR_PULL_ALLOC(ndr, r->previous_names);
8095 r->previous_names = NULL;
8098 if (ndr_flags & NDR_BUFFERS) {
8099 if (r->driver_name) {
8100 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8101 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8102 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8103 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8104 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8105 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8107 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8108 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8111 if (r->architecture) {
8112 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8113 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8114 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8115 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8116 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8117 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8119 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8120 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8123 if (r->driver_path) {
8124 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8125 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8126 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8127 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8128 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8129 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8131 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8132 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8136 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8137 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8138 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8139 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8140 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8141 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8143 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8144 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8147 if (r->config_file) {
8148 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8149 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8150 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8151 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8152 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8153 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8155 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8156 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8160 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8161 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8162 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8163 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8164 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8165 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
8167 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8168 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8171 if (r->monitor_name) {
8172 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8173 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8174 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8175 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8176 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8177 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
8179 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8180 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8183 if (r->default_datatype) {
8184 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8185 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8186 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8187 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8188 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8189 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8191 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8192 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8195 if (r->dependent_files) {
8196 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8197 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8198 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8201 if (r->previous_names) {
8202 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8203 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8204 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8208 return NDR_ERR_SUCCESS;
8211 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8213 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8215 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8216 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8218 if (r->driver_name) {
8219 ndr_print_string(ndr, "driver_name", r->driver_name);
8222 ndr_print_ptr(ndr, "architecture", r->architecture);
8224 if (r->architecture) {
8225 ndr_print_string(ndr, "architecture", r->architecture);
8228 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8230 if (r->driver_path) {
8231 ndr_print_string(ndr, "driver_path", r->driver_path);
8234 ndr_print_ptr(ndr, "data_file", r->data_file);
8237 ndr_print_string(ndr, "data_file", r->data_file);
8240 ndr_print_ptr(ndr, "config_file", r->config_file);
8242 if (r->config_file) {
8243 ndr_print_string(ndr, "config_file", r->config_file);
8246 ndr_print_ptr(ndr, "help_file", r->help_file);
8249 ndr_print_string(ndr, "help_file", r->help_file);
8252 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8254 if (r->monitor_name) {
8255 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8258 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8260 if (r->default_datatype) {
8261 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8264 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
8265 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8267 if (r->dependent_files) {
8268 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8271 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
8272 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8274 if (r->previous_names) {
8275 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8281 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8283 if (ndr_flags & NDR_SCALARS) {
8284 NDR_CHECK(ndr_push_align(ndr, 8));
8285 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8286 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8288 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8290 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8291 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8292 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8293 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8295 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8298 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8299 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8300 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8301 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8302 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8303 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8305 if (ndr_flags & NDR_BUFFERS) {
8306 if (r->driver_name) {
8307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8310 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8312 if (r->architecture) {
8313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8316 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8318 if (r->driver_path) {
8319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8322 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8328 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8330 if (r->config_file) {
8331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8334 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8340 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8342 if (r->monitor_name) {
8343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8346 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8348 if (r->default_datatype) {
8349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8352 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8354 if (r->dependent_files) {
8355 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8357 if (r->previous_names) {
8358 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8360 if (r->manufacturer_name) {
8361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8364 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8366 if (r->manufacturer_url) {
8367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8372 if (r->hardware_id) {
8373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8376 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8382 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8385 return NDR_ERR_SUCCESS;
8388 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8390 uint32_t _ptr_driver_name;
8391 TALLOC_CTX *_mem_save_driver_name_0;
8392 uint32_t _ptr_architecture;
8393 TALLOC_CTX *_mem_save_architecture_0;
8394 uint32_t _ptr_driver_path;
8395 TALLOC_CTX *_mem_save_driver_path_0;
8396 uint32_t _ptr_data_file;
8397 TALLOC_CTX *_mem_save_data_file_0;
8398 uint32_t _ptr_config_file;
8399 TALLOC_CTX *_mem_save_config_file_0;
8400 uint32_t _ptr_help_file;
8401 TALLOC_CTX *_mem_save_help_file_0;
8402 uint32_t _ptr_monitor_name;
8403 TALLOC_CTX *_mem_save_monitor_name_0;
8404 uint32_t _ptr_default_datatype;
8405 TALLOC_CTX *_mem_save_default_datatype_0;
8406 uint32_t _ptr_dependent_files;
8407 TALLOC_CTX *_mem_save_dependent_files_0;
8408 uint32_t _ptr_previous_names;
8409 TALLOC_CTX *_mem_save_previous_names_0;
8410 uint32_t _ptr_manufacturer_name;
8411 TALLOC_CTX *_mem_save_manufacturer_name_0;
8412 uint32_t _ptr_manufacturer_url;
8413 TALLOC_CTX *_mem_save_manufacturer_url_0;
8414 uint32_t _ptr_hardware_id;
8415 TALLOC_CTX *_mem_save_hardware_id_0;
8416 uint32_t _ptr_provider;
8417 TALLOC_CTX *_mem_save_provider_0;
8418 if (ndr_flags & NDR_SCALARS) {
8419 NDR_CHECK(ndr_pull_align(ndr, 8));
8420 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8422 if (_ptr_driver_name) {
8423 NDR_PULL_ALLOC(ndr, r->driver_name);
8425 r->driver_name = NULL;
8427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8428 if (_ptr_architecture) {
8429 NDR_PULL_ALLOC(ndr, r->architecture);
8431 r->architecture = NULL;
8433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8434 if (_ptr_driver_path) {
8435 NDR_PULL_ALLOC(ndr, r->driver_path);
8437 r->driver_path = NULL;
8439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8440 if (_ptr_data_file) {
8441 NDR_PULL_ALLOC(ndr, r->data_file);
8443 r->data_file = NULL;
8445 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8446 if (_ptr_config_file) {
8447 NDR_PULL_ALLOC(ndr, r->config_file);
8449 r->config_file = NULL;
8451 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8452 if (_ptr_help_file) {
8453 NDR_PULL_ALLOC(ndr, r->help_file);
8455 r->help_file = NULL;
8457 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8458 if (_ptr_monitor_name) {
8459 NDR_PULL_ALLOC(ndr, r->monitor_name);
8461 r->monitor_name = NULL;
8463 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8464 if (_ptr_default_datatype) {
8465 NDR_PULL_ALLOC(ndr, r->default_datatype);
8467 r->default_datatype = NULL;
8469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8471 if (_ptr_dependent_files) {
8472 NDR_PULL_ALLOC(ndr, r->dependent_files);
8474 r->dependent_files = NULL;
8476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8477 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8478 if (_ptr_previous_names) {
8479 NDR_PULL_ALLOC(ndr, r->previous_names);
8481 r->previous_names = NULL;
8483 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8484 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8486 if (_ptr_manufacturer_name) {
8487 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8489 r->manufacturer_name = NULL;
8491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8492 if (_ptr_manufacturer_url) {
8493 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8495 r->manufacturer_url = NULL;
8497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8498 if (_ptr_hardware_id) {
8499 NDR_PULL_ALLOC(ndr, r->hardware_id);
8501 r->hardware_id = NULL;
8503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8504 if (_ptr_provider) {
8505 NDR_PULL_ALLOC(ndr, r->provider);
8510 if (ndr_flags & NDR_BUFFERS) {
8511 if (r->driver_name) {
8512 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8513 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8514 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8515 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8516 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8517 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
8519 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8520 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8523 if (r->architecture) {
8524 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8525 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8526 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8527 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8528 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8529 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
8531 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8532 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8535 if (r->driver_path) {
8536 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8537 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8538 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8539 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8540 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8541 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
8543 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8544 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8548 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8549 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8550 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8551 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8552 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8553 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
8555 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8556 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8559 if (r->config_file) {
8560 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8561 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8562 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8563 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8564 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8565 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
8567 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8568 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8572 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8573 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8574 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8575 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8576 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8577 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
8579 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8580 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8583 if (r->monitor_name) {
8584 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8585 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8586 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8587 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8588 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8589 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
8591 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8592 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8595 if (r->default_datatype) {
8596 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8597 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8598 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8599 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8600 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8601 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
8603 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8604 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8607 if (r->dependent_files) {
8608 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8609 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8610 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8613 if (r->previous_names) {
8614 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8615 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8616 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8619 if (r->manufacturer_name) {
8620 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8621 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8622 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
8623 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
8624 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
8625 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
8627 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
8628 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
8629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8631 if (r->manufacturer_url) {
8632 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
8633 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8634 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
8635 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
8636 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
8637 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
8639 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
8640 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
8641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8643 if (r->hardware_id) {
8644 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8645 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8646 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
8647 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
8648 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
8649 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
8651 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
8652 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
8653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8656 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
8657 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8658 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
8659 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
8660 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
8661 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
8663 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
8664 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
8665 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8668 return NDR_ERR_SUCCESS;
8671 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
8673 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
8675 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8676 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8678 if (r->driver_name) {
8679 ndr_print_string(ndr, "driver_name", r->driver_name);
8682 ndr_print_ptr(ndr, "architecture", r->architecture);
8684 if (r->architecture) {
8685 ndr_print_string(ndr, "architecture", r->architecture);
8688 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8690 if (r->driver_path) {
8691 ndr_print_string(ndr, "driver_path", r->driver_path);
8694 ndr_print_ptr(ndr, "data_file", r->data_file);
8697 ndr_print_string(ndr, "data_file", r->data_file);
8700 ndr_print_ptr(ndr, "config_file", r->config_file);
8702 if (r->config_file) {
8703 ndr_print_string(ndr, "config_file", r->config_file);
8706 ndr_print_ptr(ndr, "help_file", r->help_file);
8709 ndr_print_string(ndr, "help_file", r->help_file);
8712 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8714 if (r->monitor_name) {
8715 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8718 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8720 if (r->default_datatype) {
8721 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8724 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
8725 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8727 if (r->dependent_files) {
8728 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8731 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
8732 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8734 if (r->previous_names) {
8735 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8738 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
8739 ndr_print_hyper(ndr, "driver_version", r->driver_version);
8740 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
8742 if (r->manufacturer_name) {
8743 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
8746 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
8748 if (r->manufacturer_url) {
8749 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
8752 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
8754 if (r->hardware_id) {
8755 ndr_print_string(ndr, "hardware_id", r->hardware_id);
8758 ndr_print_ptr(ndr, "provider", r->provider);
8761 ndr_print_string(ndr, "provider", r->provider);
8767 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
8769 if (ndr_flags & NDR_SCALARS) {
8770 NDR_CHECK(ndr_push_align(ndr, 8));
8771 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8773 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8774 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8775 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8776 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8777 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8778 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8783 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8784 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8785 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8786 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8787 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8790 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
8791 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
8792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8793 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
8794 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
8795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
8796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8797 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
8798 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
8799 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
8801 if (ndr_flags & NDR_BUFFERS) {
8802 if (r->driver_name) {
8803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8806 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8808 if (r->architecture) {
8809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8812 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8814 if (r->driver_path) {
8815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8818 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8824 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8826 if (r->config_file) {
8827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8830 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8836 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8838 if (r->monitor_name) {
8839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8844 if (r->default_datatype) {
8845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8850 if (r->dependent_files) {
8851 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8853 if (r->previous_names) {
8854 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8856 if (r->manufacturer_name) {
8857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8862 if (r->manufacturer_url) {
8863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8866 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8868 if (r->hardware_id) {
8869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8872 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8878 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8880 if (r->print_processor) {
8881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8883 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8884 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8886 if (r->vendor_setup) {
8887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8890 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8892 if (r->color_profiles) {
8893 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
8896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8899 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8901 if (r->core_driver_dependencies) {
8902 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
8905 return NDR_ERR_SUCCESS;
8908 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
8910 uint32_t _ptr_driver_name;
8911 TALLOC_CTX *_mem_save_driver_name_0;
8912 uint32_t _ptr_architecture;
8913 TALLOC_CTX *_mem_save_architecture_0;
8914 uint32_t _ptr_driver_path;
8915 TALLOC_CTX *_mem_save_driver_path_0;
8916 uint32_t _ptr_data_file;
8917 TALLOC_CTX *_mem_save_data_file_0;
8918 uint32_t _ptr_config_file;
8919 TALLOC_CTX *_mem_save_config_file_0;
8920 uint32_t _ptr_help_file;
8921 TALLOC_CTX *_mem_save_help_file_0;
8922 uint32_t _ptr_monitor_name;
8923 TALLOC_CTX *_mem_save_monitor_name_0;
8924 uint32_t _ptr_default_datatype;
8925 TALLOC_CTX *_mem_save_default_datatype_0;
8926 uint32_t _ptr_dependent_files;
8927 TALLOC_CTX *_mem_save_dependent_files_0;
8928 uint32_t _ptr_previous_names;
8929 TALLOC_CTX *_mem_save_previous_names_0;
8930 uint32_t _ptr_manufacturer_name;
8931 TALLOC_CTX *_mem_save_manufacturer_name_0;
8932 uint32_t _ptr_manufacturer_url;
8933 TALLOC_CTX *_mem_save_manufacturer_url_0;
8934 uint32_t _ptr_hardware_id;
8935 TALLOC_CTX *_mem_save_hardware_id_0;
8936 uint32_t _ptr_provider;
8937 TALLOC_CTX *_mem_save_provider_0;
8938 uint32_t _ptr_print_processor;
8939 TALLOC_CTX *_mem_save_print_processor_0;
8940 uint32_t _ptr_vendor_setup;
8941 TALLOC_CTX *_mem_save_vendor_setup_0;
8942 uint32_t _ptr_color_profiles;
8943 TALLOC_CTX *_mem_save_color_profiles_0;
8944 uint32_t _ptr_inf_path;
8945 TALLOC_CTX *_mem_save_inf_path_0;
8946 uint32_t _ptr_core_driver_dependencies;
8947 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
8948 if (ndr_flags & NDR_SCALARS) {
8949 NDR_CHECK(ndr_pull_align(ndr, 8));
8950 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8952 if (_ptr_driver_name) {
8953 NDR_PULL_ALLOC(ndr, r->driver_name);
8955 r->driver_name = NULL;
8957 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8958 if (_ptr_architecture) {
8959 NDR_PULL_ALLOC(ndr, r->architecture);
8961 r->architecture = NULL;
8963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8964 if (_ptr_driver_path) {
8965 NDR_PULL_ALLOC(ndr, r->driver_path);
8967 r->driver_path = NULL;
8969 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8970 if (_ptr_data_file) {
8971 NDR_PULL_ALLOC(ndr, r->data_file);
8973 r->data_file = NULL;
8975 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8976 if (_ptr_config_file) {
8977 NDR_PULL_ALLOC(ndr, r->config_file);
8979 r->config_file = NULL;
8981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8982 if (_ptr_help_file) {
8983 NDR_PULL_ALLOC(ndr, r->help_file);
8985 r->help_file = NULL;
8987 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8988 if (_ptr_monitor_name) {
8989 NDR_PULL_ALLOC(ndr, r->monitor_name);
8991 r->monitor_name = NULL;
8993 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8994 if (_ptr_default_datatype) {
8995 NDR_PULL_ALLOC(ndr, r->default_datatype);
8997 r->default_datatype = NULL;
8999 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9000 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9001 if (_ptr_dependent_files) {
9002 NDR_PULL_ALLOC(ndr, r->dependent_files);
9004 r->dependent_files = NULL;
9006 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9008 if (_ptr_previous_names) {
9009 NDR_PULL_ALLOC(ndr, r->previous_names);
9011 r->previous_names = NULL;
9013 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9014 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9015 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9016 if (_ptr_manufacturer_name) {
9017 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9019 r->manufacturer_name = NULL;
9021 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9022 if (_ptr_manufacturer_url) {
9023 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9025 r->manufacturer_url = NULL;
9027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9028 if (_ptr_hardware_id) {
9029 NDR_PULL_ALLOC(ndr, r->hardware_id);
9031 r->hardware_id = NULL;
9033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9034 if (_ptr_provider) {
9035 NDR_PULL_ALLOC(ndr, r->provider);
9039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9040 if (_ptr_print_processor) {
9041 NDR_PULL_ALLOC(ndr, r->print_processor);
9043 r->print_processor = NULL;
9045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9046 if (_ptr_vendor_setup) {
9047 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9049 r->vendor_setup = NULL;
9051 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9052 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9053 if (_ptr_color_profiles) {
9054 NDR_PULL_ALLOC(ndr, r->color_profiles);
9056 r->color_profiles = NULL;
9058 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9059 if (_ptr_inf_path) {
9060 NDR_PULL_ALLOC(ndr, r->inf_path);
9064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9065 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9067 if (_ptr_core_driver_dependencies) {
9068 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9070 r->core_driver_dependencies = NULL;
9072 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9073 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9075 if (ndr_flags & NDR_BUFFERS) {
9076 if (r->driver_name) {
9077 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9078 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9079 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9080 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9081 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9082 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
9084 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9085 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9088 if (r->architecture) {
9089 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9090 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9091 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9092 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9093 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9094 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
9096 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9097 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9100 if (r->driver_path) {
9101 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9102 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9103 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9104 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9105 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9106 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
9108 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9109 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9113 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9114 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9115 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9116 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9117 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9118 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
9120 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9121 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9124 if (r->config_file) {
9125 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9126 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9127 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9128 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9129 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9130 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
9132 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9133 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9137 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9138 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9139 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9140 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9141 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9142 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
9144 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9145 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9148 if (r->monitor_name) {
9149 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9150 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9151 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9152 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9153 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9154 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
9156 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9157 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9160 if (r->default_datatype) {
9161 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9162 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9163 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9164 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9165 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9166 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
9168 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9169 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9170 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9172 if (r->dependent_files) {
9173 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9174 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9175 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9178 if (r->previous_names) {
9179 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9180 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9181 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9184 if (r->manufacturer_name) {
9185 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9186 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9187 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9188 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9189 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9190 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
9192 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9193 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9194 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9196 if (r->manufacturer_url) {
9197 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9198 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9199 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9200 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9201 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9202 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
9204 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9205 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9208 if (r->hardware_id) {
9209 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9210 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9211 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9212 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9213 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9214 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
9216 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9217 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9218 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9221 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9222 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9223 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9224 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9225 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9226 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
9228 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9229 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9232 if (r->print_processor) {
9233 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9234 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9235 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9236 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9237 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9238 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
9240 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9241 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9244 if (r->vendor_setup) {
9245 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9246 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9247 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9248 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9249 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9250 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
9252 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9253 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9256 if (r->color_profiles) {
9257 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9258 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9259 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9263 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9264 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9265 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9266 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9267 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9268 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
9270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9274 if (r->core_driver_dependencies) {
9275 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9276 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9277 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9281 return NDR_ERR_SUCCESS;
9284 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9286 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9288 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9289 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9291 if (r->driver_name) {
9292 ndr_print_string(ndr, "driver_name", r->driver_name);
9295 ndr_print_ptr(ndr, "architecture", r->architecture);
9297 if (r->architecture) {
9298 ndr_print_string(ndr, "architecture", r->architecture);
9301 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9303 if (r->driver_path) {
9304 ndr_print_string(ndr, "driver_path", r->driver_path);
9307 ndr_print_ptr(ndr, "data_file", r->data_file);
9310 ndr_print_string(ndr, "data_file", r->data_file);
9313 ndr_print_ptr(ndr, "config_file", r->config_file);
9315 if (r->config_file) {
9316 ndr_print_string(ndr, "config_file", r->config_file);
9319 ndr_print_ptr(ndr, "help_file", r->help_file);
9322 ndr_print_string(ndr, "help_file", r->help_file);
9325 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9327 if (r->monitor_name) {
9328 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9331 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9333 if (r->default_datatype) {
9334 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9337 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
9338 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9340 if (r->dependent_files) {
9341 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9344 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
9345 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9347 if (r->previous_names) {
9348 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9351 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9352 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9353 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9355 if (r->manufacturer_name) {
9356 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9359 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9361 if (r->manufacturer_url) {
9362 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9365 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9367 if (r->hardware_id) {
9368 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9371 ndr_print_ptr(ndr, "provider", r->provider);
9374 ndr_print_string(ndr, "provider", r->provider);
9377 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9379 if (r->print_processor) {
9380 ndr_print_string(ndr, "print_processor", r->print_processor);
9383 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9385 if (r->vendor_setup) {
9386 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9389 ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
9390 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9392 if (r->color_profiles) {
9393 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9396 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9399 ndr_print_string(ndr, "inf_path", r->inf_path);
9402 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9403 ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
9404 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9406 if (r->core_driver_dependencies) {
9407 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9410 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9411 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9415 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9417 if (ndr_flags & NDR_SCALARS) {
9418 int level = ndr_push_get_switch_value(ndr, r);
9419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9430 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9438 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9446 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9449 if (ndr_flags & NDR_BUFFERS) {
9450 int level = ndr_push_get_switch_value(ndr, r);
9454 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9460 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9466 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9472 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9478 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9484 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9489 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9492 return NDR_ERR_SUCCESS;
9495 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
9499 TALLOC_CTX *_mem_save_info1_0;
9500 TALLOC_CTX *_mem_save_info2_0;
9501 TALLOC_CTX *_mem_save_info3_0;
9502 TALLOC_CTX *_mem_save_info4_0;
9503 TALLOC_CTX *_mem_save_info6_0;
9504 TALLOC_CTX *_mem_save_info8_0;
9505 level = ndr_pull_get_switch_value(ndr, r);
9506 if (ndr_flags & NDR_SCALARS) {
9507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9508 if (_level != level) {
9509 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9513 uint32_t _ptr_info1;
9514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9516 NDR_PULL_ALLOC(ndr, r->info1);
9523 uint32_t _ptr_info2;
9524 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9526 NDR_PULL_ALLOC(ndr, r->info2);
9533 uint32_t _ptr_info3;
9534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9536 NDR_PULL_ALLOC(ndr, r->info3);
9543 uint32_t _ptr_info4;
9544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9546 NDR_PULL_ALLOC(ndr, r->info4);
9553 uint32_t _ptr_info6;
9554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9556 NDR_PULL_ALLOC(ndr, r->info6);
9563 uint32_t _ptr_info8;
9564 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9566 NDR_PULL_ALLOC(ndr, r->info8);
9573 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9576 if (ndr_flags & NDR_BUFFERS) {
9580 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9581 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9582 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9589 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9590 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
9591 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
9598 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
9599 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
9600 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
9607 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
9608 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
9609 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
9616 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
9617 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
9618 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
9625 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
9626 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
9627 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
9633 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9636 return NDR_ERR_SUCCESS;
9639 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
9642 level = ndr_print_get_switch_value(ndr, r);
9643 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
9646 ndr_print_ptr(ndr, "info1", r->info1);
9649 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
9655 ndr_print_ptr(ndr, "info2", r->info2);
9658 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
9664 ndr_print_ptr(ndr, "info3", r->info3);
9667 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
9673 ndr_print_ptr(ndr, "info4", r->info4);
9676 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
9682 ndr_print_ptr(ndr, "info6", r->info6);
9685 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
9691 ndr_print_ptr(ndr, "info8", r->info8);
9694 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
9700 ndr_print_bad_level(ndr, name, level);
9704 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
9706 if (ndr_flags & NDR_SCALARS) {
9707 NDR_CHECK(ndr_push_align(ndr, 4));
9708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9709 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9710 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9712 if (ndr_flags & NDR_BUFFERS) {
9713 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9715 return NDR_ERR_SUCCESS;
9718 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
9720 if (ndr_flags & NDR_SCALARS) {
9721 NDR_CHECK(ndr_pull_align(ndr, 4));
9722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9723 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9724 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9726 if (ndr_flags & NDR_BUFFERS) {
9727 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9729 return NDR_ERR_SUCCESS;
9732 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
9734 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
9736 ndr_print_uint32(ndr, "level", r->level);
9737 ndr_print_set_switch_value(ndr, &r->info, r->level);
9738 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
9742 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
9744 if (ndr_flags & NDR_SCALARS) {
9745 NDR_CHECK(ndr_push_align(ndr, 4));
9747 uint32_t _flags_save_string = ndr->flags;
9748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9749 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9750 ndr->flags = _flags_save_string;
9753 if (ndr_flags & NDR_BUFFERS) {
9755 uint32_t _flags_save_string = ndr->flags;
9756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9757 if (r->driver_name) {
9758 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9759 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9761 ndr->flags = _flags_save_string;
9764 return NDR_ERR_SUCCESS;
9767 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
9769 uint32_t _ptr_driver_name;
9770 TALLOC_CTX *_mem_save_driver_name_0;
9771 if (ndr_flags & NDR_SCALARS) {
9772 NDR_CHECK(ndr_pull_align(ndr, 4));
9774 uint32_t _flags_save_string = ndr->flags;
9775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9777 if (_ptr_driver_name) {
9778 NDR_PULL_ALLOC(ndr, r->driver_name);
9779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9781 r->driver_name = NULL;
9783 ndr->flags = _flags_save_string;
9786 if (ndr_flags & NDR_BUFFERS) {
9788 uint32_t _flags_save_string = ndr->flags;
9789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9790 if (r->driver_name) {
9791 uint32_t _relative_save_offset;
9792 _relative_save_offset = ndr->offset;
9793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9794 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9795 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9798 ndr->offset = _relative_save_offset;
9800 ndr->flags = _flags_save_string;
9803 return NDR_ERR_SUCCESS;
9806 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
9808 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
9810 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9812 if (r->driver_name) {
9813 ndr_print_string(ndr, "driver_name", r->driver_name);
9819 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
9821 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
9824 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
9826 if (ndr_flags & NDR_SCALARS) {
9827 NDR_CHECK(ndr_push_align(ndr, 4));
9828 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9830 uint32_t _flags_save_string = ndr->flags;
9831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9833 ndr->flags = _flags_save_string;
9836 uint32_t _flags_save_string = ndr->flags;
9837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9839 ndr->flags = _flags_save_string;
9842 uint32_t _flags_save_string = ndr->flags;
9843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9844 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9845 ndr->flags = _flags_save_string;
9848 uint32_t _flags_save_string = ndr->flags;
9849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9850 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9851 ndr->flags = _flags_save_string;
9854 uint32_t _flags_save_string = ndr->flags;
9855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9856 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9857 ndr->flags = _flags_save_string;
9860 if (ndr_flags & NDR_BUFFERS) {
9862 uint32_t _flags_save_string = ndr->flags;
9863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9864 if (r->driver_name) {
9865 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9866 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9868 ndr->flags = _flags_save_string;
9871 uint32_t _flags_save_string = ndr->flags;
9872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9873 if (r->architecture) {
9874 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9875 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9877 ndr->flags = _flags_save_string;
9880 uint32_t _flags_save_string = ndr->flags;
9881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9882 if (r->driver_path) {
9883 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9884 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9886 ndr->flags = _flags_save_string;
9889 uint32_t _flags_save_string = ndr->flags;
9890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9892 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9893 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9895 ndr->flags = _flags_save_string;
9898 uint32_t _flags_save_string = ndr->flags;
9899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9900 if (r->config_file) {
9901 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9902 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9904 ndr->flags = _flags_save_string;
9907 return NDR_ERR_SUCCESS;
9910 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
9912 uint32_t _ptr_driver_name;
9913 TALLOC_CTX *_mem_save_driver_name_0;
9914 uint32_t _ptr_architecture;
9915 TALLOC_CTX *_mem_save_architecture_0;
9916 uint32_t _ptr_driver_path;
9917 TALLOC_CTX *_mem_save_driver_path_0;
9918 uint32_t _ptr_data_file;
9919 TALLOC_CTX *_mem_save_data_file_0;
9920 uint32_t _ptr_config_file;
9921 TALLOC_CTX *_mem_save_config_file_0;
9922 if (ndr_flags & NDR_SCALARS) {
9923 NDR_CHECK(ndr_pull_align(ndr, 4));
9924 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9926 uint32_t _flags_save_string = ndr->flags;
9927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9929 if (_ptr_driver_name) {
9930 NDR_PULL_ALLOC(ndr, r->driver_name);
9931 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9933 r->driver_name = NULL;
9935 ndr->flags = _flags_save_string;
9938 uint32_t _flags_save_string = ndr->flags;
9939 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9941 if (_ptr_architecture) {
9942 NDR_PULL_ALLOC(ndr, r->architecture);
9943 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9945 r->architecture = NULL;
9947 ndr->flags = _flags_save_string;
9950 uint32_t _flags_save_string = ndr->flags;
9951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9953 if (_ptr_driver_path) {
9954 NDR_PULL_ALLOC(ndr, r->driver_path);
9955 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9957 r->driver_path = NULL;
9959 ndr->flags = _flags_save_string;
9962 uint32_t _flags_save_string = ndr->flags;
9963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9964 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9965 if (_ptr_data_file) {
9966 NDR_PULL_ALLOC(ndr, r->data_file);
9967 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9969 r->data_file = NULL;
9971 ndr->flags = _flags_save_string;
9974 uint32_t _flags_save_string = ndr->flags;
9975 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9976 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9977 if (_ptr_config_file) {
9978 NDR_PULL_ALLOC(ndr, r->config_file);
9979 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9981 r->config_file = NULL;
9983 ndr->flags = _flags_save_string;
9986 if (ndr_flags & NDR_BUFFERS) {
9988 uint32_t _flags_save_string = ndr->flags;
9989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9990 if (r->driver_name) {
9991 uint32_t _relative_save_offset;
9992 _relative_save_offset = ndr->offset;
9993 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9994 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9995 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9996 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9998 ndr->offset = _relative_save_offset;
10000 ndr->flags = _flags_save_string;
10003 uint32_t _flags_save_string = ndr->flags;
10004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10005 if (r->architecture) {
10006 uint32_t _relative_save_offset;
10007 _relative_save_offset = ndr->offset;
10008 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10009 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10010 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10011 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10013 ndr->offset = _relative_save_offset;
10015 ndr->flags = _flags_save_string;
10018 uint32_t _flags_save_string = ndr->flags;
10019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10020 if (r->driver_path) {
10021 uint32_t _relative_save_offset;
10022 _relative_save_offset = ndr->offset;
10023 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10024 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10025 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10026 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10028 ndr->offset = _relative_save_offset;
10030 ndr->flags = _flags_save_string;
10033 uint32_t _flags_save_string = ndr->flags;
10034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10035 if (r->data_file) {
10036 uint32_t _relative_save_offset;
10037 _relative_save_offset = ndr->offset;
10038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10039 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10040 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10043 ndr->offset = _relative_save_offset;
10045 ndr->flags = _flags_save_string;
10048 uint32_t _flags_save_string = ndr->flags;
10049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10050 if (r->config_file) {
10051 uint32_t _relative_save_offset;
10052 _relative_save_offset = ndr->offset;
10053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10054 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10055 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10058 ndr->offset = _relative_save_offset;
10060 ndr->flags = _flags_save_string;
10063 return NDR_ERR_SUCCESS;
10066 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10068 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10070 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10071 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10073 if (r->driver_name) {
10074 ndr_print_string(ndr, "driver_name", r->driver_name);
10077 ndr_print_ptr(ndr, "architecture", r->architecture);
10079 if (r->architecture) {
10080 ndr_print_string(ndr, "architecture", r->architecture);
10083 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10085 if (r->driver_path) {
10086 ndr_print_string(ndr, "driver_path", r->driver_path);
10089 ndr_print_ptr(ndr, "data_file", r->data_file);
10091 if (r->data_file) {
10092 ndr_print_string(ndr, "data_file", r->data_file);
10095 ndr_print_ptr(ndr, "config_file", r->config_file);
10097 if (r->config_file) {
10098 ndr_print_string(ndr, "config_file", r->config_file);
10104 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10106 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10109 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10111 if (ndr_flags & NDR_SCALARS) {
10112 NDR_CHECK(ndr_push_align(ndr, 4));
10113 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10115 uint32_t _flags_save_string = ndr->flags;
10116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10117 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10118 ndr->flags = _flags_save_string;
10121 uint32_t _flags_save_string = ndr->flags;
10122 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10123 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10124 ndr->flags = _flags_save_string;
10127 uint32_t _flags_save_string = ndr->flags;
10128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10129 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10130 ndr->flags = _flags_save_string;
10133 uint32_t _flags_save_string = ndr->flags;
10134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10135 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10136 ndr->flags = _flags_save_string;
10139 uint32_t _flags_save_string = ndr->flags;
10140 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10141 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10142 ndr->flags = _flags_save_string;
10145 uint32_t _flags_save_string = ndr->flags;
10146 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10147 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10148 ndr->flags = _flags_save_string;
10151 uint32_t _flags_save_string_array = ndr->flags;
10152 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10153 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10154 ndr->flags = _flags_save_string_array;
10157 uint32_t _flags_save_string = ndr->flags;
10158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10159 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10160 ndr->flags = _flags_save_string;
10163 uint32_t _flags_save_string = ndr->flags;
10164 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10165 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10166 ndr->flags = _flags_save_string;
10169 if (ndr_flags & NDR_BUFFERS) {
10171 uint32_t _flags_save_string = ndr->flags;
10172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10173 if (r->driver_name) {
10174 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10175 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10177 ndr->flags = _flags_save_string;
10180 uint32_t _flags_save_string = ndr->flags;
10181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10182 if (r->architecture) {
10183 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10184 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10186 ndr->flags = _flags_save_string;
10189 uint32_t _flags_save_string = ndr->flags;
10190 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10191 if (r->driver_path) {
10192 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10193 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10195 ndr->flags = _flags_save_string;
10198 uint32_t _flags_save_string = ndr->flags;
10199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10200 if (r->data_file) {
10201 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10202 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10204 ndr->flags = _flags_save_string;
10207 uint32_t _flags_save_string = ndr->flags;
10208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10209 if (r->config_file) {
10210 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10211 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10213 ndr->flags = _flags_save_string;
10216 uint32_t _flags_save_string = ndr->flags;
10217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10218 if (r->help_file) {
10219 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10220 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10222 ndr->flags = _flags_save_string;
10225 uint32_t _flags_save_string_array = ndr->flags;
10226 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10227 if (r->dependent_files) {
10228 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10229 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10231 ndr->flags = _flags_save_string_array;
10234 uint32_t _flags_save_string = ndr->flags;
10235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10236 if (r->monitor_name) {
10237 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10238 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10240 ndr->flags = _flags_save_string;
10243 uint32_t _flags_save_string = ndr->flags;
10244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10245 if (r->default_datatype) {
10246 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10247 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10249 ndr->flags = _flags_save_string;
10252 return NDR_ERR_SUCCESS;
10255 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10257 uint32_t _ptr_driver_name;
10258 TALLOC_CTX *_mem_save_driver_name_0;
10259 uint32_t _ptr_architecture;
10260 TALLOC_CTX *_mem_save_architecture_0;
10261 uint32_t _ptr_driver_path;
10262 TALLOC_CTX *_mem_save_driver_path_0;
10263 uint32_t _ptr_data_file;
10264 TALLOC_CTX *_mem_save_data_file_0;
10265 uint32_t _ptr_config_file;
10266 TALLOC_CTX *_mem_save_config_file_0;
10267 uint32_t _ptr_help_file;
10268 TALLOC_CTX *_mem_save_help_file_0;
10269 uint32_t _ptr_dependent_files;
10270 TALLOC_CTX *_mem_save_dependent_files_0;
10271 uint32_t _ptr_monitor_name;
10272 TALLOC_CTX *_mem_save_monitor_name_0;
10273 uint32_t _ptr_default_datatype;
10274 TALLOC_CTX *_mem_save_default_datatype_0;
10275 if (ndr_flags & NDR_SCALARS) {
10276 NDR_CHECK(ndr_pull_align(ndr, 4));
10277 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10279 uint32_t _flags_save_string = ndr->flags;
10280 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10282 if (_ptr_driver_name) {
10283 NDR_PULL_ALLOC(ndr, r->driver_name);
10284 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10286 r->driver_name = NULL;
10288 ndr->flags = _flags_save_string;
10291 uint32_t _flags_save_string = ndr->flags;
10292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10293 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10294 if (_ptr_architecture) {
10295 NDR_PULL_ALLOC(ndr, r->architecture);
10296 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10298 r->architecture = NULL;
10300 ndr->flags = _flags_save_string;
10303 uint32_t _flags_save_string = ndr->flags;
10304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10306 if (_ptr_driver_path) {
10307 NDR_PULL_ALLOC(ndr, r->driver_path);
10308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10310 r->driver_path = NULL;
10312 ndr->flags = _flags_save_string;
10315 uint32_t _flags_save_string = ndr->flags;
10316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10318 if (_ptr_data_file) {
10319 NDR_PULL_ALLOC(ndr, r->data_file);
10320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10322 r->data_file = NULL;
10324 ndr->flags = _flags_save_string;
10327 uint32_t _flags_save_string = ndr->flags;
10328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10329 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10330 if (_ptr_config_file) {
10331 NDR_PULL_ALLOC(ndr, r->config_file);
10332 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10334 r->config_file = NULL;
10336 ndr->flags = _flags_save_string;
10339 uint32_t _flags_save_string = ndr->flags;
10340 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10342 if (_ptr_help_file) {
10343 NDR_PULL_ALLOC(ndr, r->help_file);
10344 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10346 r->help_file = NULL;
10348 ndr->flags = _flags_save_string;
10351 uint32_t _flags_save_string_array = ndr->flags;
10352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10354 if (_ptr_dependent_files) {
10355 NDR_PULL_ALLOC(ndr, r->dependent_files);
10356 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10358 r->dependent_files = NULL;
10360 ndr->flags = _flags_save_string_array;
10363 uint32_t _flags_save_string = ndr->flags;
10364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10366 if (_ptr_monitor_name) {
10367 NDR_PULL_ALLOC(ndr, r->monitor_name);
10368 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10370 r->monitor_name = NULL;
10372 ndr->flags = _flags_save_string;
10375 uint32_t _flags_save_string = ndr->flags;
10376 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10378 if (_ptr_default_datatype) {
10379 NDR_PULL_ALLOC(ndr, r->default_datatype);
10380 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10382 r->default_datatype = NULL;
10384 ndr->flags = _flags_save_string;
10387 if (ndr_flags & NDR_BUFFERS) {
10389 uint32_t _flags_save_string = ndr->flags;
10390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10391 if (r->driver_name) {
10392 uint32_t _relative_save_offset;
10393 _relative_save_offset = ndr->offset;
10394 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10395 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10396 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10397 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10398 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10399 ndr->offset = _relative_save_offset;
10401 ndr->flags = _flags_save_string;
10404 uint32_t _flags_save_string = ndr->flags;
10405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10406 if (r->architecture) {
10407 uint32_t _relative_save_offset;
10408 _relative_save_offset = ndr->offset;
10409 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10410 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10411 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10412 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10414 ndr->offset = _relative_save_offset;
10416 ndr->flags = _flags_save_string;
10419 uint32_t _flags_save_string = ndr->flags;
10420 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10421 if (r->driver_path) {
10422 uint32_t _relative_save_offset;
10423 _relative_save_offset = ndr->offset;
10424 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10425 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10426 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10427 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10428 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10429 ndr->offset = _relative_save_offset;
10431 ndr->flags = _flags_save_string;
10434 uint32_t _flags_save_string = ndr->flags;
10435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10436 if (r->data_file) {
10437 uint32_t _relative_save_offset;
10438 _relative_save_offset = ndr->offset;
10439 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10440 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10441 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10442 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10444 ndr->offset = _relative_save_offset;
10446 ndr->flags = _flags_save_string;
10449 uint32_t _flags_save_string = ndr->flags;
10450 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10451 if (r->config_file) {
10452 uint32_t _relative_save_offset;
10453 _relative_save_offset = ndr->offset;
10454 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10455 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10456 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10457 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10459 ndr->offset = _relative_save_offset;
10461 ndr->flags = _flags_save_string;
10464 uint32_t _flags_save_string = ndr->flags;
10465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10466 if (r->help_file) {
10467 uint32_t _relative_save_offset;
10468 _relative_save_offset = ndr->offset;
10469 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10470 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10471 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10472 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10474 ndr->offset = _relative_save_offset;
10476 ndr->flags = _flags_save_string;
10479 uint32_t _flags_save_string_array = ndr->flags;
10480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10481 if (r->dependent_files) {
10482 uint32_t _relative_save_offset;
10483 _relative_save_offset = ndr->offset;
10484 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10485 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10486 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10487 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10489 ndr->offset = _relative_save_offset;
10491 ndr->flags = _flags_save_string_array;
10494 uint32_t _flags_save_string = ndr->flags;
10495 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10496 if (r->monitor_name) {
10497 uint32_t _relative_save_offset;
10498 _relative_save_offset = ndr->offset;
10499 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10500 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10501 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10502 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10504 ndr->offset = _relative_save_offset;
10506 ndr->flags = _flags_save_string;
10509 uint32_t _flags_save_string = ndr->flags;
10510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10511 if (r->default_datatype) {
10512 uint32_t _relative_save_offset;
10513 _relative_save_offset = ndr->offset;
10514 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10515 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10516 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10517 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10519 ndr->offset = _relative_save_offset;
10521 ndr->flags = _flags_save_string;
10524 return NDR_ERR_SUCCESS;
10527 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
10529 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
10531 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10532 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10534 if (r->driver_name) {
10535 ndr_print_string(ndr, "driver_name", r->driver_name);
10538 ndr_print_ptr(ndr, "architecture", r->architecture);
10540 if (r->architecture) {
10541 ndr_print_string(ndr, "architecture", r->architecture);
10544 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10546 if (r->driver_path) {
10547 ndr_print_string(ndr, "driver_path", r->driver_path);
10550 ndr_print_ptr(ndr, "data_file", r->data_file);
10552 if (r->data_file) {
10553 ndr_print_string(ndr, "data_file", r->data_file);
10556 ndr_print_ptr(ndr, "config_file", r->config_file);
10558 if (r->config_file) {
10559 ndr_print_string(ndr, "config_file", r->config_file);
10562 ndr_print_ptr(ndr, "help_file", r->help_file);
10564 if (r->help_file) {
10565 ndr_print_string(ndr, "help_file", r->help_file);
10568 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10570 if (r->dependent_files) {
10571 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10574 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10576 if (r->monitor_name) {
10577 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10580 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10582 if (r->default_datatype) {
10583 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10589 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
10591 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
10594 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
10596 if (ndr_flags & NDR_SCALARS) {
10597 NDR_CHECK(ndr_push_align(ndr, 4));
10598 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10600 uint32_t _flags_save_string = ndr->flags;
10601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10602 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10603 ndr->flags = _flags_save_string;
10606 uint32_t _flags_save_string = ndr->flags;
10607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10608 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10609 ndr->flags = _flags_save_string;
10612 uint32_t _flags_save_string = ndr->flags;
10613 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10614 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10615 ndr->flags = _flags_save_string;
10618 uint32_t _flags_save_string = ndr->flags;
10619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10620 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10621 ndr->flags = _flags_save_string;
10624 uint32_t _flags_save_string = ndr->flags;
10625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10626 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10627 ndr->flags = _flags_save_string;
10630 uint32_t _flags_save_string = ndr->flags;
10631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10632 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10633 ndr->flags = _flags_save_string;
10636 uint32_t _flags_save_string_array = ndr->flags;
10637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10638 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10639 ndr->flags = _flags_save_string_array;
10642 uint32_t _flags_save_string = ndr->flags;
10643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10644 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10645 ndr->flags = _flags_save_string;
10648 uint32_t _flags_save_string = ndr->flags;
10649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10650 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10651 ndr->flags = _flags_save_string;
10654 uint32_t _flags_save_string_array = ndr->flags;
10655 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10656 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
10657 ndr->flags = _flags_save_string_array;
10660 if (ndr_flags & NDR_BUFFERS) {
10662 uint32_t _flags_save_string = ndr->flags;
10663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10664 if (r->driver_name) {
10665 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10666 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10668 ndr->flags = _flags_save_string;
10671 uint32_t _flags_save_string = ndr->flags;
10672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10673 if (r->architecture) {
10674 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10675 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10677 ndr->flags = _flags_save_string;
10680 uint32_t _flags_save_string = ndr->flags;
10681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10682 if (r->driver_path) {
10683 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10684 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10686 ndr->flags = _flags_save_string;
10689 uint32_t _flags_save_string = ndr->flags;
10690 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10691 if (r->data_file) {
10692 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10693 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10695 ndr->flags = _flags_save_string;
10698 uint32_t _flags_save_string = ndr->flags;
10699 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10700 if (r->config_file) {
10701 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10702 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10704 ndr->flags = _flags_save_string;
10707 uint32_t _flags_save_string = ndr->flags;
10708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10709 if (r->help_file) {
10710 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10711 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10713 ndr->flags = _flags_save_string;
10716 uint32_t _flags_save_string_array = ndr->flags;
10717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10718 if (r->dependent_files) {
10719 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10720 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10722 ndr->flags = _flags_save_string_array;
10725 uint32_t _flags_save_string = ndr->flags;
10726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10727 if (r->monitor_name) {
10728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10731 ndr->flags = _flags_save_string;
10734 uint32_t _flags_save_string = ndr->flags;
10735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10736 if (r->default_datatype) {
10737 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10738 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10740 ndr->flags = _flags_save_string;
10743 uint32_t _flags_save_string_array = ndr->flags;
10744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10745 if (r->previous_names) {
10746 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
10747 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
10749 ndr->flags = _flags_save_string_array;
10752 return NDR_ERR_SUCCESS;
10755 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
10757 uint32_t _ptr_driver_name;
10758 TALLOC_CTX *_mem_save_driver_name_0;
10759 uint32_t _ptr_architecture;
10760 TALLOC_CTX *_mem_save_architecture_0;
10761 uint32_t _ptr_driver_path;
10762 TALLOC_CTX *_mem_save_driver_path_0;
10763 uint32_t _ptr_data_file;
10764 TALLOC_CTX *_mem_save_data_file_0;
10765 uint32_t _ptr_config_file;
10766 TALLOC_CTX *_mem_save_config_file_0;
10767 uint32_t _ptr_help_file;
10768 TALLOC_CTX *_mem_save_help_file_0;
10769 uint32_t _ptr_dependent_files;
10770 TALLOC_CTX *_mem_save_dependent_files_0;
10771 uint32_t _ptr_monitor_name;
10772 TALLOC_CTX *_mem_save_monitor_name_0;
10773 uint32_t _ptr_default_datatype;
10774 TALLOC_CTX *_mem_save_default_datatype_0;
10775 uint32_t _ptr_previous_names;
10776 TALLOC_CTX *_mem_save_previous_names_0;
10777 if (ndr_flags & NDR_SCALARS) {
10778 NDR_CHECK(ndr_pull_align(ndr, 4));
10779 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10781 uint32_t _flags_save_string = ndr->flags;
10782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10784 if (_ptr_driver_name) {
10785 NDR_PULL_ALLOC(ndr, r->driver_name);
10786 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10788 r->driver_name = NULL;
10790 ndr->flags = _flags_save_string;
10793 uint32_t _flags_save_string = ndr->flags;
10794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10796 if (_ptr_architecture) {
10797 NDR_PULL_ALLOC(ndr, r->architecture);
10798 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10800 r->architecture = NULL;
10802 ndr->flags = _flags_save_string;
10805 uint32_t _flags_save_string = ndr->flags;
10806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10808 if (_ptr_driver_path) {
10809 NDR_PULL_ALLOC(ndr, r->driver_path);
10810 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10812 r->driver_path = NULL;
10814 ndr->flags = _flags_save_string;
10817 uint32_t _flags_save_string = ndr->flags;
10818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10820 if (_ptr_data_file) {
10821 NDR_PULL_ALLOC(ndr, r->data_file);
10822 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10824 r->data_file = NULL;
10826 ndr->flags = _flags_save_string;
10829 uint32_t _flags_save_string = ndr->flags;
10830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10832 if (_ptr_config_file) {
10833 NDR_PULL_ALLOC(ndr, r->config_file);
10834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10836 r->config_file = NULL;
10838 ndr->flags = _flags_save_string;
10841 uint32_t _flags_save_string = ndr->flags;
10842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10844 if (_ptr_help_file) {
10845 NDR_PULL_ALLOC(ndr, r->help_file);
10846 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10848 r->help_file = NULL;
10850 ndr->flags = _flags_save_string;
10853 uint32_t _flags_save_string_array = ndr->flags;
10854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10855 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10856 if (_ptr_dependent_files) {
10857 NDR_PULL_ALLOC(ndr, r->dependent_files);
10858 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10860 r->dependent_files = NULL;
10862 ndr->flags = _flags_save_string_array;
10865 uint32_t _flags_save_string = ndr->flags;
10866 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10867 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10868 if (_ptr_monitor_name) {
10869 NDR_PULL_ALLOC(ndr, r->monitor_name);
10870 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10872 r->monitor_name = NULL;
10874 ndr->flags = _flags_save_string;
10877 uint32_t _flags_save_string = ndr->flags;
10878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10880 if (_ptr_default_datatype) {
10881 NDR_PULL_ALLOC(ndr, r->default_datatype);
10882 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10884 r->default_datatype = NULL;
10886 ndr->flags = _flags_save_string;
10889 uint32_t _flags_save_string_array = ndr->flags;
10890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10892 if (_ptr_previous_names) {
10893 NDR_PULL_ALLOC(ndr, r->previous_names);
10894 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10896 r->previous_names = NULL;
10898 ndr->flags = _flags_save_string_array;
10901 if (ndr_flags & NDR_BUFFERS) {
10903 uint32_t _flags_save_string = ndr->flags;
10904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10905 if (r->driver_name) {
10906 uint32_t _relative_save_offset;
10907 _relative_save_offset = ndr->offset;
10908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10909 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10910 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10913 ndr->offset = _relative_save_offset;
10915 ndr->flags = _flags_save_string;
10918 uint32_t _flags_save_string = ndr->flags;
10919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10920 if (r->architecture) {
10921 uint32_t _relative_save_offset;
10922 _relative_save_offset = ndr->offset;
10923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10924 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10925 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10928 ndr->offset = _relative_save_offset;
10930 ndr->flags = _flags_save_string;
10933 uint32_t _flags_save_string = ndr->flags;
10934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10935 if (r->driver_path) {
10936 uint32_t _relative_save_offset;
10937 _relative_save_offset = ndr->offset;
10938 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10939 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10940 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10943 ndr->offset = _relative_save_offset;
10945 ndr->flags = _flags_save_string;
10948 uint32_t _flags_save_string = ndr->flags;
10949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10950 if (r->data_file) {
10951 uint32_t _relative_save_offset;
10952 _relative_save_offset = ndr->offset;
10953 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10954 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10955 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10956 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10957 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10958 ndr->offset = _relative_save_offset;
10960 ndr->flags = _flags_save_string;
10963 uint32_t _flags_save_string = ndr->flags;
10964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10965 if (r->config_file) {
10966 uint32_t _relative_save_offset;
10967 _relative_save_offset = ndr->offset;
10968 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10969 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10970 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10971 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10973 ndr->offset = _relative_save_offset;
10975 ndr->flags = _flags_save_string;
10978 uint32_t _flags_save_string = ndr->flags;
10979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10980 if (r->help_file) {
10981 uint32_t _relative_save_offset;
10982 _relative_save_offset = ndr->offset;
10983 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10984 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10985 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10986 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10988 ndr->offset = _relative_save_offset;
10990 ndr->flags = _flags_save_string;
10993 uint32_t _flags_save_string_array = ndr->flags;
10994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10995 if (r->dependent_files) {
10996 uint32_t _relative_save_offset;
10997 _relative_save_offset = ndr->offset;
10998 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10999 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11000 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11001 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11003 ndr->offset = _relative_save_offset;
11005 ndr->flags = _flags_save_string_array;
11008 uint32_t _flags_save_string = ndr->flags;
11009 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11010 if (r->monitor_name) {
11011 uint32_t _relative_save_offset;
11012 _relative_save_offset = ndr->offset;
11013 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11014 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11015 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11016 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11018 ndr->offset = _relative_save_offset;
11020 ndr->flags = _flags_save_string;
11023 uint32_t _flags_save_string = ndr->flags;
11024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11025 if (r->default_datatype) {
11026 uint32_t _relative_save_offset;
11027 _relative_save_offset = ndr->offset;
11028 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11029 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11030 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11031 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11032 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11033 ndr->offset = _relative_save_offset;
11035 ndr->flags = _flags_save_string;
11038 uint32_t _flags_save_string_array = ndr->flags;
11039 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11040 if (r->previous_names) {
11041 uint32_t _relative_save_offset;
11042 _relative_save_offset = ndr->offset;
11043 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11044 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11045 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11046 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11048 ndr->offset = _relative_save_offset;
11050 ndr->flags = _flags_save_string_array;
11053 return NDR_ERR_SUCCESS;
11056 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11058 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11060 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11061 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11063 if (r->driver_name) {
11064 ndr_print_string(ndr, "driver_name", r->driver_name);
11067 ndr_print_ptr(ndr, "architecture", r->architecture);
11069 if (r->architecture) {
11070 ndr_print_string(ndr, "architecture", r->architecture);
11073 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11075 if (r->driver_path) {
11076 ndr_print_string(ndr, "driver_path", r->driver_path);
11079 ndr_print_ptr(ndr, "data_file", r->data_file);
11081 if (r->data_file) {
11082 ndr_print_string(ndr, "data_file", r->data_file);
11085 ndr_print_ptr(ndr, "config_file", r->config_file);
11087 if (r->config_file) {
11088 ndr_print_string(ndr, "config_file", r->config_file);
11091 ndr_print_ptr(ndr, "help_file", r->help_file);
11093 if (r->help_file) {
11094 ndr_print_string(ndr, "help_file", r->help_file);
11097 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11099 if (r->dependent_files) {
11100 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11103 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11105 if (r->monitor_name) {
11106 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11109 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11111 if (r->default_datatype) {
11112 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11115 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11117 if (r->previous_names) {
11118 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11124 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11126 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11129 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11131 if (ndr_flags & NDR_SCALARS) {
11132 NDR_CHECK(ndr_push_align(ndr, 4));
11133 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11135 uint32_t _flags_save_string = ndr->flags;
11136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11137 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11138 ndr->flags = _flags_save_string;
11141 uint32_t _flags_save_string = ndr->flags;
11142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11143 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11144 ndr->flags = _flags_save_string;
11147 uint32_t _flags_save_string = ndr->flags;
11148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11149 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11150 ndr->flags = _flags_save_string;
11153 uint32_t _flags_save_string = ndr->flags;
11154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11155 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11156 ndr->flags = _flags_save_string;
11159 uint32_t _flags_save_string = ndr->flags;
11160 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11161 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11162 ndr->flags = _flags_save_string;
11164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
11165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11168 if (ndr_flags & NDR_BUFFERS) {
11170 uint32_t _flags_save_string = ndr->flags;
11171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11172 if (r->driver_name) {
11173 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11174 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11176 ndr->flags = _flags_save_string;
11179 uint32_t _flags_save_string = ndr->flags;
11180 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11181 if (r->architecture) {
11182 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11183 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11185 ndr->flags = _flags_save_string;
11188 uint32_t _flags_save_string = ndr->flags;
11189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11190 if (r->driver_path) {
11191 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11192 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11194 ndr->flags = _flags_save_string;
11197 uint32_t _flags_save_string = ndr->flags;
11198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11199 if (r->data_file) {
11200 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11201 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11203 ndr->flags = _flags_save_string;
11206 uint32_t _flags_save_string = ndr->flags;
11207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11208 if (r->config_file) {
11209 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11210 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11212 ndr->flags = _flags_save_string;
11215 return NDR_ERR_SUCCESS;
11218 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11220 uint32_t _ptr_driver_name;
11221 TALLOC_CTX *_mem_save_driver_name_0;
11222 uint32_t _ptr_architecture;
11223 TALLOC_CTX *_mem_save_architecture_0;
11224 uint32_t _ptr_driver_path;
11225 TALLOC_CTX *_mem_save_driver_path_0;
11226 uint32_t _ptr_data_file;
11227 TALLOC_CTX *_mem_save_data_file_0;
11228 uint32_t _ptr_config_file;
11229 TALLOC_CTX *_mem_save_config_file_0;
11230 if (ndr_flags & NDR_SCALARS) {
11231 NDR_CHECK(ndr_pull_align(ndr, 4));
11232 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11234 uint32_t _flags_save_string = ndr->flags;
11235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11237 if (_ptr_driver_name) {
11238 NDR_PULL_ALLOC(ndr, r->driver_name);
11239 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11241 r->driver_name = NULL;
11243 ndr->flags = _flags_save_string;
11246 uint32_t _flags_save_string = ndr->flags;
11247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11249 if (_ptr_architecture) {
11250 NDR_PULL_ALLOC(ndr, r->architecture);
11251 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11253 r->architecture = NULL;
11255 ndr->flags = _flags_save_string;
11258 uint32_t _flags_save_string = ndr->flags;
11259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11261 if (_ptr_driver_path) {
11262 NDR_PULL_ALLOC(ndr, r->driver_path);
11263 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11265 r->driver_path = NULL;
11267 ndr->flags = _flags_save_string;
11270 uint32_t _flags_save_string = ndr->flags;
11271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11273 if (_ptr_data_file) {
11274 NDR_PULL_ALLOC(ndr, r->data_file);
11275 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11277 r->data_file = NULL;
11279 ndr->flags = _flags_save_string;
11282 uint32_t _flags_save_string = ndr->flags;
11283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11285 if (_ptr_config_file) {
11286 NDR_PULL_ALLOC(ndr, r->config_file);
11287 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11289 r->config_file = NULL;
11291 ndr->flags = _flags_save_string;
11293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
11294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11297 if (ndr_flags & NDR_BUFFERS) {
11299 uint32_t _flags_save_string = ndr->flags;
11300 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11301 if (r->driver_name) {
11302 uint32_t _relative_save_offset;
11303 _relative_save_offset = ndr->offset;
11304 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11305 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11306 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11307 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11309 ndr->offset = _relative_save_offset;
11311 ndr->flags = _flags_save_string;
11314 uint32_t _flags_save_string = ndr->flags;
11315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11316 if (r->architecture) {
11317 uint32_t _relative_save_offset;
11318 _relative_save_offset = ndr->offset;
11319 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11320 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11321 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11322 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11324 ndr->offset = _relative_save_offset;
11326 ndr->flags = _flags_save_string;
11329 uint32_t _flags_save_string = ndr->flags;
11330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11331 if (r->driver_path) {
11332 uint32_t _relative_save_offset;
11333 _relative_save_offset = ndr->offset;
11334 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11335 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11336 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11337 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11339 ndr->offset = _relative_save_offset;
11341 ndr->flags = _flags_save_string;
11344 uint32_t _flags_save_string = ndr->flags;
11345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11346 if (r->data_file) {
11347 uint32_t _relative_save_offset;
11348 _relative_save_offset = ndr->offset;
11349 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11350 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11351 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11352 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11353 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11354 ndr->offset = _relative_save_offset;
11356 ndr->flags = _flags_save_string;
11359 uint32_t _flags_save_string = ndr->flags;
11360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11361 if (r->config_file) {
11362 uint32_t _relative_save_offset;
11363 _relative_save_offset = ndr->offset;
11364 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11365 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11366 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11367 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11369 ndr->offset = _relative_save_offset;
11371 ndr->flags = _flags_save_string;
11374 return NDR_ERR_SUCCESS;
11377 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11379 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11381 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11382 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11384 if (r->driver_name) {
11385 ndr_print_string(ndr, "driver_name", r->driver_name);
11388 ndr_print_ptr(ndr, "architecture", r->architecture);
11390 if (r->architecture) {
11391 ndr_print_string(ndr, "architecture", r->architecture);
11394 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11396 if (r->driver_path) {
11397 ndr_print_string(ndr, "driver_path", r->driver_path);
11400 ndr_print_ptr(ndr, "data_file", r->data_file);
11402 if (r->data_file) {
11403 ndr_print_string(ndr, "data_file", r->data_file);
11406 ndr_print_ptr(ndr, "config_file", r->config_file);
11408 if (r->config_file) {
11409 ndr_print_string(ndr, "config_file", r->config_file);
11412 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
11413 ndr_print_uint32(ndr, "config_version", r->config_version);
11414 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11418 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
11420 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
11423 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
11425 if (ndr_flags & NDR_SCALARS) {
11426 NDR_CHECK(ndr_push_align(ndr, 8));
11427 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11429 uint32_t _flags_save_string = ndr->flags;
11430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11431 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11432 ndr->flags = _flags_save_string;
11435 uint32_t _flags_save_string = ndr->flags;
11436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11437 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11438 ndr->flags = _flags_save_string;
11441 uint32_t _flags_save_string = ndr->flags;
11442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11443 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11444 ndr->flags = _flags_save_string;
11447 uint32_t _flags_save_string = ndr->flags;
11448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11449 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11450 ndr->flags = _flags_save_string;
11453 uint32_t _flags_save_string = ndr->flags;
11454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11455 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11456 ndr->flags = _flags_save_string;
11459 uint32_t _flags_save_string = ndr->flags;
11460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11461 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11462 ndr->flags = _flags_save_string;
11465 uint32_t _flags_save_string_array = ndr->flags;
11466 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11467 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11468 ndr->flags = _flags_save_string_array;
11471 uint32_t _flags_save_string = ndr->flags;
11472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11473 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11474 ndr->flags = _flags_save_string;
11477 uint32_t _flags_save_string = ndr->flags;
11478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11479 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11480 ndr->flags = _flags_save_string;
11483 uint32_t _flags_save_string_array = ndr->flags;
11484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11485 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11486 ndr->flags = _flags_save_string_array;
11488 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
11489 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
11491 uint32_t _flags_save_string = ndr->flags;
11492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11493 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
11494 ndr->flags = _flags_save_string;
11497 uint32_t _flags_save_string = ndr->flags;
11498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11499 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
11500 ndr->flags = _flags_save_string;
11503 uint32_t _flags_save_string = ndr->flags;
11504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11505 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
11506 ndr->flags = _flags_save_string;
11509 uint32_t _flags_save_string = ndr->flags;
11510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11511 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
11512 ndr->flags = _flags_save_string;
11515 if (ndr_flags & NDR_BUFFERS) {
11517 uint32_t _flags_save_string = ndr->flags;
11518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11519 if (r->driver_name) {
11520 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11521 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11523 ndr->flags = _flags_save_string;
11526 uint32_t _flags_save_string = ndr->flags;
11527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11528 if (r->architecture) {
11529 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11530 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11532 ndr->flags = _flags_save_string;
11535 uint32_t _flags_save_string = ndr->flags;
11536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11537 if (r->driver_path) {
11538 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11539 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11541 ndr->flags = _flags_save_string;
11544 uint32_t _flags_save_string = ndr->flags;
11545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11546 if (r->data_file) {
11547 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11548 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11550 ndr->flags = _flags_save_string;
11553 uint32_t _flags_save_string = ndr->flags;
11554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11555 if (r->config_file) {
11556 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11557 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11559 ndr->flags = _flags_save_string;
11562 uint32_t _flags_save_string = ndr->flags;
11563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11564 if (r->help_file) {
11565 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11566 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11568 ndr->flags = _flags_save_string;
11571 uint32_t _flags_save_string_array = ndr->flags;
11572 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11573 if (r->dependent_files) {
11574 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11575 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11577 ndr->flags = _flags_save_string_array;
11580 uint32_t _flags_save_string = ndr->flags;
11581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11582 if (r->monitor_name) {
11583 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11584 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11586 ndr->flags = _flags_save_string;
11589 uint32_t _flags_save_string = ndr->flags;
11590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11591 if (r->default_datatype) {
11592 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11593 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11595 ndr->flags = _flags_save_string;
11598 uint32_t _flags_save_string_array = ndr->flags;
11599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11600 if (r->previous_names) {
11601 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11602 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11604 ndr->flags = _flags_save_string_array;
11607 uint32_t _flags_save_string = ndr->flags;
11608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11609 if (r->manufacturer_name) {
11610 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
11611 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
11613 ndr->flags = _flags_save_string;
11616 uint32_t _flags_save_string = ndr->flags;
11617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11618 if (r->manufacturer_url) {
11619 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
11620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
11622 ndr->flags = _flags_save_string;
11625 uint32_t _flags_save_string = ndr->flags;
11626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11627 if (r->hardware_id) {
11628 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
11629 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
11631 ndr->flags = _flags_save_string;
11634 uint32_t _flags_save_string = ndr->flags;
11635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11637 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
11638 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
11640 ndr->flags = _flags_save_string;
11643 return NDR_ERR_SUCCESS;
11646 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
11648 uint32_t _ptr_driver_name;
11649 TALLOC_CTX *_mem_save_driver_name_0;
11650 uint32_t _ptr_architecture;
11651 TALLOC_CTX *_mem_save_architecture_0;
11652 uint32_t _ptr_driver_path;
11653 TALLOC_CTX *_mem_save_driver_path_0;
11654 uint32_t _ptr_data_file;
11655 TALLOC_CTX *_mem_save_data_file_0;
11656 uint32_t _ptr_config_file;
11657 TALLOC_CTX *_mem_save_config_file_0;
11658 uint32_t _ptr_help_file;
11659 TALLOC_CTX *_mem_save_help_file_0;
11660 uint32_t _ptr_dependent_files;
11661 TALLOC_CTX *_mem_save_dependent_files_0;
11662 uint32_t _ptr_monitor_name;
11663 TALLOC_CTX *_mem_save_monitor_name_0;
11664 uint32_t _ptr_default_datatype;
11665 TALLOC_CTX *_mem_save_default_datatype_0;
11666 uint32_t _ptr_previous_names;
11667 TALLOC_CTX *_mem_save_previous_names_0;
11668 uint32_t _ptr_manufacturer_name;
11669 TALLOC_CTX *_mem_save_manufacturer_name_0;
11670 uint32_t _ptr_manufacturer_url;
11671 TALLOC_CTX *_mem_save_manufacturer_url_0;
11672 uint32_t _ptr_hardware_id;
11673 TALLOC_CTX *_mem_save_hardware_id_0;
11674 uint32_t _ptr_provider;
11675 TALLOC_CTX *_mem_save_provider_0;
11676 if (ndr_flags & NDR_SCALARS) {
11677 NDR_CHECK(ndr_pull_align(ndr, 8));
11678 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11680 uint32_t _flags_save_string = ndr->flags;
11681 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11682 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11683 if (_ptr_driver_name) {
11684 NDR_PULL_ALLOC(ndr, r->driver_name);
11685 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11687 r->driver_name = NULL;
11689 ndr->flags = _flags_save_string;
11692 uint32_t _flags_save_string = ndr->flags;
11693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11695 if (_ptr_architecture) {
11696 NDR_PULL_ALLOC(ndr, r->architecture);
11697 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11699 r->architecture = NULL;
11701 ndr->flags = _flags_save_string;
11704 uint32_t _flags_save_string = ndr->flags;
11705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11706 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11707 if (_ptr_driver_path) {
11708 NDR_PULL_ALLOC(ndr, r->driver_path);
11709 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11711 r->driver_path = NULL;
11713 ndr->flags = _flags_save_string;
11716 uint32_t _flags_save_string = ndr->flags;
11717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11719 if (_ptr_data_file) {
11720 NDR_PULL_ALLOC(ndr, r->data_file);
11721 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11723 r->data_file = NULL;
11725 ndr->flags = _flags_save_string;
11728 uint32_t _flags_save_string = ndr->flags;
11729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11731 if (_ptr_config_file) {
11732 NDR_PULL_ALLOC(ndr, r->config_file);
11733 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11735 r->config_file = NULL;
11737 ndr->flags = _flags_save_string;
11740 uint32_t _flags_save_string = ndr->flags;
11741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11743 if (_ptr_help_file) {
11744 NDR_PULL_ALLOC(ndr, r->help_file);
11745 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11747 r->help_file = NULL;
11749 ndr->flags = _flags_save_string;
11752 uint32_t _flags_save_string_array = ndr->flags;
11753 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11754 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11755 if (_ptr_dependent_files) {
11756 NDR_PULL_ALLOC(ndr, r->dependent_files);
11757 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11759 r->dependent_files = NULL;
11761 ndr->flags = _flags_save_string_array;
11764 uint32_t _flags_save_string = ndr->flags;
11765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11766 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11767 if (_ptr_monitor_name) {
11768 NDR_PULL_ALLOC(ndr, r->monitor_name);
11769 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11771 r->monitor_name = NULL;
11773 ndr->flags = _flags_save_string;
11776 uint32_t _flags_save_string = ndr->flags;
11777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11779 if (_ptr_default_datatype) {
11780 NDR_PULL_ALLOC(ndr, r->default_datatype);
11781 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11783 r->default_datatype = NULL;
11785 ndr->flags = _flags_save_string;
11788 uint32_t _flags_save_string_array = ndr->flags;
11789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11791 if (_ptr_previous_names) {
11792 NDR_PULL_ALLOC(ndr, r->previous_names);
11793 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11795 r->previous_names = NULL;
11797 ndr->flags = _flags_save_string_array;
11799 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
11800 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
11802 uint32_t _flags_save_string = ndr->flags;
11803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11804 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
11805 if (_ptr_manufacturer_name) {
11806 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
11807 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
11809 r->manufacturer_name = NULL;
11811 ndr->flags = _flags_save_string;
11814 uint32_t _flags_save_string = ndr->flags;
11815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11816 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
11817 if (_ptr_manufacturer_url) {
11818 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
11819 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
11821 r->manufacturer_url = NULL;
11823 ndr->flags = _flags_save_string;
11826 uint32_t _flags_save_string = ndr->flags;
11827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
11829 if (_ptr_hardware_id) {
11830 NDR_PULL_ALLOC(ndr, r->hardware_id);
11831 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
11833 r->hardware_id = NULL;
11835 ndr->flags = _flags_save_string;
11838 uint32_t _flags_save_string = ndr->flags;
11839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
11841 if (_ptr_provider) {
11842 NDR_PULL_ALLOC(ndr, r->provider);
11843 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
11845 r->provider = NULL;
11847 ndr->flags = _flags_save_string;
11850 if (ndr_flags & NDR_BUFFERS) {
11852 uint32_t _flags_save_string = ndr->flags;
11853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11854 if (r->driver_name) {
11855 uint32_t _relative_save_offset;
11856 _relative_save_offset = ndr->offset;
11857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11858 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11859 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11862 ndr->offset = _relative_save_offset;
11864 ndr->flags = _flags_save_string;
11867 uint32_t _flags_save_string = ndr->flags;
11868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11869 if (r->architecture) {
11870 uint32_t _relative_save_offset;
11871 _relative_save_offset = ndr->offset;
11872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11873 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11874 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11877 ndr->offset = _relative_save_offset;
11879 ndr->flags = _flags_save_string;
11882 uint32_t _flags_save_string = ndr->flags;
11883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11884 if (r->driver_path) {
11885 uint32_t _relative_save_offset;
11886 _relative_save_offset = ndr->offset;
11887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11888 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11889 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11892 ndr->offset = _relative_save_offset;
11894 ndr->flags = _flags_save_string;
11897 uint32_t _flags_save_string = ndr->flags;
11898 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11899 if (r->data_file) {
11900 uint32_t _relative_save_offset;
11901 _relative_save_offset = ndr->offset;
11902 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11903 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11904 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11905 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11907 ndr->offset = _relative_save_offset;
11909 ndr->flags = _flags_save_string;
11912 uint32_t _flags_save_string = ndr->flags;
11913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11914 if (r->config_file) {
11915 uint32_t _relative_save_offset;
11916 _relative_save_offset = ndr->offset;
11917 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11918 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11919 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11920 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11922 ndr->offset = _relative_save_offset;
11924 ndr->flags = _flags_save_string;
11927 uint32_t _flags_save_string = ndr->flags;
11928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11929 if (r->help_file) {
11930 uint32_t _relative_save_offset;
11931 _relative_save_offset = ndr->offset;
11932 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11933 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11934 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11935 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11937 ndr->offset = _relative_save_offset;
11939 ndr->flags = _flags_save_string;
11942 uint32_t _flags_save_string_array = ndr->flags;
11943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11944 if (r->dependent_files) {
11945 uint32_t _relative_save_offset;
11946 _relative_save_offset = ndr->offset;
11947 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11948 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11949 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11950 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11952 ndr->offset = _relative_save_offset;
11954 ndr->flags = _flags_save_string_array;
11957 uint32_t _flags_save_string = ndr->flags;
11958 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11959 if (r->monitor_name) {
11960 uint32_t _relative_save_offset;
11961 _relative_save_offset = ndr->offset;
11962 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11963 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11964 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11965 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11967 ndr->offset = _relative_save_offset;
11969 ndr->flags = _flags_save_string;
11972 uint32_t _flags_save_string = ndr->flags;
11973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11974 if (r->default_datatype) {
11975 uint32_t _relative_save_offset;
11976 _relative_save_offset = ndr->offset;
11977 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11978 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11979 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11980 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11982 ndr->offset = _relative_save_offset;
11984 ndr->flags = _flags_save_string;
11987 uint32_t _flags_save_string_array = ndr->flags;
11988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11989 if (r->previous_names) {
11990 uint32_t _relative_save_offset;
11991 _relative_save_offset = ndr->offset;
11992 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11993 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11994 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11995 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11997 ndr->offset = _relative_save_offset;
11999 ndr->flags = _flags_save_string_array;
12002 uint32_t _flags_save_string = ndr->flags;
12003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12004 if (r->manufacturer_name) {
12005 uint32_t _relative_save_offset;
12006 _relative_save_offset = ndr->offset;
12007 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12008 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12009 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12010 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12012 ndr->offset = _relative_save_offset;
12014 ndr->flags = _flags_save_string;
12017 uint32_t _flags_save_string = ndr->flags;
12018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12019 if (r->manufacturer_url) {
12020 uint32_t _relative_save_offset;
12021 _relative_save_offset = ndr->offset;
12022 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12023 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12024 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12025 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12027 ndr->offset = _relative_save_offset;
12029 ndr->flags = _flags_save_string;
12032 uint32_t _flags_save_string = ndr->flags;
12033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12034 if (r->hardware_id) {
12035 uint32_t _relative_save_offset;
12036 _relative_save_offset = ndr->offset;
12037 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12038 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12039 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12040 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12042 ndr->offset = _relative_save_offset;
12044 ndr->flags = _flags_save_string;
12047 uint32_t _flags_save_string = ndr->flags;
12048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12050 uint32_t _relative_save_offset;
12051 _relative_save_offset = ndr->offset;
12052 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12053 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12054 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12055 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12056 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12057 ndr->offset = _relative_save_offset;
12059 ndr->flags = _flags_save_string;
12062 return NDR_ERR_SUCCESS;
12065 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12067 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12069 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12070 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12072 if (r->driver_name) {
12073 ndr_print_string(ndr, "driver_name", r->driver_name);
12076 ndr_print_ptr(ndr, "architecture", r->architecture);
12078 if (r->architecture) {
12079 ndr_print_string(ndr, "architecture", r->architecture);
12082 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12084 if (r->driver_path) {
12085 ndr_print_string(ndr, "driver_path", r->driver_path);
12088 ndr_print_ptr(ndr, "data_file", r->data_file);
12090 if (r->data_file) {
12091 ndr_print_string(ndr, "data_file", r->data_file);
12094 ndr_print_ptr(ndr, "config_file", r->config_file);
12096 if (r->config_file) {
12097 ndr_print_string(ndr, "config_file", r->config_file);
12100 ndr_print_ptr(ndr, "help_file", r->help_file);
12102 if (r->help_file) {
12103 ndr_print_string(ndr, "help_file", r->help_file);
12106 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12108 if (r->dependent_files) {
12109 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12112 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12114 if (r->monitor_name) {
12115 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12118 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12120 if (r->default_datatype) {
12121 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12124 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12126 if (r->previous_names) {
12127 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12130 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12131 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12132 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12134 if (r->manufacturer_name) {
12135 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12138 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12140 if (r->manufacturer_url) {
12141 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12144 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12146 if (r->hardware_id) {
12147 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12150 ndr_print_ptr(ndr, "provider", r->provider);
12153 ndr_print_string(ndr, "provider", r->provider);
12159 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12161 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12164 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12166 if (ndr_flags & NDR_SCALARS) {
12167 NDR_CHECK(ndr_push_align(ndr, 8));
12168 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12170 uint32_t _flags_save_string = ndr->flags;
12171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12172 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12173 ndr->flags = _flags_save_string;
12176 uint32_t _flags_save_string = ndr->flags;
12177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12178 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12179 ndr->flags = _flags_save_string;
12182 uint32_t _flags_save_string = ndr->flags;
12183 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12184 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12185 ndr->flags = _flags_save_string;
12188 uint32_t _flags_save_string = ndr->flags;
12189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12190 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12191 ndr->flags = _flags_save_string;
12194 uint32_t _flags_save_string = ndr->flags;
12195 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12196 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12197 ndr->flags = _flags_save_string;
12200 uint32_t _flags_save_string = ndr->flags;
12201 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12202 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12203 ndr->flags = _flags_save_string;
12206 uint32_t _flags_save_string = ndr->flags;
12207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12208 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12209 ndr->flags = _flags_save_string;
12212 uint32_t _flags_save_string = ndr->flags;
12213 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12214 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12215 ndr->flags = _flags_save_string;
12218 uint32_t _flags_save_string_array = ndr->flags;
12219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12220 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12221 ndr->flags = _flags_save_string_array;
12224 uint32_t _flags_save_string_array = ndr->flags;
12225 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12226 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12227 ndr->flags = _flags_save_string_array;
12229 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12230 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12232 uint32_t _flags_save_string = ndr->flags;
12233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12235 ndr->flags = _flags_save_string;
12238 uint32_t _flags_save_string = ndr->flags;
12239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12241 ndr->flags = _flags_save_string;
12244 uint32_t _flags_save_string = ndr->flags;
12245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12246 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12247 ndr->flags = _flags_save_string;
12250 uint32_t _flags_save_string = ndr->flags;
12251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12252 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12253 ndr->flags = _flags_save_string;
12256 uint32_t _flags_save_string = ndr->flags;
12257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12258 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12259 ndr->flags = _flags_save_string;
12262 uint32_t _flags_save_string = ndr->flags;
12263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12264 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12265 ndr->flags = _flags_save_string;
12268 uint32_t _flags_save_string_array = ndr->flags;
12269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12270 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12271 ndr->flags = _flags_save_string_array;
12274 uint32_t _flags_save_string = ndr->flags;
12275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12276 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12277 ndr->flags = _flags_save_string;
12279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12281 uint32_t _flags_save_string_array = ndr->flags;
12282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12283 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12284 ndr->flags = _flags_save_string_array;
12286 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12287 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12289 if (ndr_flags & NDR_BUFFERS) {
12291 uint32_t _flags_save_string = ndr->flags;
12292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12293 if (r->driver_name) {
12294 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12295 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12297 ndr->flags = _flags_save_string;
12300 uint32_t _flags_save_string = ndr->flags;
12301 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12302 if (r->architecture) {
12303 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12304 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12306 ndr->flags = _flags_save_string;
12309 uint32_t _flags_save_string = ndr->flags;
12310 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12311 if (r->driver_path) {
12312 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12313 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12315 ndr->flags = _flags_save_string;
12318 uint32_t _flags_save_string = ndr->flags;
12319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12320 if (r->data_file) {
12321 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12322 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12324 ndr->flags = _flags_save_string;
12327 uint32_t _flags_save_string = ndr->flags;
12328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12329 if (r->config_file) {
12330 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12331 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12333 ndr->flags = _flags_save_string;
12336 uint32_t _flags_save_string = ndr->flags;
12337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12338 if (r->help_file) {
12339 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12340 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12342 ndr->flags = _flags_save_string;
12345 uint32_t _flags_save_string = ndr->flags;
12346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12347 if (r->monitor_name) {
12348 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12349 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12351 ndr->flags = _flags_save_string;
12354 uint32_t _flags_save_string = ndr->flags;
12355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12356 if (r->default_datatype) {
12357 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12358 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12360 ndr->flags = _flags_save_string;
12363 uint32_t _flags_save_string_array = ndr->flags;
12364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12365 if (r->dependent_files) {
12366 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12367 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12369 ndr->flags = _flags_save_string_array;
12372 uint32_t _flags_save_string_array = ndr->flags;
12373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12374 if (r->previous_names) {
12375 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12376 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12378 ndr->flags = _flags_save_string_array;
12381 uint32_t _flags_save_string = ndr->flags;
12382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12383 if (r->manufacturer_name) {
12384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12387 ndr->flags = _flags_save_string;
12390 uint32_t _flags_save_string = ndr->flags;
12391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12392 if (r->manufacturer_url) {
12393 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12394 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12396 ndr->flags = _flags_save_string;
12399 uint32_t _flags_save_string = ndr->flags;
12400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12401 if (r->hardware_id) {
12402 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12405 ndr->flags = _flags_save_string;
12408 uint32_t _flags_save_string = ndr->flags;
12409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12411 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12412 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12414 ndr->flags = _flags_save_string;
12417 uint32_t _flags_save_string = ndr->flags;
12418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12419 if (r->print_processor) {
12420 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
12421 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
12423 ndr->flags = _flags_save_string;
12426 uint32_t _flags_save_string = ndr->flags;
12427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12428 if (r->vendor_setup) {
12429 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
12430 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
12432 ndr->flags = _flags_save_string;
12435 uint32_t _flags_save_string_array = ndr->flags;
12436 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12437 if (r->color_profiles) {
12438 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
12439 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
12441 ndr->flags = _flags_save_string_array;
12444 uint32_t _flags_save_string = ndr->flags;
12445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12447 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
12448 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
12450 ndr->flags = _flags_save_string;
12453 uint32_t _flags_save_string_array = ndr->flags;
12454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12455 if (r->core_driver_dependencies) {
12456 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
12457 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
12459 ndr->flags = _flags_save_string_array;
12462 return NDR_ERR_SUCCESS;
12465 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
12467 uint32_t _ptr_driver_name;
12468 TALLOC_CTX *_mem_save_driver_name_0;
12469 uint32_t _ptr_architecture;
12470 TALLOC_CTX *_mem_save_architecture_0;
12471 uint32_t _ptr_driver_path;
12472 TALLOC_CTX *_mem_save_driver_path_0;
12473 uint32_t _ptr_data_file;
12474 TALLOC_CTX *_mem_save_data_file_0;
12475 uint32_t _ptr_config_file;
12476 TALLOC_CTX *_mem_save_config_file_0;
12477 uint32_t _ptr_help_file;
12478 TALLOC_CTX *_mem_save_help_file_0;
12479 uint32_t _ptr_monitor_name;
12480 TALLOC_CTX *_mem_save_monitor_name_0;
12481 uint32_t _ptr_default_datatype;
12482 TALLOC_CTX *_mem_save_default_datatype_0;
12483 uint32_t _ptr_dependent_files;
12484 TALLOC_CTX *_mem_save_dependent_files_0;
12485 uint32_t _ptr_previous_names;
12486 TALLOC_CTX *_mem_save_previous_names_0;
12487 uint32_t _ptr_manufacturer_name;
12488 TALLOC_CTX *_mem_save_manufacturer_name_0;
12489 uint32_t _ptr_manufacturer_url;
12490 TALLOC_CTX *_mem_save_manufacturer_url_0;
12491 uint32_t _ptr_hardware_id;
12492 TALLOC_CTX *_mem_save_hardware_id_0;
12493 uint32_t _ptr_provider;
12494 TALLOC_CTX *_mem_save_provider_0;
12495 uint32_t _ptr_print_processor;
12496 TALLOC_CTX *_mem_save_print_processor_0;
12497 uint32_t _ptr_vendor_setup;
12498 TALLOC_CTX *_mem_save_vendor_setup_0;
12499 uint32_t _ptr_color_profiles;
12500 TALLOC_CTX *_mem_save_color_profiles_0;
12501 uint32_t _ptr_inf_path;
12502 TALLOC_CTX *_mem_save_inf_path_0;
12503 uint32_t _ptr_core_driver_dependencies;
12504 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
12505 if (ndr_flags & NDR_SCALARS) {
12506 NDR_CHECK(ndr_pull_align(ndr, 8));
12507 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12509 uint32_t _flags_save_string = ndr->flags;
12510 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12512 if (_ptr_driver_name) {
12513 NDR_PULL_ALLOC(ndr, r->driver_name);
12514 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12516 r->driver_name = NULL;
12518 ndr->flags = _flags_save_string;
12521 uint32_t _flags_save_string = ndr->flags;
12522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12524 if (_ptr_architecture) {
12525 NDR_PULL_ALLOC(ndr, r->architecture);
12526 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12528 r->architecture = NULL;
12530 ndr->flags = _flags_save_string;
12533 uint32_t _flags_save_string = ndr->flags;
12534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12535 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12536 if (_ptr_driver_path) {
12537 NDR_PULL_ALLOC(ndr, r->driver_path);
12538 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12540 r->driver_path = NULL;
12542 ndr->flags = _flags_save_string;
12545 uint32_t _flags_save_string = ndr->flags;
12546 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12548 if (_ptr_data_file) {
12549 NDR_PULL_ALLOC(ndr, r->data_file);
12550 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12552 r->data_file = NULL;
12554 ndr->flags = _flags_save_string;
12557 uint32_t _flags_save_string = ndr->flags;
12558 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12560 if (_ptr_config_file) {
12561 NDR_PULL_ALLOC(ndr, r->config_file);
12562 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12564 r->config_file = NULL;
12566 ndr->flags = _flags_save_string;
12569 uint32_t _flags_save_string = ndr->flags;
12570 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12572 if (_ptr_help_file) {
12573 NDR_PULL_ALLOC(ndr, r->help_file);
12574 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12576 r->help_file = NULL;
12578 ndr->flags = _flags_save_string;
12581 uint32_t _flags_save_string = ndr->flags;
12582 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12583 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12584 if (_ptr_monitor_name) {
12585 NDR_PULL_ALLOC(ndr, r->monitor_name);
12586 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12588 r->monitor_name = NULL;
12590 ndr->flags = _flags_save_string;
12593 uint32_t _flags_save_string = ndr->flags;
12594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12595 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12596 if (_ptr_default_datatype) {
12597 NDR_PULL_ALLOC(ndr, r->default_datatype);
12598 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12600 r->default_datatype = NULL;
12602 ndr->flags = _flags_save_string;
12605 uint32_t _flags_save_string_array = ndr->flags;
12606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12607 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12608 if (_ptr_dependent_files) {
12609 NDR_PULL_ALLOC(ndr, r->dependent_files);
12610 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12612 r->dependent_files = NULL;
12614 ndr->flags = _flags_save_string_array;
12617 uint32_t _flags_save_string_array = ndr->flags;
12618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12620 if (_ptr_previous_names) {
12621 NDR_PULL_ALLOC(ndr, r->previous_names);
12622 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12624 r->previous_names = NULL;
12626 ndr->flags = _flags_save_string_array;
12628 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12629 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12631 uint32_t _flags_save_string = ndr->flags;
12632 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12633 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12634 if (_ptr_manufacturer_name) {
12635 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12636 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12638 r->manufacturer_name = NULL;
12640 ndr->flags = _flags_save_string;
12643 uint32_t _flags_save_string = ndr->flags;
12644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12646 if (_ptr_manufacturer_url) {
12647 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12648 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12650 r->manufacturer_url = NULL;
12652 ndr->flags = _flags_save_string;
12655 uint32_t _flags_save_string = ndr->flags;
12656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12658 if (_ptr_hardware_id) {
12659 NDR_PULL_ALLOC(ndr, r->hardware_id);
12660 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12662 r->hardware_id = NULL;
12664 ndr->flags = _flags_save_string;
12667 uint32_t _flags_save_string = ndr->flags;
12668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12670 if (_ptr_provider) {
12671 NDR_PULL_ALLOC(ndr, r->provider);
12672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12674 r->provider = NULL;
12676 ndr->flags = _flags_save_string;
12679 uint32_t _flags_save_string = ndr->flags;
12680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
12682 if (_ptr_print_processor) {
12683 NDR_PULL_ALLOC(ndr, r->print_processor);
12684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
12686 r->print_processor = NULL;
12688 ndr->flags = _flags_save_string;
12691 uint32_t _flags_save_string = ndr->flags;
12692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
12694 if (_ptr_vendor_setup) {
12695 NDR_PULL_ALLOC(ndr, r->vendor_setup);
12696 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
12698 r->vendor_setup = NULL;
12700 ndr->flags = _flags_save_string;
12703 uint32_t _flags_save_string_array = ndr->flags;
12704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
12706 if (_ptr_color_profiles) {
12707 NDR_PULL_ALLOC(ndr, r->color_profiles);
12708 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
12710 r->color_profiles = NULL;
12712 ndr->flags = _flags_save_string_array;
12715 uint32_t _flags_save_string = ndr->flags;
12716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
12718 if (_ptr_inf_path) {
12719 NDR_PULL_ALLOC(ndr, r->inf_path);
12720 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
12722 r->inf_path = NULL;
12724 ndr->flags = _flags_save_string;
12726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
12728 uint32_t _flags_save_string_array = ndr->flags;
12729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12730 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
12731 if (_ptr_core_driver_dependencies) {
12732 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
12733 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
12735 r->core_driver_dependencies = NULL;
12737 ndr->flags = _flags_save_string_array;
12739 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
12740 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
12742 if (ndr_flags & NDR_BUFFERS) {
12744 uint32_t _flags_save_string = ndr->flags;
12745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12746 if (r->driver_name) {
12747 uint32_t _relative_save_offset;
12748 _relative_save_offset = ndr->offset;
12749 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12750 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12751 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12752 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12754 ndr->offset = _relative_save_offset;
12756 ndr->flags = _flags_save_string;
12759 uint32_t _flags_save_string = ndr->flags;
12760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12761 if (r->architecture) {
12762 uint32_t _relative_save_offset;
12763 _relative_save_offset = ndr->offset;
12764 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12765 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12766 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12767 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12769 ndr->offset = _relative_save_offset;
12771 ndr->flags = _flags_save_string;
12774 uint32_t _flags_save_string = ndr->flags;
12775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12776 if (r->driver_path) {
12777 uint32_t _relative_save_offset;
12778 _relative_save_offset = ndr->offset;
12779 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12780 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12781 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12782 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12784 ndr->offset = _relative_save_offset;
12786 ndr->flags = _flags_save_string;
12789 uint32_t _flags_save_string = ndr->flags;
12790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12791 if (r->data_file) {
12792 uint32_t _relative_save_offset;
12793 _relative_save_offset = ndr->offset;
12794 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12795 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12796 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12797 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12798 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12799 ndr->offset = _relative_save_offset;
12801 ndr->flags = _flags_save_string;
12804 uint32_t _flags_save_string = ndr->flags;
12805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12806 if (r->config_file) {
12807 uint32_t _relative_save_offset;
12808 _relative_save_offset = ndr->offset;
12809 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12810 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12811 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12812 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12814 ndr->offset = _relative_save_offset;
12816 ndr->flags = _flags_save_string;
12819 uint32_t _flags_save_string = ndr->flags;
12820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12821 if (r->help_file) {
12822 uint32_t _relative_save_offset;
12823 _relative_save_offset = ndr->offset;
12824 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12825 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12826 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12827 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12829 ndr->offset = _relative_save_offset;
12831 ndr->flags = _flags_save_string;
12834 uint32_t _flags_save_string = ndr->flags;
12835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12836 if (r->monitor_name) {
12837 uint32_t _relative_save_offset;
12838 _relative_save_offset = ndr->offset;
12839 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12840 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12841 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12842 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12844 ndr->offset = _relative_save_offset;
12846 ndr->flags = _flags_save_string;
12849 uint32_t _flags_save_string = ndr->flags;
12850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12851 if (r->default_datatype) {
12852 uint32_t _relative_save_offset;
12853 _relative_save_offset = ndr->offset;
12854 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12855 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12856 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12857 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12859 ndr->offset = _relative_save_offset;
12861 ndr->flags = _flags_save_string;
12864 uint32_t _flags_save_string_array = ndr->flags;
12865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12866 if (r->dependent_files) {
12867 uint32_t _relative_save_offset;
12868 _relative_save_offset = ndr->offset;
12869 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12870 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12871 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12872 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12874 ndr->offset = _relative_save_offset;
12876 ndr->flags = _flags_save_string_array;
12879 uint32_t _flags_save_string_array = ndr->flags;
12880 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12881 if (r->previous_names) {
12882 uint32_t _relative_save_offset;
12883 _relative_save_offset = ndr->offset;
12884 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12885 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12886 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12887 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12889 ndr->offset = _relative_save_offset;
12891 ndr->flags = _flags_save_string_array;
12894 uint32_t _flags_save_string = ndr->flags;
12895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12896 if (r->manufacturer_name) {
12897 uint32_t _relative_save_offset;
12898 _relative_save_offset = ndr->offset;
12899 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12900 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12901 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12902 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12904 ndr->offset = _relative_save_offset;
12906 ndr->flags = _flags_save_string;
12909 uint32_t _flags_save_string = ndr->flags;
12910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12911 if (r->manufacturer_url) {
12912 uint32_t _relative_save_offset;
12913 _relative_save_offset = ndr->offset;
12914 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12915 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12916 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12917 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12919 ndr->offset = _relative_save_offset;
12921 ndr->flags = _flags_save_string;
12924 uint32_t _flags_save_string = ndr->flags;
12925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12926 if (r->hardware_id) {
12927 uint32_t _relative_save_offset;
12928 _relative_save_offset = ndr->offset;
12929 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12930 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12931 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12932 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12933 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12934 ndr->offset = _relative_save_offset;
12936 ndr->flags = _flags_save_string;
12939 uint32_t _flags_save_string = ndr->flags;
12940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12942 uint32_t _relative_save_offset;
12943 _relative_save_offset = ndr->offset;
12944 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12945 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12946 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12947 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12949 ndr->offset = _relative_save_offset;
12951 ndr->flags = _flags_save_string;
12954 uint32_t _flags_save_string = ndr->flags;
12955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12956 if (r->print_processor) {
12957 uint32_t _relative_save_offset;
12958 _relative_save_offset = ndr->offset;
12959 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
12960 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
12961 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
12962 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
12963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
12964 ndr->offset = _relative_save_offset;
12966 ndr->flags = _flags_save_string;
12969 uint32_t _flags_save_string = ndr->flags;
12970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12971 if (r->vendor_setup) {
12972 uint32_t _relative_save_offset;
12973 _relative_save_offset = ndr->offset;
12974 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
12975 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
12976 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
12977 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
12978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
12979 ndr->offset = _relative_save_offset;
12981 ndr->flags = _flags_save_string;
12984 uint32_t _flags_save_string_array = ndr->flags;
12985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12986 if (r->color_profiles) {
12987 uint32_t _relative_save_offset;
12988 _relative_save_offset = ndr->offset;
12989 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
12990 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
12991 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
12992 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
12993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
12994 ndr->offset = _relative_save_offset;
12996 ndr->flags = _flags_save_string_array;
12999 uint32_t _flags_save_string = ndr->flags;
13000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13002 uint32_t _relative_save_offset;
13003 _relative_save_offset = ndr->offset;
13004 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13005 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13006 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13007 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13009 ndr->offset = _relative_save_offset;
13011 ndr->flags = _flags_save_string;
13014 uint32_t _flags_save_string_array = ndr->flags;
13015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13016 if (r->core_driver_dependencies) {
13017 uint32_t _relative_save_offset;
13018 _relative_save_offset = ndr->offset;
13019 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13020 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13021 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13022 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13024 ndr->offset = _relative_save_offset;
13026 ndr->flags = _flags_save_string_array;
13029 return NDR_ERR_SUCCESS;
13032 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13034 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13036 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13037 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13039 if (r->driver_name) {
13040 ndr_print_string(ndr, "driver_name", r->driver_name);
13043 ndr_print_ptr(ndr, "architecture", r->architecture);
13045 if (r->architecture) {
13046 ndr_print_string(ndr, "architecture", r->architecture);
13049 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13051 if (r->driver_path) {
13052 ndr_print_string(ndr, "driver_path", r->driver_path);
13055 ndr_print_ptr(ndr, "data_file", r->data_file);
13057 if (r->data_file) {
13058 ndr_print_string(ndr, "data_file", r->data_file);
13061 ndr_print_ptr(ndr, "config_file", r->config_file);
13063 if (r->config_file) {
13064 ndr_print_string(ndr, "config_file", r->config_file);
13067 ndr_print_ptr(ndr, "help_file", r->help_file);
13069 if (r->help_file) {
13070 ndr_print_string(ndr, "help_file", r->help_file);
13073 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13075 if (r->monitor_name) {
13076 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13079 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13081 if (r->default_datatype) {
13082 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13085 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13087 if (r->dependent_files) {
13088 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13091 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13093 if (r->previous_names) {
13094 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13097 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13098 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13099 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13101 if (r->manufacturer_name) {
13102 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13105 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13107 if (r->manufacturer_url) {
13108 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13111 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13113 if (r->hardware_id) {
13114 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13117 ndr_print_ptr(ndr, "provider", r->provider);
13120 ndr_print_string(ndr, "provider", r->provider);
13123 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13125 if (r->print_processor) {
13126 ndr_print_string(ndr, "print_processor", r->print_processor);
13129 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13131 if (r->vendor_setup) {
13132 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13135 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13137 if (r->color_profiles) {
13138 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13141 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13144 ndr_print_string(ndr, "inf_path", r->inf_path);
13147 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13148 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13150 if (r->core_driver_dependencies) {
13151 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13154 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13155 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13159 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13161 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13164 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13167 return NDR_ERR_SUCCESS;
13170 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13175 return NDR_ERR_SUCCESS;
13178 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13180 const char *val = NULL;
13183 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13184 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13185 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13186 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13187 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13189 ndr_print_enum(ndr, name, "ENUM", val, r);
13192 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13194 if (ndr_flags & NDR_SCALARS) {
13195 NDR_CHECK(ndr_push_align(ndr, 4));
13197 uint32_t _flags_save_string = ndr->flags;
13198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13200 ndr->flags = _flags_save_string;
13202 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13205 if (ndr_flags & NDR_BUFFERS) {
13207 uint32_t _flags_save_string = ndr->flags;
13208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13209 if (r->file_name) {
13210 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
13211 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13213 ndr->flags = _flags_save_string;
13216 return NDR_ERR_SUCCESS;
13219 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13221 uint32_t _ptr_file_name;
13222 TALLOC_CTX *_mem_save_file_name_0;
13223 if (ndr_flags & NDR_SCALARS) {
13224 NDR_CHECK(ndr_pull_align(ndr, 4));
13226 uint32_t _flags_save_string = ndr->flags;
13227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13229 if (_ptr_file_name) {
13230 NDR_PULL_ALLOC(ndr, r->file_name);
13231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13233 r->file_name = NULL;
13235 ndr->flags = _flags_save_string;
13237 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13240 if (ndr_flags & NDR_BUFFERS) {
13242 uint32_t _flags_save_string = ndr->flags;
13243 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13244 if (r->file_name) {
13245 uint32_t _relative_save_offset;
13246 _relative_save_offset = ndr->offset;
13247 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13248 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13249 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13250 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13252 ndr->offset = _relative_save_offset;
13254 ndr->flags = _flags_save_string;
13257 return NDR_ERR_SUCCESS;
13260 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13262 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13264 ndr_print_ptr(ndr, "file_name", r->file_name);
13266 if (r->file_name) {
13267 ndr_print_string(ndr, "file_name", r->file_name);
13270 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13271 ndr_print_uint32(ndr, "file_version", r->file_version);
13275 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13277 uint32_t cntr_file_info_1;
13278 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13280 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13281 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13283 if (r->driver_name) {
13284 ndr_print_string(ndr, "driver_name", r->driver_name);
13287 ndr_print_ptr(ndr, "architecture", r->architecture);
13289 if (r->architecture) {
13290 ndr_print_string(ndr, "architecture", r->architecture);
13293 ndr_print_ptr(ndr, "file_info", r->file_info);
13295 if (r->file_info) {
13296 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13298 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13300 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13301 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13308 ndr_print_uint32(ndr, "file_count", r->file_count);
13309 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13311 if (r->monitor_name) {
13312 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13315 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13317 if (r->default_datatype) {
13318 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13321 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13323 if (r->previous_names) {
13324 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13327 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13328 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13329 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13331 if (r->manufacturer_name) {
13332 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13335 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13337 if (r->manufacturer_url) {
13338 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13341 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13343 if (r->hardware_id) {
13344 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13347 ndr_print_ptr(ndr, "provider", r->provider);
13350 ndr_print_string(ndr, "provider", r->provider);
13356 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13358 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13361 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13363 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13364 if (ndr_flags & NDR_SCALARS) {
13365 int level = ndr_push_get_switch_value(ndr, r);
13368 NDR_CHECK(ndr_push_align(ndr, 4));
13369 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13370 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13374 NDR_CHECK(ndr_push_align(ndr, 4));
13375 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13376 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13380 NDR_CHECK(ndr_push_align(ndr, 4));
13381 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13382 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13386 NDR_CHECK(ndr_push_align(ndr, 4));
13387 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13388 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13392 NDR_CHECK(ndr_push_align(ndr, 4));
13393 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13394 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13398 NDR_CHECK(ndr_push_align(ndr, 8));
13399 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13400 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13404 NDR_CHECK(ndr_push_align(ndr, 8));
13405 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13406 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13410 NDR_CHECK(ndr_push_align(ndr, 8));
13411 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13412 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13420 if (ndr_flags & NDR_BUFFERS) {
13421 int level = ndr_push_get_switch_value(ndr, r);
13422 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13425 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13429 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13433 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13437 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13441 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13445 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13449 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13453 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13461 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13462 return NDR_ERR_SUCCESS;
13465 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
13467 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13469 level = ndr_pull_get_switch_value(ndr, r);
13470 if (ndr_flags & NDR_SCALARS) {
13473 NDR_CHECK(ndr_pull_align(ndr, 4));
13474 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13475 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13479 NDR_CHECK(ndr_pull_align(ndr, 4));
13480 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13481 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13485 NDR_CHECK(ndr_pull_align(ndr, 4));
13486 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13487 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13491 NDR_CHECK(ndr_pull_align(ndr, 4));
13492 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13493 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13497 NDR_CHECK(ndr_pull_align(ndr, 4));
13498 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13499 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13503 NDR_CHECK(ndr_pull_align(ndr, 8));
13504 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13505 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13509 NDR_CHECK(ndr_pull_align(ndr, 8));
13510 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13511 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13515 NDR_CHECK(ndr_pull_align(ndr, 8));
13516 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13517 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13525 if (ndr_flags & NDR_BUFFERS) {
13526 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13529 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13533 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13537 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13541 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13545 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13549 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13553 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13557 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13565 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13566 return NDR_ERR_SUCCESS;
13569 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
13572 level = ndr_print_get_switch_value(ndr, r);
13573 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
13576 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
13580 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
13584 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
13588 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
13592 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
13596 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
13600 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
13604 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
13613 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
13615 if (ndr_flags & NDR_SCALARS) {
13616 NDR_CHECK(ndr_push_align(ndr, 4));
13618 uint32_t _flags_save_string = ndr->flags;
13619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13621 ndr->flags = _flags_save_string;
13624 if (ndr_flags & NDR_BUFFERS) {
13626 return NDR_ERR_SUCCESS;
13629 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
13631 if (ndr_flags & NDR_SCALARS) {
13632 NDR_CHECK(ndr_pull_align(ndr, 4));
13634 uint32_t _flags_save_string = ndr->flags;
13635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13636 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13637 ndr->flags = _flags_save_string;
13640 if (ndr_flags & NDR_BUFFERS) {
13642 return NDR_ERR_SUCCESS;
13645 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
13647 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
13649 ndr_print_string(ndr, "directory_name", r->directory_name);
13653 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13655 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
13658 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
13660 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13661 if (ndr_flags & NDR_SCALARS) {
13662 int level = ndr_push_get_switch_value(ndr, r);
13665 NDR_CHECK(ndr_push_align(ndr, 4));
13666 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13667 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13671 NDR_CHECK(ndr_push_align(ndr, 4));
13672 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13673 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13678 if (ndr_flags & NDR_BUFFERS) {
13679 int level = ndr_push_get_switch_value(ndr, r);
13680 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13690 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13691 return NDR_ERR_SUCCESS;
13694 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
13696 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13698 level = ndr_pull_get_switch_value(ndr, r);
13699 if (ndr_flags & NDR_SCALARS) {
13702 NDR_CHECK(ndr_pull_align(ndr, 4));
13703 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13704 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13708 NDR_CHECK(ndr_pull_align(ndr, 4));
13709 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13710 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13715 if (ndr_flags & NDR_BUFFERS) {
13716 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13726 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13727 return NDR_ERR_SUCCESS;
13730 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
13733 level = ndr_print_get_switch_value(ndr, r);
13734 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
13737 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13741 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13747 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13749 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
13752 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
13754 if (ndr_flags & NDR_SCALARS) {
13755 NDR_CHECK(ndr_push_align(ndr, 4));
13757 uint32_t _flags_save_string = ndr->flags;
13758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13759 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
13760 ndr->flags = _flags_save_string;
13763 if (ndr_flags & NDR_BUFFERS) {
13765 uint32_t _flags_save_string = ndr->flags;
13766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13767 if (r->print_processor_name) {
13768 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
13769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
13771 ndr->flags = _flags_save_string;
13774 return NDR_ERR_SUCCESS;
13777 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
13779 uint32_t _ptr_print_processor_name;
13780 TALLOC_CTX *_mem_save_print_processor_name_0;
13781 if (ndr_flags & NDR_SCALARS) {
13782 NDR_CHECK(ndr_pull_align(ndr, 4));
13784 uint32_t _flags_save_string = ndr->flags;
13785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
13787 if (_ptr_print_processor_name) {
13788 NDR_PULL_ALLOC(ndr, r->print_processor_name);
13789 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
13791 r->print_processor_name = NULL;
13793 ndr->flags = _flags_save_string;
13796 if (ndr_flags & NDR_BUFFERS) {
13798 uint32_t _flags_save_string = ndr->flags;
13799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13800 if (r->print_processor_name) {
13801 uint32_t _relative_save_offset;
13802 _relative_save_offset = ndr->offset;
13803 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
13804 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13805 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
13806 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
13807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
13808 ndr->offset = _relative_save_offset;
13810 ndr->flags = _flags_save_string;
13813 return NDR_ERR_SUCCESS;
13816 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
13818 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
13820 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
13822 if (r->print_processor_name) {
13823 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
13829 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13831 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
13834 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
13836 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13837 if (ndr_flags & NDR_SCALARS) {
13838 int level = ndr_push_get_switch_value(ndr, r);
13841 NDR_CHECK(ndr_push_align(ndr, 4));
13842 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13843 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13851 if (ndr_flags & NDR_BUFFERS) {
13852 int level = ndr_push_get_switch_value(ndr, r);
13853 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13856 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13864 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13865 return NDR_ERR_SUCCESS;
13868 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
13870 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13872 level = ndr_pull_get_switch_value(ndr, r);
13873 if (ndr_flags & NDR_SCALARS) {
13876 NDR_CHECK(ndr_pull_align(ndr, 4));
13877 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13878 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13886 if (ndr_flags & NDR_BUFFERS) {
13887 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13890 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13898 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13899 return NDR_ERR_SUCCESS;
13902 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
13905 level = ndr_print_get_switch_value(ndr, r);
13906 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
13909 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
13918 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
13920 if (ndr_flags & NDR_SCALARS) {
13921 NDR_CHECK(ndr_push_align(ndr, 4));
13923 uint32_t _flags_save_string = ndr->flags;
13924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13925 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13926 ndr->flags = _flags_save_string;
13929 if (ndr_flags & NDR_BUFFERS) {
13931 return NDR_ERR_SUCCESS;
13934 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
13936 if (ndr_flags & NDR_SCALARS) {
13937 NDR_CHECK(ndr_pull_align(ndr, 4));
13939 uint32_t _flags_save_string = ndr->flags;
13940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13941 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13942 ndr->flags = _flags_save_string;
13945 if (ndr_flags & NDR_BUFFERS) {
13947 return NDR_ERR_SUCCESS;
13950 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
13952 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
13954 ndr_print_string(ndr, "directory_name", r->directory_name);
13958 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13960 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
13963 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
13965 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13966 if (ndr_flags & NDR_SCALARS) {
13967 int level = ndr_push_get_switch_value(ndr, r);
13970 NDR_CHECK(ndr_push_align(ndr, 4));
13971 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13972 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13976 NDR_CHECK(ndr_push_align(ndr, 4));
13977 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13978 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13983 if (ndr_flags & NDR_BUFFERS) {
13984 int level = ndr_push_get_switch_value(ndr, r);
13985 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13995 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13996 return NDR_ERR_SUCCESS;
13999 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14001 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14003 level = ndr_pull_get_switch_value(ndr, r);
14004 if (ndr_flags & NDR_SCALARS) {
14007 NDR_CHECK(ndr_pull_align(ndr, 4));
14008 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14009 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14013 NDR_CHECK(ndr_pull_align(ndr, 4));
14014 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14015 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14020 if (ndr_flags & NDR_BUFFERS) {
14021 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14031 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14032 return NDR_ERR_SUCCESS;
14035 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14038 level = ndr_print_get_switch_value(ndr, r);
14039 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14042 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14046 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14052 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14054 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14057 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14059 if (ndr_flags & NDR_SCALARS) {
14060 NDR_CHECK(ndr_push_align(ndr, 4));
14061 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14062 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14063 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14065 if (ndr_flags & NDR_BUFFERS) {
14066 if (r->document_name) {
14067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14070 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14072 if (r->output_file) {
14073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14076 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14082 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14085 return NDR_ERR_SUCCESS;
14088 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14090 uint32_t _ptr_document_name;
14091 TALLOC_CTX *_mem_save_document_name_0;
14092 uint32_t _ptr_output_file;
14093 TALLOC_CTX *_mem_save_output_file_0;
14094 uint32_t _ptr_datatype;
14095 TALLOC_CTX *_mem_save_datatype_0;
14096 if (ndr_flags & NDR_SCALARS) {
14097 NDR_CHECK(ndr_pull_align(ndr, 4));
14098 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14099 if (_ptr_document_name) {
14100 NDR_PULL_ALLOC(ndr, r->document_name);
14102 r->document_name = NULL;
14104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14105 if (_ptr_output_file) {
14106 NDR_PULL_ALLOC(ndr, r->output_file);
14108 r->output_file = NULL;
14110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14111 if (_ptr_datatype) {
14112 NDR_PULL_ALLOC(ndr, r->datatype);
14114 r->datatype = NULL;
14117 if (ndr_flags & NDR_BUFFERS) {
14118 if (r->document_name) {
14119 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14120 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14121 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14122 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14123 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14124 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
14126 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14127 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14128 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14130 if (r->output_file) {
14131 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14132 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14133 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14134 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14135 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14136 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->output_file), ndr_get_array_length(ndr, &r->output_file));
14138 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14139 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14143 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14144 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14145 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14146 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14147 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14148 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
14150 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14151 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14155 return NDR_ERR_SUCCESS;
14158 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14160 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14162 ndr_print_ptr(ndr, "document_name", r->document_name);
14164 if (r->document_name) {
14165 ndr_print_string(ndr, "document_name", r->document_name);
14168 ndr_print_ptr(ndr, "output_file", r->output_file);
14170 if (r->output_file) {
14171 ndr_print_string(ndr, "output_file", r->output_file);
14174 ndr_print_ptr(ndr, "datatype", r->datatype);
14177 ndr_print_string(ndr, "datatype", r->datatype);
14183 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14185 if (ndr_flags & NDR_SCALARS) {
14186 int level = ndr_push_get_switch_value(ndr, r);
14187 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14204 if (ndr_flags & NDR_BUFFERS) {
14205 int level = ndr_push_get_switch_value(ndr, r);
14209 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14224 return NDR_ERR_SUCCESS;
14227 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14231 TALLOC_CTX *_mem_save_info1_0;
14232 level = ndr_pull_get_switch_value(ndr, r);
14233 if (ndr_flags & NDR_SCALARS) {
14234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14235 if (_level != level) {
14236 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14240 uint32_t _ptr_info1;
14241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14243 NDR_PULL_ALLOC(ndr, r->info1);
14260 if (ndr_flags & NDR_BUFFERS) {
14264 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14265 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14266 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14282 return NDR_ERR_SUCCESS;
14285 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14288 level = ndr_print_get_switch_value(ndr, r);
14289 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14292 ndr_print_ptr(ndr, "info1", r->info1);
14295 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14312 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14314 if (ndr_flags & NDR_SCALARS) {
14315 NDR_CHECK(ndr_push_align(ndr, 4));
14316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14322 uint32_t _flags_save_string = ndr->flags;
14323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14325 struct ndr_push *_ndr_extra_string;
14326 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14327 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14328 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14330 ndr->flags = _flags_save_string;
14333 if (ndr_flags & NDR_BUFFERS) {
14335 return NDR_ERR_SUCCESS;
14338 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14340 if (ndr_flags & NDR_SCALARS) {
14341 NDR_CHECK(ndr_pull_align(ndr, 4));
14342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
14348 uint32_t _flags_save_string = ndr->flags;
14349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14351 struct ndr_pull *_ndr_extra_string;
14352 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14353 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14354 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14356 ndr->flags = _flags_save_string;
14359 if (ndr_flags & NDR_BUFFERS) {
14361 return NDR_ERR_SUCCESS;
14364 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14366 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14368 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
14369 ndr_print_uint32(ndr, "major", r->major);
14370 ndr_print_uint32(ndr, "minor", r->minor);
14371 ndr_print_uint32(ndr, "build", r->build);
14372 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
14373 ndr_print_string(ndr, "extra_string", r->extra_string);
14377 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14379 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14382 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14384 if (ndr_flags & NDR_SCALARS) {
14385 NDR_CHECK(ndr_push_align(ndr, 4));
14386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14392 uint32_t _flags_save_string = ndr->flags;
14393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14395 struct ndr_push *_ndr_extra_string;
14396 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14397 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14398 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14400 ndr->flags = _flags_save_string;
14402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
14403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
14405 if (ndr_flags & NDR_BUFFERS) {
14407 return NDR_ERR_SUCCESS;
14410 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
14412 if (ndr_flags & NDR_SCALARS) {
14413 NDR_CHECK(ndr_pull_align(ndr, 4));
14414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
14420 uint32_t _flags_save_string = ndr->flags;
14421 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14423 struct ndr_pull *_ndr_extra_string;
14424 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14425 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14426 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14428 ndr->flags = _flags_save_string;
14430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
14431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
14433 if (ndr_flags & NDR_BUFFERS) {
14435 return NDR_ERR_SUCCESS;
14438 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
14440 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
14442 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
14443 ndr_print_uint32(ndr, "major", r->major);
14444 ndr_print_uint32(ndr, "minor", r->minor);
14445 ndr_print_uint32(ndr, "build", r->build);
14446 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
14447 ndr_print_string(ndr, "extra_string", r->extra_string);
14448 ndr_print_uint32(ndr, "unknown2", r->unknown2);
14449 ndr_print_uint32(ndr, "unknown3", r->unknown3);
14453 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
14455 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
14458 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
14460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14461 return NDR_ERR_SUCCESS;
14464 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
14467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14469 return NDR_ERR_SUCCESS;
14472 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
14474 const char *val = NULL;
14477 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
14478 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
14479 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
14480 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
14481 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
14483 ndr_print_enum(ndr, name, "ENUM", val, r);
14486 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
14488 if (ndr_flags & NDR_SCALARS) {
14489 int level = ndr_push_get_switch_value(ndr, r);
14491 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
14494 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
14496 uint32_t _flags_save_string = ndr->flags;
14497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14498 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
14499 ndr->flags = _flags_save_string;
14503 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
14505 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14507 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
14508 ndr->flags = _flags_save_DATA_BLOB;
14512 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
14513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
14516 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
14518 uint32_t _flags_save_string_array = ndr->flags;
14519 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14520 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
14521 ndr->flags = _flags_save_string_array;
14527 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14529 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
14530 ndr->flags = _flags_save_DATA_BLOB;
14536 if (ndr_flags & NDR_BUFFERS) {
14537 int level = ndr_push_get_switch_value(ndr, r);
14539 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14542 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14545 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14548 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14551 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14559 return NDR_ERR_SUCCESS;
14562 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
14565 level = ndr_pull_get_switch_value(ndr, r);
14566 if (ndr_flags & NDR_SCALARS) {
14568 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
14571 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
14573 uint32_t _flags_save_string = ndr->flags;
14574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14575 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
14576 ndr->flags = _flags_save_string;
14580 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
14582 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14584 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
14585 ndr->flags = _flags_save_DATA_BLOB;
14589 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
14590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
14593 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
14595 uint32_t _flags_save_string_array = ndr->flags;
14596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14597 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
14598 ndr->flags = _flags_save_string_array;
14604 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14606 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
14607 ndr->flags = _flags_save_DATA_BLOB;
14613 if (ndr_flags & NDR_BUFFERS) {
14615 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14618 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14621 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14624 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14627 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14635 return NDR_ERR_SUCCESS;
14638 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
14641 level = ndr_print_get_switch_value(ndr, r);
14642 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
14644 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
14647 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
14648 ndr_print_string(ndr, "string", r->string);
14651 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
14652 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
14655 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
14656 ndr_print_uint32(ndr, "value", r->value);
14659 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
14660 ndr_print_string_array(ndr, "string_array", r->string_array);
14664 ndr_print_DATA_BLOB(ndr, "data", r->data);
14670 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14672 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
14675 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
14677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14678 return NDR_ERR_SUCCESS;
14681 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
14684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14686 return NDR_ERR_SUCCESS;
14689 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
14691 const char *val = NULL;
14694 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
14695 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
14696 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
14698 ndr_print_enum(ndr, name, "ENUM", val, r);
14701 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
14703 if (ndr_flags & NDR_SCALARS) {
14704 NDR_CHECK(ndr_push_align(ndr, 4));
14705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
14706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
14708 if (ndr_flags & NDR_BUFFERS) {
14710 return NDR_ERR_SUCCESS;
14713 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
14715 if (ndr_flags & NDR_SCALARS) {
14716 NDR_CHECK(ndr_pull_align(ndr, 4));
14717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
14718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
14720 if (ndr_flags & NDR_BUFFERS) {
14722 return NDR_ERR_SUCCESS;
14725 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
14727 ndr_print_struct(ndr, name, "spoolss_FormSize");
14729 ndr_print_uint32(ndr, "width", r->width);
14730 ndr_print_uint32(ndr, "height", r->height);
14734 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
14736 if (ndr_flags & NDR_SCALARS) {
14737 NDR_CHECK(ndr_push_align(ndr, 4));
14738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
14739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
14740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
14741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
14743 if (ndr_flags & NDR_BUFFERS) {
14745 return NDR_ERR_SUCCESS;
14748 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
14750 if (ndr_flags & NDR_SCALARS) {
14751 NDR_CHECK(ndr_pull_align(ndr, 4));
14752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
14753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
14754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
14755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
14757 if (ndr_flags & NDR_BUFFERS) {
14759 return NDR_ERR_SUCCESS;
14762 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
14764 ndr_print_struct(ndr, name, "spoolss_FormArea");
14766 ndr_print_uint32(ndr, "left", r->left);
14767 ndr_print_uint32(ndr, "top", r->top);
14768 ndr_print_uint32(ndr, "right", r->right);
14769 ndr_print_uint32(ndr, "bottom", r->bottom);
14773 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
14775 if (ndr_flags & NDR_SCALARS) {
14776 NDR_CHECK(ndr_push_align(ndr, 4));
14777 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14779 uint32_t _flags_save_string = ndr->flags;
14780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14781 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14782 ndr->flags = _flags_save_string;
14784 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14785 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14787 if (ndr_flags & NDR_BUFFERS) {
14789 uint32_t _flags_save_string = ndr->flags;
14790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14791 if (r->form_name) {
14792 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14793 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14795 ndr->flags = _flags_save_string;
14798 return NDR_ERR_SUCCESS;
14801 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
14803 uint32_t _ptr_form_name;
14804 TALLOC_CTX *_mem_save_form_name_0;
14805 if (ndr_flags & NDR_SCALARS) {
14806 NDR_CHECK(ndr_pull_align(ndr, 4));
14807 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
14809 uint32_t _flags_save_string = ndr->flags;
14810 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
14812 if (_ptr_form_name) {
14813 NDR_PULL_ALLOC(ndr, r->form_name);
14814 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
14816 r->form_name = NULL;
14818 ndr->flags = _flags_save_string;
14820 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14821 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14823 if (ndr_flags & NDR_BUFFERS) {
14825 uint32_t _flags_save_string = ndr->flags;
14826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14827 if (r->form_name) {
14828 uint32_t _relative_save_offset;
14829 _relative_save_offset = ndr->offset;
14830 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
14831 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14832 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
14833 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
14834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
14835 ndr->offset = _relative_save_offset;
14837 ndr->flags = _flags_save_string;
14840 return NDR_ERR_SUCCESS;
14843 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
14845 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
14847 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
14848 ndr_print_ptr(ndr, "form_name", r->form_name);
14850 if (r->form_name) {
14851 ndr_print_string(ndr, "form_name", r->form_name);
14854 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
14855 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
14859 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14861 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
14864 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14867 return NDR_ERR_SUCCESS;
14870 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14875 return NDR_ERR_SUCCESS;
14878 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
14880 ndr_print_uint32(ndr, name, r);
14882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
14883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
14884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
14888 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
14890 if (ndr_flags & NDR_SCALARS) {
14891 NDR_CHECK(ndr_push_align(ndr, 4));
14892 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14894 uint32_t _flags_save_string = ndr->flags;
14895 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14896 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14897 ndr->flags = _flags_save_string;
14899 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14900 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14902 uint32_t _flags_save_string = ndr->flags;
14903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14904 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
14905 ndr->flags = _flags_save_string;
14907 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
14909 uint32_t _flags_save_string = ndr->flags;
14910 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14911 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
14912 ndr->flags = _flags_save_string;
14914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
14916 uint32_t _flags_save_string = ndr->flags;
14917 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14918 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
14919 ndr->flags = _flags_save_string;
14921 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
14923 if (ndr_flags & NDR_BUFFERS) {
14925 uint32_t _flags_save_string = ndr->flags;
14926 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14927 if (r->form_name) {
14928 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14929 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14931 ndr->flags = _flags_save_string;
14934 uint32_t _flags_save_string = ndr->flags;
14935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14937 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
14938 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
14940 ndr->flags = _flags_save_string;
14943 uint32_t _flags_save_string = ndr->flags;
14944 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14946 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
14947 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
14949 ndr->flags = _flags_save_string;
14952 uint32_t _flags_save_string = ndr->flags;
14953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14954 if (r->display_name) {
14955 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
14956 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
14958 ndr->flags = _flags_save_string;
14961 return NDR_ERR_SUCCESS;
14964 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
14966 uint32_t _ptr_form_name;
14967 TALLOC_CTX *_mem_save_form_name_0;
14968 uint32_t _ptr_keyword;
14969 TALLOC_CTX *_mem_save_keyword_0;
14970 uint32_t _ptr_mui_dll;
14971 TALLOC_CTX *_mem_save_mui_dll_0;
14972 uint32_t _ptr_display_name;
14973 TALLOC_CTX *_mem_save_display_name_0;
14974 if (ndr_flags & NDR_SCALARS) {
14975 NDR_CHECK(ndr_pull_align(ndr, 4));
14976 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
14978 uint32_t _flags_save_string = ndr->flags;
14979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14980 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
14981 if (_ptr_form_name) {
14982 NDR_PULL_ALLOC(ndr, r->form_name);
14983 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
14985 r->form_name = NULL;
14987 ndr->flags = _flags_save_string;
14989 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14990 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14992 uint32_t _flags_save_string = ndr->flags;
14993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14994 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
14995 if (_ptr_keyword) {
14996 NDR_PULL_ALLOC(ndr, r->keyword);
14997 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15001 ndr->flags = _flags_save_string;
15003 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15005 uint32_t _flags_save_string = ndr->flags;
15006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15008 if (_ptr_mui_dll) {
15009 NDR_PULL_ALLOC(ndr, r->mui_dll);
15010 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15014 ndr->flags = _flags_save_string;
15016 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15018 uint32_t _flags_save_string = ndr->flags;
15019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15021 if (_ptr_display_name) {
15022 NDR_PULL_ALLOC(ndr, r->display_name);
15023 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15025 r->display_name = NULL;
15027 ndr->flags = _flags_save_string;
15029 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15031 if (ndr_flags & NDR_BUFFERS) {
15033 uint32_t _flags_save_string = ndr->flags;
15034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15035 if (r->form_name) {
15036 uint32_t _relative_save_offset;
15037 _relative_save_offset = ndr->offset;
15038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15039 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15040 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15043 ndr->offset = _relative_save_offset;
15045 ndr->flags = _flags_save_string;
15048 uint32_t _flags_save_string = ndr->flags;
15049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15051 uint32_t _relative_save_offset;
15052 _relative_save_offset = ndr->offset;
15053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15054 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15055 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15058 ndr->offset = _relative_save_offset;
15060 ndr->flags = _flags_save_string;
15063 uint32_t _flags_save_string = ndr->flags;
15064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15066 uint32_t _relative_save_offset;
15067 _relative_save_offset = ndr->offset;
15068 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15069 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15070 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15071 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15073 ndr->offset = _relative_save_offset;
15075 ndr->flags = _flags_save_string;
15078 uint32_t _flags_save_string = ndr->flags;
15079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15080 if (r->display_name) {
15081 uint32_t _relative_save_offset;
15082 _relative_save_offset = ndr->offset;
15083 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15084 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15085 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15086 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15088 ndr->offset = _relative_save_offset;
15090 ndr->flags = _flags_save_string;
15093 return NDR_ERR_SUCCESS;
15096 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15098 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15100 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15101 ndr_print_ptr(ndr, "form_name", r->form_name);
15103 if (r->form_name) {
15104 ndr_print_string(ndr, "form_name", r->form_name);
15107 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15108 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15109 ndr_print_ptr(ndr, "keyword", r->keyword);
15112 ndr_print_string(ndr, "keyword", r->keyword);
15115 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15116 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15119 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15122 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15123 ndr_print_ptr(ndr, "display_name", r->display_name);
15125 if (r->display_name) {
15126 ndr_print_string(ndr, "display_name", r->display_name);
15129 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15133 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15135 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15138 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15140 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15141 if (ndr_flags & NDR_SCALARS) {
15142 int level = ndr_push_get_switch_value(ndr, r);
15145 NDR_CHECK(ndr_push_align(ndr, 4));
15146 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15147 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15151 NDR_CHECK(ndr_push_align(ndr, 4));
15152 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15153 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15161 if (ndr_flags & NDR_BUFFERS) {
15162 int level = ndr_push_get_switch_value(ndr, r);
15163 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15166 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15170 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15178 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15179 return NDR_ERR_SUCCESS;
15182 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15184 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15186 level = ndr_pull_get_switch_value(ndr, r);
15187 if (ndr_flags & NDR_SCALARS) {
15190 NDR_CHECK(ndr_pull_align(ndr, 4));
15191 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15192 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15196 NDR_CHECK(ndr_pull_align(ndr, 4));
15197 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15198 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15206 if (ndr_flags & NDR_BUFFERS) {
15207 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15210 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15214 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15222 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15223 return NDR_ERR_SUCCESS;
15226 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15229 level = ndr_print_get_switch_value(ndr, r);
15230 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15233 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15237 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15246 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15248 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15251 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15253 if (ndr_flags & NDR_SCALARS) {
15254 NDR_CHECK(ndr_push_align(ndr, 4));
15255 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15256 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15257 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15258 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15260 if (ndr_flags & NDR_BUFFERS) {
15261 if (r->form_name) {
15262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15265 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15268 return NDR_ERR_SUCCESS;
15271 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15273 uint32_t _ptr_form_name;
15274 TALLOC_CTX *_mem_save_form_name_0;
15275 if (ndr_flags & NDR_SCALARS) {
15276 NDR_CHECK(ndr_pull_align(ndr, 4));
15277 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15279 if (_ptr_form_name) {
15280 NDR_PULL_ALLOC(ndr, r->form_name);
15282 r->form_name = NULL;
15284 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15285 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15287 if (ndr_flags & NDR_BUFFERS) {
15288 if (r->form_name) {
15289 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15290 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15291 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15292 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15293 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15294 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
15296 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15297 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15301 return NDR_ERR_SUCCESS;
15304 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15306 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15308 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15309 ndr_print_ptr(ndr, "form_name", r->form_name);
15311 if (r->form_name) {
15312 ndr_print_string(ndr, "form_name", r->form_name);
15315 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15316 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15320 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15322 if (ndr_flags & NDR_SCALARS) {
15323 NDR_CHECK(ndr_push_align(ndr, 4));
15324 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15326 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15327 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15329 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15330 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15332 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15335 if (ndr_flags & NDR_BUFFERS) {
15336 if (r->form_name) {
15337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15340 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15346 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15352 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15354 if (r->display_name) {
15355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15358 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15361 return NDR_ERR_SUCCESS;
15364 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15366 uint32_t _ptr_form_name;
15367 TALLOC_CTX *_mem_save_form_name_0;
15368 uint32_t _ptr_keyword;
15369 TALLOC_CTX *_mem_save_keyword_0;
15370 uint32_t _ptr_mui_dll;
15371 TALLOC_CTX *_mem_save_mui_dll_0;
15372 uint32_t _ptr_display_name;
15373 TALLOC_CTX *_mem_save_display_name_0;
15374 if (ndr_flags & NDR_SCALARS) {
15375 NDR_CHECK(ndr_pull_align(ndr, 4));
15376 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15378 if (_ptr_form_name) {
15379 NDR_PULL_ALLOC(ndr, r->form_name);
15381 r->form_name = NULL;
15383 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15384 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15386 if (_ptr_keyword) {
15387 NDR_PULL_ALLOC(ndr, r->keyword);
15391 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15393 if (_ptr_mui_dll) {
15394 NDR_PULL_ALLOC(ndr, r->mui_dll);
15398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15400 if (_ptr_display_name) {
15401 NDR_PULL_ALLOC(ndr, r->display_name);
15403 r->display_name = NULL;
15405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15407 if (ndr_flags & NDR_BUFFERS) {
15408 if (r->form_name) {
15409 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15410 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15411 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15412 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15413 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15414 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
15416 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15421 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15422 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15423 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15424 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15425 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15426 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->keyword), ndr_get_array_length(ndr, &r->keyword));
15428 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15429 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
15430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15433 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15434 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15435 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15436 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15437 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15438 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->mui_dll), ndr_get_array_length(ndr, &r->mui_dll));
15440 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15441 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
15442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15444 if (r->display_name) {
15445 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15446 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15447 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15448 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15449 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15450 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->display_name), ndr_get_array_length(ndr, &r->display_name));
15452 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15453 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
15454 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15457 return NDR_ERR_SUCCESS;
15460 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
15462 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
15464 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15465 ndr_print_ptr(ndr, "form_name", r->form_name);
15467 if (r->form_name) {
15468 ndr_print_string(ndr, "form_name", r->form_name);
15471 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15472 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15473 ndr_print_ptr(ndr, "keyword", r->keyword);
15476 ndr_print_string(ndr, "keyword", r->keyword);
15479 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15480 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15483 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15486 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15487 ndr_print_ptr(ndr, "display_name", r->display_name);
15489 if (r->display_name) {
15490 ndr_print_string(ndr, "display_name", r->display_name);
15493 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15497 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
15499 if (ndr_flags & NDR_SCALARS) {
15500 int level = ndr_push_get_switch_value(ndr, r);
15501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15504 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15508 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
15512 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15515 if (ndr_flags & NDR_BUFFERS) {
15516 int level = ndr_push_get_switch_value(ndr, r);
15520 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15526 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15531 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15534 return NDR_ERR_SUCCESS;
15537 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
15541 TALLOC_CTX *_mem_save_info1_0;
15542 TALLOC_CTX *_mem_save_info2_0;
15543 level = ndr_pull_get_switch_value(ndr, r);
15544 if (ndr_flags & NDR_SCALARS) {
15545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15546 if (_level != level) {
15547 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
15551 uint32_t _ptr_info1;
15552 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15554 NDR_PULL_ALLOC(ndr, r->info1);
15561 uint32_t _ptr_info2;
15562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
15564 NDR_PULL_ALLOC(ndr, r->info2);
15571 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15574 if (ndr_flags & NDR_BUFFERS) {
15578 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15579 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15580 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15587 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15588 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
15589 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
15595 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15598 return NDR_ERR_SUCCESS;
15601 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
15604 level = ndr_print_get_switch_value(ndr, r);
15605 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
15608 ndr_print_ptr(ndr, "info1", r->info1);
15611 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
15617 ndr_print_ptr(ndr, "info2", r->info2);
15620 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
15626 ndr_print_bad_level(ndr, name, level);
15630 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
15632 if (ndr_flags & NDR_SCALARS) {
15633 NDR_CHECK(ndr_push_align(ndr, 4));
15635 uint32_t _flags_save_string = ndr->flags;
15636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15638 ndr->flags = _flags_save_string;
15641 if (ndr_flags & NDR_BUFFERS) {
15643 uint32_t _flags_save_string = ndr->flags;
15644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15645 if (r->port_name) {
15646 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15649 ndr->flags = _flags_save_string;
15652 return NDR_ERR_SUCCESS;
15655 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
15657 uint32_t _ptr_port_name;
15658 TALLOC_CTX *_mem_save_port_name_0;
15659 if (ndr_flags & NDR_SCALARS) {
15660 NDR_CHECK(ndr_pull_align(ndr, 4));
15662 uint32_t _flags_save_string = ndr->flags;
15663 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15664 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15665 if (_ptr_port_name) {
15666 NDR_PULL_ALLOC(ndr, r->port_name);
15667 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15669 r->port_name = NULL;
15671 ndr->flags = _flags_save_string;
15674 if (ndr_flags & NDR_BUFFERS) {
15676 uint32_t _flags_save_string = ndr->flags;
15677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15678 if (r->port_name) {
15679 uint32_t _relative_save_offset;
15680 _relative_save_offset = ndr->offset;
15681 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15682 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15683 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15684 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15686 ndr->offset = _relative_save_offset;
15688 ndr->flags = _flags_save_string;
15691 return NDR_ERR_SUCCESS;
15694 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
15696 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
15698 ndr_print_ptr(ndr, "port_name", r->port_name);
15700 if (r->port_name) {
15701 ndr_print_string(ndr, "port_name", r->port_name);
15707 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15709 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
15712 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15715 return NDR_ERR_SUCCESS;
15718 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15723 return NDR_ERR_SUCCESS;
15726 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
15728 ndr_print_uint32(ndr, name, r);
15730 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
15731 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
15732 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
15733 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
15737 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
15739 if (ndr_flags & NDR_SCALARS) {
15740 NDR_CHECK(ndr_push_align(ndr, 4));
15742 uint32_t _flags_save_string = ndr->flags;
15743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15744 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15745 ndr->flags = _flags_save_string;
15748 uint32_t _flags_save_string = ndr->flags;
15749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15750 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
15751 ndr->flags = _flags_save_string;
15754 uint32_t _flags_save_string = ndr->flags;
15755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15756 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
15757 ndr->flags = _flags_save_string;
15759 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
15760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
15762 if (ndr_flags & NDR_BUFFERS) {
15764 uint32_t _flags_save_string = ndr->flags;
15765 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15766 if (r->port_name) {
15767 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15768 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15770 ndr->flags = _flags_save_string;
15773 uint32_t _flags_save_string = ndr->flags;
15774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15775 if (r->monitor_name) {
15776 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
15777 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
15779 ndr->flags = _flags_save_string;
15782 uint32_t _flags_save_string = ndr->flags;
15783 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15784 if (r->description) {
15785 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
15786 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
15788 ndr->flags = _flags_save_string;
15791 return NDR_ERR_SUCCESS;
15794 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
15796 uint32_t _ptr_port_name;
15797 TALLOC_CTX *_mem_save_port_name_0;
15798 uint32_t _ptr_monitor_name;
15799 TALLOC_CTX *_mem_save_monitor_name_0;
15800 uint32_t _ptr_description;
15801 TALLOC_CTX *_mem_save_description_0;
15802 if (ndr_flags & NDR_SCALARS) {
15803 NDR_CHECK(ndr_pull_align(ndr, 4));
15805 uint32_t _flags_save_string = ndr->flags;
15806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15808 if (_ptr_port_name) {
15809 NDR_PULL_ALLOC(ndr, r->port_name);
15810 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15812 r->port_name = NULL;
15814 ndr->flags = _flags_save_string;
15817 uint32_t _flags_save_string = ndr->flags;
15818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
15820 if (_ptr_monitor_name) {
15821 NDR_PULL_ALLOC(ndr, r->monitor_name);
15822 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
15824 r->monitor_name = NULL;
15826 ndr->flags = _flags_save_string;
15829 uint32_t _flags_save_string = ndr->flags;
15830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
15832 if (_ptr_description) {
15833 NDR_PULL_ALLOC(ndr, r->description);
15834 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
15836 r->description = NULL;
15838 ndr->flags = _flags_save_string;
15840 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
15841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
15843 if (ndr_flags & NDR_BUFFERS) {
15845 uint32_t _flags_save_string = ndr->flags;
15846 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15847 if (r->port_name) {
15848 uint32_t _relative_save_offset;
15849 _relative_save_offset = ndr->offset;
15850 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15851 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15852 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15853 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15854 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15855 ndr->offset = _relative_save_offset;
15857 ndr->flags = _flags_save_string;
15860 uint32_t _flags_save_string = ndr->flags;
15861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15862 if (r->monitor_name) {
15863 uint32_t _relative_save_offset;
15864 _relative_save_offset = ndr->offset;
15865 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
15866 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15867 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
15868 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
15869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
15870 ndr->offset = _relative_save_offset;
15872 ndr->flags = _flags_save_string;
15875 uint32_t _flags_save_string = ndr->flags;
15876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15877 if (r->description) {
15878 uint32_t _relative_save_offset;
15879 _relative_save_offset = ndr->offset;
15880 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
15881 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
15882 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
15883 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
15884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
15885 ndr->offset = _relative_save_offset;
15887 ndr->flags = _flags_save_string;
15890 return NDR_ERR_SUCCESS;
15893 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
15895 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
15897 ndr_print_ptr(ndr, "port_name", r->port_name);
15899 if (r->port_name) {
15900 ndr_print_string(ndr, "port_name", r->port_name);
15903 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
15905 if (r->monitor_name) {
15906 ndr_print_string(ndr, "monitor_name", r->monitor_name);
15909 ndr_print_ptr(ndr, "description", r->description);
15911 if (r->description) {
15912 ndr_print_string(ndr, "description", r->description);
15915 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
15916 ndr_print_uint32(ndr, "reserved", r->reserved);
15920 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15922 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
15925 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
15927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15928 return NDR_ERR_SUCCESS;
15931 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
15934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15936 return NDR_ERR_SUCCESS;
15939 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
15941 const char *val = NULL;
15944 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
15945 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
15946 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
15947 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
15948 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
15949 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
15950 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
15951 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
15952 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
15953 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
15954 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
15955 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
15956 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
15958 ndr_print_enum(ndr, name, "ENUM", val, r);
15961 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
15963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15964 return NDR_ERR_SUCCESS;
15967 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
15970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15972 return NDR_ERR_SUCCESS;
15975 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
15977 const char *val = NULL;
15980 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
15981 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
15982 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
15984 ndr_print_enum(ndr, name, "ENUM", val, r);
15987 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
15989 if (ndr_flags & NDR_SCALARS) {
15990 NDR_CHECK(ndr_push_align(ndr, 4));
15991 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
15993 uint32_t _flags_save_string = ndr->flags;
15994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15995 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
15996 ndr->flags = _flags_save_string;
15998 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16000 if (ndr_flags & NDR_BUFFERS) {
16002 uint32_t _flags_save_string = ndr->flags;
16003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16004 if (r->status_string) {
16005 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16006 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16008 ndr->flags = _flags_save_string;
16011 return NDR_ERR_SUCCESS;
16014 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16016 uint32_t _ptr_status_string;
16017 TALLOC_CTX *_mem_save_status_string_0;
16018 if (ndr_flags & NDR_SCALARS) {
16019 NDR_CHECK(ndr_pull_align(ndr, 4));
16020 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16022 uint32_t _flags_save_string = ndr->flags;
16023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16025 if (_ptr_status_string) {
16026 NDR_PULL_ALLOC(ndr, r->status_string);
16027 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16029 r->status_string = NULL;
16031 ndr->flags = _flags_save_string;
16033 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16035 if (ndr_flags & NDR_BUFFERS) {
16037 uint32_t _flags_save_string = ndr->flags;
16038 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16039 if (r->status_string) {
16040 uint32_t _relative_save_offset;
16041 _relative_save_offset = ndr->offset;
16042 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16043 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16044 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16045 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16047 ndr->offset = _relative_save_offset;
16049 ndr->flags = _flags_save_string;
16052 return NDR_ERR_SUCCESS;
16055 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16057 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16059 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16060 ndr_print_ptr(ndr, "status_string", r->status_string);
16062 if (r->status_string) {
16063 ndr_print_string(ndr, "status_string", r->status_string);
16066 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16070 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16072 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16075 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16077 if (ndr_flags & NDR_SCALARS) {
16078 NDR_CHECK(ndr_push_align(ndr, 4));
16080 uint32_t _flags_save_string = ndr->flags;
16081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16082 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16083 ndr->flags = _flags_save_string;
16085 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16087 if (ndr_flags & NDR_BUFFERS) {
16089 uint32_t _flags_save_string = ndr->flags;
16090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16091 if (r->port_name) {
16092 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16093 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16095 ndr->flags = _flags_save_string;
16098 return NDR_ERR_SUCCESS;
16101 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16103 uint32_t _ptr_port_name;
16104 TALLOC_CTX *_mem_save_port_name_0;
16105 if (ndr_flags & NDR_SCALARS) {
16106 NDR_CHECK(ndr_pull_align(ndr, 4));
16108 uint32_t _flags_save_string = ndr->flags;
16109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16111 if (_ptr_port_name) {
16112 NDR_PULL_ALLOC(ndr, r->port_name);
16113 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16115 r->port_name = NULL;
16117 ndr->flags = _flags_save_string;
16119 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16121 if (ndr_flags & NDR_BUFFERS) {
16123 uint32_t _flags_save_string = ndr->flags;
16124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16125 if (r->port_name) {
16126 uint32_t _relative_save_offset;
16127 _relative_save_offset = ndr->offset;
16128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16129 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16130 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16133 ndr->offset = _relative_save_offset;
16135 ndr->flags = _flags_save_string;
16138 return NDR_ERR_SUCCESS;
16141 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16143 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16145 ndr_print_ptr(ndr, "port_name", r->port_name);
16147 if (r->port_name) {
16148 ndr_print_string(ndr, "port_name", r->port_name);
16151 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16155 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16157 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16160 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16162 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16163 if (ndr_flags & NDR_SCALARS) {
16164 int level = ndr_push_get_switch_value(ndr, r);
16167 NDR_CHECK(ndr_push_align(ndr, 4));
16168 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16169 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16173 NDR_CHECK(ndr_push_align(ndr, 4));
16174 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16175 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16179 NDR_CHECK(ndr_push_align(ndr, 4));
16180 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16181 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16185 NDR_CHECK(ndr_push_align(ndr, 4));
16186 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16187 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16195 if (ndr_flags & NDR_BUFFERS) {
16196 int level = ndr_push_get_switch_value(ndr, r);
16197 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16200 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16204 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16208 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16212 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16220 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16221 return NDR_ERR_SUCCESS;
16224 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16226 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16228 level = ndr_pull_get_switch_value(ndr, r);
16229 if (ndr_flags & NDR_SCALARS) {
16232 NDR_CHECK(ndr_pull_align(ndr, 4));
16233 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16234 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16238 NDR_CHECK(ndr_pull_align(ndr, 4));
16239 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16240 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16244 NDR_CHECK(ndr_pull_align(ndr, 4));
16245 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16246 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16250 NDR_CHECK(ndr_pull_align(ndr, 4));
16251 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16252 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16260 if (ndr_flags & NDR_BUFFERS) {
16261 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16264 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16268 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16272 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16276 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16284 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16285 return NDR_ERR_SUCCESS;
16288 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16291 level = ndr_print_get_switch_value(ndr, r);
16292 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16295 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16299 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16303 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16307 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16316 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16318 if (ndr_flags & NDR_SCALARS) {
16319 NDR_CHECK(ndr_push_align(ndr, 4));
16321 uint32_t _flags_save_string = ndr->flags;
16322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16323 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16324 ndr->flags = _flags_save_string;
16327 if (ndr_flags & NDR_BUFFERS) {
16329 uint32_t _flags_save_string = ndr->flags;
16330 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16331 if (r->monitor_name) {
16332 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16333 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16335 ndr->flags = _flags_save_string;
16338 return NDR_ERR_SUCCESS;
16341 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16343 uint32_t _ptr_monitor_name;
16344 TALLOC_CTX *_mem_save_monitor_name_0;
16345 if (ndr_flags & NDR_SCALARS) {
16346 NDR_CHECK(ndr_pull_align(ndr, 4));
16348 uint32_t _flags_save_string = ndr->flags;
16349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16350 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16351 if (_ptr_monitor_name) {
16352 NDR_PULL_ALLOC(ndr, r->monitor_name);
16353 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16355 r->monitor_name = NULL;
16357 ndr->flags = _flags_save_string;
16360 if (ndr_flags & NDR_BUFFERS) {
16362 uint32_t _flags_save_string = ndr->flags;
16363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16364 if (r->monitor_name) {
16365 uint32_t _relative_save_offset;
16366 _relative_save_offset = ndr->offset;
16367 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16368 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16369 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16370 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16372 ndr->offset = _relative_save_offset;
16374 ndr->flags = _flags_save_string;
16377 return NDR_ERR_SUCCESS;
16380 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16382 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16384 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16386 if (r->monitor_name) {
16387 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16393 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16395 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
16398 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16400 if (ndr_flags & NDR_SCALARS) {
16401 NDR_CHECK(ndr_push_align(ndr, 4));
16403 uint32_t _flags_save_string = ndr->flags;
16404 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16405 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16406 ndr->flags = _flags_save_string;
16409 uint32_t _flags_save_string = ndr->flags;
16410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16411 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16412 ndr->flags = _flags_save_string;
16415 uint32_t _flags_save_string = ndr->flags;
16416 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16417 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16418 ndr->flags = _flags_save_string;
16421 if (ndr_flags & NDR_BUFFERS) {
16423 uint32_t _flags_save_string = ndr->flags;
16424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16425 if (r->monitor_name) {
16426 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16427 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16429 ndr->flags = _flags_save_string;
16432 uint32_t _flags_save_string = ndr->flags;
16433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16434 if (r->environment) {
16435 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
16436 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16438 ndr->flags = _flags_save_string;
16441 uint32_t _flags_save_string = ndr->flags;
16442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16444 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
16445 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16447 ndr->flags = _flags_save_string;
16450 return NDR_ERR_SUCCESS;
16453 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
16455 uint32_t _ptr_monitor_name;
16456 TALLOC_CTX *_mem_save_monitor_name_0;
16457 uint32_t _ptr_environment;
16458 TALLOC_CTX *_mem_save_environment_0;
16459 uint32_t _ptr_dll_name;
16460 TALLOC_CTX *_mem_save_dll_name_0;
16461 if (ndr_flags & NDR_SCALARS) {
16462 NDR_CHECK(ndr_pull_align(ndr, 4));
16464 uint32_t _flags_save_string = ndr->flags;
16465 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16467 if (_ptr_monitor_name) {
16468 NDR_PULL_ALLOC(ndr, r->monitor_name);
16469 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16471 r->monitor_name = NULL;
16473 ndr->flags = _flags_save_string;
16476 uint32_t _flags_save_string = ndr->flags;
16477 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16478 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16479 if (_ptr_environment) {
16480 NDR_PULL_ALLOC(ndr, r->environment);
16481 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
16483 r->environment = NULL;
16485 ndr->flags = _flags_save_string;
16488 uint32_t _flags_save_string = ndr->flags;
16489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
16491 if (_ptr_dll_name) {
16492 NDR_PULL_ALLOC(ndr, r->dll_name);
16493 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
16495 r->dll_name = NULL;
16497 ndr->flags = _flags_save_string;
16500 if (ndr_flags & NDR_BUFFERS) {
16502 uint32_t _flags_save_string = ndr->flags;
16503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16504 if (r->monitor_name) {
16505 uint32_t _relative_save_offset;
16506 _relative_save_offset = ndr->offset;
16507 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16508 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16509 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16510 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16512 ndr->offset = _relative_save_offset;
16514 ndr->flags = _flags_save_string;
16517 uint32_t _flags_save_string = ndr->flags;
16518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16519 if (r->environment) {
16520 uint32_t _relative_save_offset;
16521 _relative_save_offset = ndr->offset;
16522 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
16523 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16524 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
16525 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
16526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16527 ndr->offset = _relative_save_offset;
16529 ndr->flags = _flags_save_string;
16532 uint32_t _flags_save_string = ndr->flags;
16533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16535 uint32_t _relative_save_offset;
16536 _relative_save_offset = ndr->offset;
16537 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
16538 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16539 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
16540 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
16541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
16542 ndr->offset = _relative_save_offset;
16544 ndr->flags = _flags_save_string;
16547 return NDR_ERR_SUCCESS;
16550 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
16552 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
16554 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16556 if (r->monitor_name) {
16557 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16560 ndr_print_ptr(ndr, "environment", r->environment);
16562 if (r->environment) {
16563 ndr_print_string(ndr, "environment", r->environment);
16566 ndr_print_ptr(ndr, "dll_name", r->dll_name);
16569 ndr_print_string(ndr, "dll_name", r->dll_name);
16575 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16577 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
16580 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
16582 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16583 if (ndr_flags & NDR_SCALARS) {
16584 int level = ndr_push_get_switch_value(ndr, r);
16587 NDR_CHECK(ndr_push_align(ndr, 4));
16588 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16589 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16593 NDR_CHECK(ndr_push_align(ndr, 4));
16594 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16595 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16603 if (ndr_flags & NDR_BUFFERS) {
16604 int level = ndr_push_get_switch_value(ndr, r);
16605 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16608 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16612 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16620 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16621 return NDR_ERR_SUCCESS;
16624 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
16626 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16628 level = ndr_pull_get_switch_value(ndr, r);
16629 if (ndr_flags & NDR_SCALARS) {
16632 NDR_CHECK(ndr_pull_align(ndr, 4));
16633 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16634 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16638 NDR_CHECK(ndr_pull_align(ndr, 4));
16639 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16640 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16648 if (ndr_flags & NDR_BUFFERS) {
16649 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16652 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16656 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16664 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16665 return NDR_ERR_SUCCESS;
16668 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
16671 level = ndr_print_get_switch_value(ndr, r);
16672 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
16675 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
16679 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
16688 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
16690 if (ndr_flags & NDR_SCALARS) {
16691 NDR_CHECK(ndr_push_align(ndr, 4));
16693 uint32_t _flags_save_string = ndr->flags;
16694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16695 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
16696 ndr->flags = _flags_save_string;
16699 if (ndr_flags & NDR_BUFFERS) {
16701 uint32_t _flags_save_string = ndr->flags;
16702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16703 if (r->name_array) {
16704 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
16705 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
16707 ndr->flags = _flags_save_string;
16710 return NDR_ERR_SUCCESS;
16713 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
16715 uint32_t _ptr_name_array;
16716 TALLOC_CTX *_mem_save_name_array_0;
16717 if (ndr_flags & NDR_SCALARS) {
16718 NDR_CHECK(ndr_pull_align(ndr, 4));
16720 uint32_t _flags_save_string = ndr->flags;
16721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16722 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
16723 if (_ptr_name_array) {
16724 NDR_PULL_ALLOC(ndr, r->name_array);
16725 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
16727 r->name_array = NULL;
16729 ndr->flags = _flags_save_string;
16732 if (ndr_flags & NDR_BUFFERS) {
16734 uint32_t _flags_save_string = ndr->flags;
16735 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16736 if (r->name_array) {
16737 uint32_t _relative_save_offset;
16738 _relative_save_offset = ndr->offset;
16739 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
16740 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
16741 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
16742 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
16743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
16744 ndr->offset = _relative_save_offset;
16746 ndr->flags = _flags_save_string;
16749 return NDR_ERR_SUCCESS;
16752 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
16754 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
16756 ndr_print_ptr(ndr, "name_array", r->name_array);
16758 if (r->name_array) {
16759 ndr_print_string(ndr, "name_array", r->name_array);
16765 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16767 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
16770 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
16772 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16773 if (ndr_flags & NDR_SCALARS) {
16774 int level = ndr_push_get_switch_value(ndr, r);
16777 NDR_CHECK(ndr_push_align(ndr, 4));
16778 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16779 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16787 if (ndr_flags & NDR_BUFFERS) {
16788 int level = ndr_push_get_switch_value(ndr, r);
16789 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16792 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16800 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16801 return NDR_ERR_SUCCESS;
16804 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
16806 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16808 level = ndr_pull_get_switch_value(ndr, r);
16809 if (ndr_flags & NDR_SCALARS) {
16812 NDR_CHECK(ndr_pull_align(ndr, 4));
16813 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16814 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16822 if (ndr_flags & NDR_BUFFERS) {
16823 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16826 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16834 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16835 return NDR_ERR_SUCCESS;
16838 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
16841 level = ndr_print_get_switch_value(ndr, r);
16842 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
16845 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
16854 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16857 return NDR_ERR_SUCCESS;
16860 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16865 return NDR_ERR_SUCCESS;
16868 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16870 ndr_print_uint32(ndr, name, r);
16872 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
16873 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
16874 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
16875 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
16876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
16877 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
16878 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
16879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
16880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
16881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
16882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
16883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
16884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
16885 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
16886 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
16887 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
16888 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
16889 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
16890 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
16891 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
16892 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
16896 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
16898 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16899 return NDR_ERR_SUCCESS;
16902 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
16905 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16907 return NDR_ERR_SUCCESS;
16910 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
16912 const char *val = NULL;
16915 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
16916 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
16917 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
16918 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
16919 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
16920 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
16921 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
16922 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
16923 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
16924 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16925 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
16926 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
16927 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16928 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
16929 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
16930 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
16931 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
16932 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
16933 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
16934 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
16935 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
16936 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
16937 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
16938 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
16939 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
16940 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
16942 ndr_print_enum(ndr, name, "ENUM", val, r);
16945 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
16947 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16948 return NDR_ERR_SUCCESS;
16951 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
16954 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16956 return NDR_ERR_SUCCESS;
16959 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
16961 const char *val = NULL;
16964 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
16965 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
16967 ndr_print_enum(ndr, name, "ENUM", val, r);
16970 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
16972 uint32_t cntr_fields_1;
16973 if (ndr_flags & NDR_SCALARS) {
16974 NDR_CHECK(ndr_push_align(ndr, 4));
16975 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
16976 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
16977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
16978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
16979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
16982 if (ndr_flags & NDR_BUFFERS) {
16984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16985 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
16986 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
16990 return NDR_ERR_SUCCESS;
16993 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
16995 uint32_t _ptr_fields;
16996 uint32_t cntr_fields_1;
16997 TALLOC_CTX *_mem_save_fields_0;
16998 TALLOC_CTX *_mem_save_fields_1;
16999 if (ndr_flags & NDR_SCALARS) {
17000 NDR_CHECK(ndr_pull_align(ndr, 4));
17001 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17002 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17008 NDR_PULL_ALLOC(ndr, r->fields);
17013 if (ndr_flags & NDR_BUFFERS) {
17015 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17016 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17017 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17018 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17019 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17020 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17021 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17022 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17028 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17031 return NDR_ERR_SUCCESS;
17034 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17036 uint32_t cntr_fields_1;
17037 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17039 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17040 ndr_print_uint16(ndr, "u1", r->u1);
17041 ndr_print_uint32(ndr, "u2", r->u2);
17042 ndr_print_uint32(ndr, "u3", r->u3);
17043 ndr_print_uint32(ndr, "count", r->count);
17044 ndr_print_ptr(ndr, "fields", r->fields);
17047 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17049 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17051 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17052 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
17062 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17065 return NDR_ERR_SUCCESS;
17068 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17073 return NDR_ERR_SUCCESS;
17076 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17078 ndr_print_uint32(ndr, name, r);
17080 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17084 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17086 uint32_t cntr_types_1;
17087 if (ndr_flags & NDR_SCALARS) {
17088 NDR_CHECK(ndr_push_align(ndr, 4));
17089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17090 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17092 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17094 if (ndr_flags & NDR_BUFFERS) {
17096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17097 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17098 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17100 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17101 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17105 return NDR_ERR_SUCCESS;
17108 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17110 uint32_t _ptr_types;
17111 uint32_t cntr_types_1;
17112 TALLOC_CTX *_mem_save_types_0;
17113 TALLOC_CTX *_mem_save_types_1;
17114 if (ndr_flags & NDR_SCALARS) {
17115 NDR_CHECK(ndr_pull_align(ndr, 4));
17116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17117 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17121 NDR_PULL_ALLOC(ndr, r->types);
17126 if (ndr_flags & NDR_BUFFERS) {
17128 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17129 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17130 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17131 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17132 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17133 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17134 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17135 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17137 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17138 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17144 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17147 return NDR_ERR_SUCCESS;
17150 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17152 uint32_t cntr_types_1;
17153 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17155 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17156 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17157 ndr_print_uint32(ndr, "count", r->count);
17158 ndr_print_ptr(ndr, "types", r->types);
17161 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17163 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17165 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17166 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17176 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17178 if (ndr_flags & NDR_SCALARS) {
17179 NDR_CHECK(ndr_push_align(ndr, 4));
17180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17183 if (ndr_flags & NDR_BUFFERS) {
17185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17186 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17189 return NDR_ERR_SUCCESS;
17192 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17194 uint32_t _ptr_string;
17195 TALLOC_CTX *_mem_save_string_0;
17196 if (ndr_flags & NDR_SCALARS) {
17197 NDR_CHECK(ndr_pull_align(ndr, 4));
17198 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17201 NDR_PULL_ALLOC(ndr, r->string);
17206 if (ndr_flags & NDR_BUFFERS) {
17208 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17209 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17210 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17211 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17215 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17218 return NDR_ERR_SUCCESS;
17221 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17223 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17225 ndr_print_uint32(ndr, "size", r->size);
17226 ndr_print_ptr(ndr, "string", r->string);
17229 ndr_print_string(ndr, "string", r->string);
17235 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17238 return NDR_ERR_SUCCESS;
17241 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17246 return NDR_ERR_SUCCESS;
17249 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17251 const char *val = NULL;
17254 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17255 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17256 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17257 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17258 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17260 ndr_print_enum(ndr, name, "ENUM", val, r);
17263 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17265 if (ndr_flags & NDR_SCALARS) {
17266 int level = ndr_push_get_switch_value(ndr, r);
17267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17270 uint32_t cntr_integer_0;
17271 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17277 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17281 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17285 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17289 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17293 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17296 if (ndr_flags & NDR_BUFFERS) {
17297 int level = ndr_push_get_switch_value(ndr, r);
17303 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17307 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17311 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17315 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17319 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17322 return NDR_ERR_SUCCESS;
17325 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17329 level = ndr_pull_get_switch_value(ndr, r);
17330 if (ndr_flags & NDR_SCALARS) {
17331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17332 if (_level != level) {
17333 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17337 uint32_t cntr_integer_0;
17338 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17344 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17348 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17352 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17356 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17360 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17363 if (ndr_flags & NDR_BUFFERS) {
17369 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17373 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17377 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17381 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17385 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17388 return NDR_ERR_SUCCESS;
17391 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17394 uint32_t cntr_integer_0;
17395 level = ndr_print_get_switch_value(ndr, r);
17396 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17399 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17401 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17403 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17404 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17412 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17416 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17420 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17424 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17428 ndr_print_bad_level(ndr, name, level);
17432 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17434 if (ndr_flags & NDR_SCALARS) {
17435 NDR_CHECK(ndr_push_align(ndr, 4));
17436 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17437 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
17438 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17440 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17441 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17443 if (ndr_flags & NDR_BUFFERS) {
17444 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17446 return NDR_ERR_SUCCESS;
17449 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17451 if (ndr_flags & NDR_SCALARS) {
17452 NDR_CHECK(ndr_pull_align(ndr, 4));
17453 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17454 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17455 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17456 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17457 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17458 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17460 if (ndr_flags & NDR_BUFFERS) {
17461 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17463 return NDR_ERR_SUCCESS;
17466 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17468 ndr_print_struct(ndr, name, "spoolss_Notify");
17470 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17471 ndr_print_spoolss_Field(ndr, "field", r->field);
17472 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17473 ndr_print_uint32(ndr, "job_id", r->job_id);
17474 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17475 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17479 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17481 uint32_t cntr_notifies_0;
17482 if (ndr_flags & NDR_SCALARS) {
17483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17484 NDR_CHECK(ndr_push_align(ndr, 4));
17485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17488 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17489 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17492 if (ndr_flags & NDR_BUFFERS) {
17493 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17494 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17497 return NDR_ERR_SUCCESS;
17500 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17502 uint32_t cntr_notifies_0;
17503 TALLOC_CTX *_mem_save_notifies_0;
17504 if (ndr_flags & NDR_SCALARS) {
17505 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17506 NDR_CHECK(ndr_pull_align(ndr, 4));
17507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17510 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17511 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17512 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17513 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17514 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17518 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17521 if (ndr_flags & NDR_BUFFERS) {
17522 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17523 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17524 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17525 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17529 return NDR_ERR_SUCCESS;
17532 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
17534 uint32_t cntr_notifies_0;
17535 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
17537 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17538 ndr_print_uint32(ndr, "flags", r->flags);
17539 ndr_print_uint32(ndr, "count", r->count);
17540 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
17542 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
17544 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
17545 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
17553 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
17555 if (ndr_flags & NDR_SCALARS) {
17556 int level = ndr_push_get_switch_value(ndr, r);
17557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17560 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
17564 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17567 if (ndr_flags & NDR_BUFFERS) {
17568 int level = ndr_push_get_switch_value(ndr, r);
17572 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17577 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17580 return NDR_ERR_SUCCESS;
17583 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
17587 TALLOC_CTX *_mem_save_info0_0;
17588 level = ndr_pull_get_switch_value(ndr, r);
17589 if (ndr_flags & NDR_SCALARS) {
17590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17591 if (_level != level) {
17592 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17596 uint32_t _ptr_info0;
17597 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
17599 NDR_PULL_ALLOC(ndr, r->info0);
17606 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17609 if (ndr_flags & NDR_BUFFERS) {
17613 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
17614 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
17615 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
17621 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17624 return NDR_ERR_SUCCESS;
17627 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
17630 level = ndr_print_get_switch_value(ndr, r);
17631 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
17634 ndr_print_ptr(ndr, "info0", r->info0);
17637 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
17643 ndr_print_bad_level(ndr, name, level);
17647 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17650 return NDR_ERR_SUCCESS;
17653 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17658 return NDR_ERR_SUCCESS;
17661 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17663 ndr_print_uint32(ndr, name, r);
17665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
17666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
17667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
17671 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
17673 if (ndr_flags & NDR_SCALARS) {
17674 NDR_CHECK(ndr_push_align(ndr, 4));
17675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17676 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17677 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17679 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17680 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17681 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17683 if (ndr_flags & NDR_BUFFERS) {
17685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17688 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17694 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17697 return NDR_ERR_SUCCESS;
17700 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
17702 uint32_t _ptr_client;
17703 TALLOC_CTX *_mem_save_client_0;
17704 uint32_t _ptr_user;
17705 TALLOC_CTX *_mem_save_user_0;
17706 if (ndr_flags & NDR_SCALARS) {
17707 NDR_CHECK(ndr_pull_align(ndr, 4));
17708 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17711 NDR_PULL_ALLOC(ndr, r->client);
17715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17717 NDR_PULL_ALLOC(ndr, r->user);
17721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17722 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17723 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17724 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17726 if (ndr_flags & NDR_BUFFERS) {
17728 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17729 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17730 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17731 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17732 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17733 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
17735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17736 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17740 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17741 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17742 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17743 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17744 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17745 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
17747 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17748 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17752 return NDR_ERR_SUCCESS;
17755 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
17757 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
17759 ndr_print_uint32(ndr, "size", r->size);
17760 ndr_print_ptr(ndr, "client", r->client);
17763 ndr_print_string(ndr, "client", r->client);
17766 ndr_print_ptr(ndr, "user", r->user);
17769 ndr_print_string(ndr, "user", r->user);
17772 ndr_print_uint32(ndr, "build", r->build);
17773 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17774 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17775 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17779 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
17781 if (ndr_flags & NDR_SCALARS) {
17782 NDR_CHECK(ndr_push_align(ndr, 4));
17783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
17785 if (ndr_flags & NDR_BUFFERS) {
17787 return NDR_ERR_SUCCESS;
17790 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
17792 if (ndr_flags & NDR_SCALARS) {
17793 NDR_CHECK(ndr_pull_align(ndr, 4));
17794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
17796 if (ndr_flags & NDR_BUFFERS) {
17798 return NDR_ERR_SUCCESS;
17801 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
17803 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
17805 ndr_print_uint32(ndr, "not_used", r->not_used);
17809 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
17811 if (ndr_flags & NDR_SCALARS) {
17812 NDR_CHECK(ndr_push_align(ndr, 4));
17813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
17816 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17817 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17819 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17820 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17821 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17822 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
17824 if (ndr_flags & NDR_BUFFERS) {
17826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17835 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17838 return NDR_ERR_SUCCESS;
17841 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
17843 uint32_t _ptr_client;
17844 TALLOC_CTX *_mem_save_client_0;
17845 uint32_t _ptr_user;
17846 TALLOC_CTX *_mem_save_user_0;
17847 if (ndr_flags & NDR_SCALARS) {
17848 NDR_CHECK(ndr_pull_align(ndr, 4));
17849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
17852 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17854 NDR_PULL_ALLOC(ndr, r->client);
17858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17860 NDR_PULL_ALLOC(ndr, r->user);
17864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17865 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17866 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17867 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17868 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
17870 if (ndr_flags & NDR_BUFFERS) {
17872 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17873 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17874 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17875 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17876 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17877 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->client), ndr_get_array_length(ndr, &r->client));
17879 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17880 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17884 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17885 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17886 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17887 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17888 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17889 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->user), ndr_get_array_length(ndr, &r->user));
17891 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17892 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17896 return NDR_ERR_SUCCESS;
17899 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
17901 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
17903 ndr_print_uint32(ndr, "size", r->size);
17904 ndr_print_uint32(ndr, "flags", r->flags);
17905 ndr_print_uint32(ndr, "size2", r->size2);
17906 ndr_print_ptr(ndr, "client", r->client);
17909 ndr_print_string(ndr, "client", r->client);
17912 ndr_print_ptr(ndr, "user", r->user);
17915 ndr_print_string(ndr, "user", r->user);
17918 ndr_print_uint32(ndr, "build", r->build);
17919 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17920 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17921 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17922 ndr_print_udlong(ndr, "reserved", r->reserved);
17926 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
17928 if (ndr_flags & NDR_SCALARS) {
17929 int level = ndr_push_get_switch_value(ndr, r);
17930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17933 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
17937 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
17941 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
17945 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17948 if (ndr_flags & NDR_BUFFERS) {
17949 int level = ndr_push_get_switch_value(ndr, r);
17953 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
17959 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
17965 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
17970 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17973 return NDR_ERR_SUCCESS;
17976 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
17980 TALLOC_CTX *_mem_save_level1_0;
17981 TALLOC_CTX *_mem_save_level2_0;
17982 TALLOC_CTX *_mem_save_level3_0;
17983 level = ndr_pull_get_switch_value(ndr, r);
17984 if (ndr_flags & NDR_SCALARS) {
17985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17986 if (_level != level) {
17987 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17991 uint32_t _ptr_level1;
17992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
17994 NDR_PULL_ALLOC(ndr, r->level1);
18001 uint32_t _ptr_level2;
18002 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18004 NDR_PULL_ALLOC(ndr, r->level2);
18011 uint32_t _ptr_level3;
18012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18014 NDR_PULL_ALLOC(ndr, r->level3);
18021 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18024 if (ndr_flags & NDR_BUFFERS) {
18028 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18029 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18030 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18037 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18038 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18039 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18046 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18047 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18048 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18054 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18057 return NDR_ERR_SUCCESS;
18060 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18063 level = ndr_print_get_switch_value(ndr, r);
18064 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18067 ndr_print_ptr(ndr, "level1", r->level1);
18070 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18076 ndr_print_ptr(ndr, "level2", r->level2);
18079 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18085 ndr_print_ptr(ndr, "level3", r->level3);
18088 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18094 ndr_print_bad_level(ndr, name, level);
18098 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18100 if (ndr_flags & NDR_SCALARS) {
18101 NDR_CHECK(ndr_push_align(ndr, 4));
18102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18103 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18104 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18106 if (ndr_flags & NDR_BUFFERS) {
18107 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18109 return NDR_ERR_SUCCESS;
18112 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18114 if (ndr_flags & NDR_SCALARS) {
18115 NDR_CHECK(ndr_pull_align(ndr, 4));
18116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18117 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18118 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18120 if (ndr_flags & NDR_BUFFERS) {
18121 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18123 return NDR_ERR_SUCCESS;
18126 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18128 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18130 ndr_print_uint32(ndr, "level", r->level);
18131 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18132 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18136 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18139 return NDR_ERR_SUCCESS;
18142 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18147 return NDR_ERR_SUCCESS;
18150 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18152 ndr_print_uint32(ndr, name, r);
18154 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18155 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18156 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18157 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18158 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18159 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18163 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18166 return NDR_ERR_SUCCESS;
18169 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18174 return NDR_ERR_SUCCESS;
18177 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18179 ndr_print_uint32(ndr, name, r);
18181 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
18182 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
18183 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
18187 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
18189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18190 return NDR_ERR_SUCCESS;
18193 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
18196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18198 return NDR_ERR_SUCCESS;
18201 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
18203 const char *val = NULL;
18206 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
18207 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
18209 ndr_print_enum(ndr, name, "ENUM", val, r);
18212 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18214 if (ndr_flags & NDR_SCALARS) {
18215 NDR_CHECK(ndr_push_align(ndr, 4));
18216 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18218 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18222 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18224 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18225 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18226 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18232 if (ndr_flags & NDR_BUFFERS) {
18234 return NDR_ERR_SUCCESS;
18237 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18239 if (ndr_flags & NDR_SCALARS) {
18240 NDR_CHECK(ndr_pull_align(ndr, 4));
18241 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18242 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18243 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18246 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18247 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18249 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18251 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18252 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18255 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18257 if (ndr_flags & NDR_BUFFERS) {
18259 return NDR_ERR_SUCCESS;
18262 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18264 ndr_print_struct(ndr, name, "spoolss_PortData1");
18266 ndr_print_string(ndr, "portname", r->portname);
18267 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18268 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18269 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18270 ndr_print_uint32(ndr, "reserved", r->reserved);
18271 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18272 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18273 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18274 ndr_print_string(ndr, "queue", r->queue);
18275 ndr_print_string(ndr, "ip_address", r->ip_address);
18276 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18277 ndr_print_string(ndr, "device_type", r->device_type);
18278 ndr_print_uint32(ndr, "port_number", r->port_number);
18279 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18280 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18284 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
18286 if (ndr_flags & NDR_SCALARS) {
18287 NDR_CHECK(ndr_push_align(ndr, 4));
18288 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
18290 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18293 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18294 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18296 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
18303 if (ndr_flags & NDR_BUFFERS) {
18305 return NDR_ERR_SUCCESS;
18308 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
18310 if (ndr_flags & NDR_SCALARS) {
18311 NDR_CHECK(ndr_pull_align(ndr, 4));
18312 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18314 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18317 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18318 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18320 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18321 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
18327 if (ndr_flags & NDR_BUFFERS) {
18329 return NDR_ERR_SUCCESS;
18332 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
18334 ndr_print_struct(ndr, name, "spoolss_PortData2");
18336 ndr_print_string(ndr, "portname", r->portname);
18337 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
18338 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18339 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18340 ndr_print_uint32(ndr, "reserved", r->reserved);
18341 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18342 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18343 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18344 ndr_print_string(ndr, "queue", r->queue);
18345 ndr_print_string(ndr, "device_type", r->device_type);
18346 ndr_print_uint32(ndr, "port_number", r->port_number);
18347 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18348 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18349 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
18353 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
18355 if (ndr_flags & NDR_SCALARS) {
18356 NDR_CHECK(ndr_push_align(ndr, 4));
18358 uint32_t _flags_save_string = ndr->flags;
18359 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18360 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18361 ndr->flags = _flags_save_string;
18364 if (ndr_flags & NDR_BUFFERS) {
18366 return NDR_ERR_SUCCESS;
18369 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
18371 if (ndr_flags & NDR_SCALARS) {
18372 NDR_CHECK(ndr_pull_align(ndr, 4));
18374 uint32_t _flags_save_string = ndr->flags;
18375 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18376 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18377 ndr->flags = _flags_save_string;
18380 if (ndr_flags & NDR_BUFFERS) {
18382 return NDR_ERR_SUCCESS;
18385 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
18387 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
18389 ndr_print_string(ndr, "dll_name", r->dll_name);
18393 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18396 return NDR_ERR_SUCCESS;
18399 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18402 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18404 return NDR_ERR_SUCCESS;
18407 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18409 ndr_print_uint32(ndr, name, r);
18411 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
18412 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
18413 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
18414 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
18415 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
18416 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
18417 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
18418 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
18422 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
18424 if (flags & NDR_IN) {
18425 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
18426 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18427 if (r->in.server) {
18428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18435 if (r->in.buffer) {
18436 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18440 if (flags & NDR_OUT) {
18441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18443 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18445 if (r->out.needed == NULL) {
18446 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18449 if (r->out.count == NULL) {
18450 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18453 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18455 return NDR_ERR_SUCCESS;
18458 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
18460 uint32_t _ptr_server;
18461 uint32_t _ptr_buffer;
18462 uint32_t _ptr_info;
18463 TALLOC_CTX *_mem_save_server_0;
18464 TALLOC_CTX *_mem_save_buffer_0;
18465 TALLOC_CTX *_mem_save_info_0;
18466 TALLOC_CTX *_mem_save_needed_0;
18467 TALLOC_CTX *_mem_save_count_0;
18468 if (flags & NDR_IN) {
18469 ZERO_STRUCT(r->out);
18471 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
18472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18474 NDR_PULL_ALLOC(ndr, r->in.server);
18476 r->in.server = NULL;
18478 if (r->in.server) {
18479 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18480 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18481 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18482 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18483 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18484 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
18486 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18487 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18493 NDR_PULL_ALLOC(ndr, r->in.buffer);
18495 r->in.buffer = NULL;
18497 if (r->in.buffer) {
18498 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18499 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18500 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18504 NDR_PULL_ALLOC(ndr, r->out.needed);
18505 ZERO_STRUCTP(r->out.needed);
18506 NDR_PULL_ALLOC(ndr, r->out.count);
18507 ZERO_STRUCTP(r->out.count);
18509 if (flags & NDR_OUT) {
18510 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18512 NDR_PULL_ALLOC(ndr, r->out.info);
18514 r->out.info = NULL;
18517 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18518 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18519 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18522 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18523 NDR_PULL_ALLOC(ndr, r->out.needed);
18525 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18526 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18529 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18530 NDR_PULL_ALLOC(ndr, r->out.count);
18532 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18533 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18534 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18536 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18538 return NDR_ERR_SUCCESS;
18541 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
18543 uint32_t cntr_info_0;
18544 if (flags & NDR_IN) {
18545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18548 if (flags & NDR_OUT) {
18549 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18550 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18551 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18553 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18554 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18557 return NDR_ERR_SUCCESS;
18560 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
18562 uint32_t cntr_info_0;
18563 TALLOC_CTX *_mem_save_info_0;
18564 if (flags & NDR_IN) {
18565 ZERO_STRUCT(r->out);
18567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18570 if (flags & NDR_OUT) {
18571 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18572 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18573 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18574 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18575 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18576 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18578 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18579 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18581 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18583 return NDR_ERR_SUCCESS;
18586 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
18588 uint32_t cntr_info_2;
18589 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
18591 if (flags & NDR_SET_VALUES) {
18592 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18594 if (flags & NDR_IN) {
18595 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
18597 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
18598 ndr_print_ptr(ndr, "server", r->in.server);
18600 if (r->in.server) {
18601 ndr_print_string(ndr, "server", r->in.server);
18604 ndr_print_uint32(ndr, "level", r->in.level);
18605 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18607 if (r->in.buffer) {
18608 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18611 ndr_print_uint32(ndr, "offered", r->in.offered);
18614 if (flags & NDR_OUT) {
18615 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
18617 ndr_print_ptr(ndr, "count", r->out.count);
18619 ndr_print_uint32(ndr, "count", *r->out.count);
18621 ndr_print_ptr(ndr, "info", r->out.info);
18623 ndr_print_ptr(ndr, "info", *r->out.info);
18625 if (*r->out.info) {
18626 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18628 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
18630 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
18631 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
18632 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
18640 ndr_print_ptr(ndr, "needed", r->out.needed);
18642 ndr_print_uint32(ndr, "needed", *r->out.needed);
18644 ndr_print_WERROR(ndr, "result", r->out.result);
18650 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
18652 if (flags & NDR_IN) {
18653 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18654 if (r->in.printername) {
18655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18658 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18660 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
18661 if (r->in.datatype) {
18662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18665 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18667 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18668 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
18670 if (flags & NDR_OUT) {
18671 if (r->out.handle == NULL) {
18672 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18674 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18675 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18677 return NDR_ERR_SUCCESS;
18680 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
18682 uint32_t _ptr_printername;
18683 uint32_t _ptr_datatype;
18684 TALLOC_CTX *_mem_save_printername_0;
18685 TALLOC_CTX *_mem_save_datatype_0;
18686 TALLOC_CTX *_mem_save_handle_0;
18687 if (flags & NDR_IN) {
18688 ZERO_STRUCT(r->out);
18690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
18691 if (_ptr_printername) {
18692 NDR_PULL_ALLOC(ndr, r->in.printername);
18694 r->in.printername = NULL;
18696 if (r->in.printername) {
18697 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18698 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
18699 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
18700 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
18701 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
18702 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.printername), ndr_get_array_length(ndr, &r->in.printername));
18704 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
18705 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
18706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
18708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
18709 if (_ptr_datatype) {
18710 NDR_PULL_ALLOC(ndr, r->in.datatype);
18712 r->in.datatype = NULL;
18714 if (r->in.datatype) {
18715 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
18716 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
18717 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
18718 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
18719 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
18720 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
18722 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
18723 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
18724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
18726 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18727 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
18728 NDR_PULL_ALLOC(ndr, r->out.handle);
18729 ZERO_STRUCTP(r->out.handle);
18731 if (flags & NDR_OUT) {
18732 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18733 NDR_PULL_ALLOC(ndr, r->out.handle);
18735 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18736 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18737 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18739 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18741 return NDR_ERR_SUCCESS;
18744 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
18746 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
18748 if (flags & NDR_SET_VALUES) {
18749 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18751 if (flags & NDR_IN) {
18752 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
18754 ndr_print_ptr(ndr, "printername", r->in.printername);
18756 if (r->in.printername) {
18757 ndr_print_string(ndr, "printername", r->in.printername);
18760 ndr_print_ptr(ndr, "datatype", r->in.datatype);
18762 if (r->in.datatype) {
18763 ndr_print_string(ndr, "datatype", r->in.datatype);
18766 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
18767 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
18770 if (flags & NDR_OUT) {
18771 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
18773 ndr_print_ptr(ndr, "handle", r->out.handle);
18775 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18777 ndr_print_WERROR(ndr, "result", r->out.result);
18783 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
18785 if (flags & NDR_IN) {
18786 if (r->in.handle == NULL) {
18787 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18789 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18791 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
18793 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18795 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
18797 if (flags & NDR_OUT) {
18798 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18800 return NDR_ERR_SUCCESS;
18803 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
18806 TALLOC_CTX *_mem_save_handle_0;
18807 TALLOC_CTX *_mem_save_ctr_0;
18808 if (flags & NDR_IN) {
18809 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18810 NDR_PULL_ALLOC(ndr, r->in.handle);
18812 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18813 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18814 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
18819 NDR_PULL_ALLOC(ndr, r->in.ctr);
18824 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18825 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
18826 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
18829 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
18831 if (flags & NDR_OUT) {
18832 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18834 return NDR_ERR_SUCCESS;
18837 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
18839 ndr_print_struct(ndr, name, "spoolss_SetJob");
18841 if (flags & NDR_SET_VALUES) {
18842 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18844 if (flags & NDR_IN) {
18845 ndr_print_struct(ndr, "in", "spoolss_SetJob");
18847 ndr_print_ptr(ndr, "handle", r->in.handle);
18849 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18851 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18852 ndr_print_ptr(ndr, "ctr", r->in.ctr);
18855 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
18858 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
18861 if (flags & NDR_OUT) {
18862 ndr_print_struct(ndr, "out", "spoolss_SetJob");
18864 ndr_print_WERROR(ndr, "result", r->out.result);
18870 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
18872 if (flags & NDR_IN) {
18873 if (r->in.handle == NULL) {
18874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18876 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18879 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18880 if (r->in.buffer) {
18881 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18883 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18885 if (flags & NDR_OUT) {
18886 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18889 struct ndr_push *_ndr_info;
18890 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18891 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18892 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18893 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18896 if (r->out.needed == NULL) {
18897 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18900 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18902 return NDR_ERR_SUCCESS;
18905 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
18907 uint32_t _ptr_buffer;
18908 uint32_t _ptr_info;
18909 TALLOC_CTX *_mem_save_handle_0;
18910 TALLOC_CTX *_mem_save_buffer_0;
18911 TALLOC_CTX *_mem_save_info_0;
18912 TALLOC_CTX *_mem_save_needed_0;
18913 if (flags & NDR_IN) {
18914 ZERO_STRUCT(r->out);
18916 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18917 NDR_PULL_ALLOC(ndr, r->in.handle);
18919 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18920 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18921 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18924 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18927 NDR_PULL_ALLOC(ndr, r->in.buffer);
18929 r->in.buffer = NULL;
18931 if (r->in.buffer) {
18932 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18933 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18934 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18938 NDR_PULL_ALLOC(ndr, r->out.needed);
18939 ZERO_STRUCTP(r->out.needed);
18941 if (flags & NDR_OUT) {
18942 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18944 NDR_PULL_ALLOC(ndr, r->out.info);
18946 r->out.info = NULL;
18949 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18950 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18952 struct ndr_pull *_ndr_info;
18953 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18954 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18955 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18956 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18960 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18961 NDR_PULL_ALLOC(ndr, r->out.needed);
18963 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18964 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18965 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18967 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18969 return NDR_ERR_SUCCESS;
18972 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
18974 ndr_print_struct(ndr, name, "spoolss_GetJob");
18976 if (flags & NDR_SET_VALUES) {
18977 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18979 if (flags & NDR_IN) {
18980 ndr_print_struct(ndr, "in", "spoolss_GetJob");
18982 ndr_print_ptr(ndr, "handle", r->in.handle);
18984 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18986 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18987 ndr_print_uint32(ndr, "level", r->in.level);
18988 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18990 if (r->in.buffer) {
18991 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18994 ndr_print_uint32(ndr, "offered", r->in.offered);
18997 if (flags & NDR_OUT) {
18998 ndr_print_struct(ndr, "out", "spoolss_GetJob");
19000 ndr_print_ptr(ndr, "info", r->out.info);
19003 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19004 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
19007 ndr_print_ptr(ndr, "needed", r->out.needed);
19009 ndr_print_uint32(ndr, "needed", *r->out.needed);
19011 ndr_print_WERROR(ndr, "result", r->out.result);
19017 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19019 if (flags & NDR_IN) {
19020 if (r->in.handle == NULL) {
19021 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19023 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19028 if (r->in.buffer) {
19029 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19033 if (flags & NDR_OUT) {
19034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19036 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19038 if (r->out.needed == NULL) {
19039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19042 if (r->out.count == NULL) {
19043 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19046 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19048 return NDR_ERR_SUCCESS;
19051 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
19053 uint32_t _ptr_buffer;
19054 uint32_t _ptr_info;
19055 TALLOC_CTX *_mem_save_handle_0;
19056 TALLOC_CTX *_mem_save_buffer_0;
19057 TALLOC_CTX *_mem_save_info_0;
19058 TALLOC_CTX *_mem_save_needed_0;
19059 TALLOC_CTX *_mem_save_count_0;
19060 if (flags & NDR_IN) {
19061 ZERO_STRUCT(r->out);
19063 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19064 NDR_PULL_ALLOC(ndr, r->in.handle);
19066 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19067 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19068 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19070 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
19071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
19072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19075 NDR_PULL_ALLOC(ndr, r->in.buffer);
19077 r->in.buffer = NULL;
19079 if (r->in.buffer) {
19080 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19081 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19082 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19083 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19086 NDR_PULL_ALLOC(ndr, r->out.needed);
19087 ZERO_STRUCTP(r->out.needed);
19088 NDR_PULL_ALLOC(ndr, r->out.count);
19089 ZERO_STRUCTP(r->out.count);
19091 if (flags & NDR_OUT) {
19092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19094 NDR_PULL_ALLOC(ndr, r->out.info);
19096 r->out.info = NULL;
19099 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19100 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19101 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19104 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19105 NDR_PULL_ALLOC(ndr, r->out.needed);
19107 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19108 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19109 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19111 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19112 NDR_PULL_ALLOC(ndr, r->out.count);
19114 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19115 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19118 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19120 return NDR_ERR_SUCCESS;
19123 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
19125 uint32_t cntr_info_0;
19126 if (flags & NDR_IN) {
19127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19130 if (flags & NDR_OUT) {
19131 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19132 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19133 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19135 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19136 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19139 return NDR_ERR_SUCCESS;
19142 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19144 uint32_t cntr_info_0;
19145 TALLOC_CTX *_mem_save_info_0;
19146 if (flags & NDR_IN) {
19147 ZERO_STRUCT(r->out);
19149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19152 if (flags & NDR_OUT) {
19153 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19154 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19155 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19156 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19157 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19158 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19160 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19161 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19163 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19165 return NDR_ERR_SUCCESS;
19168 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
19170 uint32_t cntr_info_2;
19171 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
19173 if (flags & NDR_SET_VALUES) {
19174 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19176 if (flags & NDR_IN) {
19177 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
19179 ndr_print_ptr(ndr, "handle", r->in.handle);
19181 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19183 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
19184 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
19185 ndr_print_uint32(ndr, "level", r->in.level);
19186 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19188 if (r->in.buffer) {
19189 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19192 ndr_print_uint32(ndr, "offered", r->in.offered);
19195 if (flags & NDR_OUT) {
19196 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
19198 ndr_print_ptr(ndr, "count", r->out.count);
19200 ndr_print_uint32(ndr, "count", *r->out.count);
19202 ndr_print_ptr(ndr, "info", r->out.info);
19204 ndr_print_ptr(ndr, "info", *r->out.info);
19206 if (*r->out.info) {
19207 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19209 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19211 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19212 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19213 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19221 ndr_print_ptr(ndr, "needed", r->out.needed);
19223 ndr_print_uint32(ndr, "needed", *r->out.needed);
19225 ndr_print_WERROR(ndr, "result", r->out.result);
19231 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19233 if (flags & NDR_IN) {
19235 if (flags & NDR_OUT) {
19236 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19238 return NDR_ERR_SUCCESS;
19241 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19243 if (flags & NDR_IN) {
19245 if (flags & NDR_OUT) {
19246 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19248 return NDR_ERR_SUCCESS;
19251 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19253 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19255 if (flags & NDR_SET_VALUES) {
19256 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19258 if (flags & NDR_IN) {
19259 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19263 if (flags & NDR_OUT) {
19264 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19266 ndr_print_WERROR(ndr, "result", r->out.result);
19272 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
19274 if (flags & NDR_IN) {
19275 if (r->in.handle == NULL) {
19276 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19278 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19280 if (flags & NDR_OUT) {
19281 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19283 return NDR_ERR_SUCCESS;
19286 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
19288 TALLOC_CTX *_mem_save_handle_0;
19289 if (flags & NDR_IN) {
19290 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19291 NDR_PULL_ALLOC(ndr, r->in.handle);
19293 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19294 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19295 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19298 if (flags & NDR_OUT) {
19299 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19301 return NDR_ERR_SUCCESS;
19304 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
19306 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
19308 if (flags & NDR_SET_VALUES) {
19309 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19311 if (flags & NDR_IN) {
19312 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
19314 ndr_print_ptr(ndr, "handle", r->in.handle);
19316 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19320 if (flags & NDR_OUT) {
19321 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
19323 ndr_print_WERROR(ndr, "result", r->out.result);
19329 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
19331 if (flags & NDR_IN) {
19332 if (r->in.handle == NULL) {
19333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19335 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19336 if (r->in.info_ctr == NULL) {
19337 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19339 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19340 if (r->in.devmode_ctr == NULL) {
19341 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19343 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19344 if (r->in.secdesc_ctr == NULL) {
19345 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19347 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19348 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
19350 if (flags & NDR_OUT) {
19351 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19353 return NDR_ERR_SUCCESS;
19356 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
19358 TALLOC_CTX *_mem_save_handle_0;
19359 TALLOC_CTX *_mem_save_info_ctr_0;
19360 TALLOC_CTX *_mem_save_devmode_ctr_0;
19361 TALLOC_CTX *_mem_save_secdesc_ctr_0;
19362 if (flags & NDR_IN) {
19363 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19364 NDR_PULL_ALLOC(ndr, r->in.handle);
19366 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19367 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19368 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19370 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19371 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19373 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19374 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19375 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19377 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19378 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19380 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19381 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19382 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19384 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19385 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
19387 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19388 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
19389 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19391 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
19393 if (flags & NDR_OUT) {
19394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19396 return NDR_ERR_SUCCESS;
19399 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
19401 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
19403 if (flags & NDR_SET_VALUES) {
19404 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19406 if (flags & NDR_IN) {
19407 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
19409 ndr_print_ptr(ndr, "handle", r->in.handle);
19411 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19413 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19415 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19417 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19419 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19421 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19423 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19425 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
19428 if (flags & NDR_OUT) {
19429 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
19431 ndr_print_WERROR(ndr, "result", r->out.result);
19437 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
19439 if (flags & NDR_IN) {
19440 if (r->in.handle == NULL) {
19441 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19443 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19446 if (r->in.buffer) {
19447 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19451 if (flags & NDR_OUT) {
19452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19455 struct ndr_push *_ndr_info;
19456 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19457 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19458 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19459 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19462 if (r->out.needed == NULL) {
19463 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19466 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19468 return NDR_ERR_SUCCESS;
19471 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
19473 uint32_t _ptr_buffer;
19474 uint32_t _ptr_info;
19475 TALLOC_CTX *_mem_save_handle_0;
19476 TALLOC_CTX *_mem_save_buffer_0;
19477 TALLOC_CTX *_mem_save_info_0;
19478 TALLOC_CTX *_mem_save_needed_0;
19479 if (flags & NDR_IN) {
19480 ZERO_STRUCT(r->out);
19482 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19483 NDR_PULL_ALLOC(ndr, r->in.handle);
19485 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19486 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19487 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19492 NDR_PULL_ALLOC(ndr, r->in.buffer);
19494 r->in.buffer = NULL;
19496 if (r->in.buffer) {
19497 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19498 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19499 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19503 NDR_PULL_ALLOC(ndr, r->out.needed);
19504 ZERO_STRUCTP(r->out.needed);
19506 if (flags & NDR_OUT) {
19507 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19509 NDR_PULL_ALLOC(ndr, r->out.info);
19511 r->out.info = NULL;
19514 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19515 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19517 struct ndr_pull *_ndr_info;
19518 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19519 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19520 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19521 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19525 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19526 NDR_PULL_ALLOC(ndr, r->out.needed);
19528 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19529 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19532 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19534 return NDR_ERR_SUCCESS;
19537 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
19539 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
19541 if (flags & NDR_SET_VALUES) {
19542 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19544 if (flags & NDR_IN) {
19545 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
19547 ndr_print_ptr(ndr, "handle", r->in.handle);
19549 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19551 ndr_print_uint32(ndr, "level", r->in.level);
19552 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19554 if (r->in.buffer) {
19555 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19558 ndr_print_uint32(ndr, "offered", r->in.offered);
19561 if (flags & NDR_OUT) {
19562 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
19564 ndr_print_ptr(ndr, "info", r->out.info);
19567 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19568 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
19571 ndr_print_ptr(ndr, "needed", r->out.needed);
19573 ndr_print_uint32(ndr, "needed", *r->out.needed);
19575 ndr_print_WERROR(ndr, "result", r->out.result);
19581 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
19583 if (flags & NDR_IN) {
19584 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19585 if (r->in.servername) {
19586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19589 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19591 if (r->in.info_ctr == NULL) {
19592 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19594 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19596 if (flags & NDR_OUT) {
19597 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19599 return NDR_ERR_SUCCESS;
19602 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
19604 uint32_t _ptr_servername;
19605 TALLOC_CTX *_mem_save_servername_0;
19606 TALLOC_CTX *_mem_save_info_ctr_0;
19607 if (flags & NDR_IN) {
19608 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19609 if (_ptr_servername) {
19610 NDR_PULL_ALLOC(ndr, r->in.servername);
19612 r->in.servername = NULL;
19614 if (r->in.servername) {
19615 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19616 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19617 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19618 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19619 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19620 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
19622 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19623 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19624 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19626 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19627 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19629 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19630 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19631 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19634 if (flags & NDR_OUT) {
19635 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19637 return NDR_ERR_SUCCESS;
19640 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
19642 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
19644 if (flags & NDR_SET_VALUES) {
19645 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19647 if (flags & NDR_IN) {
19648 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
19650 ndr_print_ptr(ndr, "servername", r->in.servername);
19652 if (r->in.servername) {
19653 ndr_print_string(ndr, "servername", r->in.servername);
19656 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19658 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19662 if (flags & NDR_OUT) {
19663 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
19665 ndr_print_WERROR(ndr, "result", r->out.result);
19671 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
19673 if (flags & NDR_IN) {
19674 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19675 if (r->in.server) {
19676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19679 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19682 if (r->in.environment) {
19683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19686 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19690 if (r->in.buffer) {
19691 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19695 if (flags & NDR_OUT) {
19696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19698 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19700 if (r->out.needed == NULL) {
19701 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19704 if (r->out.count == NULL) {
19705 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19708 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19710 return NDR_ERR_SUCCESS;
19713 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
19715 uint32_t _ptr_server;
19716 uint32_t _ptr_environment;
19717 uint32_t _ptr_buffer;
19718 uint32_t _ptr_info;
19719 TALLOC_CTX *_mem_save_server_0;
19720 TALLOC_CTX *_mem_save_environment_0;
19721 TALLOC_CTX *_mem_save_buffer_0;
19722 TALLOC_CTX *_mem_save_info_0;
19723 TALLOC_CTX *_mem_save_needed_0;
19724 TALLOC_CTX *_mem_save_count_0;
19725 if (flags & NDR_IN) {
19726 ZERO_STRUCT(r->out);
19728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19730 NDR_PULL_ALLOC(ndr, r->in.server);
19732 r->in.server = NULL;
19734 if (r->in.server) {
19735 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19736 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19737 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19738 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19739 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19740 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
19742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19747 if (_ptr_environment) {
19748 NDR_PULL_ALLOC(ndr, r->in.environment);
19750 r->in.environment = NULL;
19752 if (r->in.environment) {
19753 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19754 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19755 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19756 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19757 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19758 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
19760 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19761 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19767 NDR_PULL_ALLOC(ndr, r->in.buffer);
19769 r->in.buffer = NULL;
19771 if (r->in.buffer) {
19772 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19773 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19774 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19778 NDR_PULL_ALLOC(ndr, r->out.needed);
19779 ZERO_STRUCTP(r->out.needed);
19780 NDR_PULL_ALLOC(ndr, r->out.count);
19781 ZERO_STRUCTP(r->out.count);
19783 if (flags & NDR_OUT) {
19784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19786 NDR_PULL_ALLOC(ndr, r->out.info);
19788 r->out.info = NULL;
19791 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19792 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19793 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19794 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19796 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19797 NDR_PULL_ALLOC(ndr, r->out.needed);
19799 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19800 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19803 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19804 NDR_PULL_ALLOC(ndr, r->out.count);
19806 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19807 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19810 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19812 return NDR_ERR_SUCCESS;
19815 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
19817 uint32_t cntr_info_0;
19818 if (flags & NDR_IN) {
19819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19822 if (flags & NDR_OUT) {
19823 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19824 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19825 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19827 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19828 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19831 return NDR_ERR_SUCCESS;
19834 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
19836 uint32_t cntr_info_0;
19837 TALLOC_CTX *_mem_save_info_0;
19838 if (flags & NDR_IN) {
19839 ZERO_STRUCT(r->out);
19841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19844 if (flags & NDR_OUT) {
19845 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19846 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19847 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19848 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19849 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19850 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19852 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19853 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19857 return NDR_ERR_SUCCESS;
19860 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
19862 uint32_t cntr_info_2;
19863 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
19865 if (flags & NDR_SET_VALUES) {
19866 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19868 if (flags & NDR_IN) {
19869 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
19871 ndr_print_ptr(ndr, "server", r->in.server);
19873 if (r->in.server) {
19874 ndr_print_string(ndr, "server", r->in.server);
19877 ndr_print_ptr(ndr, "environment", r->in.environment);
19879 if (r->in.environment) {
19880 ndr_print_string(ndr, "environment", r->in.environment);
19883 ndr_print_uint32(ndr, "level", r->in.level);
19884 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19886 if (r->in.buffer) {
19887 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19890 ndr_print_uint32(ndr, "offered", r->in.offered);
19893 if (flags & NDR_OUT) {
19894 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
19896 ndr_print_ptr(ndr, "count", r->out.count);
19898 ndr_print_uint32(ndr, "count", *r->out.count);
19900 ndr_print_ptr(ndr, "info", r->out.info);
19902 ndr_print_ptr(ndr, "info", *r->out.info);
19904 if (*r->out.info) {
19905 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19907 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19909 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19910 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19911 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19919 ndr_print_ptr(ndr, "needed", r->out.needed);
19921 ndr_print_uint32(ndr, "needed", *r->out.needed);
19923 ndr_print_WERROR(ndr, "result", r->out.result);
19929 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
19931 if (flags & NDR_IN) {
19933 if (flags & NDR_OUT) {
19934 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19936 return NDR_ERR_SUCCESS;
19939 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
19941 if (flags & NDR_IN) {
19943 if (flags & NDR_OUT) {
19944 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19946 return NDR_ERR_SUCCESS;
19949 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
19951 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
19953 if (flags & NDR_SET_VALUES) {
19954 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19956 if (flags & NDR_IN) {
19957 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
19961 if (flags & NDR_OUT) {
19962 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
19964 ndr_print_WERROR(ndr, "result", r->out.result);
19970 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
19972 if (flags & NDR_IN) {
19973 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19974 if (r->in.server) {
19975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19978 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19981 if (r->in.environment) {
19982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19985 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19989 if (r->in.buffer) {
19990 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19994 if (flags & NDR_OUT) {
19995 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19998 struct ndr_push *_ndr_info;
19999 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20000 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20001 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20002 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20005 if (r->out.needed == NULL) {
20006 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20009 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20011 return NDR_ERR_SUCCESS;
20014 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20016 uint32_t _ptr_server;
20017 uint32_t _ptr_environment;
20018 uint32_t _ptr_buffer;
20019 uint32_t _ptr_info;
20020 TALLOC_CTX *_mem_save_server_0;
20021 TALLOC_CTX *_mem_save_environment_0;
20022 TALLOC_CTX *_mem_save_buffer_0;
20023 TALLOC_CTX *_mem_save_info_0;
20024 TALLOC_CTX *_mem_save_needed_0;
20025 if (flags & NDR_IN) {
20026 ZERO_STRUCT(r->out);
20028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20030 NDR_PULL_ALLOC(ndr, r->in.server);
20032 r->in.server = NULL;
20034 if (r->in.server) {
20035 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20036 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20037 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20038 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20039 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20040 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
20042 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20043 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20044 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20047 if (_ptr_environment) {
20048 NDR_PULL_ALLOC(ndr, r->in.environment);
20050 r->in.environment = NULL;
20052 if (r->in.environment) {
20053 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20054 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20055 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20056 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20057 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20058 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
20060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20067 NDR_PULL_ALLOC(ndr, r->in.buffer);
20069 r->in.buffer = NULL;
20071 if (r->in.buffer) {
20072 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20073 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20074 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20078 NDR_PULL_ALLOC(ndr, r->out.needed);
20079 ZERO_STRUCTP(r->out.needed);
20081 if (flags & NDR_OUT) {
20082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20084 NDR_PULL_ALLOC(ndr, r->out.info);
20086 r->out.info = NULL;
20089 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20090 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20092 struct ndr_pull *_ndr_info;
20093 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20094 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20095 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20096 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20100 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20101 NDR_PULL_ALLOC(ndr, r->out.needed);
20103 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20104 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20107 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20109 return NDR_ERR_SUCCESS;
20112 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20114 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
20116 if (flags & NDR_SET_VALUES) {
20117 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20119 if (flags & NDR_IN) {
20120 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
20122 ndr_print_ptr(ndr, "server", r->in.server);
20124 if (r->in.server) {
20125 ndr_print_string(ndr, "server", r->in.server);
20128 ndr_print_ptr(ndr, "environment", r->in.environment);
20130 if (r->in.environment) {
20131 ndr_print_string(ndr, "environment", r->in.environment);
20134 ndr_print_uint32(ndr, "level", r->in.level);
20135 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20137 if (r->in.buffer) {
20138 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20141 ndr_print_uint32(ndr, "offered", r->in.offered);
20144 if (flags & NDR_OUT) {
20145 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
20147 ndr_print_ptr(ndr, "info", r->out.info);
20150 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20151 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
20154 ndr_print_ptr(ndr, "needed", r->out.needed);
20156 ndr_print_uint32(ndr, "needed", *r->out.needed);
20158 ndr_print_WERROR(ndr, "result", r->out.result);
20164 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
20166 if (flags & NDR_IN) {
20167 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20168 if (r->in.server) {
20169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20172 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20177 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20178 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20180 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20181 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20183 if (flags & NDR_OUT) {
20184 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20186 return NDR_ERR_SUCCESS;
20189 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20191 uint32_t _ptr_server;
20192 TALLOC_CTX *_mem_save_server_0;
20193 if (flags & NDR_IN) {
20194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20196 NDR_PULL_ALLOC(ndr, r->in.server);
20198 r->in.server = NULL;
20200 if (r->in.server) {
20201 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20202 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20203 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20204 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20205 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20206 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
20208 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20209 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20212 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20213 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20214 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20215 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
20217 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20218 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20219 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20220 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20221 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20222 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.driver), ndr_get_array_length(ndr, &r->in.driver));
20224 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20225 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20227 if (flags & NDR_OUT) {
20228 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20230 return NDR_ERR_SUCCESS;
20233 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20235 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20237 if (flags & NDR_SET_VALUES) {
20238 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20240 if (flags & NDR_IN) {
20241 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20243 ndr_print_ptr(ndr, "server", r->in.server);
20245 if (r->in.server) {
20246 ndr_print_string(ndr, "server", r->in.server);
20249 ndr_print_string(ndr, "architecture", r->in.architecture);
20250 ndr_print_string(ndr, "driver", r->in.driver);
20253 if (flags & NDR_OUT) {
20254 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20256 ndr_print_WERROR(ndr, "result", r->out.result);
20262 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20264 if (flags & NDR_IN) {
20265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20266 if (r->in.server) {
20267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20270 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20279 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));
20280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20283 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));
20285 if (flags & NDR_OUT) {
20286 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20288 return NDR_ERR_SUCCESS;
20291 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
20293 uint32_t _ptr_server;
20294 TALLOC_CTX *_mem_save_server_0;
20295 if (flags & NDR_IN) {
20296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20298 NDR_PULL_ALLOC(ndr, r->in.server);
20300 r->in.server = NULL;
20302 if (r->in.server) {
20303 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20304 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20305 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20306 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20307 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20308 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
20310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20314 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20315 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20316 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20317 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
20319 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20320 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20321 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
20322 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
20323 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
20324 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.path_name), ndr_get_array_length(ndr, &r->in.path_name));
20326 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
20327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.path_name, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t), CH_UTF16));
20328 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
20329 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
20330 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
20331 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
20333 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
20334 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
20336 if (flags & NDR_OUT) {
20337 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20339 return NDR_ERR_SUCCESS;
20342 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
20344 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
20346 if (flags & NDR_SET_VALUES) {
20347 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20349 if (flags & NDR_IN) {
20350 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
20352 ndr_print_ptr(ndr, "server", r->in.server);
20354 if (r->in.server) {
20355 ndr_print_string(ndr, "server", r->in.server);
20358 ndr_print_string(ndr, "architecture", r->in.architecture);
20359 ndr_print_string(ndr, "path_name", r->in.path_name);
20360 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
20363 if (flags & NDR_OUT) {
20364 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
20366 ndr_print_WERROR(ndr, "result", r->out.result);
20372 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
20374 if (flags & NDR_IN) {
20375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20376 if (r->in.servername) {
20377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20380 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20383 if (r->in.environment) {
20384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20387 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20391 if (r->in.buffer) {
20392 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20396 if (flags & NDR_OUT) {
20397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20399 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20401 if (r->out.needed == NULL) {
20402 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20405 if (r->out.count == NULL) {
20406 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20409 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20411 return NDR_ERR_SUCCESS;
20414 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
20416 uint32_t _ptr_servername;
20417 uint32_t _ptr_environment;
20418 uint32_t _ptr_buffer;
20419 uint32_t _ptr_info;
20420 TALLOC_CTX *_mem_save_servername_0;
20421 TALLOC_CTX *_mem_save_environment_0;
20422 TALLOC_CTX *_mem_save_buffer_0;
20423 TALLOC_CTX *_mem_save_info_0;
20424 TALLOC_CTX *_mem_save_needed_0;
20425 TALLOC_CTX *_mem_save_count_0;
20426 if (flags & NDR_IN) {
20427 ZERO_STRUCT(r->out);
20429 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20430 if (_ptr_servername) {
20431 NDR_PULL_ALLOC(ndr, r->in.servername);
20433 r->in.servername = NULL;
20435 if (r->in.servername) {
20436 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20437 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20438 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20439 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20440 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20441 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
20443 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20444 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20448 if (_ptr_environment) {
20449 NDR_PULL_ALLOC(ndr, r->in.environment);
20451 r->in.environment = NULL;
20453 if (r->in.environment) {
20454 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20455 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20456 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20457 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20458 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20459 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
20461 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20462 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20468 NDR_PULL_ALLOC(ndr, r->in.buffer);
20470 r->in.buffer = NULL;
20472 if (r->in.buffer) {
20473 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20474 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20475 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20479 NDR_PULL_ALLOC(ndr, r->out.needed);
20480 ZERO_STRUCTP(r->out.needed);
20481 NDR_PULL_ALLOC(ndr, r->out.count);
20482 ZERO_STRUCTP(r->out.count);
20484 if (flags & NDR_OUT) {
20485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20487 NDR_PULL_ALLOC(ndr, r->out.info);
20489 r->out.info = NULL;
20492 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20493 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20494 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20497 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20498 NDR_PULL_ALLOC(ndr, r->out.needed);
20500 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20501 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20504 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20505 NDR_PULL_ALLOC(ndr, r->out.count);
20507 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20508 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20511 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20513 return NDR_ERR_SUCCESS;
20516 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
20518 uint32_t cntr_info_0;
20519 if (flags & NDR_IN) {
20520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20523 if (flags & NDR_OUT) {
20524 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20525 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20526 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20528 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20529 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20532 return NDR_ERR_SUCCESS;
20535 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
20537 uint32_t cntr_info_0;
20538 TALLOC_CTX *_mem_save_info_0;
20539 if (flags & NDR_IN) {
20540 ZERO_STRUCT(r->out);
20542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20545 if (flags & NDR_OUT) {
20546 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20547 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20548 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20549 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20550 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20551 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20553 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20554 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20558 return NDR_ERR_SUCCESS;
20561 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
20563 uint32_t cntr_info_2;
20564 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
20566 if (flags & NDR_SET_VALUES) {
20567 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20569 if (flags & NDR_IN) {
20570 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
20572 ndr_print_ptr(ndr, "servername", r->in.servername);
20574 if (r->in.servername) {
20575 ndr_print_string(ndr, "servername", r->in.servername);
20578 ndr_print_ptr(ndr, "environment", r->in.environment);
20580 if (r->in.environment) {
20581 ndr_print_string(ndr, "environment", r->in.environment);
20584 ndr_print_uint32(ndr, "level", r->in.level);
20585 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20587 if (r->in.buffer) {
20588 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20591 ndr_print_uint32(ndr, "offered", r->in.offered);
20594 if (flags & NDR_OUT) {
20595 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
20597 ndr_print_ptr(ndr, "count", r->out.count);
20599 ndr_print_uint32(ndr, "count", *r->out.count);
20601 ndr_print_ptr(ndr, "info", r->out.info);
20603 ndr_print_ptr(ndr, "info", *r->out.info);
20605 if (*r->out.info) {
20606 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20608 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20610 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20611 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20612 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20620 ndr_print_ptr(ndr, "needed", r->out.needed);
20622 ndr_print_uint32(ndr, "needed", *r->out.needed);
20624 ndr_print_WERROR(ndr, "result", r->out.result);
20630 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20632 if (flags & NDR_IN) {
20633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20634 if (r->in.server) {
20635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20636 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20638 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20640 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20641 if (r->in.environment) {
20642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20645 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20648 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20649 if (r->in.buffer) {
20650 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20654 if (flags & NDR_OUT) {
20655 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20658 struct ndr_push *_ndr_info;
20659 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20660 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20661 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20662 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20665 if (r->out.needed == NULL) {
20666 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20669 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20671 return NDR_ERR_SUCCESS;
20674 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
20676 uint32_t _ptr_server;
20677 uint32_t _ptr_environment;
20678 uint32_t _ptr_buffer;
20679 uint32_t _ptr_info;
20680 TALLOC_CTX *_mem_save_server_0;
20681 TALLOC_CTX *_mem_save_environment_0;
20682 TALLOC_CTX *_mem_save_buffer_0;
20683 TALLOC_CTX *_mem_save_info_0;
20684 TALLOC_CTX *_mem_save_needed_0;
20685 if (flags & NDR_IN) {
20686 ZERO_STRUCT(r->out);
20688 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20690 NDR_PULL_ALLOC(ndr, r->in.server);
20692 r->in.server = NULL;
20694 if (r->in.server) {
20695 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20696 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20697 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20698 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20699 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20700 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
20702 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20703 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20706 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20707 if (_ptr_environment) {
20708 NDR_PULL_ALLOC(ndr, r->in.environment);
20710 r->in.environment = NULL;
20712 if (r->in.environment) {
20713 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20714 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20715 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20716 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20717 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20718 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
20720 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20721 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20722 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20725 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20727 NDR_PULL_ALLOC(ndr, r->in.buffer);
20729 r->in.buffer = NULL;
20731 if (r->in.buffer) {
20732 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20733 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20734 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20737 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20738 NDR_PULL_ALLOC(ndr, r->out.needed);
20739 ZERO_STRUCTP(r->out.needed);
20741 if (flags & NDR_OUT) {
20742 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20744 NDR_PULL_ALLOC(ndr, r->out.info);
20746 r->out.info = NULL;
20749 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20750 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20752 struct ndr_pull *_ndr_info;
20753 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20754 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20755 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20756 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20760 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20761 NDR_PULL_ALLOC(ndr, r->out.needed);
20763 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20764 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20767 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20769 return NDR_ERR_SUCCESS;
20772 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20774 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
20776 if (flags & NDR_SET_VALUES) {
20777 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20779 if (flags & NDR_IN) {
20780 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
20782 ndr_print_ptr(ndr, "server", r->in.server);
20784 if (r->in.server) {
20785 ndr_print_string(ndr, "server", r->in.server);
20788 ndr_print_ptr(ndr, "environment", r->in.environment);
20790 if (r->in.environment) {
20791 ndr_print_string(ndr, "environment", r->in.environment);
20794 ndr_print_uint32(ndr, "level", r->in.level);
20795 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20797 if (r->in.buffer) {
20798 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20801 ndr_print_uint32(ndr, "offered", r->in.offered);
20804 if (flags & NDR_OUT) {
20805 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
20807 ndr_print_ptr(ndr, "info", r->out.info);
20810 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20811 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
20814 ndr_print_ptr(ndr, "needed", r->out.needed);
20816 ndr_print_uint32(ndr, "needed", *r->out.needed);
20818 ndr_print_WERROR(ndr, "result", r->out.result);
20824 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
20826 if (flags & NDR_IN) {
20827 if (r->in.handle == NULL) {
20828 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20830 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20832 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
20833 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20835 if (flags & NDR_OUT) {
20836 if (r->out.job_id == NULL) {
20837 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
20840 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20842 return NDR_ERR_SUCCESS;
20845 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
20847 TALLOC_CTX *_mem_save_handle_0;
20848 TALLOC_CTX *_mem_save_job_id_0;
20849 if (flags & NDR_IN) {
20850 ZERO_STRUCT(r->out);
20852 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20853 NDR_PULL_ALLOC(ndr, r->in.handle);
20855 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20856 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20857 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20860 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
20861 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20862 NDR_PULL_ALLOC(ndr, r->out.job_id);
20863 ZERO_STRUCTP(r->out.job_id);
20865 if (flags & NDR_OUT) {
20866 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20867 NDR_PULL_ALLOC(ndr, r->out.job_id);
20869 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
20870 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
20871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
20872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
20873 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20875 return NDR_ERR_SUCCESS;
20878 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
20880 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
20882 if (flags & NDR_SET_VALUES) {
20883 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20885 if (flags & NDR_IN) {
20886 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
20888 ndr_print_ptr(ndr, "handle", r->in.handle);
20890 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20892 ndr_print_uint32(ndr, "level", r->in.level);
20893 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
20894 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
20897 if (flags & NDR_OUT) {
20898 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
20900 ndr_print_ptr(ndr, "job_id", r->out.job_id);
20902 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
20904 ndr_print_WERROR(ndr, "result", r->out.result);
20910 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
20912 if (flags & NDR_IN) {
20913 if (r->in.handle == NULL) {
20914 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20916 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20918 if (flags & NDR_OUT) {
20919 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20921 return NDR_ERR_SUCCESS;
20924 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
20926 TALLOC_CTX *_mem_save_handle_0;
20927 if (flags & NDR_IN) {
20928 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20929 NDR_PULL_ALLOC(ndr, r->in.handle);
20931 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20932 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20933 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20936 if (flags & NDR_OUT) {
20937 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20939 return NDR_ERR_SUCCESS;
20942 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
20944 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
20946 if (flags & NDR_SET_VALUES) {
20947 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20949 if (flags & NDR_IN) {
20950 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
20952 ndr_print_ptr(ndr, "handle", r->in.handle);
20954 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20958 if (flags & NDR_OUT) {
20959 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
20961 ndr_print_WERROR(ndr, "result", r->out.result);
20967 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
20969 if (flags & NDR_IN) {
20970 if (r->in.handle == NULL) {
20971 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20973 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20974 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
20975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
20977 if (flags & NDR_OUT) {
20978 if (r->out.num_written == NULL) {
20979 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
20982 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20984 return NDR_ERR_SUCCESS;
20987 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
20989 TALLOC_CTX *_mem_save_handle_0;
20990 TALLOC_CTX *_mem_save_num_written_0;
20991 if (flags & NDR_IN) {
20992 ZERO_STRUCT(r->out);
20994 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20995 NDR_PULL_ALLOC(ndr, r->in.handle);
20997 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20998 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20999 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21000 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21001 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
21002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
21003 NDR_PULL_ALLOC(ndr, r->out.num_written);
21004 ZERO_STRUCTP(r->out.num_written);
21006 if (flags & NDR_OUT) {
21007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21008 NDR_PULL_ALLOC(ndr, r->out.num_written);
21010 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
21011 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
21012 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
21013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
21014 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21016 return NDR_ERR_SUCCESS;
21019 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
21021 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
21023 if (flags & NDR_SET_VALUES) {
21024 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21026 if (flags & NDR_IN) {
21027 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
21029 ndr_print_ptr(ndr, "handle", r->in.handle);
21031 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21033 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
21034 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
21037 if (flags & NDR_OUT) {
21038 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
21040 ndr_print_ptr(ndr, "num_written", r->out.num_written);
21042 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
21044 ndr_print_WERROR(ndr, "result", r->out.result);
21050 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
21052 if (flags & NDR_IN) {
21053 if (r->in.handle == NULL) {
21054 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21056 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21058 if (flags & NDR_OUT) {
21059 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21061 return NDR_ERR_SUCCESS;
21064 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
21066 TALLOC_CTX *_mem_save_handle_0;
21067 if (flags & NDR_IN) {
21068 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21069 NDR_PULL_ALLOC(ndr, r->in.handle);
21071 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21072 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21073 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21076 if (flags & NDR_OUT) {
21077 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21079 return NDR_ERR_SUCCESS;
21082 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
21084 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
21086 if (flags & NDR_SET_VALUES) {
21087 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21089 if (flags & NDR_IN) {
21090 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
21092 ndr_print_ptr(ndr, "handle", r->in.handle);
21094 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21098 if (flags & NDR_OUT) {
21099 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
21101 ndr_print_WERROR(ndr, "result", r->out.result);
21107 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
21109 if (flags & NDR_IN) {
21110 if (r->in.handle == NULL) {
21111 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21113 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21115 if (flags & NDR_OUT) {
21116 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21118 return NDR_ERR_SUCCESS;
21121 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
21123 TALLOC_CTX *_mem_save_handle_0;
21124 if (flags & NDR_IN) {
21125 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21126 NDR_PULL_ALLOC(ndr, r->in.handle);
21128 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21129 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21130 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21133 if (flags & NDR_OUT) {
21134 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21136 return NDR_ERR_SUCCESS;
21139 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
21141 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
21143 if (flags & NDR_SET_VALUES) {
21144 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21146 if (flags & NDR_IN) {
21147 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
21149 ndr_print_ptr(ndr, "handle", r->in.handle);
21151 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21155 if (flags & NDR_OUT) {
21156 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
21158 ndr_print_WERROR(ndr, "result", r->out.result);
21164 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
21166 if (flags & NDR_IN) {
21167 if (r->in.handle == NULL) {
21168 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21170 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21171 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21173 if (flags & NDR_OUT) {
21174 if (r->out.data == NULL) {
21175 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21178 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
21179 if (r->out._data_size == NULL) {
21180 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
21183 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21185 return NDR_ERR_SUCCESS;
21188 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21190 TALLOC_CTX *_mem_save_handle_0;
21191 TALLOC_CTX *_mem_save__data_size_0;
21192 if (flags & NDR_IN) {
21193 ZERO_STRUCT(r->out);
21195 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21196 NDR_PULL_ALLOC(ndr, r->in.handle);
21198 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21199 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21200 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21202 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
21203 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
21204 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
21205 NDR_PULL_ALLOC(ndr, r->out._data_size);
21206 ZERO_STRUCTP(r->out._data_size);
21208 if (flags & NDR_OUT) {
21209 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
21210 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21211 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
21213 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
21214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21215 NDR_PULL_ALLOC(ndr, r->out._data_size);
21217 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
21218 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
21219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
21220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
21221 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21223 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21226 return NDR_ERR_SUCCESS;
21229 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21231 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21233 if (flags & NDR_SET_VALUES) {
21234 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21236 if (flags & NDR_IN) {
21237 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21239 ndr_print_ptr(ndr, "handle", r->in.handle);
21241 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21243 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21246 if (flags & NDR_OUT) {
21247 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21249 ndr_print_ptr(ndr, "data", r->out.data);
21251 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21253 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21255 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21257 ndr_print_WERROR(ndr, "result", r->out.result);
21263 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
21265 if (flags & NDR_IN) {
21266 if (r->in.handle == NULL) {
21267 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21269 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21271 if (flags & NDR_OUT) {
21272 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21274 return NDR_ERR_SUCCESS;
21277 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21279 TALLOC_CTX *_mem_save_handle_0;
21280 if (flags & NDR_IN) {
21281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21282 NDR_PULL_ALLOC(ndr, r->in.handle);
21284 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21285 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21286 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21289 if (flags & NDR_OUT) {
21290 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21292 return NDR_ERR_SUCCESS;
21295 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
21297 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
21299 if (flags & NDR_SET_VALUES) {
21300 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21302 if (flags & NDR_IN) {
21303 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
21305 ndr_print_ptr(ndr, "handle", r->in.handle);
21307 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21311 if (flags & NDR_OUT) {
21312 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
21314 ndr_print_WERROR(ndr, "result", r->out.result);
21320 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
21322 if (flags & NDR_IN) {
21323 if (r->in.handle == NULL) {
21324 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21326 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21329 if (r->in.buffer) {
21330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21331 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21335 if (flags & NDR_OUT) {
21336 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
21337 if (r->out.buffer) {
21338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21339 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21341 if (r->out.needed == NULL) {
21342 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21345 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21347 return NDR_ERR_SUCCESS;
21350 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
21352 uint32_t _ptr_buffer;
21353 TALLOC_CTX *_mem_save_handle_0;
21354 TALLOC_CTX *_mem_save_buffer_0;
21355 TALLOC_CTX *_mem_save_needed_0;
21356 if (flags & NDR_IN) {
21357 ZERO_STRUCT(r->out);
21359 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21360 NDR_PULL_ALLOC(ndr, r->in.handle);
21362 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21363 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21364 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21367 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21369 NDR_PULL_ALLOC(ndr, r->in.buffer);
21371 r->in.buffer = NULL;
21373 if (r->in.buffer) {
21374 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21375 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21376 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21377 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21378 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21382 NDR_PULL_ALLOC(ndr, r->out.needed);
21383 ZERO_STRUCTP(r->out.needed);
21384 if (r->in.buffer) {
21385 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21388 if (flags & NDR_OUT) {
21389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21391 NDR_PULL_ALLOC(ndr, r->out.buffer);
21393 r->out.buffer = NULL;
21395 if (r->out.buffer) {
21396 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21397 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
21398 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21399 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21400 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21403 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21404 NDR_PULL_ALLOC(ndr, r->out.needed);
21406 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21407 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21410 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21411 if (r->out.buffer) {
21412 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21415 return NDR_ERR_SUCCESS;
21418 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
21420 ndr_print_struct(ndr, name, "spoolss_AddJob");
21422 if (flags & NDR_SET_VALUES) {
21423 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21425 if (flags & NDR_IN) {
21426 ndr_print_struct(ndr, "in", "spoolss_AddJob");
21428 ndr_print_ptr(ndr, "handle", r->in.handle);
21430 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21432 ndr_print_uint32(ndr, "level", r->in.level);
21433 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21435 if (r->in.buffer) {
21436 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21439 ndr_print_uint32(ndr, "offered", r->in.offered);
21442 if (flags & NDR_OUT) {
21443 ndr_print_struct(ndr, "out", "spoolss_AddJob");
21445 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21447 if (r->out.buffer) {
21448 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21451 ndr_print_ptr(ndr, "needed", r->out.needed);
21453 ndr_print_uint32(ndr, "needed", *r->out.needed);
21455 ndr_print_WERROR(ndr, "result", r->out.result);
21461 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
21463 if (flags & NDR_IN) {
21464 if (r->in.handle == NULL) {
21465 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21467 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
21470 if (flags & NDR_OUT) {
21471 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21473 return NDR_ERR_SUCCESS;
21476 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
21478 TALLOC_CTX *_mem_save_handle_0;
21479 if (flags & NDR_IN) {
21480 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21481 NDR_PULL_ALLOC(ndr, r->in.handle);
21483 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21484 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21485 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
21489 if (flags & NDR_OUT) {
21490 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21492 return NDR_ERR_SUCCESS;
21495 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
21497 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
21499 if (flags & NDR_SET_VALUES) {
21500 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21502 if (flags & NDR_IN) {
21503 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
21505 ndr_print_ptr(ndr, "handle", r->in.handle);
21507 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21509 ndr_print_uint32(ndr, "jobid", r->in.jobid);
21512 if (flags & NDR_OUT) {
21513 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
21515 ndr_print_WERROR(ndr, "result", r->out.result);
21521 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
21523 if (flags & NDR_IN) {
21524 if (r->in.handle == NULL) {
21525 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21527 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21531 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));
21532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21534 if (flags & NDR_OUT) {
21535 if (r->out.type == NULL) {
21536 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21538 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
21539 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
21540 if (r->out.needed == NULL) {
21541 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21544 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21546 return NDR_ERR_SUCCESS;
21549 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
21551 TALLOC_CTX *_mem_save_handle_0;
21552 TALLOC_CTX *_mem_save_type_0;
21553 TALLOC_CTX *_mem_save_needed_0;
21554 if (flags & NDR_IN) {
21555 ZERO_STRUCT(r->out);
21557 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21558 NDR_PULL_ALLOC(ndr, r->in.handle);
21560 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21561 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21562 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21564 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21565 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21566 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21567 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
21569 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21570 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
21571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21572 NDR_PULL_ALLOC(ndr, r->out.type);
21573 ZERO_STRUCTP(r->out.type);
21574 NDR_PULL_ALLOC(ndr, r->out.needed);
21575 ZERO_STRUCTP(r->out.needed);
21577 if (flags & NDR_OUT) {
21578 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21579 NDR_PULL_ALLOC(ndr, r->out.type);
21581 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21582 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21583 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
21584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21585 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
21586 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21587 NDR_PULL_ALLOC(ndr, r->out.needed);
21589 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21590 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21592 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21593 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21595 return NDR_ERR_SUCCESS;
21598 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
21600 if (flags & NDR_IN) {
21601 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21603 if (flags & NDR_OUT) {
21604 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21605 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21607 return NDR_ERR_SUCCESS;
21610 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
21612 if (flags & NDR_IN) {
21613 ZERO_STRUCT(r->out);
21615 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21617 if (flags & NDR_OUT) {
21618 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
21619 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21621 return NDR_ERR_SUCCESS;
21624 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
21626 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
21628 if (flags & NDR_SET_VALUES) {
21629 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21631 if (flags & NDR_IN) {
21632 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
21634 ndr_print_ptr(ndr, "handle", r->in.handle);
21636 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21638 ndr_print_string(ndr, "value_name", r->in.value_name);
21639 ndr_print_uint32(ndr, "offered", r->in.offered);
21642 if (flags & NDR_OUT) {
21643 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
21645 ndr_print_ptr(ndr, "type", r->out.type);
21647 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
21649 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
21650 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
21651 ndr_print_ptr(ndr, "needed", r->out.needed);
21653 ndr_print_uint32(ndr, "needed", *r->out.needed);
21655 ndr_print_WERROR(ndr, "result", r->out.result);
21661 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
21663 if (flags & NDR_IN) {
21664 if (r->in.handle == NULL) {
21665 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21667 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21671 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));
21672 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21673 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
21676 if (flags & NDR_OUT) {
21677 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21679 return NDR_ERR_SUCCESS;
21682 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
21684 if (flags & NDR_IN) {
21685 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21687 if (flags & NDR_OUT) {
21688 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21689 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21691 return NDR_ERR_SUCCESS;
21694 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
21696 TALLOC_CTX *_mem_save_handle_0;
21697 if (flags & NDR_IN) {
21698 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21699 NDR_PULL_ALLOC(ndr, r->in.handle);
21701 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21702 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21703 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21704 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21705 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21706 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21707 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21708 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
21710 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21711 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
21712 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21714 struct ndr_pull *_ndr_data;
21715 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
21716 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
21717 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
21718 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
21720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
21722 if (flags & NDR_OUT) {
21723 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21725 return NDR_ERR_SUCCESS;
21728 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
21730 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
21732 if (flags & NDR_SET_VALUES) {
21733 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21735 if (flags & NDR_IN) {
21736 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
21738 ndr_print_ptr(ndr, "handle", r->in.handle);
21740 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21742 ndr_print_string(ndr, "value_name", r->in.value_name);
21743 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
21744 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
21745 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
21746 ndr_print_uint32(ndr, "_offered", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_PrinterData(&r->in.data, r->in.type, ndr->iconv_convenience, flags):r->in._offered);
21749 if (flags & NDR_OUT) {
21750 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
21752 ndr_print_WERROR(ndr, "result", r->out.result);
21758 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
21760 if (flags & NDR_IN) {
21762 if (flags & NDR_OUT) {
21763 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21765 return NDR_ERR_SUCCESS;
21768 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
21770 if (flags & NDR_IN) {
21772 if (flags & NDR_OUT) {
21773 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21775 return NDR_ERR_SUCCESS;
21778 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
21780 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
21782 if (flags & NDR_SET_VALUES) {
21783 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21785 if (flags & NDR_IN) {
21786 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
21790 if (flags & NDR_OUT) {
21791 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
21793 ndr_print_WERROR(ndr, "result", r->out.result);
21799 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
21801 if (flags & NDR_IN) {
21802 if (r->in.handle == NULL) {
21803 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21805 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21807 if (flags & NDR_OUT) {
21808 if (r->out.handle == NULL) {
21809 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21811 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21812 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21814 return NDR_ERR_SUCCESS;
21817 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
21819 TALLOC_CTX *_mem_save_handle_0;
21820 if (flags & NDR_IN) {
21821 ZERO_STRUCT(r->out);
21823 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21824 NDR_PULL_ALLOC(ndr, r->in.handle);
21826 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21827 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21828 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21830 NDR_PULL_ALLOC(ndr, r->out.handle);
21831 *r->out.handle = *r->in.handle;
21833 if (flags & NDR_OUT) {
21834 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21835 NDR_PULL_ALLOC(ndr, r->out.handle);
21837 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21838 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21839 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21841 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21843 return NDR_ERR_SUCCESS;
21846 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
21848 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
21850 if (flags & NDR_SET_VALUES) {
21851 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21853 if (flags & NDR_IN) {
21854 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
21856 ndr_print_ptr(ndr, "handle", r->in.handle);
21858 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21862 if (flags & NDR_OUT) {
21863 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
21865 ndr_print_ptr(ndr, "handle", r->out.handle);
21867 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21869 ndr_print_WERROR(ndr, "result", r->out.result);
21875 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
21877 if (flags & NDR_IN) {
21878 if (r->in.handle == NULL) {
21879 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21881 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21883 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21884 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21886 if (flags & NDR_OUT) {
21887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21889 return NDR_ERR_SUCCESS;
21892 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
21894 TALLOC_CTX *_mem_save_handle_0;
21895 if (flags & NDR_IN) {
21896 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21897 NDR_PULL_ALLOC(ndr, r->in.handle);
21899 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21900 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21901 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21904 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21905 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21907 if (flags & NDR_OUT) {
21908 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21910 return NDR_ERR_SUCCESS;
21913 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
21915 ndr_print_struct(ndr, name, "spoolss_AddForm");
21917 if (flags & NDR_SET_VALUES) {
21918 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21920 if (flags & NDR_IN) {
21921 ndr_print_struct(ndr, "in", "spoolss_AddForm");
21923 ndr_print_ptr(ndr, "handle", r->in.handle);
21925 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21927 ndr_print_uint32(ndr, "level", r->in.level);
21928 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21929 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
21932 if (flags & NDR_OUT) {
21933 ndr_print_struct(ndr, "out", "spoolss_AddForm");
21935 ndr_print_WERROR(ndr, "result", r->out.result);
21941 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
21943 if (flags & NDR_IN) {
21944 if (r->in.handle == NULL) {
21945 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21947 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21951 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));
21953 if (flags & NDR_OUT) {
21954 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21956 return NDR_ERR_SUCCESS;
21959 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
21961 TALLOC_CTX *_mem_save_handle_0;
21962 if (flags & NDR_IN) {
21963 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21964 NDR_PULL_ALLOC(ndr, r->in.handle);
21966 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21967 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21968 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21970 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
21971 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
21972 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
21973 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
21975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
21976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
21978 if (flags & NDR_OUT) {
21979 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21981 return NDR_ERR_SUCCESS;
21984 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
21986 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
21988 if (flags & NDR_SET_VALUES) {
21989 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21991 if (flags & NDR_IN) {
21992 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
21994 ndr_print_ptr(ndr, "handle", r->in.handle);
21996 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21998 ndr_print_string(ndr, "form_name", r->in.form_name);
22001 if (flags & NDR_OUT) {
22002 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
22004 ndr_print_WERROR(ndr, "result", r->out.result);
22010 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
22012 if (flags & NDR_IN) {
22013 if (r->in.handle == NULL) {
22014 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22016 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22020 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));
22021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22022 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22023 if (r->in.buffer) {
22024 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22028 if (flags & NDR_OUT) {
22029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22032 struct ndr_push *_ndr_info;
22033 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22034 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22035 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22036 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22039 if (r->out.needed == NULL) {
22040 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22043 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22045 return NDR_ERR_SUCCESS;
22048 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
22050 uint32_t _ptr_buffer;
22051 uint32_t _ptr_info;
22052 TALLOC_CTX *_mem_save_handle_0;
22053 TALLOC_CTX *_mem_save_buffer_0;
22054 TALLOC_CTX *_mem_save_info_0;
22055 TALLOC_CTX *_mem_save_needed_0;
22056 if (flags & NDR_IN) {
22057 ZERO_STRUCT(r->out);
22059 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22060 NDR_PULL_ALLOC(ndr, r->in.handle);
22062 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22063 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22064 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22066 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22067 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22068 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22069 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
22071 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22072 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
22073 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22076 NDR_PULL_ALLOC(ndr, r->in.buffer);
22078 r->in.buffer = NULL;
22080 if (r->in.buffer) {
22081 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22082 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22083 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22086 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22087 NDR_PULL_ALLOC(ndr, r->out.needed);
22088 ZERO_STRUCTP(r->out.needed);
22090 if (flags & NDR_OUT) {
22091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22093 NDR_PULL_ALLOC(ndr, r->out.info);
22095 r->out.info = NULL;
22098 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22099 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22101 struct ndr_pull *_ndr_info;
22102 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22103 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22104 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22105 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22109 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22110 NDR_PULL_ALLOC(ndr, r->out.needed);
22112 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22113 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22116 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22118 return NDR_ERR_SUCCESS;
22121 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
22123 ndr_print_struct(ndr, name, "spoolss_GetForm");
22125 if (flags & NDR_SET_VALUES) {
22126 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22128 if (flags & NDR_IN) {
22129 ndr_print_struct(ndr, "in", "spoolss_GetForm");
22131 ndr_print_ptr(ndr, "handle", r->in.handle);
22133 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22135 ndr_print_string(ndr, "form_name", r->in.form_name);
22136 ndr_print_uint32(ndr, "level", r->in.level);
22137 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22139 if (r->in.buffer) {
22140 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22143 ndr_print_uint32(ndr, "offered", r->in.offered);
22146 if (flags & NDR_OUT) {
22147 ndr_print_struct(ndr, "out", "spoolss_GetForm");
22149 ndr_print_ptr(ndr, "info", r->out.info);
22152 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22153 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
22156 ndr_print_ptr(ndr, "needed", r->out.needed);
22158 ndr_print_uint32(ndr, "needed", *r->out.needed);
22160 ndr_print_WERROR(ndr, "result", r->out.result);
22166 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
22168 if (flags & NDR_IN) {
22169 if (r->in.handle == NULL) {
22170 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22172 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22176 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));
22177 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22178 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22179 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22181 if (flags & NDR_OUT) {
22182 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22184 return NDR_ERR_SUCCESS;
22187 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22189 TALLOC_CTX *_mem_save_handle_0;
22190 if (flags & NDR_IN) {
22191 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22192 NDR_PULL_ALLOC(ndr, r->in.handle);
22194 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22195 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22196 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22198 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22199 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22200 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22201 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.form_name), ndr_get_array_length(ndr, &r->in.form_name));
22203 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.form_name, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t), CH_UTF16));
22205 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22206 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22207 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22209 if (flags & NDR_OUT) {
22210 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22212 return NDR_ERR_SUCCESS;
22215 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
22217 ndr_print_struct(ndr, name, "spoolss_SetForm");
22219 if (flags & NDR_SET_VALUES) {
22220 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22222 if (flags & NDR_IN) {
22223 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22225 ndr_print_ptr(ndr, "handle", r->in.handle);
22227 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22229 ndr_print_string(ndr, "form_name", r->in.form_name);
22230 ndr_print_uint32(ndr, "level", r->in.level);
22231 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22232 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22235 if (flags & NDR_OUT) {
22236 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22238 ndr_print_WERROR(ndr, "result", r->out.result);
22244 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22246 if (flags & NDR_IN) {
22247 if (r->in.handle == NULL) {
22248 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22250 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22252 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22253 if (r->in.buffer) {
22254 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22258 if (flags & NDR_OUT) {
22259 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22261 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22263 if (r->out.needed == NULL) {
22264 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22267 if (r->out.count == NULL) {
22268 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22271 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22273 return NDR_ERR_SUCCESS;
22276 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
22278 uint32_t _ptr_buffer;
22279 uint32_t _ptr_info;
22280 TALLOC_CTX *_mem_save_handle_0;
22281 TALLOC_CTX *_mem_save_buffer_0;
22282 TALLOC_CTX *_mem_save_info_0;
22283 TALLOC_CTX *_mem_save_needed_0;
22284 TALLOC_CTX *_mem_save_count_0;
22285 if (flags & NDR_IN) {
22286 ZERO_STRUCT(r->out);
22288 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22289 NDR_PULL_ALLOC(ndr, r->in.handle);
22291 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22292 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22293 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22298 NDR_PULL_ALLOC(ndr, r->in.buffer);
22300 r->in.buffer = NULL;
22302 if (r->in.buffer) {
22303 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22304 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22305 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22309 NDR_PULL_ALLOC(ndr, r->out.needed);
22310 ZERO_STRUCTP(r->out.needed);
22311 NDR_PULL_ALLOC(ndr, r->out.count);
22312 ZERO_STRUCTP(r->out.count);
22314 if (flags & NDR_OUT) {
22315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22317 NDR_PULL_ALLOC(ndr, r->out.info);
22319 r->out.info = NULL;
22322 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22323 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22324 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22327 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22328 NDR_PULL_ALLOC(ndr, r->out.needed);
22330 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22331 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22333 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22334 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22335 NDR_PULL_ALLOC(ndr, r->out.count);
22337 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22338 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22341 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22343 return NDR_ERR_SUCCESS;
22346 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
22348 uint32_t cntr_info_0;
22349 if (flags & NDR_IN) {
22350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22353 if (flags & NDR_OUT) {
22354 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22355 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22356 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22358 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22359 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22362 return NDR_ERR_SUCCESS;
22365 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
22367 uint32_t cntr_info_0;
22368 TALLOC_CTX *_mem_save_info_0;
22369 if (flags & NDR_IN) {
22370 ZERO_STRUCT(r->out);
22372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22375 if (flags & NDR_OUT) {
22376 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22377 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22378 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22379 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22380 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22381 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22383 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22384 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22388 return NDR_ERR_SUCCESS;
22391 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
22393 uint32_t cntr_info_2;
22394 ndr_print_struct(ndr, name, "spoolss_EnumForms");
22396 if (flags & NDR_SET_VALUES) {
22397 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22399 if (flags & NDR_IN) {
22400 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
22402 ndr_print_ptr(ndr, "handle", r->in.handle);
22404 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22406 ndr_print_uint32(ndr, "level", r->in.level);
22407 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22409 if (r->in.buffer) {
22410 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22413 ndr_print_uint32(ndr, "offered", r->in.offered);
22416 if (flags & NDR_OUT) {
22417 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
22419 ndr_print_ptr(ndr, "count", r->out.count);
22421 ndr_print_uint32(ndr, "count", *r->out.count);
22423 ndr_print_ptr(ndr, "info", r->out.info);
22425 ndr_print_ptr(ndr, "info", *r->out.info);
22427 if (*r->out.info) {
22428 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22430 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22432 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22433 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22434 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22442 ndr_print_ptr(ndr, "needed", r->out.needed);
22444 ndr_print_uint32(ndr, "needed", *r->out.needed);
22446 ndr_print_WERROR(ndr, "result", r->out.result);
22452 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
22454 if (flags & NDR_IN) {
22455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22456 if (r->in.servername) {
22457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22463 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22464 if (r->in.buffer) {
22465 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22469 if (flags & NDR_OUT) {
22470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22472 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22474 if (r->out.needed == NULL) {
22475 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22478 if (r->out.count == NULL) {
22479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22482 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22484 return NDR_ERR_SUCCESS;
22487 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
22489 uint32_t _ptr_servername;
22490 uint32_t _ptr_buffer;
22491 uint32_t _ptr_info;
22492 TALLOC_CTX *_mem_save_servername_0;
22493 TALLOC_CTX *_mem_save_buffer_0;
22494 TALLOC_CTX *_mem_save_info_0;
22495 TALLOC_CTX *_mem_save_needed_0;
22496 TALLOC_CTX *_mem_save_count_0;
22497 if (flags & NDR_IN) {
22498 ZERO_STRUCT(r->out);
22500 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22501 if (_ptr_servername) {
22502 NDR_PULL_ALLOC(ndr, r->in.servername);
22504 r->in.servername = NULL;
22506 if (r->in.servername) {
22507 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22508 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22509 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22510 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22511 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22512 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
22514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22518 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22521 NDR_PULL_ALLOC(ndr, r->in.buffer);
22523 r->in.buffer = NULL;
22525 if (r->in.buffer) {
22526 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22527 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22528 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22532 NDR_PULL_ALLOC(ndr, r->out.needed);
22533 ZERO_STRUCTP(r->out.needed);
22534 NDR_PULL_ALLOC(ndr, r->out.count);
22535 ZERO_STRUCTP(r->out.count);
22537 if (flags & NDR_OUT) {
22538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22540 NDR_PULL_ALLOC(ndr, r->out.info);
22542 r->out.info = NULL;
22545 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22546 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22547 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22550 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22551 NDR_PULL_ALLOC(ndr, r->out.needed);
22553 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22554 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22557 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22558 NDR_PULL_ALLOC(ndr, r->out.count);
22560 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22561 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22562 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22564 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22566 return NDR_ERR_SUCCESS;
22569 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
22571 uint32_t cntr_info_0;
22572 if (flags & NDR_IN) {
22573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22576 if (flags & NDR_OUT) {
22577 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22578 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22579 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22581 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22582 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22585 return NDR_ERR_SUCCESS;
22588 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
22590 uint32_t cntr_info_0;
22591 TALLOC_CTX *_mem_save_info_0;
22592 if (flags & NDR_IN) {
22593 ZERO_STRUCT(r->out);
22595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22598 if (flags & NDR_OUT) {
22599 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22600 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22601 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22602 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22603 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22604 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22606 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22607 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22609 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22611 return NDR_ERR_SUCCESS;
22614 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
22616 uint32_t cntr_info_2;
22617 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
22619 if (flags & NDR_SET_VALUES) {
22620 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22622 if (flags & NDR_IN) {
22623 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
22625 ndr_print_ptr(ndr, "servername", r->in.servername);
22627 if (r->in.servername) {
22628 ndr_print_string(ndr, "servername", r->in.servername);
22631 ndr_print_uint32(ndr, "level", r->in.level);
22632 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22634 if (r->in.buffer) {
22635 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22638 ndr_print_uint32(ndr, "offered", r->in.offered);
22641 if (flags & NDR_OUT) {
22642 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
22644 ndr_print_ptr(ndr, "count", r->out.count);
22646 ndr_print_uint32(ndr, "count", *r->out.count);
22648 ndr_print_ptr(ndr, "info", r->out.info);
22650 ndr_print_ptr(ndr, "info", *r->out.info);
22652 if (*r->out.info) {
22653 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22655 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22657 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22658 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22659 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22667 ndr_print_ptr(ndr, "needed", r->out.needed);
22669 ndr_print_uint32(ndr, "needed", *r->out.needed);
22671 ndr_print_WERROR(ndr, "result", r->out.result);
22677 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
22679 if (flags & NDR_IN) {
22680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22681 if (r->in.servername) {
22682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22685 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22689 if (r->in.buffer) {
22690 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22694 if (flags & NDR_OUT) {
22695 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22697 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22699 if (r->out.needed == NULL) {
22700 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22703 if (r->out.count == NULL) {
22704 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22707 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22709 return NDR_ERR_SUCCESS;
22712 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
22714 uint32_t _ptr_servername;
22715 uint32_t _ptr_buffer;
22716 uint32_t _ptr_info;
22717 TALLOC_CTX *_mem_save_servername_0;
22718 TALLOC_CTX *_mem_save_buffer_0;
22719 TALLOC_CTX *_mem_save_info_0;
22720 TALLOC_CTX *_mem_save_needed_0;
22721 TALLOC_CTX *_mem_save_count_0;
22722 if (flags & NDR_IN) {
22723 ZERO_STRUCT(r->out);
22725 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22726 if (_ptr_servername) {
22727 NDR_PULL_ALLOC(ndr, r->in.servername);
22729 r->in.servername = NULL;
22731 if (r->in.servername) {
22732 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22733 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22734 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22735 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22736 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22737 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
22739 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22740 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22746 NDR_PULL_ALLOC(ndr, r->in.buffer);
22748 r->in.buffer = NULL;
22750 if (r->in.buffer) {
22751 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22752 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22753 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22754 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22756 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22757 NDR_PULL_ALLOC(ndr, r->out.needed);
22758 ZERO_STRUCTP(r->out.needed);
22759 NDR_PULL_ALLOC(ndr, r->out.count);
22760 ZERO_STRUCTP(r->out.count);
22762 if (flags & NDR_OUT) {
22763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22765 NDR_PULL_ALLOC(ndr, r->out.info);
22767 r->out.info = NULL;
22770 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22771 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22772 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22775 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22776 NDR_PULL_ALLOC(ndr, r->out.needed);
22778 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22779 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22780 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22782 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22783 NDR_PULL_ALLOC(ndr, r->out.count);
22785 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22786 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22787 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22788 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22789 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22791 return NDR_ERR_SUCCESS;
22794 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
22796 uint32_t cntr_info_0;
22797 if (flags & NDR_IN) {
22798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22801 if (flags & NDR_OUT) {
22802 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22803 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22804 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22806 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22807 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22810 return NDR_ERR_SUCCESS;
22813 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
22815 uint32_t cntr_info_0;
22816 TALLOC_CTX *_mem_save_info_0;
22817 if (flags & NDR_IN) {
22818 ZERO_STRUCT(r->out);
22820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22821 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22823 if (flags & NDR_OUT) {
22824 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22825 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22826 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22827 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22828 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22829 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22831 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22832 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22834 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22836 return NDR_ERR_SUCCESS;
22839 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
22841 uint32_t cntr_info_2;
22842 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
22844 if (flags & NDR_SET_VALUES) {
22845 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22847 if (flags & NDR_IN) {
22848 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
22850 ndr_print_ptr(ndr, "servername", r->in.servername);
22852 if (r->in.servername) {
22853 ndr_print_string(ndr, "servername", r->in.servername);
22856 ndr_print_uint32(ndr, "level", r->in.level);
22857 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22859 if (r->in.buffer) {
22860 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22863 ndr_print_uint32(ndr, "offered", r->in.offered);
22866 if (flags & NDR_OUT) {
22867 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
22869 ndr_print_ptr(ndr, "count", r->out.count);
22871 ndr_print_uint32(ndr, "count", *r->out.count);
22873 ndr_print_ptr(ndr, "info", r->out.info);
22875 ndr_print_ptr(ndr, "info", *r->out.info);
22877 if (*r->out.info) {
22878 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22880 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22882 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22883 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22884 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22892 ndr_print_ptr(ndr, "needed", r->out.needed);
22894 ndr_print_uint32(ndr, "needed", *r->out.needed);
22896 ndr_print_WERROR(ndr, "result", r->out.result);
22902 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
22904 if (flags & NDR_IN) {
22905 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
22906 if (r->in.server_name) {
22907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22910 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));
22912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
22913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22916 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));
22918 if (flags & NDR_OUT) {
22919 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22921 return NDR_ERR_SUCCESS;
22924 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
22926 uint32_t _ptr_server_name;
22927 TALLOC_CTX *_mem_save_server_name_0;
22928 if (flags & NDR_IN) {
22929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
22930 if (_ptr_server_name) {
22931 NDR_PULL_ALLOC(ndr, r->in.server_name);
22933 r->in.server_name = NULL;
22935 if (r->in.server_name) {
22936 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
22937 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
22938 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
22939 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
22940 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
22941 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
22943 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
22944 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
22945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
22947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
22948 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
22949 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
22950 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
22951 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.monitor_name), ndr_get_array_length(ndr, &r->in.monitor_name));
22953 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
22954 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.monitor_name, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t), CH_UTF16));
22956 if (flags & NDR_OUT) {
22957 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22959 return NDR_ERR_SUCCESS;
22962 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
22964 ndr_print_struct(ndr, name, "spoolss_AddPort");
22966 if (flags & NDR_SET_VALUES) {
22967 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22969 if (flags & NDR_IN) {
22970 ndr_print_struct(ndr, "in", "spoolss_AddPort");
22972 ndr_print_ptr(ndr, "server_name", r->in.server_name);
22974 if (r->in.server_name) {
22975 ndr_print_string(ndr, "server_name", r->in.server_name);
22978 ndr_print_uint32(ndr, "unknown", r->in.unknown);
22979 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
22982 if (flags & NDR_OUT) {
22983 ndr_print_struct(ndr, "out", "spoolss_AddPort");
22985 ndr_print_WERROR(ndr, "result", r->out.result);
22991 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
22993 if (flags & NDR_IN) {
22995 if (flags & NDR_OUT) {
22996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22998 return NDR_ERR_SUCCESS;
23001 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
23003 if (flags & NDR_IN) {
23005 if (flags & NDR_OUT) {
23006 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23008 return NDR_ERR_SUCCESS;
23011 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
23013 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
23015 if (flags & NDR_SET_VALUES) {
23016 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23018 if (flags & NDR_IN) {
23019 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
23023 if (flags & NDR_OUT) {
23024 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
23026 ndr_print_WERROR(ndr, "result", r->out.result);
23032 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
23034 if (flags & NDR_IN) {
23036 if (flags & NDR_OUT) {
23037 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23039 return NDR_ERR_SUCCESS;
23042 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
23044 if (flags & NDR_IN) {
23046 if (flags & NDR_OUT) {
23047 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23049 return NDR_ERR_SUCCESS;
23052 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
23054 ndr_print_struct(ndr, name, "spoolss_DeletePort");
23056 if (flags & NDR_SET_VALUES) {
23057 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23059 if (flags & NDR_IN) {
23060 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
23064 if (flags & NDR_OUT) {
23065 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
23067 ndr_print_WERROR(ndr, "result", r->out.result);
23073 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
23075 if (flags & NDR_IN) {
23077 if (flags & NDR_OUT) {
23078 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23080 return NDR_ERR_SUCCESS;
23083 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
23085 if (flags & NDR_IN) {
23087 if (flags & NDR_OUT) {
23088 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23090 return NDR_ERR_SUCCESS;
23093 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
23095 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
23097 if (flags & NDR_SET_VALUES) {
23098 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23100 if (flags & NDR_IN) {
23101 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
23105 if (flags & NDR_OUT) {
23106 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
23108 ndr_print_WERROR(ndr, "result", r->out.result);
23114 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23116 if (flags & NDR_IN) {
23118 if (flags & NDR_OUT) {
23119 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23121 return NDR_ERR_SUCCESS;
23124 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
23126 if (flags & NDR_IN) {
23128 if (flags & NDR_OUT) {
23129 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23131 return NDR_ERR_SUCCESS;
23134 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23136 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
23138 if (flags & NDR_SET_VALUES) {
23139 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23141 if (flags & NDR_IN) {
23142 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23146 if (flags & NDR_OUT) {
23147 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23149 ndr_print_WERROR(ndr, "result", r->out.result);
23155 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
23157 if (flags & NDR_IN) {
23159 if (flags & NDR_OUT) {
23160 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23162 return NDR_ERR_SUCCESS;
23165 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
23167 if (flags & NDR_IN) {
23169 if (flags & NDR_OUT) {
23170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23172 return NDR_ERR_SUCCESS;
23175 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
23177 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
23179 if (flags & NDR_SET_VALUES) {
23180 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23182 if (flags & NDR_IN) {
23183 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
23187 if (flags & NDR_OUT) {
23188 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
23190 ndr_print_WERROR(ndr, "result", r->out.result);
23196 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
23198 if (flags & NDR_IN) {
23200 if (flags & NDR_OUT) {
23201 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23203 return NDR_ERR_SUCCESS;
23206 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
23208 if (flags & NDR_IN) {
23210 if (flags & NDR_OUT) {
23211 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23213 return NDR_ERR_SUCCESS;
23216 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
23218 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
23220 if (flags & NDR_SET_VALUES) {
23221 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23223 if (flags & NDR_IN) {
23224 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
23228 if (flags & NDR_OUT) {
23229 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
23231 ndr_print_WERROR(ndr, "result", r->out.result);
23237 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23239 if (flags & NDR_IN) {
23241 if (flags & NDR_OUT) {
23242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23244 return NDR_ERR_SUCCESS;
23247 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23249 if (flags & NDR_IN) {
23251 if (flags & NDR_OUT) {
23252 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23254 return NDR_ERR_SUCCESS;
23257 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
23259 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
23261 if (flags & NDR_SET_VALUES) {
23262 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23264 if (flags & NDR_IN) {
23265 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
23269 if (flags & NDR_OUT) {
23270 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
23272 ndr_print_WERROR(ndr, "result", r->out.result);
23278 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
23280 if (flags & NDR_IN) {
23282 if (flags & NDR_OUT) {
23283 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23285 return NDR_ERR_SUCCESS;
23288 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
23290 if (flags & NDR_IN) {
23292 if (flags & NDR_OUT) {
23293 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23295 return NDR_ERR_SUCCESS;
23298 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
23300 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
23302 if (flags & NDR_SET_VALUES) {
23303 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23305 if (flags & NDR_IN) {
23306 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
23310 if (flags & NDR_OUT) {
23311 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
23313 ndr_print_WERROR(ndr, "result", r->out.result);
23319 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
23321 if (flags & NDR_IN) {
23323 if (flags & NDR_OUT) {
23324 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23326 return NDR_ERR_SUCCESS;
23329 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
23331 if (flags & NDR_IN) {
23333 if (flags & NDR_OUT) {
23334 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23336 return NDR_ERR_SUCCESS;
23339 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
23341 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
23343 if (flags & NDR_SET_VALUES) {
23344 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23346 if (flags & NDR_IN) {
23347 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
23351 if (flags & NDR_OUT) {
23352 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
23354 ndr_print_WERROR(ndr, "result", r->out.result);
23360 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
23362 if (flags & NDR_IN) {
23364 if (flags & NDR_OUT) {
23365 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23367 return NDR_ERR_SUCCESS;
23370 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
23372 if (flags & NDR_IN) {
23374 if (flags & NDR_OUT) {
23375 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23377 return NDR_ERR_SUCCESS;
23380 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
23382 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
23384 if (flags & NDR_SET_VALUES) {
23385 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23387 if (flags & NDR_IN) {
23388 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
23392 if (flags & NDR_OUT) {
23393 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
23395 ndr_print_WERROR(ndr, "result", r->out.result);
23401 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
23403 if (flags & NDR_IN) {
23405 if (flags & NDR_OUT) {
23406 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23408 return NDR_ERR_SUCCESS;
23411 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
23413 if (flags & NDR_IN) {
23415 if (flags & NDR_OUT) {
23416 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23418 return NDR_ERR_SUCCESS;
23421 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
23423 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
23425 if (flags & NDR_SET_VALUES) {
23426 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23428 if (flags & NDR_IN) {
23429 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
23433 if (flags & NDR_OUT) {
23434 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
23436 ndr_print_WERROR(ndr, "result", r->out.result);
23442 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
23444 if (flags & NDR_IN) {
23446 if (flags & NDR_OUT) {
23447 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23449 return NDR_ERR_SUCCESS;
23452 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
23454 if (flags & NDR_IN) {
23456 if (flags & NDR_OUT) {
23457 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23459 return NDR_ERR_SUCCESS;
23462 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
23464 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
23466 if (flags & NDR_SET_VALUES) {
23467 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23469 if (flags & NDR_IN) {
23470 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
23474 if (flags & NDR_OUT) {
23475 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
23477 ndr_print_WERROR(ndr, "result", r->out.result);
23483 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
23485 if (flags & NDR_IN) {
23487 if (flags & NDR_OUT) {
23488 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23490 return NDR_ERR_SUCCESS;
23493 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
23495 if (flags & NDR_IN) {
23497 if (flags & NDR_OUT) {
23498 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23500 return NDR_ERR_SUCCESS;
23503 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
23505 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
23507 if (flags & NDR_SET_VALUES) {
23508 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23510 if (flags & NDR_IN) {
23511 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
23515 if (flags & NDR_OUT) {
23516 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
23518 ndr_print_WERROR(ndr, "result", r->out.result);
23524 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
23526 if (flags & NDR_IN) {
23527 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23528 if (r->in.servername) {
23529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23532 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23534 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
23535 if (r->in.print_processor_name) {
23536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23538 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23539 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));
23541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23542 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23543 if (r->in.buffer) {
23544 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23548 if (flags & NDR_OUT) {
23549 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23551 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23553 if (r->out.needed == NULL) {
23554 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23556 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23557 if (r->out.count == NULL) {
23558 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23561 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23563 return NDR_ERR_SUCCESS;
23566 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
23568 uint32_t _ptr_servername;
23569 uint32_t _ptr_print_processor_name;
23570 uint32_t _ptr_buffer;
23571 uint32_t _ptr_info;
23572 TALLOC_CTX *_mem_save_servername_0;
23573 TALLOC_CTX *_mem_save_print_processor_name_0;
23574 TALLOC_CTX *_mem_save_buffer_0;
23575 TALLOC_CTX *_mem_save_info_0;
23576 TALLOC_CTX *_mem_save_needed_0;
23577 TALLOC_CTX *_mem_save_count_0;
23578 if (flags & NDR_IN) {
23579 ZERO_STRUCT(r->out);
23581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23582 if (_ptr_servername) {
23583 NDR_PULL_ALLOC(ndr, r->in.servername);
23585 r->in.servername = NULL;
23587 if (r->in.servername) {
23588 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23589 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23590 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23591 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23592 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23593 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
23595 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23596 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23597 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
23600 if (_ptr_print_processor_name) {
23601 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
23603 r->in.print_processor_name = NULL;
23605 if (r->in.print_processor_name) {
23606 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23607 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
23608 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
23609 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
23610 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
23611 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.print_processor_name), ndr_get_array_length(ndr, &r->in.print_processor_name));
23613 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
23614 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.print_processor_name, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t), CH_UTF16));
23615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
23617 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23618 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23620 NDR_PULL_ALLOC(ndr, r->in.buffer);
23622 r->in.buffer = NULL;
23624 if (r->in.buffer) {
23625 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23626 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23627 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23631 NDR_PULL_ALLOC(ndr, r->out.needed);
23632 ZERO_STRUCTP(r->out.needed);
23633 NDR_PULL_ALLOC(ndr, r->out.count);
23634 ZERO_STRUCTP(r->out.count);
23636 if (flags & NDR_OUT) {
23637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23639 NDR_PULL_ALLOC(ndr, r->out.info);
23641 r->out.info = NULL;
23644 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23645 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23646 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23647 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23649 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23650 NDR_PULL_ALLOC(ndr, r->out.needed);
23652 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23653 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23656 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23657 NDR_PULL_ALLOC(ndr, r->out.count);
23659 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23660 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23663 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23665 return NDR_ERR_SUCCESS;
23668 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
23670 uint32_t cntr_info_0;
23671 if (flags & NDR_IN) {
23672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23675 if (flags & NDR_OUT) {
23676 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23677 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23678 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23680 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23681 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23684 return NDR_ERR_SUCCESS;
23687 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
23689 uint32_t cntr_info_0;
23690 TALLOC_CTX *_mem_save_info_0;
23691 if (flags & NDR_IN) {
23692 ZERO_STRUCT(r->out);
23694 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23697 if (flags & NDR_OUT) {
23698 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23699 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23700 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23701 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23702 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23703 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23705 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23706 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23710 return NDR_ERR_SUCCESS;
23713 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23715 uint32_t cntr_info_2;
23716 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
23718 if (flags & NDR_SET_VALUES) {
23719 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23721 if (flags & NDR_IN) {
23722 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
23724 ndr_print_ptr(ndr, "servername", r->in.servername);
23726 if (r->in.servername) {
23727 ndr_print_string(ndr, "servername", r->in.servername);
23730 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
23732 if (r->in.print_processor_name) {
23733 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
23736 ndr_print_uint32(ndr, "level", r->in.level);
23737 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23739 if (r->in.buffer) {
23740 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23743 ndr_print_uint32(ndr, "offered", r->in.offered);
23746 if (flags & NDR_OUT) {
23747 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
23749 ndr_print_ptr(ndr, "count", r->out.count);
23751 ndr_print_uint32(ndr, "count", *r->out.count);
23753 ndr_print_ptr(ndr, "info", r->out.info);
23755 ndr_print_ptr(ndr, "info", *r->out.info);
23757 if (*r->out.info) {
23758 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23760 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23762 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23763 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23764 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23772 ndr_print_ptr(ndr, "needed", r->out.needed);
23774 ndr_print_uint32(ndr, "needed", *r->out.needed);
23776 ndr_print_WERROR(ndr, "result", r->out.result);
23782 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
23784 if (flags & NDR_IN) {
23785 if (r->in.handle == NULL) {
23786 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23788 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
23790 if (r->in.data_type) {
23791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23794 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));
23796 if (r->in.devmode_ctr == NULL) {
23797 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23799 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23801 if (flags & NDR_OUT) {
23802 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23804 return NDR_ERR_SUCCESS;
23807 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
23809 uint32_t _ptr_data_type;
23810 TALLOC_CTX *_mem_save_handle_0;
23811 TALLOC_CTX *_mem_save_data_type_0;
23812 TALLOC_CTX *_mem_save_devmode_ctr_0;
23813 if (flags & NDR_IN) {
23814 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23815 NDR_PULL_ALLOC(ndr, r->in.handle);
23817 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23818 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23819 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
23822 if (_ptr_data_type) {
23823 NDR_PULL_ALLOC(ndr, r->in.data_type);
23825 r->in.data_type = NULL;
23827 if (r->in.data_type) {
23828 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23829 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
23830 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
23831 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
23832 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
23833 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.data_type), ndr_get_array_length(ndr, &r->in.data_type));
23835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
23836 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.data_type, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t), CH_UTF16));
23837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
23839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23840 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
23842 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
23843 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
23844 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
23847 if (flags & NDR_OUT) {
23848 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23850 return NDR_ERR_SUCCESS;
23853 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
23855 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
23857 if (flags & NDR_SET_VALUES) {
23858 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23860 if (flags & NDR_IN) {
23861 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
23863 ndr_print_ptr(ndr, "handle", r->in.handle);
23865 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23867 ndr_print_ptr(ndr, "data_type", r->in.data_type);
23869 if (r->in.data_type) {
23870 ndr_print_string(ndr, "data_type", r->in.data_type);
23873 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
23875 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
23879 if (flags & NDR_OUT) {
23880 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
23882 ndr_print_WERROR(ndr, "result", r->out.result);
23888 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
23890 if (flags & NDR_IN) {
23891 if (r->in.handle == NULL) {
23892 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23894 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
23896 if (r->in.architecture) {
23897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23900 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23903 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23904 if (r->in.buffer) {
23905 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
23909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
23911 if (flags & NDR_OUT) {
23912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23915 struct ndr_push *_ndr_info;
23916 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23917 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23918 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23919 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23922 if (r->out.needed == NULL) {
23923 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23926 if (r->out.server_major_version == NULL) {
23927 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
23930 if (r->out.server_minor_version == NULL) {
23931 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
23934 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23936 return NDR_ERR_SUCCESS;
23939 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
23941 uint32_t _ptr_architecture;
23942 uint32_t _ptr_buffer;
23943 uint32_t _ptr_info;
23944 TALLOC_CTX *_mem_save_handle_0;
23945 TALLOC_CTX *_mem_save_architecture_0;
23946 TALLOC_CTX *_mem_save_buffer_0;
23947 TALLOC_CTX *_mem_save_info_0;
23948 TALLOC_CTX *_mem_save_needed_0;
23949 TALLOC_CTX *_mem_save_server_major_version_0;
23950 TALLOC_CTX *_mem_save_server_minor_version_0;
23951 if (flags & NDR_IN) {
23952 ZERO_STRUCT(r->out);
23954 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23955 NDR_PULL_ALLOC(ndr, r->in.handle);
23957 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23958 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23959 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
23962 if (_ptr_architecture) {
23963 NDR_PULL_ALLOC(ndr, r->in.architecture);
23965 r->in.architecture = NULL;
23967 if (r->in.architecture) {
23968 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
23969 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
23970 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
23971 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
23972 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
23973 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
23975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
23976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
23977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
23979 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23980 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23982 NDR_PULL_ALLOC(ndr, r->in.buffer);
23984 r->in.buffer = NULL;
23986 if (r->in.buffer) {
23987 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23988 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23989 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
23994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
23995 NDR_PULL_ALLOC(ndr, r->out.needed);
23996 ZERO_STRUCTP(r->out.needed);
23997 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
23998 ZERO_STRUCTP(r->out.server_major_version);
23999 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24000 ZERO_STRUCTP(r->out.server_minor_version);
24002 if (flags & NDR_OUT) {
24003 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24005 NDR_PULL_ALLOC(ndr, r->out.info);
24007 r->out.info = NULL;
24010 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24011 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24013 struct ndr_pull *_ndr_info;
24014 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24015 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24016 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24017 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24021 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24022 NDR_PULL_ALLOC(ndr, r->out.needed);
24024 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24025 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24028 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24029 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24031 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24032 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
24033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
24034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
24035 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24036 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24038 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24039 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
24040 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
24041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
24042 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24044 return NDR_ERR_SUCCESS;
24047 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
24049 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
24051 if (flags & NDR_SET_VALUES) {
24052 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24054 if (flags & NDR_IN) {
24055 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
24057 ndr_print_ptr(ndr, "handle", r->in.handle);
24059 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24061 ndr_print_ptr(ndr, "architecture", r->in.architecture);
24063 if (r->in.architecture) {
24064 ndr_print_string(ndr, "architecture", r->in.architecture);
24067 ndr_print_uint32(ndr, "level", r->in.level);
24068 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24070 if (r->in.buffer) {
24071 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24074 ndr_print_uint32(ndr, "offered", r->in.offered);
24075 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
24076 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
24079 if (flags & NDR_OUT) {
24080 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
24082 ndr_print_ptr(ndr, "info", r->out.info);
24085 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24086 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
24089 ndr_print_ptr(ndr, "needed", r->out.needed);
24091 ndr_print_uint32(ndr, "needed", *r->out.needed);
24093 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
24095 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
24097 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
24099 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
24101 ndr_print_WERROR(ndr, "result", r->out.result);
24107 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24109 if (flags & NDR_IN) {
24111 if (flags & NDR_OUT) {
24112 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24114 return NDR_ERR_SUCCESS;
24117 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
24119 if (flags & NDR_IN) {
24121 if (flags & NDR_OUT) {
24122 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24124 return NDR_ERR_SUCCESS;
24127 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24129 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
24131 if (flags & NDR_SET_VALUES) {
24132 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24134 if (flags & NDR_IN) {
24135 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
24139 if (flags & NDR_OUT) {
24140 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
24142 ndr_print_WERROR(ndr, "result", r->out.result);
24148 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24150 if (flags & NDR_IN) {
24152 if (flags & NDR_OUT) {
24153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24155 return NDR_ERR_SUCCESS;
24158 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
24160 if (flags & NDR_IN) {
24162 if (flags & NDR_OUT) {
24163 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24165 return NDR_ERR_SUCCESS;
24168 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24170 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
24172 if (flags & NDR_SET_VALUES) {
24173 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24175 if (flags & NDR_IN) {
24176 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
24180 if (flags & NDR_OUT) {
24181 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
24183 ndr_print_WERROR(ndr, "result", r->out.result);
24189 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
24191 if (flags & NDR_IN) {
24192 if (r->in.handle == NULL) {
24193 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24195 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24197 if (flags & NDR_OUT) {
24198 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24200 return NDR_ERR_SUCCESS;
24203 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
24205 TALLOC_CTX *_mem_save_handle_0;
24206 if (flags & NDR_IN) {
24207 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24208 NDR_PULL_ALLOC(ndr, r->in.handle);
24210 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24211 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24212 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24215 if (flags & NDR_OUT) {
24216 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24218 return NDR_ERR_SUCCESS;
24221 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
24223 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
24225 if (flags & NDR_SET_VALUES) {
24226 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24228 if (flags & NDR_IN) {
24229 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
24231 ndr_print_ptr(ndr, "handle", r->in.handle);
24233 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24237 if (flags & NDR_OUT) {
24238 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
24240 ndr_print_WERROR(ndr, "result", r->out.result);
24246 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24248 if (flags & NDR_IN) {
24250 if (flags & NDR_OUT) {
24251 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24253 return NDR_ERR_SUCCESS;
24256 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24258 if (flags & NDR_IN) {
24260 if (flags & NDR_OUT) {
24261 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24263 return NDR_ERR_SUCCESS;
24266 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24268 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24270 if (flags & NDR_SET_VALUES) {
24271 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24273 if (flags & NDR_IN) {
24274 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24278 if (flags & NDR_OUT) {
24279 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24281 ndr_print_WERROR(ndr, "result", r->out.result);
24287 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
24289 if (flags & NDR_IN) {
24290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24293 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));
24294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24295 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24297 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24298 if (r->in.buffer) {
24299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24300 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24303 if (flags & NDR_OUT) {
24304 if (r->out.handle == NULL) {
24305 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24307 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24308 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24310 return NDR_ERR_SUCCESS;
24313 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
24315 uint32_t _ptr_buffer;
24316 TALLOC_CTX *_mem_save_buffer_0;
24317 TALLOC_CTX *_mem_save_handle_0;
24318 if (flags & NDR_IN) {
24319 ZERO_STRUCT(r->out);
24321 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24322 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24323 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24324 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server_name), ndr_get_array_length(ndr, &r->in.server_name));
24326 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server_name, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t), CH_UTF16));
24328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24329 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24331 if (r->in.bufsize > 512) {
24332 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24336 NDR_PULL_ALLOC(ndr, r->in.buffer);
24338 r->in.buffer = NULL;
24340 if (r->in.buffer) {
24341 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24342 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24343 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24344 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24345 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24348 NDR_PULL_ALLOC(ndr, r->out.handle);
24349 ZERO_STRUCTP(r->out.handle);
24350 if (r->in.buffer) {
24351 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24354 if (flags & NDR_OUT) {
24355 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24356 NDR_PULL_ALLOC(ndr, r->out.handle);
24358 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24359 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24360 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24361 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24362 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24364 return NDR_ERR_SUCCESS;
24367 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
24369 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
24371 if (flags & NDR_SET_VALUES) {
24372 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24374 if (flags & NDR_IN) {
24375 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
24377 ndr_print_string(ndr, "server_name", r->in.server_name);
24378 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24379 ndr_print_winreg_Type(ndr, "type", r->in.type);
24380 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24381 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24383 if (r->in.buffer) {
24384 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24389 if (flags & NDR_OUT) {
24390 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
24392 ndr_print_ptr(ndr, "handle", r->out.handle);
24394 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24396 ndr_print_WERROR(ndr, "result", r->out.result);
24402 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
24404 if (flags & NDR_IN) {
24405 if (r->in.handle == NULL) {
24406 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24408 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24409 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24411 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24412 if (r->in.buffer) {
24413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24414 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24417 if (flags & NDR_OUT) {
24418 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24420 return NDR_ERR_SUCCESS;
24423 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
24425 uint32_t _ptr_buffer;
24426 TALLOC_CTX *_mem_save_handle_0;
24427 TALLOC_CTX *_mem_save_buffer_0;
24428 if (flags & NDR_IN) {
24429 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24430 NDR_PULL_ALLOC(ndr, r->in.handle);
24432 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24433 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24434 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24436 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24437 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24438 if (r->in.bufsize > 512) {
24439 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24443 NDR_PULL_ALLOC(ndr, r->in.buffer);
24445 r->in.buffer = NULL;
24447 if (r->in.buffer) {
24448 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24449 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24450 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24451 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24452 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24455 if (r->in.buffer) {
24456 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24459 if (flags & NDR_OUT) {
24460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24462 return NDR_ERR_SUCCESS;
24465 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
24467 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
24469 if (flags & NDR_SET_VALUES) {
24470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24472 if (flags & NDR_IN) {
24473 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
24475 ndr_print_ptr(ndr, "handle", r->in.handle);
24477 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24479 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24480 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24481 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24483 if (r->in.buffer) {
24484 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24489 if (flags & NDR_OUT) {
24490 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
24492 ndr_print_WERROR(ndr, "result", r->out.result);
24498 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
24500 if (flags & NDR_IN) {
24501 if (r->in.handle == NULL) {
24502 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24504 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24506 if (flags & NDR_OUT) {
24507 if (r->out.handle == NULL) {
24508 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24510 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24511 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24513 return NDR_ERR_SUCCESS;
24516 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
24518 TALLOC_CTX *_mem_save_handle_0;
24519 if (flags & NDR_IN) {
24520 ZERO_STRUCT(r->out);
24522 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24523 NDR_PULL_ALLOC(ndr, r->in.handle);
24525 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24526 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24527 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24529 NDR_PULL_ALLOC(ndr, r->out.handle);
24530 *r->out.handle = *r->in.handle;
24532 if (flags & NDR_OUT) {
24533 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24534 NDR_PULL_ALLOC(ndr, r->out.handle);
24536 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24537 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24538 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24540 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24542 return NDR_ERR_SUCCESS;
24545 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
24547 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
24549 if (flags & NDR_SET_VALUES) {
24550 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24552 if (flags & NDR_IN) {
24553 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
24555 ndr_print_ptr(ndr, "handle", r->in.handle);
24557 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24561 if (flags & NDR_OUT) {
24562 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
24564 ndr_print_ptr(ndr, "handle", r->out.handle);
24566 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24568 ndr_print_WERROR(ndr, "result", r->out.result);
24574 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
24576 if (flags & NDR_IN) {
24578 if (flags & NDR_OUT) {
24579 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24581 return NDR_ERR_SUCCESS;
24584 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
24586 if (flags & NDR_IN) {
24588 if (flags & NDR_OUT) {
24589 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24591 return NDR_ERR_SUCCESS;
24594 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
24596 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
24598 if (flags & NDR_SET_VALUES) {
24599 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24601 if (flags & NDR_IN) {
24602 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
24606 if (flags & NDR_OUT) {
24607 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
24609 ndr_print_WERROR(ndr, "result", r->out.result);
24615 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24617 if (flags & NDR_IN) {
24619 if (flags & NDR_OUT) {
24620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24622 return NDR_ERR_SUCCESS;
24625 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24627 if (flags & NDR_IN) {
24629 if (flags & NDR_OUT) {
24630 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24632 return NDR_ERR_SUCCESS;
24635 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24637 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
24639 if (flags & NDR_SET_VALUES) {
24640 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24642 if (flags & NDR_IN) {
24643 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24647 if (flags & NDR_OUT) {
24648 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24650 ndr_print_WERROR(ndr, "result", r->out.result);
24656 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
24658 if (flags & NDR_IN) {
24660 if (flags & NDR_OUT) {
24661 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24663 return NDR_ERR_SUCCESS;
24666 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
24668 if (flags & NDR_IN) {
24670 if (flags & NDR_OUT) {
24671 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24673 return NDR_ERR_SUCCESS;
24676 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
24678 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
24680 if (flags & NDR_SET_VALUES) {
24681 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24683 if (flags & NDR_IN) {
24684 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
24688 if (flags & NDR_OUT) {
24689 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
24691 ndr_print_WERROR(ndr, "result", r->out.result);
24697 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
24699 if (flags & NDR_IN) {
24701 if (flags & NDR_OUT) {
24702 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24704 return NDR_ERR_SUCCESS;
24707 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
24709 if (flags & NDR_IN) {
24711 if (flags & NDR_OUT) {
24712 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24714 return NDR_ERR_SUCCESS;
24717 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
24719 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
24721 if (flags & NDR_SET_VALUES) {
24722 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24724 if (flags & NDR_IN) {
24725 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
24729 if (flags & NDR_OUT) {
24730 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
24732 ndr_print_WERROR(ndr, "result", r->out.result);
24738 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24740 if (flags & NDR_IN) {
24741 if (r->in.handle == NULL) {
24742 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24744 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24745 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
24747 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
24748 if (r->in.local_machine) {
24749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24752 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));
24754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24755 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
24756 if (r->in.notify_options) {
24757 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24760 if (flags & NDR_OUT) {
24761 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24763 return NDR_ERR_SUCCESS;
24766 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24768 uint32_t _ptr_local_machine;
24769 uint32_t _ptr_notify_options;
24770 TALLOC_CTX *_mem_save_handle_0;
24771 TALLOC_CTX *_mem_save_local_machine_0;
24772 TALLOC_CTX *_mem_save_notify_options_0;
24773 if (flags & NDR_IN) {
24774 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24775 NDR_PULL_ALLOC(ndr, r->in.handle);
24777 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24778 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24779 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24781 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
24783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
24784 if (_ptr_local_machine) {
24785 NDR_PULL_ALLOC(ndr, r->in.local_machine);
24787 r->in.local_machine = NULL;
24789 if (r->in.local_machine) {
24790 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
24791 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
24792 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
24793 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
24794 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
24795 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.local_machine), ndr_get_array_length(ndr, &r->in.local_machine));
24797 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
24798 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.local_machine, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t), CH_UTF16));
24799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
24801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
24803 if (_ptr_notify_options) {
24804 NDR_PULL_ALLOC(ndr, r->in.notify_options);
24806 r->in.notify_options = NULL;
24808 if (r->in.notify_options) {
24809 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24810 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
24811 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
24815 if (flags & NDR_OUT) {
24816 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24818 return NDR_ERR_SUCCESS;
24821 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24823 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24825 if (flags & NDR_SET_VALUES) {
24826 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24828 if (flags & NDR_IN) {
24829 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24831 ndr_print_ptr(ndr, "handle", r->in.handle);
24833 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24835 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24836 ndr_print_uint32(ndr, "options", r->in.options);
24837 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
24839 if (r->in.local_machine) {
24840 ndr_print_string(ndr, "local_machine", r->in.local_machine);
24843 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24844 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
24846 if (r->in.notify_options) {
24847 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
24852 if (flags & NDR_OUT) {
24853 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24855 ndr_print_WERROR(ndr, "result", r->out.result);
24861 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24863 if (flags & NDR_IN) {
24864 if (r->in.handle == NULL) {
24865 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24867 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
24869 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
24871 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24872 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24874 if (flags & NDR_OUT) {
24875 if (r->out.reply_result == NULL) {
24876 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24878 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
24879 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24881 return NDR_ERR_SUCCESS;
24884 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
24886 TALLOC_CTX *_mem_save_handle_0;
24887 TALLOC_CTX *_mem_save_reply_result_0;
24888 if (flags & NDR_IN) {
24889 ZERO_STRUCT(r->out);
24891 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24892 NDR_PULL_ALLOC(ndr, r->in.handle);
24894 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24895 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24896 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
24899 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24900 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
24901 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24902 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24903 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24904 ZERO_STRUCTP(r->out.reply_result);
24906 if (flags & NDR_OUT) {
24907 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24908 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24910 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
24911 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
24912 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
24913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
24914 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24916 return NDR_ERR_SUCCESS;
24919 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24921 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
24923 if (flags & NDR_SET_VALUES) {
24924 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24926 if (flags & NDR_IN) {
24927 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
24929 ndr_print_ptr(ndr, "handle", r->in.handle);
24931 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24933 ndr_print_uint32(ndr, "color", r->in.color);
24934 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24935 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
24936 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
24937 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
24940 if (flags & NDR_OUT) {
24941 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
24943 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
24945 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
24947 ndr_print_WERROR(ndr, "result", r->out.result);
24953 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
24955 if (flags & NDR_IN) {
24956 if (r->in.handle == NULL) {
24957 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24959 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
24961 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
24962 if (r->in.options) {
24963 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
24966 if (flags & NDR_OUT) {
24967 if (r->out.info == NULL) {
24968 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24970 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
24971 if (*r->out.info) {
24972 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
24974 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24976 return NDR_ERR_SUCCESS;
24979 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
24981 uint32_t _ptr_options;
24982 uint32_t _ptr_info;
24983 TALLOC_CTX *_mem_save_handle_0;
24984 TALLOC_CTX *_mem_save_options_0;
24985 TALLOC_CTX *_mem_save_info_0;
24986 TALLOC_CTX *_mem_save_info_1;
24987 if (flags & NDR_IN) {
24988 ZERO_STRUCT(r->out);
24990 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24991 NDR_PULL_ALLOC(ndr, r->in.handle);
24993 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24994 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24995 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
24998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
24999 if (_ptr_options) {
25000 NDR_PULL_ALLOC(ndr, r->in.options);
25002 r->in.options = NULL;
25004 if (r->in.options) {
25005 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25006 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
25007 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25008 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
25010 NDR_PULL_ALLOC(ndr, r->out.info);
25011 ZERO_STRUCTP(r->out.info);
25013 if (flags & NDR_OUT) {
25014 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25015 NDR_PULL_ALLOC(ndr, r->out.info);
25017 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25018 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
25019 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25021 NDR_PULL_ALLOC(ndr, *r->out.info);
25023 *r->out.info = NULL;
25025 if (*r->out.info) {
25026 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
25027 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
25028 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25029 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
25031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
25032 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25034 return NDR_ERR_SUCCESS;
25037 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25039 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
25041 if (flags & NDR_SET_VALUES) {
25042 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25044 if (flags & NDR_IN) {
25045 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25047 ndr_print_ptr(ndr, "handle", r->in.handle);
25049 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25051 ndr_print_uint32(ndr, "change_low", r->in.change_low);
25052 ndr_print_ptr(ndr, "options", r->in.options);
25054 if (r->in.options) {
25055 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
25060 if (flags & NDR_OUT) {
25061 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25063 ndr_print_ptr(ndr, "info", r->out.info);
25065 ndr_print_ptr(ndr, "info", *r->out.info);
25067 if (*r->out.info) {
25068 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
25072 ndr_print_WERROR(ndr, "result", r->out.result);
25078 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
25080 if (flags & NDR_IN) {
25082 if (flags & NDR_OUT) {
25083 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25085 return NDR_ERR_SUCCESS;
25088 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
25090 if (flags & NDR_IN) {
25092 if (flags & NDR_OUT) {
25093 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25095 return NDR_ERR_SUCCESS;
25098 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
25100 ndr_print_struct(ndr, name, "spoolss_44");
25102 if (flags & NDR_SET_VALUES) {
25103 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25105 if (flags & NDR_IN) {
25106 ndr_print_struct(ndr, "in", "spoolss_44");
25110 if (flags & NDR_OUT) {
25111 ndr_print_struct(ndr, "out", "spoolss_44");
25113 ndr_print_WERROR(ndr, "result", r->out.result);
25119 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
25121 if (flags & NDR_IN) {
25122 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
25123 if (r->in.printername) {
25124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25127 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25129 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
25130 if (r->in.datatype) {
25131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25134 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25136 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25137 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
25138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25139 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25140 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25142 if (flags & NDR_OUT) {
25143 if (r->out.handle == NULL) {
25144 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25146 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25147 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25149 return NDR_ERR_SUCCESS;
25152 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
25154 uint32_t _ptr_printername;
25155 uint32_t _ptr_datatype;
25156 TALLOC_CTX *_mem_save_printername_0;
25157 TALLOC_CTX *_mem_save_datatype_0;
25158 TALLOC_CTX *_mem_save_handle_0;
25159 if (flags & NDR_IN) {
25160 ZERO_STRUCT(r->out);
25162 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
25163 if (_ptr_printername) {
25164 NDR_PULL_ALLOC(ndr, r->in.printername);
25166 r->in.printername = NULL;
25168 if (r->in.printername) {
25169 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25170 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
25171 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
25172 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
25173 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
25174 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.printername), ndr_get_array_length(ndr, &r->in.printername));
25176 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
25177 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
25178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
25180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
25181 if (_ptr_datatype) {
25182 NDR_PULL_ALLOC(ndr, r->in.datatype);
25184 r->in.datatype = NULL;
25186 if (r->in.datatype) {
25187 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
25188 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
25189 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
25190 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
25191 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
25192 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
25194 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
25195 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
25196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
25198 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25199 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
25200 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25201 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25202 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25203 NDR_PULL_ALLOC(ndr, r->out.handle);
25204 ZERO_STRUCTP(r->out.handle);
25206 if (flags & NDR_OUT) {
25207 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25208 NDR_PULL_ALLOC(ndr, r->out.handle);
25210 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25211 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25212 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25213 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25214 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25216 return NDR_ERR_SUCCESS;
25219 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
25221 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
25223 if (flags & NDR_SET_VALUES) {
25224 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25226 if (flags & NDR_IN) {
25227 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
25229 ndr_print_ptr(ndr, "printername", r->in.printername);
25231 if (r->in.printername) {
25232 ndr_print_string(ndr, "printername", r->in.printername);
25235 ndr_print_ptr(ndr, "datatype", r->in.datatype);
25237 if (r->in.datatype) {
25238 ndr_print_string(ndr, "datatype", r->in.datatype);
25241 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
25242 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
25243 ndr_print_uint32(ndr, "level", r->in.level);
25244 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
25245 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
25248 if (flags & NDR_OUT) {
25249 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
25251 ndr_print_ptr(ndr, "handle", r->out.handle);
25253 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25255 ndr_print_WERROR(ndr, "result", r->out.result);
25261 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
25263 if (flags & NDR_IN) {
25264 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
25265 if (r->in.server) {
25266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25271 if (r->in.info_ctr == NULL) {
25272 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25274 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25275 if (r->in.devmode_ctr == NULL) {
25276 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25278 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25279 if (r->in.secdesc_ctr == NULL) {
25280 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25282 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25283 if (r->in.userlevel_ctr == NULL) {
25284 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25286 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25288 if (flags & NDR_OUT) {
25289 if (r->out.handle == NULL) {
25290 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25292 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25293 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25295 return NDR_ERR_SUCCESS;
25298 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
25300 uint32_t _ptr_server;
25301 TALLOC_CTX *_mem_save_server_0;
25302 TALLOC_CTX *_mem_save_info_ctr_0;
25303 TALLOC_CTX *_mem_save_devmode_ctr_0;
25304 TALLOC_CTX *_mem_save_secdesc_ctr_0;
25305 TALLOC_CTX *_mem_save_userlevel_ctr_0;
25306 TALLOC_CTX *_mem_save_handle_0;
25307 if (flags & NDR_IN) {
25308 ZERO_STRUCT(r->out);
25310 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
25312 NDR_PULL_ALLOC(ndr, r->in.server);
25314 r->in.server = NULL;
25316 if (r->in.server) {
25317 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
25318 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
25319 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
25320 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
25321 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
25322 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
25324 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
25325 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
25326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
25328 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25329 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
25331 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25332 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
25333 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25335 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25336 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25338 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25339 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25340 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25342 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25343 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
25345 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25346 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
25347 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25349 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25350 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
25352 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25353 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
25354 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25356 NDR_PULL_ALLOC(ndr, r->out.handle);
25357 ZERO_STRUCTP(r->out.handle);
25359 if (flags & NDR_OUT) {
25360 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25361 NDR_PULL_ALLOC(ndr, r->out.handle);
25363 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25364 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25365 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25367 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25369 return NDR_ERR_SUCCESS;
25372 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
25374 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
25376 if (flags & NDR_SET_VALUES) {
25377 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25379 if (flags & NDR_IN) {
25380 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
25382 ndr_print_ptr(ndr, "server", r->in.server);
25384 if (r->in.server) {
25385 ndr_print_string(ndr, "server", r->in.server);
25388 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25390 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25392 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25394 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25396 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25398 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25400 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25402 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25406 if (flags & NDR_OUT) {
25407 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
25409 ndr_print_ptr(ndr, "handle", r->out.handle);
25411 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25413 ndr_print_WERROR(ndr, "result", r->out.result);
25419 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
25421 if (flags & NDR_IN) {
25423 if (flags & NDR_OUT) {
25424 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25426 return NDR_ERR_SUCCESS;
25429 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
25431 if (flags & NDR_IN) {
25433 if (flags & NDR_OUT) {
25434 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25436 return NDR_ERR_SUCCESS;
25439 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
25441 ndr_print_struct(ndr, name, "spoolss_47");
25443 if (flags & NDR_SET_VALUES) {
25444 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25446 if (flags & NDR_IN) {
25447 ndr_print_struct(ndr, "in", "spoolss_47");
25451 if (flags & NDR_OUT) {
25452 ndr_print_struct(ndr, "out", "spoolss_47");
25454 ndr_print_WERROR(ndr, "result", r->out.result);
25460 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
25462 if (flags & NDR_IN) {
25463 if (r->in.handle == NULL) {
25464 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25466 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
25468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
25469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25471 if (flags & NDR_OUT) {
25472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
25473 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
25474 if (r->out.value_needed == NULL) {
25475 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
25478 if (r->out.printerdata_type == NULL) {
25479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
25482 if (r->out.buffer == NULL) {
25483 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25485 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
25486 if (r->out.data_needed == NULL) {
25487 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
25490 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25492 return NDR_ERR_SUCCESS;
25495 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
25497 TALLOC_CTX *_mem_save_handle_0;
25498 TALLOC_CTX *_mem_save_value_needed_0;
25499 TALLOC_CTX *_mem_save_printerdata_type_0;
25500 TALLOC_CTX *_mem_save_buffer_0;
25501 TALLOC_CTX *_mem_save_data_needed_0;
25502 if (flags & NDR_IN) {
25503 ZERO_STRUCT(r->out);
25505 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25506 NDR_PULL_ALLOC(ndr, r->in.handle);
25508 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25509 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25510 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25511 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
25513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
25514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
25515 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25516 ZERO_STRUCTP(r->out.value_needed);
25517 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25518 ZERO_STRUCTP(r->out.printerdata_type);
25519 NDR_PULL_ALLOC(ndr, r->out.buffer);
25520 ZERO_STRUCTP(r->out.buffer);
25521 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25522 ZERO_STRUCTP(r->out.data_needed);
25524 if (flags & NDR_OUT) {
25525 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
25526 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->out.value_name, ndr_get_array_size(ndr, &r->out.value_name), sizeof(uint16_t), CH_UTF16));
25527 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25528 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25530 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25531 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
25532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
25533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
25534 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25535 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25537 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25538 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
25539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
25540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
25541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25542 NDR_PULL_ALLOC(ndr, r->out.buffer);
25544 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25545 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
25546 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
25547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
25548 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25549 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25551 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25552 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
25553 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
25554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
25555 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25556 if (r->out.value_name) {
25557 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
25560 return NDR_ERR_SUCCESS;
25563 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
25565 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
25567 if (flags & NDR_SET_VALUES) {
25568 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25570 if (flags & NDR_IN) {
25571 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
25573 ndr_print_ptr(ndr, "handle", r->in.handle);
25575 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25577 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
25578 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
25579 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
25582 if (flags & NDR_OUT) {
25583 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
25585 ndr_print_string(ndr, "value_name", r->out.value_name);
25586 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
25588 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
25590 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
25592 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
25594 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25596 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
25598 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
25600 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
25602 ndr_print_WERROR(ndr, "result", r->out.result);
25608 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
25610 if (flags & NDR_IN) {
25611 if (r->in.handle == NULL) {
25612 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25614 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25618 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));
25620 if (flags & NDR_OUT) {
25621 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25623 return NDR_ERR_SUCCESS;
25626 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
25628 TALLOC_CTX *_mem_save_handle_0;
25629 if (flags & NDR_IN) {
25630 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25631 NDR_PULL_ALLOC(ndr, r->in.handle);
25633 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25634 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25635 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25637 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25638 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25639 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25640 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
25642 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25643 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
25645 if (flags & NDR_OUT) {
25646 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25648 return NDR_ERR_SUCCESS;
25651 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
25653 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
25655 if (flags & NDR_SET_VALUES) {
25656 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25658 if (flags & NDR_IN) {
25659 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
25661 ndr_print_ptr(ndr, "handle", r->in.handle);
25663 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25665 ndr_print_string(ndr, "value_name", r->in.value_name);
25668 if (flags & NDR_OUT) {
25669 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
25671 ndr_print_WERROR(ndr, "result", r->out.result);
25677 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
25679 if (flags & NDR_IN) {
25681 if (flags & NDR_OUT) {
25682 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25684 return NDR_ERR_SUCCESS;
25687 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
25689 if (flags & NDR_IN) {
25691 if (flags & NDR_OUT) {
25692 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25694 return NDR_ERR_SUCCESS;
25697 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
25699 ndr_print_struct(ndr, name, "spoolss_4a");
25701 if (flags & NDR_SET_VALUES) {
25702 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25704 if (flags & NDR_IN) {
25705 ndr_print_struct(ndr, "in", "spoolss_4a");
25709 if (flags & NDR_OUT) {
25710 ndr_print_struct(ndr, "out", "spoolss_4a");
25712 ndr_print_WERROR(ndr, "result", r->out.result);
25718 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
25720 if (flags & NDR_IN) {
25722 if (flags & NDR_OUT) {
25723 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25725 return NDR_ERR_SUCCESS;
25728 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
25730 if (flags & NDR_IN) {
25732 if (flags & NDR_OUT) {
25733 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25735 return NDR_ERR_SUCCESS;
25738 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
25740 ndr_print_struct(ndr, name, "spoolss_4b");
25742 if (flags & NDR_SET_VALUES) {
25743 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25745 if (flags & NDR_IN) {
25746 ndr_print_struct(ndr, "in", "spoolss_4b");
25750 if (flags & NDR_OUT) {
25751 ndr_print_struct(ndr, "out", "spoolss_4b");
25753 ndr_print_WERROR(ndr, "result", r->out.result);
25759 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
25761 if (flags & NDR_IN) {
25763 if (flags & NDR_OUT) {
25764 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25766 return NDR_ERR_SUCCESS;
25769 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
25771 if (flags & NDR_IN) {
25773 if (flags & NDR_OUT) {
25774 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25776 return NDR_ERR_SUCCESS;
25779 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
25781 ndr_print_struct(ndr, name, "spoolss_4c");
25783 if (flags & NDR_SET_VALUES) {
25784 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25786 if (flags & NDR_IN) {
25787 ndr_print_struct(ndr, "in", "spoolss_4c");
25791 if (flags & NDR_OUT) {
25792 ndr_print_struct(ndr, "out", "spoolss_4c");
25794 ndr_print_WERROR(ndr, "result", r->out.result);
25800 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
25802 if (flags & NDR_IN) {
25803 if (r->in.handle == NULL) {
25804 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25806 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25810 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));
25811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25814 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));
25815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
25816 if (r->in.buffer == NULL) {
25817 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25820 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
25821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25823 if (flags & NDR_OUT) {
25824 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25826 return NDR_ERR_SUCCESS;
25829 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
25831 TALLOC_CTX *_mem_save_handle_0;
25832 if (flags & NDR_IN) {
25833 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25834 NDR_PULL_ALLOC(ndr, r->in.handle);
25836 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25837 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25838 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25840 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25841 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25842 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25843 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
25845 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25846 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
25847 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25848 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25849 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25850 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
25852 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25853 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
25854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
25855 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25856 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25857 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25859 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25861 if (r->in.buffer) {
25862 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
25865 if (flags & NDR_OUT) {
25866 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25868 return NDR_ERR_SUCCESS;
25871 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
25873 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
25875 if (flags & NDR_SET_VALUES) {
25876 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25878 if (flags & NDR_IN) {
25879 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
25881 ndr_print_ptr(ndr, "handle", r->in.handle);
25883 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25885 ndr_print_string(ndr, "key_name", r->in.key_name);
25886 ndr_print_string(ndr, "value_name", r->in.value_name);
25887 ndr_print_uint32(ndr, "type", r->in.type);
25888 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25890 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
25892 ndr_print_uint32(ndr, "offered", r->in.offered);
25895 if (flags & NDR_OUT) {
25896 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
25898 ndr_print_WERROR(ndr, "result", r->out.result);
25904 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
25906 if (flags & NDR_IN) {
25907 if (r->in.handle == NULL) {
25908 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25910 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25914 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));
25915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25918 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));
25919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25921 if (flags & NDR_OUT) {
25922 if (r->out.type == NULL) {
25923 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
25926 if (r->out.buffer == NULL) {
25927 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25930 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
25931 if (r->out.needed == NULL) {
25932 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25935 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25937 return NDR_ERR_SUCCESS;
25940 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
25942 TALLOC_CTX *_mem_save_handle_0;
25943 TALLOC_CTX *_mem_save_type_0;
25944 TALLOC_CTX *_mem_save_needed_0;
25945 if (flags & NDR_IN) {
25946 ZERO_STRUCT(r->out);
25948 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25949 NDR_PULL_ALLOC(ndr, r->in.handle);
25951 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25952 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25953 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25955 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25956 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25957 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25958 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
25960 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25961 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
25962 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25963 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25964 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25965 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
25967 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25968 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
25969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25970 NDR_PULL_ALLOC(ndr, r->out.type);
25971 ZERO_STRUCTP(r->out.type);
25972 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
25973 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
25974 NDR_PULL_ALLOC(ndr, r->out.needed);
25975 ZERO_STRUCTP(r->out.needed);
25977 if (flags & NDR_OUT) {
25978 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25979 NDR_PULL_ALLOC(ndr, r->out.type);
25981 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25982 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
25983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
25984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
25985 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
25986 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25987 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
25989 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
25990 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25991 NDR_PULL_ALLOC(ndr, r->out.needed);
25993 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25994 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25996 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25997 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25998 if (r->out.buffer) {
25999 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26002 return NDR_ERR_SUCCESS;
26005 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
26007 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
26009 if (flags & NDR_SET_VALUES) {
26010 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26012 if (flags & NDR_IN) {
26013 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
26015 ndr_print_ptr(ndr, "handle", r->in.handle);
26017 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26019 ndr_print_string(ndr, "key_name", r->in.key_name);
26020 ndr_print_string(ndr, "value_name", r->in.value_name);
26021 ndr_print_uint32(ndr, "offered", r->in.offered);
26024 if (flags & NDR_OUT) {
26025 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
26027 ndr_print_ptr(ndr, "type", r->out.type);
26029 ndr_print_uint32(ndr, "type", *r->out.type);
26031 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26033 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26035 ndr_print_ptr(ndr, "needed", r->out.needed);
26037 ndr_print_uint32(ndr, "needed", *r->out.needed);
26039 ndr_print_WERROR(ndr, "result", r->out.result);
26045 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
26047 if (flags & NDR_IN) {
26048 if (r->in.handle == NULL) {
26049 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26051 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26055 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));
26056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26058 if (flags & NDR_OUT) {
26059 if (r->out.buffer == NULL) {
26060 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26063 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26064 if (r->out.needed == NULL) {
26065 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26068 if (r->out.count == NULL) {
26069 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26072 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26074 return NDR_ERR_SUCCESS;
26077 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
26079 TALLOC_CTX *_mem_save_handle_0;
26080 TALLOC_CTX *_mem_save_needed_0;
26081 TALLOC_CTX *_mem_save_count_0;
26082 if (flags & NDR_IN) {
26083 ZERO_STRUCT(r->out);
26085 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26086 NDR_PULL_ALLOC(ndr, r->in.handle);
26088 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26089 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26090 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26092 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26093 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26094 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26095 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
26097 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26098 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
26099 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26100 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26101 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26102 NDR_PULL_ALLOC(ndr, r->out.needed);
26103 ZERO_STRUCTP(r->out.needed);
26104 NDR_PULL_ALLOC(ndr, r->out.count);
26105 ZERO_STRUCTP(r->out.count);
26107 if (flags & NDR_OUT) {
26108 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26109 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26110 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26112 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26113 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26114 NDR_PULL_ALLOC(ndr, r->out.needed);
26116 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26117 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26120 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26121 NDR_PULL_ALLOC(ndr, r->out.count);
26123 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26124 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26125 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26127 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26128 if (r->out.buffer) {
26129 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26132 return NDR_ERR_SUCCESS;
26135 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
26137 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
26139 if (flags & NDR_SET_VALUES) {
26140 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26142 if (flags & NDR_IN) {
26143 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
26145 ndr_print_ptr(ndr, "handle", r->in.handle);
26147 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26149 ndr_print_string(ndr, "key_name", r->in.key_name);
26150 ndr_print_uint32(ndr, "offered", r->in.offered);
26153 if (flags & NDR_OUT) {
26154 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
26156 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26158 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26160 ndr_print_ptr(ndr, "needed", r->out.needed);
26162 ndr_print_uint32(ndr, "needed", *r->out.needed);
26164 ndr_print_ptr(ndr, "count", r->out.count);
26166 ndr_print_uint32(ndr, "count", *r->out.count);
26168 ndr_print_WERROR(ndr, "result", r->out.result);
26174 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
26176 uint32_t cntr_key_buffer_1;
26177 if (flags & NDR_IN) {
26178 if (r->in.handle == NULL) {
26179 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26181 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26185 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));
26186 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
26188 if (flags & NDR_OUT) {
26189 if (r->out.key_buffer == NULL) {
26190 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
26193 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
26194 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
26196 if (r->out.needed == NULL) {
26197 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26200 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26202 return NDR_ERR_SUCCESS;
26205 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
26207 uint32_t cntr_key_buffer_1;
26208 TALLOC_CTX *_mem_save_handle_0;
26209 TALLOC_CTX *_mem_save_key_buffer_1;
26210 TALLOC_CTX *_mem_save_needed_0;
26211 if (flags & NDR_IN) {
26212 ZERO_STRUCT(r->out);
26214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26215 NDR_PULL_ALLOC(ndr, r->in.handle);
26217 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26218 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26219 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26221 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26222 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26223 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26224 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
26226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
26228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
26229 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
26230 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
26231 NDR_PULL_ALLOC(ndr, r->out.needed);
26232 ZERO_STRUCTP(r->out.needed);
26234 if (flags & NDR_OUT) {
26235 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
26236 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26237 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
26239 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
26240 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
26241 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
26242 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
26244 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
26245 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26246 NDR_PULL_ALLOC(ndr, r->out.needed);
26248 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26249 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26252 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26253 if (r->out.key_buffer) {
26254 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
26257 return NDR_ERR_SUCCESS;
26260 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
26262 uint32_t cntr_key_buffer_1;
26263 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
26265 if (flags & NDR_SET_VALUES) {
26266 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26268 if (flags & NDR_IN) {
26269 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
26271 ndr_print_ptr(ndr, "handle", r->in.handle);
26273 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26275 ndr_print_string(ndr, "key_name", r->in.key_name);
26276 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
26279 if (flags & NDR_OUT) {
26280 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
26282 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
26284 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
26286 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
26288 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
26289 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
26295 ndr_print_ptr(ndr, "needed", r->out.needed);
26297 ndr_print_uint32(ndr, "needed", *r->out.needed);
26299 ndr_print_WERROR(ndr, "result", r->out.result);
26305 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
26307 if (flags & NDR_IN) {
26308 if (r->in.handle == NULL) {
26309 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26311 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26315 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));
26316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26318 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26319 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));
26321 if (flags & NDR_OUT) {
26322 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26324 return NDR_ERR_SUCCESS;
26327 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
26329 TALLOC_CTX *_mem_save_handle_0;
26330 if (flags & NDR_IN) {
26331 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26332 NDR_PULL_ALLOC(ndr, r->in.handle);
26334 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26335 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26336 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26338 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26339 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26340 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26341 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
26343 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26344 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
26345 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26346 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26347 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26348 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.value_name), ndr_get_array_length(ndr, &r->in.value_name));
26350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.value_name, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t), CH_UTF16));
26353 if (flags & NDR_OUT) {
26354 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26356 return NDR_ERR_SUCCESS;
26359 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
26361 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
26363 if (flags & NDR_SET_VALUES) {
26364 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26366 if (flags & NDR_IN) {
26367 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
26369 ndr_print_ptr(ndr, "handle", r->in.handle);
26371 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26373 ndr_print_string(ndr, "key_name", r->in.key_name);
26374 ndr_print_string(ndr, "value_name", r->in.value_name);
26377 if (flags & NDR_OUT) {
26378 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
26380 ndr_print_WERROR(ndr, "result", r->out.result);
26386 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
26388 if (flags & NDR_IN) {
26389 if (r->in.handle == NULL) {
26390 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26392 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26396 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));
26398 if (flags & NDR_OUT) {
26399 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26401 return NDR_ERR_SUCCESS;
26404 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
26406 TALLOC_CTX *_mem_save_handle_0;
26407 if (flags & NDR_IN) {
26408 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26409 NDR_PULL_ALLOC(ndr, r->in.handle);
26411 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26412 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26413 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26415 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26416 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26417 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26418 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
26420 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26421 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.key_name, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t), CH_UTF16));
26423 if (flags & NDR_OUT) {
26424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26426 return NDR_ERR_SUCCESS;
26429 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
26431 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
26433 if (flags & NDR_SET_VALUES) {
26434 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26436 if (flags & NDR_IN) {
26437 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
26439 ndr_print_ptr(ndr, "handle", r->in.handle);
26441 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26443 ndr_print_string(ndr, "key_name", r->in.key_name);
26446 if (flags & NDR_OUT) {
26447 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
26449 ndr_print_WERROR(ndr, "result", r->out.result);
26455 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
26457 if (flags & NDR_IN) {
26459 if (flags & NDR_OUT) {
26460 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26462 return NDR_ERR_SUCCESS;
26465 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
26467 if (flags & NDR_IN) {
26469 if (flags & NDR_OUT) {
26470 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26472 return NDR_ERR_SUCCESS;
26475 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
26477 ndr_print_struct(ndr, name, "spoolss_53");
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_53");
26487 if (flags & NDR_OUT) {
26488 ndr_print_struct(ndr, "out", "spoolss_53");
26490 ndr_print_WERROR(ndr, "result", r->out.result);
26496 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26498 if (flags & NDR_IN) {
26499 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26500 if (r->in.server) {
26501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26504 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26509 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26513 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26514 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
26515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
26517 if (flags & NDR_OUT) {
26518 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26520 return NDR_ERR_SUCCESS;
26523 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
26525 uint32_t _ptr_server;
26526 TALLOC_CTX *_mem_save_server_0;
26527 if (flags & NDR_IN) {
26528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26530 NDR_PULL_ALLOC(ndr, r->in.server);
26532 r->in.server = NULL;
26534 if (r->in.server) {
26535 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26536 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26537 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26538 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26539 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26540 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
26542 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26546 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26547 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26548 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26549 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.architecture), ndr_get_array_length(ndr, &r->in.architecture));
26551 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26552 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26553 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26554 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26555 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
26556 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.driver), ndr_get_array_length(ndr, &r->in.driver));
26558 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
26559 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
26560 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
26561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
26563 if (flags & NDR_OUT) {
26564 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26566 return NDR_ERR_SUCCESS;
26569 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26571 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
26573 if (flags & NDR_SET_VALUES) {
26574 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26576 if (flags & NDR_IN) {
26577 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
26579 ndr_print_ptr(ndr, "server", r->in.server);
26581 if (r->in.server) {
26582 ndr_print_string(ndr, "server", r->in.server);
26585 ndr_print_string(ndr, "architecture", r->in.architecture);
26586 ndr_print_string(ndr, "driver", r->in.driver);
26587 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
26588 ndr_print_uint32(ndr, "version", r->in.version);
26591 if (flags & NDR_OUT) {
26592 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
26594 ndr_print_WERROR(ndr, "result", r->out.result);
26600 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
26602 if (flags & NDR_IN) {
26604 if (flags & NDR_OUT) {
26605 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26607 return NDR_ERR_SUCCESS;
26610 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
26612 if (flags & NDR_IN) {
26614 if (flags & NDR_OUT) {
26615 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26617 return NDR_ERR_SUCCESS;
26620 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
26622 ndr_print_struct(ndr, name, "spoolss_55");
26624 if (flags & NDR_SET_VALUES) {
26625 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26627 if (flags & NDR_IN) {
26628 ndr_print_struct(ndr, "in", "spoolss_55");
26632 if (flags & NDR_OUT) {
26633 ndr_print_struct(ndr, "out", "spoolss_55");
26635 ndr_print_WERROR(ndr, "result", r->out.result);
26641 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
26643 if (flags & NDR_IN) {
26645 if (flags & NDR_OUT) {
26646 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26648 return NDR_ERR_SUCCESS;
26651 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
26653 if (flags & NDR_IN) {
26655 if (flags & NDR_OUT) {
26656 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26658 return NDR_ERR_SUCCESS;
26661 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
26663 ndr_print_struct(ndr, name, "spoolss_56");
26665 if (flags & NDR_SET_VALUES) {
26666 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26668 if (flags & NDR_IN) {
26669 ndr_print_struct(ndr, "in", "spoolss_56");
26673 if (flags & NDR_OUT) {
26674 ndr_print_struct(ndr, "out", "spoolss_56");
26676 ndr_print_WERROR(ndr, "result", r->out.result);
26682 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
26684 if (flags & NDR_IN) {
26686 if (flags & NDR_OUT) {
26687 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26689 return NDR_ERR_SUCCESS;
26692 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
26694 if (flags & NDR_IN) {
26696 if (flags & NDR_OUT) {
26697 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26699 return NDR_ERR_SUCCESS;
26702 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
26704 ndr_print_struct(ndr, name, "spoolss_57");
26706 if (flags & NDR_SET_VALUES) {
26707 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26709 if (flags & NDR_IN) {
26710 ndr_print_struct(ndr, "in", "spoolss_57");
26714 if (flags & NDR_OUT) {
26715 ndr_print_struct(ndr, "out", "spoolss_57");
26717 ndr_print_WERROR(ndr, "result", r->out.result);
26723 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
26725 if (flags & NDR_IN) {
26726 if (r->in.handle == NULL) {
26727 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26729 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26733 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));
26734 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
26735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
26736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26737 if (r->in.status_code == NULL) {
26738 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
26742 if (flags & NDR_OUT) {
26743 if (r->out.out_data == NULL) {
26744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26747 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
26748 if (r->out.needed == NULL) {
26749 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26752 if (r->out.status_code == NULL) {
26753 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
26756 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26758 return NDR_ERR_SUCCESS;
26761 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
26763 TALLOC_CTX *_mem_save_handle_0;
26764 TALLOC_CTX *_mem_save_needed_0;
26765 TALLOC_CTX *_mem_save_status_code_0;
26766 if (flags & NDR_IN) {
26767 ZERO_STRUCT(r->out);
26769 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26770 NDR_PULL_ALLOC(ndr, r->in.handle);
26772 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26773 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26774 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26776 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
26777 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
26778 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
26779 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.function_name), ndr_get_array_length(ndr, &r->in.function_name));
26781 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
26782 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.function_name, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t), CH_UTF16));
26783 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
26784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
26785 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
26786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26787 NDR_PULL_ALLOC(ndr, r->in.status_code);
26789 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26790 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
26791 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
26792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26793 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
26794 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
26795 NDR_PULL_ALLOC(ndr, r->out.needed);
26796 ZERO_STRUCTP(r->out.needed);
26797 NDR_PULL_ALLOC(ndr, r->out.status_code);
26798 *r->out.status_code = *r->in.status_code;
26800 if (flags & NDR_OUT) {
26801 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
26802 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26803 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
26805 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
26806 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26807 NDR_PULL_ALLOC(ndr, r->out.needed);
26809 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26810 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26813 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26814 NDR_PULL_ALLOC(ndr, r->out.status_code);
26816 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26817 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
26818 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
26819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26820 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26821 if (r->out.out_data) {
26822 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
26825 return NDR_ERR_SUCCESS;
26828 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
26830 ndr_print_struct(ndr, name, "spoolss_XcvData");
26832 if (flags & NDR_SET_VALUES) {
26833 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26835 if (flags & NDR_IN) {
26836 ndr_print_struct(ndr, "in", "spoolss_XcvData");
26838 ndr_print_ptr(ndr, "handle", r->in.handle);
26840 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26842 ndr_print_string(ndr, "function_name", r->in.function_name);
26843 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
26844 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
26845 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
26846 ndr_print_ptr(ndr, "status_code", r->in.status_code);
26848 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
26852 if (flags & NDR_OUT) {
26853 ndr_print_struct(ndr, "out", "spoolss_XcvData");
26855 ndr_print_ptr(ndr, "out_data", r->out.out_data);
26857 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
26859 ndr_print_ptr(ndr, "needed", r->out.needed);
26861 ndr_print_uint32(ndr, "needed", *r->out.needed);
26863 ndr_print_ptr(ndr, "status_code", r->out.status_code);
26865 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
26867 ndr_print_WERROR(ndr, "result", r->out.result);
26873 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
26875 if (flags & NDR_IN) {
26876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26877 if (r->in.servername) {
26878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26881 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26883 if (r->in.info_ctr == NULL) {
26884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26886 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26887 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
26889 if (flags & NDR_OUT) {
26890 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26892 return NDR_ERR_SUCCESS;
26895 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
26897 uint32_t _ptr_servername;
26898 TALLOC_CTX *_mem_save_servername_0;
26899 TALLOC_CTX *_mem_save_info_ctr_0;
26900 if (flags & NDR_IN) {
26901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26902 if (_ptr_servername) {
26903 NDR_PULL_ALLOC(ndr, r->in.servername);
26905 r->in.servername = NULL;
26907 if (r->in.servername) {
26908 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26909 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26910 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26911 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26912 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26913 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
26915 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26916 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26919 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26920 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26922 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26923 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26924 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26926 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
26928 if (flags & NDR_OUT) {
26929 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26931 return NDR_ERR_SUCCESS;
26934 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
26936 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
26938 if (flags & NDR_SET_VALUES) {
26939 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26941 if (flags & NDR_IN) {
26942 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
26944 ndr_print_ptr(ndr, "servername", r->in.servername);
26946 if (r->in.servername) {
26947 ndr_print_string(ndr, "servername", r->in.servername);
26950 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26952 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26954 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
26957 if (flags & NDR_OUT) {
26958 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
26960 ndr_print_WERROR(ndr, "result", r->out.result);
26966 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
26968 if (flags & NDR_IN) {
26970 if (flags & NDR_OUT) {
26971 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26973 return NDR_ERR_SUCCESS;
26976 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
26978 if (flags & NDR_IN) {
26980 if (flags & NDR_OUT) {
26981 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26983 return NDR_ERR_SUCCESS;
26986 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
26988 ndr_print_struct(ndr, name, "spoolss_5a");
26990 if (flags & NDR_SET_VALUES) {
26991 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26993 if (flags & NDR_IN) {
26994 ndr_print_struct(ndr, "in", "spoolss_5a");
26998 if (flags & NDR_OUT) {
26999 ndr_print_struct(ndr, "out", "spoolss_5a");
27001 ndr_print_WERROR(ndr, "result", r->out.result);
27007 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
27009 if (flags & NDR_IN) {
27011 if (flags & NDR_OUT) {
27012 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27014 return NDR_ERR_SUCCESS;
27017 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
27019 if (flags & NDR_IN) {
27021 if (flags & NDR_OUT) {
27022 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27024 return NDR_ERR_SUCCESS;
27027 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
27029 ndr_print_struct(ndr, name, "spoolss_5b");
27031 if (flags & NDR_SET_VALUES) {
27032 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27034 if (flags & NDR_IN) {
27035 ndr_print_struct(ndr, "in", "spoolss_5b");
27039 if (flags & NDR_OUT) {
27040 ndr_print_struct(ndr, "out", "spoolss_5b");
27042 ndr_print_WERROR(ndr, "result", r->out.result);
27048 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
27050 if (flags & NDR_IN) {
27052 if (flags & NDR_OUT) {
27053 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27055 return NDR_ERR_SUCCESS;
27058 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
27060 if (flags & NDR_IN) {
27062 if (flags & NDR_OUT) {
27063 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27065 return NDR_ERR_SUCCESS;
27068 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
27070 ndr_print_struct(ndr, name, "spoolss_5c");
27072 if (flags & NDR_SET_VALUES) {
27073 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27075 if (flags & NDR_IN) {
27076 ndr_print_struct(ndr, "in", "spoolss_5c");
27080 if (flags & NDR_OUT) {
27081 ndr_print_struct(ndr, "out", "spoolss_5c");
27083 ndr_print_WERROR(ndr, "result", r->out.result);
27089 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
27091 if (flags & NDR_IN) {
27093 if (flags & NDR_OUT) {
27094 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27096 return NDR_ERR_SUCCESS;
27099 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
27101 if (flags & NDR_IN) {
27103 if (flags & NDR_OUT) {
27104 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27106 return NDR_ERR_SUCCESS;
27109 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
27111 ndr_print_struct(ndr, name, "spoolss_5d");
27113 if (flags & NDR_SET_VALUES) {
27114 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27116 if (flags & NDR_IN) {
27117 ndr_print_struct(ndr, "in", "spoolss_5d");
27121 if (flags & NDR_OUT) {
27122 ndr_print_struct(ndr, "out", "spoolss_5d");
27124 ndr_print_WERROR(ndr, "result", r->out.result);
27130 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
27132 if (flags & NDR_IN) {
27134 if (flags & NDR_OUT) {
27135 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27137 return NDR_ERR_SUCCESS;
27140 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
27142 if (flags & NDR_IN) {
27144 if (flags & NDR_OUT) {
27145 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27147 return NDR_ERR_SUCCESS;
27150 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
27152 ndr_print_struct(ndr, name, "spoolss_5e");
27154 if (flags & NDR_SET_VALUES) {
27155 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27157 if (flags & NDR_IN) {
27158 ndr_print_struct(ndr, "in", "spoolss_5e");
27162 if (flags & NDR_OUT) {
27163 ndr_print_struct(ndr, "out", "spoolss_5e");
27165 ndr_print_WERROR(ndr, "result", r->out.result);
27171 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
27173 if (flags & NDR_IN) {
27175 if (flags & NDR_OUT) {
27176 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27178 return NDR_ERR_SUCCESS;
27181 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
27183 if (flags & NDR_IN) {
27185 if (flags & NDR_OUT) {
27186 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27188 return NDR_ERR_SUCCESS;
27191 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
27193 ndr_print_struct(ndr, name, "spoolss_5f");
27195 if (flags & NDR_SET_VALUES) {
27196 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27198 if (flags & NDR_IN) {
27199 ndr_print_struct(ndr, "in", "spoolss_5f");
27203 if (flags & NDR_OUT) {
27204 ndr_print_struct(ndr, "out", "spoolss_5f");
27206 ndr_print_WERROR(ndr, "result", r->out.result);
27212 static const struct ndr_interface_call spoolss_calls[] = {
27214 "spoolss_EnumPrinters",
27215 sizeof(struct spoolss_EnumPrinters),
27216 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
27217 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
27218 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
27222 "spoolss_OpenPrinter",
27223 sizeof(struct spoolss_OpenPrinter),
27224 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
27225 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
27226 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
27231 sizeof(struct spoolss_SetJob),
27232 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
27233 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
27234 (ndr_print_function_t) ndr_print_spoolss_SetJob,
27239 sizeof(struct spoolss_GetJob),
27240 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
27241 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
27242 (ndr_print_function_t) ndr_print_spoolss_GetJob,
27246 "spoolss_EnumJobs",
27247 sizeof(struct spoolss_EnumJobs),
27248 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
27249 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
27250 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
27254 "spoolss_AddPrinter",
27255 sizeof(struct spoolss_AddPrinter),
27256 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
27257 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
27258 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
27262 "spoolss_DeletePrinter",
27263 sizeof(struct spoolss_DeletePrinter),
27264 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
27265 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
27266 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
27270 "spoolss_SetPrinter",
27271 sizeof(struct spoolss_SetPrinter),
27272 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
27273 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
27274 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
27278 "spoolss_GetPrinter",
27279 sizeof(struct spoolss_GetPrinter),
27280 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
27281 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
27282 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
27286 "spoolss_AddPrinterDriver",
27287 sizeof(struct spoolss_AddPrinterDriver),
27288 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
27289 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
27290 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
27294 "spoolss_EnumPrinterDrivers",
27295 sizeof(struct spoolss_EnumPrinterDrivers),
27296 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
27297 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
27298 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
27302 "spoolss_GetPrinterDriver",
27303 sizeof(struct spoolss_GetPrinterDriver),
27304 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
27305 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
27306 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
27310 "spoolss_GetPrinterDriverDirectory",
27311 sizeof(struct spoolss_GetPrinterDriverDirectory),
27312 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
27313 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
27314 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
27318 "spoolss_DeletePrinterDriver",
27319 sizeof(struct spoolss_DeletePrinterDriver),
27320 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
27321 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
27322 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
27326 "spoolss_AddPrintProcessor",
27327 sizeof(struct spoolss_AddPrintProcessor),
27328 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
27329 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
27330 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
27334 "spoolss_EnumPrintProcessors",
27335 sizeof(struct spoolss_EnumPrintProcessors),
27336 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
27337 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
27338 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
27342 "spoolss_GetPrintProcessorDirectory",
27343 sizeof(struct spoolss_GetPrintProcessorDirectory),
27344 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
27345 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
27346 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
27350 "spoolss_StartDocPrinter",
27351 sizeof(struct spoolss_StartDocPrinter),
27352 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
27353 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
27354 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
27358 "spoolss_StartPagePrinter",
27359 sizeof(struct spoolss_StartPagePrinter),
27360 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
27361 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
27362 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
27366 "spoolss_WritePrinter",
27367 sizeof(struct spoolss_WritePrinter),
27368 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
27369 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
27370 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
27374 "spoolss_EndPagePrinter",
27375 sizeof(struct spoolss_EndPagePrinter),
27376 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
27377 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
27378 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
27382 "spoolss_AbortPrinter",
27383 sizeof(struct spoolss_AbortPrinter),
27384 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
27385 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
27386 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
27390 "spoolss_ReadPrinter",
27391 sizeof(struct spoolss_ReadPrinter),
27392 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
27393 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
27394 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
27398 "spoolss_EndDocPrinter",
27399 sizeof(struct spoolss_EndDocPrinter),
27400 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
27401 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
27402 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
27407 sizeof(struct spoolss_AddJob),
27408 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
27409 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
27410 (ndr_print_function_t) ndr_print_spoolss_AddJob,
27414 "spoolss_ScheduleJob",
27415 sizeof(struct spoolss_ScheduleJob),
27416 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
27417 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
27418 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
27422 "spoolss_GetPrinterData",
27423 sizeof(struct spoolss_GetPrinterData),
27424 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
27425 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
27426 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
27430 "spoolss_SetPrinterData",
27431 sizeof(struct spoolss_SetPrinterData),
27432 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
27433 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
27434 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
27438 "spoolss_WaitForPrinterChange",
27439 sizeof(struct spoolss_WaitForPrinterChange),
27440 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
27441 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
27442 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
27446 "spoolss_ClosePrinter",
27447 sizeof(struct spoolss_ClosePrinter),
27448 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
27449 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
27450 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
27455 sizeof(struct spoolss_AddForm),
27456 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
27457 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
27458 (ndr_print_function_t) ndr_print_spoolss_AddForm,
27462 "spoolss_DeleteForm",
27463 sizeof(struct spoolss_DeleteForm),
27464 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
27465 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
27466 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
27471 sizeof(struct spoolss_GetForm),
27472 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
27473 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
27474 (ndr_print_function_t) ndr_print_spoolss_GetForm,
27479 sizeof(struct spoolss_SetForm),
27480 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
27481 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
27482 (ndr_print_function_t) ndr_print_spoolss_SetForm,
27486 "spoolss_EnumForms",
27487 sizeof(struct spoolss_EnumForms),
27488 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
27489 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
27490 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
27494 "spoolss_EnumPorts",
27495 sizeof(struct spoolss_EnumPorts),
27496 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
27497 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
27498 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
27502 "spoolss_EnumMonitors",
27503 sizeof(struct spoolss_EnumMonitors),
27504 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
27505 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
27506 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
27511 sizeof(struct spoolss_AddPort),
27512 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
27513 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
27514 (ndr_print_function_t) ndr_print_spoolss_AddPort,
27518 "spoolss_ConfigurePort",
27519 sizeof(struct spoolss_ConfigurePort),
27520 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
27521 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
27522 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
27526 "spoolss_DeletePort",
27527 sizeof(struct spoolss_DeletePort),
27528 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
27529 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
27530 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
27534 "spoolss_CreatePrinterIC",
27535 sizeof(struct spoolss_CreatePrinterIC),
27536 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
27537 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
27538 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
27542 "spoolss_PlayGDIScriptOnPrinterIC",
27543 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
27544 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
27545 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
27546 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
27550 "spoolss_DeletePrinterIC",
27551 sizeof(struct spoolss_DeletePrinterIC),
27552 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
27553 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
27554 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
27558 "spoolss_AddPrinterConnection",
27559 sizeof(struct spoolss_AddPrinterConnection),
27560 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
27561 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
27562 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
27566 "spoolss_DeletePrinterConnection",
27567 sizeof(struct spoolss_DeletePrinterConnection),
27568 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
27569 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
27570 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
27574 "spoolss_PrinterMessageBox",
27575 sizeof(struct spoolss_PrinterMessageBox),
27576 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
27577 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
27578 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
27582 "spoolss_AddMonitor",
27583 sizeof(struct spoolss_AddMonitor),
27584 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
27585 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
27586 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
27590 "spoolss_DeleteMonitor",
27591 sizeof(struct spoolss_DeleteMonitor),
27592 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
27593 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
27594 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
27598 "spoolss_DeletePrintProcessor",
27599 sizeof(struct spoolss_DeletePrintProcessor),
27600 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
27601 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
27602 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
27606 "spoolss_AddPrintProvidor",
27607 sizeof(struct spoolss_AddPrintProvidor),
27608 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
27609 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
27610 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
27614 "spoolss_DeletePrintProvidor",
27615 sizeof(struct spoolss_DeletePrintProvidor),
27616 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
27617 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
27618 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
27622 "spoolss_EnumPrintProcDataTypes",
27623 sizeof(struct spoolss_EnumPrintProcDataTypes),
27624 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
27625 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
27626 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
27630 "spoolss_ResetPrinter",
27631 sizeof(struct spoolss_ResetPrinter),
27632 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
27633 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
27634 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
27638 "spoolss_GetPrinterDriver2",
27639 sizeof(struct spoolss_GetPrinterDriver2),
27640 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
27641 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
27642 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
27646 "spoolss_FindFirstPrinterChangeNotification",
27647 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
27648 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
27649 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
27650 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
27654 "spoolss_FindNextPrinterChangeNotification",
27655 sizeof(struct spoolss_FindNextPrinterChangeNotification),
27656 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
27657 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
27658 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
27662 "spoolss_FindClosePrinterNotify",
27663 sizeof(struct spoolss_FindClosePrinterNotify),
27664 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
27665 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
27666 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
27670 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27671 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
27672 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27673 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27674 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27678 "spoolss_ReplyOpenPrinter",
27679 sizeof(struct spoolss_ReplyOpenPrinter),
27680 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
27681 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
27682 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
27686 "spoolss_RouterReplyPrinter",
27687 sizeof(struct spoolss_RouterReplyPrinter),
27688 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
27689 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
27690 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
27694 "spoolss_ReplyClosePrinter",
27695 sizeof(struct spoolss_ReplyClosePrinter),
27696 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
27697 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
27698 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
27702 "spoolss_AddPortEx",
27703 sizeof(struct spoolss_AddPortEx),
27704 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
27705 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
27706 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
27710 "spoolss_RouterFindFirstPrinterChangeNotification",
27711 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
27712 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
27713 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
27714 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
27718 "spoolss_SpoolerInit",
27719 sizeof(struct spoolss_SpoolerInit),
27720 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
27721 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
27722 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
27726 "spoolss_ResetPrinterEx",
27727 sizeof(struct spoolss_ResetPrinterEx),
27728 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
27729 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
27730 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
27734 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27735 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
27736 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27737 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27738 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27742 "spoolss_RouterReplyPrinterEx",
27743 sizeof(struct spoolss_RouterReplyPrinterEx),
27744 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
27745 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
27746 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
27750 "spoolss_RouterRefreshPrinterChangeNotify",
27751 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
27752 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
27753 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
27754 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
27759 sizeof(struct spoolss_44),
27760 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
27761 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
27762 (ndr_print_function_t) ndr_print_spoolss_44,
27766 "spoolss_OpenPrinterEx",
27767 sizeof(struct spoolss_OpenPrinterEx),
27768 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
27769 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
27770 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
27774 "spoolss_AddPrinterEx",
27775 sizeof(struct spoolss_AddPrinterEx),
27776 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
27777 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
27778 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
27783 sizeof(struct spoolss_47),
27784 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
27785 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
27786 (ndr_print_function_t) ndr_print_spoolss_47,
27790 "spoolss_EnumPrinterData",
27791 sizeof(struct spoolss_EnumPrinterData),
27792 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
27793 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
27794 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
27798 "spoolss_DeletePrinterData",
27799 sizeof(struct spoolss_DeletePrinterData),
27800 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
27801 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
27802 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
27807 sizeof(struct spoolss_4a),
27808 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
27809 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
27810 (ndr_print_function_t) ndr_print_spoolss_4a,
27815 sizeof(struct spoolss_4b),
27816 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
27817 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
27818 (ndr_print_function_t) ndr_print_spoolss_4b,
27823 sizeof(struct spoolss_4c),
27824 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
27825 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
27826 (ndr_print_function_t) ndr_print_spoolss_4c,
27830 "spoolss_SetPrinterDataEx",
27831 sizeof(struct spoolss_SetPrinterDataEx),
27832 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
27833 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
27834 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
27838 "spoolss_GetPrinterDataEx",
27839 sizeof(struct spoolss_GetPrinterDataEx),
27840 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
27841 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
27842 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
27846 "spoolss_EnumPrinterDataEx",
27847 sizeof(struct spoolss_EnumPrinterDataEx),
27848 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
27849 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
27850 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
27854 "spoolss_EnumPrinterKey",
27855 sizeof(struct spoolss_EnumPrinterKey),
27856 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
27857 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
27858 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
27862 "spoolss_DeletePrinterDataEx",
27863 sizeof(struct spoolss_DeletePrinterDataEx),
27864 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
27865 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
27866 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
27870 "spoolss_DeletePrinterKey",
27871 sizeof(struct spoolss_DeletePrinterKey),
27872 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
27873 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
27874 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
27879 sizeof(struct spoolss_53),
27880 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
27881 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
27882 (ndr_print_function_t) ndr_print_spoolss_53,
27886 "spoolss_DeletePrinterDriverEx",
27887 sizeof(struct spoolss_DeletePrinterDriverEx),
27888 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
27889 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
27890 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
27895 sizeof(struct spoolss_55),
27896 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
27897 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
27898 (ndr_print_function_t) ndr_print_spoolss_55,
27903 sizeof(struct spoolss_56),
27904 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
27905 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
27906 (ndr_print_function_t) ndr_print_spoolss_56,
27911 sizeof(struct spoolss_57),
27912 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
27913 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
27914 (ndr_print_function_t) ndr_print_spoolss_57,
27919 sizeof(struct spoolss_XcvData),
27920 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
27921 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
27922 (ndr_print_function_t) ndr_print_spoolss_XcvData,
27926 "spoolss_AddPrinterDriverEx",
27927 sizeof(struct spoolss_AddPrinterDriverEx),
27928 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
27929 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
27930 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
27935 sizeof(struct spoolss_5a),
27936 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
27937 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
27938 (ndr_print_function_t) ndr_print_spoolss_5a,
27943 sizeof(struct spoolss_5b),
27944 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
27945 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
27946 (ndr_print_function_t) ndr_print_spoolss_5b,
27951 sizeof(struct spoolss_5c),
27952 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
27953 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
27954 (ndr_print_function_t) ndr_print_spoolss_5c,
27959 sizeof(struct spoolss_5d),
27960 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
27961 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
27962 (ndr_print_function_t) ndr_print_spoolss_5d,
27967 sizeof(struct spoolss_5e),
27968 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
27969 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
27970 (ndr_print_function_t) ndr_print_spoolss_5e,
27975 sizeof(struct spoolss_5f),
27976 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
27977 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
27978 (ndr_print_function_t) ndr_print_spoolss_5f,
27981 { NULL, 0, NULL, NULL, NULL, false }
27984 static const char * const spoolss_endpoint_strings[] = {
27985 "ncacn_np:[\\pipe\\spoolss]",
27988 static const struct ndr_interface_string_array spoolss_endpoints = {
27990 .names = spoolss_endpoint_strings
27993 static const char * const spoolss_authservice_strings[] = {
27997 static const struct ndr_interface_string_array spoolss_authservices = {
27999 .names = spoolss_authservice_strings
28003 const struct ndr_interface_table ndr_table_spoolss = {
28006 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28007 NDR_SPOOLSS_VERSION
28009 .helpstring = NDR_SPOOLSS_HELPSTRING,
28011 .calls = spoolss_calls,
28012 .endpoints = &spoolss_endpoints,
28013 .authservices = &spoolss_authservices