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 static 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 static 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 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16395 if (ndr_flags & NDR_SCALARS) {
16396 NDR_CHECK(ndr_push_align(ndr, 4));
16398 uint32_t _flags_save_string = ndr->flags;
16399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16400 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16401 ndr->flags = _flags_save_string;
16404 uint32_t _flags_save_string = ndr->flags;
16405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16406 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16407 ndr->flags = _flags_save_string;
16410 uint32_t _flags_save_string = ndr->flags;
16411 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16412 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16413 ndr->flags = _flags_save_string;
16416 if (ndr_flags & NDR_BUFFERS) {
16418 uint32_t _flags_save_string = ndr->flags;
16419 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16420 if (r->monitor_name) {
16421 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16422 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16424 ndr->flags = _flags_save_string;
16427 uint32_t _flags_save_string = ndr->flags;
16428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16429 if (r->environment) {
16430 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
16431 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16433 ndr->flags = _flags_save_string;
16436 uint32_t _flags_save_string = ndr->flags;
16437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16439 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
16440 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16442 ndr->flags = _flags_save_string;
16445 return NDR_ERR_SUCCESS;
16448 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
16450 uint32_t _ptr_monitor_name;
16451 TALLOC_CTX *_mem_save_monitor_name_0;
16452 uint32_t _ptr_environment;
16453 TALLOC_CTX *_mem_save_environment_0;
16454 uint32_t _ptr_dll_name;
16455 TALLOC_CTX *_mem_save_dll_name_0;
16456 if (ndr_flags & NDR_SCALARS) {
16457 NDR_CHECK(ndr_pull_align(ndr, 4));
16459 uint32_t _flags_save_string = ndr->flags;
16460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16462 if (_ptr_monitor_name) {
16463 NDR_PULL_ALLOC(ndr, r->monitor_name);
16464 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16466 r->monitor_name = NULL;
16468 ndr->flags = _flags_save_string;
16471 uint32_t _flags_save_string = ndr->flags;
16472 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16473 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16474 if (_ptr_environment) {
16475 NDR_PULL_ALLOC(ndr, r->environment);
16476 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
16478 r->environment = NULL;
16480 ndr->flags = _flags_save_string;
16483 uint32_t _flags_save_string = ndr->flags;
16484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
16486 if (_ptr_dll_name) {
16487 NDR_PULL_ALLOC(ndr, r->dll_name);
16488 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
16490 r->dll_name = NULL;
16492 ndr->flags = _flags_save_string;
16495 if (ndr_flags & NDR_BUFFERS) {
16497 uint32_t _flags_save_string = ndr->flags;
16498 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16499 if (r->monitor_name) {
16500 uint32_t _relative_save_offset;
16501 _relative_save_offset = ndr->offset;
16502 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16503 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16504 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16505 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16507 ndr->offset = _relative_save_offset;
16509 ndr->flags = _flags_save_string;
16512 uint32_t _flags_save_string = ndr->flags;
16513 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16514 if (r->environment) {
16515 uint32_t _relative_save_offset;
16516 _relative_save_offset = ndr->offset;
16517 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
16518 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16519 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
16520 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
16521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16522 ndr->offset = _relative_save_offset;
16524 ndr->flags = _flags_save_string;
16527 uint32_t _flags_save_string = ndr->flags;
16528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16530 uint32_t _relative_save_offset;
16531 _relative_save_offset = ndr->offset;
16532 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
16533 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16534 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
16535 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
16536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
16537 ndr->offset = _relative_save_offset;
16539 ndr->flags = _flags_save_string;
16542 return NDR_ERR_SUCCESS;
16545 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
16547 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
16549 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16551 if (r->monitor_name) {
16552 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16555 ndr_print_ptr(ndr, "environment", r->environment);
16557 if (r->environment) {
16558 ndr_print_string(ndr, "environment", r->environment);
16561 ndr_print_ptr(ndr, "dll_name", r->dll_name);
16564 ndr_print_string(ndr, "dll_name", r->dll_name);
16570 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
16572 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16573 if (ndr_flags & NDR_SCALARS) {
16574 int level = ndr_push_get_switch_value(ndr, r);
16577 NDR_CHECK(ndr_push_align(ndr, 4));
16578 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16579 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16583 NDR_CHECK(ndr_push_align(ndr, 4));
16584 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16585 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16593 if (ndr_flags & NDR_BUFFERS) {
16594 int level = ndr_push_get_switch_value(ndr, r);
16595 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16598 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16602 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16610 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16611 return NDR_ERR_SUCCESS;
16614 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
16616 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16618 level = ndr_pull_get_switch_value(ndr, r);
16619 if (ndr_flags & NDR_SCALARS) {
16622 NDR_CHECK(ndr_pull_align(ndr, 4));
16623 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16624 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16628 NDR_CHECK(ndr_pull_align(ndr, 4));
16629 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16630 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16638 if (ndr_flags & NDR_BUFFERS) {
16639 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16642 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16646 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16654 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16655 return NDR_ERR_SUCCESS;
16658 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
16661 level = ndr_print_get_switch_value(ndr, r);
16662 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
16665 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
16669 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
16678 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
16680 if (ndr_flags & NDR_SCALARS) {
16681 NDR_CHECK(ndr_push_align(ndr, 4));
16683 uint32_t _flags_save_string = ndr->flags;
16684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16685 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
16686 ndr->flags = _flags_save_string;
16689 if (ndr_flags & NDR_BUFFERS) {
16691 uint32_t _flags_save_string = ndr->flags;
16692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16693 if (r->name_array) {
16694 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
16695 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
16697 ndr->flags = _flags_save_string;
16700 return NDR_ERR_SUCCESS;
16703 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
16705 uint32_t _ptr_name_array;
16706 TALLOC_CTX *_mem_save_name_array_0;
16707 if (ndr_flags & NDR_SCALARS) {
16708 NDR_CHECK(ndr_pull_align(ndr, 4));
16710 uint32_t _flags_save_string = ndr->flags;
16711 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
16713 if (_ptr_name_array) {
16714 NDR_PULL_ALLOC(ndr, r->name_array);
16715 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
16717 r->name_array = NULL;
16719 ndr->flags = _flags_save_string;
16722 if (ndr_flags & NDR_BUFFERS) {
16724 uint32_t _flags_save_string = ndr->flags;
16725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16726 if (r->name_array) {
16727 uint32_t _relative_save_offset;
16728 _relative_save_offset = ndr->offset;
16729 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
16730 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
16731 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
16732 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
16733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
16734 ndr->offset = _relative_save_offset;
16736 ndr->flags = _flags_save_string;
16739 return NDR_ERR_SUCCESS;
16742 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
16744 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
16746 ndr_print_ptr(ndr, "name_array", r->name_array);
16748 if (r->name_array) {
16749 ndr_print_string(ndr, "name_array", r->name_array);
16755 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16757 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
16760 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
16762 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16763 if (ndr_flags & NDR_SCALARS) {
16764 int level = ndr_push_get_switch_value(ndr, r);
16767 NDR_CHECK(ndr_push_align(ndr, 4));
16768 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16769 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16777 if (ndr_flags & NDR_BUFFERS) {
16778 int level = ndr_push_get_switch_value(ndr, r);
16779 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16782 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16790 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16791 return NDR_ERR_SUCCESS;
16794 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
16796 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16798 level = ndr_pull_get_switch_value(ndr, r);
16799 if (ndr_flags & NDR_SCALARS) {
16802 NDR_CHECK(ndr_pull_align(ndr, 4));
16803 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16804 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16812 if (ndr_flags & NDR_BUFFERS) {
16813 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16816 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16824 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16825 return NDR_ERR_SUCCESS;
16828 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
16831 level = ndr_print_get_switch_value(ndr, r);
16832 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
16835 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
16844 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16847 return NDR_ERR_SUCCESS;
16850 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16855 return NDR_ERR_SUCCESS;
16858 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16860 ndr_print_uint32(ndr, name, r);
16862 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
16863 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
16864 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
16865 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
16866 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
16867 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
16868 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
16869 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
16870 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
16871 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
16872 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
16873 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
16874 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
16875 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
16876 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
16877 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
16878 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
16879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
16880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
16881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
16882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
16886 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
16888 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16889 return NDR_ERR_SUCCESS;
16892 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
16895 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16897 return NDR_ERR_SUCCESS;
16900 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
16902 const char *val = NULL;
16905 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
16906 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
16907 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
16908 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
16909 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
16910 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
16911 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
16912 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
16913 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
16914 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16915 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
16916 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
16917 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16918 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
16919 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
16920 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
16921 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
16922 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
16923 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
16924 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
16925 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
16926 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
16927 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
16928 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
16929 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
16930 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
16932 ndr_print_enum(ndr, name, "ENUM", val, r);
16935 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
16937 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16938 return NDR_ERR_SUCCESS;
16941 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
16944 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16946 return NDR_ERR_SUCCESS;
16949 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
16951 const char *val = NULL;
16954 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
16955 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
16957 ndr_print_enum(ndr, name, "ENUM", val, r);
16960 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
16962 uint32_t cntr_fields_1;
16963 if (ndr_flags & NDR_SCALARS) {
16964 NDR_CHECK(ndr_push_align(ndr, 4));
16965 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
16966 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
16967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
16968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
16969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
16972 if (ndr_flags & NDR_BUFFERS) {
16974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
16975 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
16976 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
16980 return NDR_ERR_SUCCESS;
16983 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
16985 uint32_t _ptr_fields;
16986 uint32_t cntr_fields_1;
16987 TALLOC_CTX *_mem_save_fields_0;
16988 TALLOC_CTX *_mem_save_fields_1;
16989 if (ndr_flags & NDR_SCALARS) {
16990 NDR_CHECK(ndr_pull_align(ndr, 4));
16991 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
16992 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
16993 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
16994 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
16995 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
16996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
16998 NDR_PULL_ALLOC(ndr, r->fields);
17003 if (ndr_flags & NDR_BUFFERS) {
17005 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17006 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17007 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17008 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17009 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17010 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17011 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17012 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17018 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17021 return NDR_ERR_SUCCESS;
17024 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17026 uint32_t cntr_fields_1;
17027 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17029 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17030 ndr_print_uint16(ndr, "u1", r->u1);
17031 ndr_print_uint32(ndr, "u2", r->u2);
17032 ndr_print_uint32(ndr, "u3", r->u3);
17033 ndr_print_uint32(ndr, "count", r->count);
17034 ndr_print_ptr(ndr, "fields", r->fields);
17037 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17039 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17041 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17042 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
17052 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17055 return NDR_ERR_SUCCESS;
17058 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17063 return NDR_ERR_SUCCESS;
17066 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17068 ndr_print_uint32(ndr, name, r);
17070 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17074 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17076 uint32_t cntr_types_1;
17077 if (ndr_flags & NDR_SCALARS) {
17078 NDR_CHECK(ndr_push_align(ndr, 4));
17079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17080 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17082 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17084 if (ndr_flags & NDR_BUFFERS) {
17086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17087 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17088 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17090 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17091 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17095 return NDR_ERR_SUCCESS;
17098 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17100 uint32_t _ptr_types;
17101 uint32_t cntr_types_1;
17102 TALLOC_CTX *_mem_save_types_0;
17103 TALLOC_CTX *_mem_save_types_1;
17104 if (ndr_flags & NDR_SCALARS) {
17105 NDR_CHECK(ndr_pull_align(ndr, 4));
17106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17107 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17111 NDR_PULL_ALLOC(ndr, r->types);
17116 if (ndr_flags & NDR_BUFFERS) {
17118 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17119 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17120 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17121 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17122 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17123 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17124 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17125 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17127 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17128 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17131 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17134 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17137 return NDR_ERR_SUCCESS;
17140 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17142 uint32_t cntr_types_1;
17143 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17145 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17146 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17147 ndr_print_uint32(ndr, "count", r->count);
17148 ndr_print_ptr(ndr, "types", r->types);
17151 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17153 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17155 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17156 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17166 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17168 if (ndr_flags & NDR_SCALARS) {
17169 NDR_CHECK(ndr_push_align(ndr, 4));
17170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17173 if (ndr_flags & NDR_BUFFERS) {
17175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17176 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17179 return NDR_ERR_SUCCESS;
17182 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17184 uint32_t _ptr_string;
17185 TALLOC_CTX *_mem_save_string_0;
17186 if (ndr_flags & NDR_SCALARS) {
17187 NDR_CHECK(ndr_pull_align(ndr, 4));
17188 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17191 NDR_PULL_ALLOC(ndr, r->string);
17196 if (ndr_flags & NDR_BUFFERS) {
17198 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17199 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17200 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17201 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17205 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17208 return NDR_ERR_SUCCESS;
17211 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17213 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17215 ndr_print_uint32(ndr, "size", r->size);
17216 ndr_print_ptr(ndr, "string", r->string);
17219 ndr_print_string(ndr, "string", r->string);
17225 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17228 return NDR_ERR_SUCCESS;
17231 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17236 return NDR_ERR_SUCCESS;
17239 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17241 const char *val = NULL;
17244 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17245 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17246 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17247 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17248 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17250 ndr_print_enum(ndr, name, "ENUM", val, r);
17253 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17255 if (ndr_flags & NDR_SCALARS) {
17256 int level = ndr_push_get_switch_value(ndr, r);
17257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17260 uint32_t cntr_integer_0;
17261 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17267 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17271 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17275 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17279 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17283 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17286 if (ndr_flags & NDR_BUFFERS) {
17287 int level = ndr_push_get_switch_value(ndr, r);
17293 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17297 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17301 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17305 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17309 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17312 return NDR_ERR_SUCCESS;
17315 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17319 level = ndr_pull_get_switch_value(ndr, r);
17320 if (ndr_flags & NDR_SCALARS) {
17321 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17322 if (_level != level) {
17323 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17327 uint32_t cntr_integer_0;
17328 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17334 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17338 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17342 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17346 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17350 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17353 if (ndr_flags & NDR_BUFFERS) {
17359 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17363 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17367 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17371 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17375 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17378 return NDR_ERR_SUCCESS;
17381 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17384 uint32_t cntr_integer_0;
17385 level = ndr_print_get_switch_value(ndr, r);
17386 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17389 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17391 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17393 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17394 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17402 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17406 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17410 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17414 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17418 ndr_print_bad_level(ndr, name, level);
17422 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17424 if (ndr_flags & NDR_SCALARS) {
17425 NDR_CHECK(ndr_push_align(ndr, 4));
17426 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17427 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
17428 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17430 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17431 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17433 if (ndr_flags & NDR_BUFFERS) {
17434 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17436 return NDR_ERR_SUCCESS;
17439 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17441 if (ndr_flags & NDR_SCALARS) {
17442 NDR_CHECK(ndr_pull_align(ndr, 4));
17443 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17444 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17445 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17447 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17448 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17450 if (ndr_flags & NDR_BUFFERS) {
17451 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17453 return NDR_ERR_SUCCESS;
17456 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17458 ndr_print_struct(ndr, name, "spoolss_Notify");
17460 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17461 ndr_print_spoolss_Field(ndr, "field", r->field);
17462 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17463 ndr_print_uint32(ndr, "job_id", r->job_id);
17464 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17465 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17469 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17471 uint32_t cntr_notifies_0;
17472 if (ndr_flags & NDR_SCALARS) {
17473 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17474 NDR_CHECK(ndr_push_align(ndr, 4));
17475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17478 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17479 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17482 if (ndr_flags & NDR_BUFFERS) {
17483 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17484 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17487 return NDR_ERR_SUCCESS;
17490 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17492 uint32_t cntr_notifies_0;
17493 TALLOC_CTX *_mem_save_notifies_0;
17494 if (ndr_flags & NDR_SCALARS) {
17495 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17496 NDR_CHECK(ndr_pull_align(ndr, 4));
17497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17500 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17501 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17502 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17503 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17504 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17508 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17511 if (ndr_flags & NDR_BUFFERS) {
17512 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17513 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17514 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17515 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17519 return NDR_ERR_SUCCESS;
17522 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
17524 uint32_t cntr_notifies_0;
17525 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
17527 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17528 ndr_print_uint32(ndr, "flags", r->flags);
17529 ndr_print_uint32(ndr, "count", r->count);
17530 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
17532 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
17534 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
17535 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
17543 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
17545 if (ndr_flags & NDR_SCALARS) {
17546 int level = ndr_push_get_switch_value(ndr, r);
17547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17550 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
17554 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17557 if (ndr_flags & NDR_BUFFERS) {
17558 int level = ndr_push_get_switch_value(ndr, r);
17562 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17567 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17570 return NDR_ERR_SUCCESS;
17573 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
17577 TALLOC_CTX *_mem_save_info0_0;
17578 level = ndr_pull_get_switch_value(ndr, r);
17579 if (ndr_flags & NDR_SCALARS) {
17580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17581 if (_level != level) {
17582 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17586 uint32_t _ptr_info0;
17587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
17589 NDR_PULL_ALLOC(ndr, r->info0);
17596 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17599 if (ndr_flags & NDR_BUFFERS) {
17603 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
17604 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
17605 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
17611 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17614 return NDR_ERR_SUCCESS;
17617 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
17620 level = ndr_print_get_switch_value(ndr, r);
17621 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
17624 ndr_print_ptr(ndr, "info0", r->info0);
17627 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
17633 ndr_print_bad_level(ndr, name, level);
17637 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17640 return NDR_ERR_SUCCESS;
17643 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17648 return NDR_ERR_SUCCESS;
17651 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17653 ndr_print_uint32(ndr, name, r);
17655 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
17656 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
17657 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
17661 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
17663 if (ndr_flags & NDR_SCALARS) {
17664 NDR_CHECK(ndr_push_align(ndr, 4));
17665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17667 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17669 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17670 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17671 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17673 if (ndr_flags & NDR_BUFFERS) {
17675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17678 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17684 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17687 return NDR_ERR_SUCCESS;
17690 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
17692 uint32_t _ptr_client;
17693 TALLOC_CTX *_mem_save_client_0;
17694 uint32_t _ptr_user;
17695 TALLOC_CTX *_mem_save_user_0;
17696 if (ndr_flags & NDR_SCALARS) {
17697 NDR_CHECK(ndr_pull_align(ndr, 4));
17698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17701 NDR_PULL_ALLOC(ndr, r->client);
17705 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17707 NDR_PULL_ALLOC(ndr, r->user);
17711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17712 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17713 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17714 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17716 if (ndr_flags & NDR_BUFFERS) {
17718 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17719 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17720 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17721 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17722 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17723 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));
17725 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17726 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17730 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17731 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17732 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17733 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17734 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17735 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));
17737 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17738 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17742 return NDR_ERR_SUCCESS;
17745 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
17747 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
17749 ndr_print_uint32(ndr, "size", r->size);
17750 ndr_print_ptr(ndr, "client", r->client);
17753 ndr_print_string(ndr, "client", r->client);
17756 ndr_print_ptr(ndr, "user", r->user);
17759 ndr_print_string(ndr, "user", r->user);
17762 ndr_print_uint32(ndr, "build", r->build);
17763 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17764 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17765 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17769 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
17771 if (ndr_flags & NDR_SCALARS) {
17772 NDR_CHECK(ndr_push_align(ndr, 4));
17773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
17775 if (ndr_flags & NDR_BUFFERS) {
17777 return NDR_ERR_SUCCESS;
17780 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
17782 if (ndr_flags & NDR_SCALARS) {
17783 NDR_CHECK(ndr_pull_align(ndr, 4));
17784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
17786 if (ndr_flags & NDR_BUFFERS) {
17788 return NDR_ERR_SUCCESS;
17791 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
17793 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
17795 ndr_print_uint32(ndr, "not_used", r->not_used);
17799 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
17801 if (ndr_flags & NDR_SCALARS) {
17802 NDR_CHECK(ndr_push_align(ndr, 4));
17803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
17806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17807 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17809 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17810 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17811 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17812 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
17814 if (ndr_flags & NDR_BUFFERS) {
17816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17819 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17825 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17828 return NDR_ERR_SUCCESS;
17831 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
17833 uint32_t _ptr_client;
17834 TALLOC_CTX *_mem_save_client_0;
17835 uint32_t _ptr_user;
17836 TALLOC_CTX *_mem_save_user_0;
17837 if (ndr_flags & NDR_SCALARS) {
17838 NDR_CHECK(ndr_pull_align(ndr, 4));
17839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
17842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17844 NDR_PULL_ALLOC(ndr, r->client);
17848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17850 NDR_PULL_ALLOC(ndr, r->user);
17854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17855 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17856 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17857 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17858 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
17860 if (ndr_flags & NDR_BUFFERS) {
17862 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17863 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17864 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17865 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17866 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17867 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));
17869 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17870 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17874 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17875 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17876 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17877 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17878 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17879 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));
17881 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17882 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17886 return NDR_ERR_SUCCESS;
17889 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
17891 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
17893 ndr_print_uint32(ndr, "size", r->size);
17894 ndr_print_uint32(ndr, "flags", r->flags);
17895 ndr_print_uint32(ndr, "size2", r->size2);
17896 ndr_print_ptr(ndr, "client", r->client);
17899 ndr_print_string(ndr, "client", r->client);
17902 ndr_print_ptr(ndr, "user", r->user);
17905 ndr_print_string(ndr, "user", r->user);
17908 ndr_print_uint32(ndr, "build", r->build);
17909 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17910 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17911 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17912 ndr_print_udlong(ndr, "reserved", r->reserved);
17916 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
17918 if (ndr_flags & NDR_SCALARS) {
17919 int level = ndr_push_get_switch_value(ndr, r);
17920 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17923 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
17927 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
17931 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
17935 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17938 if (ndr_flags & NDR_BUFFERS) {
17939 int level = ndr_push_get_switch_value(ndr, r);
17943 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
17949 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
17955 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
17960 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17963 return NDR_ERR_SUCCESS;
17966 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
17970 TALLOC_CTX *_mem_save_level1_0;
17971 TALLOC_CTX *_mem_save_level2_0;
17972 TALLOC_CTX *_mem_save_level3_0;
17973 level = ndr_pull_get_switch_value(ndr, r);
17974 if (ndr_flags & NDR_SCALARS) {
17975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17976 if (_level != level) {
17977 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17981 uint32_t _ptr_level1;
17982 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
17984 NDR_PULL_ALLOC(ndr, r->level1);
17991 uint32_t _ptr_level2;
17992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
17994 NDR_PULL_ALLOC(ndr, r->level2);
18001 uint32_t _ptr_level3;
18002 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18004 NDR_PULL_ALLOC(ndr, r->level3);
18011 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18014 if (ndr_flags & NDR_BUFFERS) {
18018 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18019 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18020 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18027 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18028 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18029 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18036 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18037 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18038 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18039 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18044 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18047 return NDR_ERR_SUCCESS;
18050 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18053 level = ndr_print_get_switch_value(ndr, r);
18054 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18057 ndr_print_ptr(ndr, "level1", r->level1);
18060 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18066 ndr_print_ptr(ndr, "level2", r->level2);
18069 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18075 ndr_print_ptr(ndr, "level3", r->level3);
18078 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18084 ndr_print_bad_level(ndr, name, level);
18088 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18090 if (ndr_flags & NDR_SCALARS) {
18091 NDR_CHECK(ndr_push_align(ndr, 4));
18092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18093 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18094 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18096 if (ndr_flags & NDR_BUFFERS) {
18097 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18099 return NDR_ERR_SUCCESS;
18102 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18104 if (ndr_flags & NDR_SCALARS) {
18105 NDR_CHECK(ndr_pull_align(ndr, 4));
18106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18107 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18108 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18110 if (ndr_flags & NDR_BUFFERS) {
18111 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18113 return NDR_ERR_SUCCESS;
18116 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18118 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18120 ndr_print_uint32(ndr, "level", r->level);
18121 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18122 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18126 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18129 return NDR_ERR_SUCCESS;
18132 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18137 return NDR_ERR_SUCCESS;
18140 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18142 ndr_print_uint32(ndr, name, r);
18144 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18145 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18146 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18147 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18148 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18149 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18153 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18156 return NDR_ERR_SUCCESS;
18159 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18164 return NDR_ERR_SUCCESS;
18167 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18169 ndr_print_uint32(ndr, name, r);
18171 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
18172 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
18173 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
18177 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
18179 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18180 return NDR_ERR_SUCCESS;
18183 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
18186 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18188 return NDR_ERR_SUCCESS;
18191 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
18193 const char *val = NULL;
18196 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
18197 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
18199 ndr_print_enum(ndr, name, "ENUM", val, r);
18202 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18204 if (ndr_flags & NDR_SCALARS) {
18205 NDR_CHECK(ndr_push_align(ndr, 4));
18206 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18208 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18212 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18214 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18215 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18216 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18217 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18222 if (ndr_flags & NDR_BUFFERS) {
18224 return NDR_ERR_SUCCESS;
18227 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18229 if (ndr_flags & NDR_SCALARS) {
18230 NDR_CHECK(ndr_pull_align(ndr, 4));
18231 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18233 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18236 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18237 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18239 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18240 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18241 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18242 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18247 if (ndr_flags & NDR_BUFFERS) {
18249 return NDR_ERR_SUCCESS;
18252 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18254 ndr_print_struct(ndr, name, "spoolss_PortData1");
18256 ndr_print_string(ndr, "portname", r->portname);
18257 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18258 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18259 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18260 ndr_print_uint32(ndr, "reserved", r->reserved);
18261 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18262 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18263 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18264 ndr_print_string(ndr, "queue", r->queue);
18265 ndr_print_string(ndr, "ip_address", r->ip_address);
18266 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18267 ndr_print_string(ndr, "device_type", r->device_type);
18268 ndr_print_uint32(ndr, "port_number", r->port_number);
18269 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18270 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18274 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
18276 if (ndr_flags & NDR_SCALARS) {
18277 NDR_CHECK(ndr_push_align(ndr, 4));
18278 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
18280 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18283 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18284 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18286 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
18293 if (ndr_flags & NDR_BUFFERS) {
18295 return NDR_ERR_SUCCESS;
18298 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
18300 if (ndr_flags & NDR_SCALARS) {
18301 NDR_CHECK(ndr_pull_align(ndr, 4));
18302 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18304 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18307 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18308 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18310 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18312 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
18317 if (ndr_flags & NDR_BUFFERS) {
18319 return NDR_ERR_SUCCESS;
18322 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
18324 ndr_print_struct(ndr, name, "spoolss_PortData2");
18326 ndr_print_string(ndr, "portname", r->portname);
18327 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
18328 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18329 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18330 ndr_print_uint32(ndr, "reserved", r->reserved);
18331 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18332 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18333 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18334 ndr_print_string(ndr, "queue", r->queue);
18335 ndr_print_string(ndr, "device_type", r->device_type);
18336 ndr_print_uint32(ndr, "port_number", r->port_number);
18337 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18338 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18339 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
18343 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
18345 if (ndr_flags & NDR_SCALARS) {
18346 NDR_CHECK(ndr_push_align(ndr, 4));
18348 uint32_t _flags_save_string = ndr->flags;
18349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18350 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18351 ndr->flags = _flags_save_string;
18354 if (ndr_flags & NDR_BUFFERS) {
18356 return NDR_ERR_SUCCESS;
18359 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
18361 if (ndr_flags & NDR_SCALARS) {
18362 NDR_CHECK(ndr_pull_align(ndr, 4));
18364 uint32_t _flags_save_string = ndr->flags;
18365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18366 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18367 ndr->flags = _flags_save_string;
18370 if (ndr_flags & NDR_BUFFERS) {
18372 return NDR_ERR_SUCCESS;
18375 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
18377 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
18379 ndr_print_string(ndr, "dll_name", r->dll_name);
18383 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18386 return NDR_ERR_SUCCESS;
18389 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18394 return NDR_ERR_SUCCESS;
18397 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18399 ndr_print_uint32(ndr, name, r);
18401 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
18402 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
18403 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
18404 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
18405 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
18406 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
18407 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
18408 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
18412 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
18414 if (flags & NDR_IN) {
18415 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
18416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18417 if (r->in.server) {
18418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18425 if (r->in.buffer) {
18426 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18430 if (flags & NDR_OUT) {
18431 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18433 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18435 if (r->out.needed == NULL) {
18436 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18439 if (r->out.count == NULL) {
18440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18443 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18445 return NDR_ERR_SUCCESS;
18448 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
18450 uint32_t _ptr_server;
18451 uint32_t _ptr_buffer;
18452 uint32_t _ptr_info;
18453 TALLOC_CTX *_mem_save_server_0;
18454 TALLOC_CTX *_mem_save_buffer_0;
18455 TALLOC_CTX *_mem_save_info_0;
18456 TALLOC_CTX *_mem_save_needed_0;
18457 TALLOC_CTX *_mem_save_count_0;
18458 if (flags & NDR_IN) {
18459 ZERO_STRUCT(r->out);
18461 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
18462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18464 NDR_PULL_ALLOC(ndr, r->in.server);
18466 r->in.server = NULL;
18468 if (r->in.server) {
18469 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18470 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18471 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18472 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18473 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18474 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));
18476 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18477 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18483 NDR_PULL_ALLOC(ndr, r->in.buffer);
18485 r->in.buffer = NULL;
18487 if (r->in.buffer) {
18488 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18489 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18490 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18494 NDR_PULL_ALLOC(ndr, r->out.needed);
18495 ZERO_STRUCTP(r->out.needed);
18496 NDR_PULL_ALLOC(ndr, r->out.count);
18497 ZERO_STRUCTP(r->out.count);
18499 if (flags & NDR_OUT) {
18500 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18502 NDR_PULL_ALLOC(ndr, r->out.info);
18504 r->out.info = NULL;
18507 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18508 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18509 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18512 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18513 NDR_PULL_ALLOC(ndr, r->out.needed);
18515 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18516 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18517 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18519 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18520 NDR_PULL_ALLOC(ndr, r->out.count);
18522 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18523 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18526 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18528 return NDR_ERR_SUCCESS;
18531 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
18533 uint32_t cntr_info_0;
18534 if (flags & NDR_IN) {
18535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18538 if (flags & NDR_OUT) {
18539 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18540 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18541 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18543 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18544 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18547 return NDR_ERR_SUCCESS;
18550 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
18552 uint32_t cntr_info_0;
18553 TALLOC_CTX *_mem_save_info_0;
18554 if (flags & NDR_IN) {
18555 ZERO_STRUCT(r->out);
18557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18560 if (flags & NDR_OUT) {
18561 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18562 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18563 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18564 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18565 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18566 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18568 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18569 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18573 return NDR_ERR_SUCCESS;
18576 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
18578 uint32_t cntr_info_2;
18579 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
18581 if (flags & NDR_SET_VALUES) {
18582 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18584 if (flags & NDR_IN) {
18585 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
18587 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
18588 ndr_print_ptr(ndr, "server", r->in.server);
18590 if (r->in.server) {
18591 ndr_print_string(ndr, "server", r->in.server);
18594 ndr_print_uint32(ndr, "level", r->in.level);
18595 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18597 if (r->in.buffer) {
18598 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18601 ndr_print_uint32(ndr, "offered", r->in.offered);
18604 if (flags & NDR_OUT) {
18605 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
18607 ndr_print_ptr(ndr, "count", r->out.count);
18609 ndr_print_uint32(ndr, "count", *r->out.count);
18611 ndr_print_ptr(ndr, "info", r->out.info);
18613 ndr_print_ptr(ndr, "info", *r->out.info);
18615 if (*r->out.info) {
18616 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18618 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
18620 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
18621 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
18622 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
18630 ndr_print_ptr(ndr, "needed", r->out.needed);
18632 ndr_print_uint32(ndr, "needed", *r->out.needed);
18634 ndr_print_WERROR(ndr, "result", r->out.result);
18640 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
18642 if (flags & NDR_IN) {
18643 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18644 if (r->in.printername) {
18645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18648 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18650 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
18651 if (r->in.datatype) {
18652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18655 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18657 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18658 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
18660 if (flags & NDR_OUT) {
18661 if (r->out.handle == NULL) {
18662 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18664 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18665 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18667 return NDR_ERR_SUCCESS;
18670 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
18672 uint32_t _ptr_printername;
18673 uint32_t _ptr_datatype;
18674 TALLOC_CTX *_mem_save_printername_0;
18675 TALLOC_CTX *_mem_save_datatype_0;
18676 TALLOC_CTX *_mem_save_handle_0;
18677 if (flags & NDR_IN) {
18678 ZERO_STRUCT(r->out);
18680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
18681 if (_ptr_printername) {
18682 NDR_PULL_ALLOC(ndr, r->in.printername);
18684 r->in.printername = NULL;
18686 if (r->in.printername) {
18687 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18688 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
18689 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
18690 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
18691 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
18692 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));
18694 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
18695 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
18696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
18698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
18699 if (_ptr_datatype) {
18700 NDR_PULL_ALLOC(ndr, r->in.datatype);
18702 r->in.datatype = NULL;
18704 if (r->in.datatype) {
18705 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
18706 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
18707 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
18708 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
18709 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
18710 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));
18712 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
18713 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
18714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
18716 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18717 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
18718 NDR_PULL_ALLOC(ndr, r->out.handle);
18719 ZERO_STRUCTP(r->out.handle);
18721 if (flags & NDR_OUT) {
18722 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18723 NDR_PULL_ALLOC(ndr, r->out.handle);
18725 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18726 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18727 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18729 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18731 return NDR_ERR_SUCCESS;
18734 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
18736 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
18738 if (flags & NDR_SET_VALUES) {
18739 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18741 if (flags & NDR_IN) {
18742 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
18744 ndr_print_ptr(ndr, "printername", r->in.printername);
18746 if (r->in.printername) {
18747 ndr_print_string(ndr, "printername", r->in.printername);
18750 ndr_print_ptr(ndr, "datatype", r->in.datatype);
18752 if (r->in.datatype) {
18753 ndr_print_string(ndr, "datatype", r->in.datatype);
18756 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
18757 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
18760 if (flags & NDR_OUT) {
18761 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
18763 ndr_print_ptr(ndr, "handle", r->out.handle);
18765 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18767 ndr_print_WERROR(ndr, "result", r->out.result);
18773 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
18775 if (flags & NDR_IN) {
18776 if (r->in.handle == NULL) {
18777 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18779 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18781 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
18783 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18785 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
18787 if (flags & NDR_OUT) {
18788 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18790 return NDR_ERR_SUCCESS;
18793 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
18796 TALLOC_CTX *_mem_save_handle_0;
18797 TALLOC_CTX *_mem_save_ctr_0;
18798 if (flags & NDR_IN) {
18799 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18800 NDR_PULL_ALLOC(ndr, r->in.handle);
18802 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18803 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18804 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18806 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
18809 NDR_PULL_ALLOC(ndr, r->in.ctr);
18814 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18815 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
18816 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
18819 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
18821 if (flags & NDR_OUT) {
18822 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18824 return NDR_ERR_SUCCESS;
18827 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
18829 ndr_print_struct(ndr, name, "spoolss_SetJob");
18831 if (flags & NDR_SET_VALUES) {
18832 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18834 if (flags & NDR_IN) {
18835 ndr_print_struct(ndr, "in", "spoolss_SetJob");
18837 ndr_print_ptr(ndr, "handle", r->in.handle);
18839 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18841 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18842 ndr_print_ptr(ndr, "ctr", r->in.ctr);
18845 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
18848 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
18851 if (flags & NDR_OUT) {
18852 ndr_print_struct(ndr, "out", "spoolss_SetJob");
18854 ndr_print_WERROR(ndr, "result", r->out.result);
18860 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
18862 if (flags & NDR_IN) {
18863 if (r->in.handle == NULL) {
18864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18866 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18869 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18870 if (r->in.buffer) {
18871 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18875 if (flags & NDR_OUT) {
18876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18879 struct ndr_push *_ndr_info;
18880 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18881 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18882 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18883 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18886 if (r->out.needed == NULL) {
18887 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18890 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18892 return NDR_ERR_SUCCESS;
18895 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
18897 uint32_t _ptr_buffer;
18898 uint32_t _ptr_info;
18899 TALLOC_CTX *_mem_save_handle_0;
18900 TALLOC_CTX *_mem_save_buffer_0;
18901 TALLOC_CTX *_mem_save_info_0;
18902 TALLOC_CTX *_mem_save_needed_0;
18903 if (flags & NDR_IN) {
18904 ZERO_STRUCT(r->out);
18906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18907 NDR_PULL_ALLOC(ndr, r->in.handle);
18909 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18910 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18911 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18914 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18917 NDR_PULL_ALLOC(ndr, r->in.buffer);
18919 r->in.buffer = NULL;
18921 if (r->in.buffer) {
18922 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18923 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18924 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18927 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18928 NDR_PULL_ALLOC(ndr, r->out.needed);
18929 ZERO_STRUCTP(r->out.needed);
18931 if (flags & NDR_OUT) {
18932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18934 NDR_PULL_ALLOC(ndr, r->out.info);
18936 r->out.info = NULL;
18939 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18940 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18942 struct ndr_pull *_ndr_info;
18943 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18944 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18945 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18946 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18950 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18951 NDR_PULL_ALLOC(ndr, r->out.needed);
18953 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18954 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18955 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18957 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18959 return NDR_ERR_SUCCESS;
18962 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
18964 ndr_print_struct(ndr, name, "spoolss_GetJob");
18966 if (flags & NDR_SET_VALUES) {
18967 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18969 if (flags & NDR_IN) {
18970 ndr_print_struct(ndr, "in", "spoolss_GetJob");
18972 ndr_print_ptr(ndr, "handle", r->in.handle);
18974 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18976 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18977 ndr_print_uint32(ndr, "level", r->in.level);
18978 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18980 if (r->in.buffer) {
18981 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18984 ndr_print_uint32(ndr, "offered", r->in.offered);
18987 if (flags & NDR_OUT) {
18988 ndr_print_struct(ndr, "out", "spoolss_GetJob");
18990 ndr_print_ptr(ndr, "info", r->out.info);
18993 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18994 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
18997 ndr_print_ptr(ndr, "needed", r->out.needed);
18999 ndr_print_uint32(ndr, "needed", *r->out.needed);
19001 ndr_print_WERROR(ndr, "result", r->out.result);
19007 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19009 if (flags & NDR_IN) {
19010 if (r->in.handle == NULL) {
19011 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19013 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19015 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19018 if (r->in.buffer) {
19019 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19023 if (flags & NDR_OUT) {
19024 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19026 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19028 if (r->out.needed == NULL) {
19029 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19032 if (r->out.count == NULL) {
19033 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19036 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19038 return NDR_ERR_SUCCESS;
19041 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
19043 uint32_t _ptr_buffer;
19044 uint32_t _ptr_info;
19045 TALLOC_CTX *_mem_save_handle_0;
19046 TALLOC_CTX *_mem_save_buffer_0;
19047 TALLOC_CTX *_mem_save_info_0;
19048 TALLOC_CTX *_mem_save_needed_0;
19049 TALLOC_CTX *_mem_save_count_0;
19050 if (flags & NDR_IN) {
19051 ZERO_STRUCT(r->out);
19053 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19054 NDR_PULL_ALLOC(ndr, r->in.handle);
19056 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19057 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19058 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19060 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
19061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
19062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19065 NDR_PULL_ALLOC(ndr, r->in.buffer);
19067 r->in.buffer = NULL;
19069 if (r->in.buffer) {
19070 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19071 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19072 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19075 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19076 NDR_PULL_ALLOC(ndr, r->out.needed);
19077 ZERO_STRUCTP(r->out.needed);
19078 NDR_PULL_ALLOC(ndr, r->out.count);
19079 ZERO_STRUCTP(r->out.count);
19081 if (flags & NDR_OUT) {
19082 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19084 NDR_PULL_ALLOC(ndr, r->out.info);
19086 r->out.info = NULL;
19089 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19090 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19091 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19094 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19095 NDR_PULL_ALLOC(ndr, r->out.needed);
19097 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19098 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19099 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19100 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19102 NDR_PULL_ALLOC(ndr, r->out.count);
19104 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19105 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19108 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19110 return NDR_ERR_SUCCESS;
19113 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
19115 uint32_t cntr_info_0;
19116 if (flags & NDR_IN) {
19117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19120 if (flags & NDR_OUT) {
19121 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19122 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19123 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19125 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19126 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19129 return NDR_ERR_SUCCESS;
19132 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19134 uint32_t cntr_info_0;
19135 TALLOC_CTX *_mem_save_info_0;
19136 if (flags & NDR_IN) {
19137 ZERO_STRUCT(r->out);
19139 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19142 if (flags & NDR_OUT) {
19143 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19144 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19145 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19146 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19147 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19148 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19150 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19151 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19155 return NDR_ERR_SUCCESS;
19158 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
19160 uint32_t cntr_info_2;
19161 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
19163 if (flags & NDR_SET_VALUES) {
19164 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19166 if (flags & NDR_IN) {
19167 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
19169 ndr_print_ptr(ndr, "handle", r->in.handle);
19171 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19173 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
19174 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
19175 ndr_print_uint32(ndr, "level", r->in.level);
19176 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19178 if (r->in.buffer) {
19179 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19182 ndr_print_uint32(ndr, "offered", r->in.offered);
19185 if (flags & NDR_OUT) {
19186 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
19188 ndr_print_ptr(ndr, "count", r->out.count);
19190 ndr_print_uint32(ndr, "count", *r->out.count);
19192 ndr_print_ptr(ndr, "info", r->out.info);
19194 ndr_print_ptr(ndr, "info", *r->out.info);
19196 if (*r->out.info) {
19197 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19199 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19201 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19202 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19203 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19211 ndr_print_ptr(ndr, "needed", r->out.needed);
19213 ndr_print_uint32(ndr, "needed", *r->out.needed);
19215 ndr_print_WERROR(ndr, "result", r->out.result);
19221 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19223 if (flags & NDR_IN) {
19225 if (flags & NDR_OUT) {
19226 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19228 return NDR_ERR_SUCCESS;
19231 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19233 if (flags & NDR_IN) {
19235 if (flags & NDR_OUT) {
19236 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19238 return NDR_ERR_SUCCESS;
19241 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19243 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19245 if (flags & NDR_SET_VALUES) {
19246 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19248 if (flags & NDR_IN) {
19249 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19253 if (flags & NDR_OUT) {
19254 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19256 ndr_print_WERROR(ndr, "result", r->out.result);
19262 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
19264 if (flags & NDR_IN) {
19265 if (r->in.handle == NULL) {
19266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19268 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19270 if (flags & NDR_OUT) {
19271 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19273 return NDR_ERR_SUCCESS;
19276 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
19278 TALLOC_CTX *_mem_save_handle_0;
19279 if (flags & NDR_IN) {
19280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19281 NDR_PULL_ALLOC(ndr, r->in.handle);
19283 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19284 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19285 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19288 if (flags & NDR_OUT) {
19289 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19291 return NDR_ERR_SUCCESS;
19294 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
19296 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
19298 if (flags & NDR_SET_VALUES) {
19299 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19301 if (flags & NDR_IN) {
19302 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
19304 ndr_print_ptr(ndr, "handle", r->in.handle);
19306 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19310 if (flags & NDR_OUT) {
19311 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
19313 ndr_print_WERROR(ndr, "result", r->out.result);
19319 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
19321 if (flags & NDR_IN) {
19322 if (r->in.handle == NULL) {
19323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19325 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19326 if (r->in.info_ctr == NULL) {
19327 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19329 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19330 if (r->in.devmode_ctr == NULL) {
19331 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19333 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19334 if (r->in.secdesc_ctr == NULL) {
19335 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19337 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19338 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
19340 if (flags & NDR_OUT) {
19341 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19343 return NDR_ERR_SUCCESS;
19346 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
19348 TALLOC_CTX *_mem_save_handle_0;
19349 TALLOC_CTX *_mem_save_info_ctr_0;
19350 TALLOC_CTX *_mem_save_devmode_ctr_0;
19351 TALLOC_CTX *_mem_save_secdesc_ctr_0;
19352 if (flags & NDR_IN) {
19353 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19354 NDR_PULL_ALLOC(ndr, r->in.handle);
19356 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19357 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19358 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19360 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19361 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19363 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19364 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19365 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19367 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19368 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19370 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19371 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19372 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19374 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19375 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
19377 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19378 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
19379 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19381 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
19383 if (flags & NDR_OUT) {
19384 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19386 return NDR_ERR_SUCCESS;
19389 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
19391 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
19393 if (flags & NDR_SET_VALUES) {
19394 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19396 if (flags & NDR_IN) {
19397 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
19399 ndr_print_ptr(ndr, "handle", r->in.handle);
19401 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19403 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19405 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19407 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19409 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19411 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19413 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19415 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
19418 if (flags & NDR_OUT) {
19419 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
19421 ndr_print_WERROR(ndr, "result", r->out.result);
19427 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
19429 if (flags & NDR_IN) {
19430 if (r->in.handle == NULL) {
19431 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19433 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19435 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19436 if (r->in.buffer) {
19437 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19441 if (flags & NDR_OUT) {
19442 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19445 struct ndr_push *_ndr_info;
19446 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19447 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19448 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19449 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19452 if (r->out.needed == NULL) {
19453 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19456 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19458 return NDR_ERR_SUCCESS;
19461 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
19463 uint32_t _ptr_buffer;
19464 uint32_t _ptr_info;
19465 TALLOC_CTX *_mem_save_handle_0;
19466 TALLOC_CTX *_mem_save_buffer_0;
19467 TALLOC_CTX *_mem_save_info_0;
19468 TALLOC_CTX *_mem_save_needed_0;
19469 if (flags & NDR_IN) {
19470 ZERO_STRUCT(r->out);
19472 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19473 NDR_PULL_ALLOC(ndr, r->in.handle);
19475 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19476 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19477 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19482 NDR_PULL_ALLOC(ndr, r->in.buffer);
19484 r->in.buffer = NULL;
19486 if (r->in.buffer) {
19487 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19488 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19489 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19493 NDR_PULL_ALLOC(ndr, r->out.needed);
19494 ZERO_STRUCTP(r->out.needed);
19496 if (flags & NDR_OUT) {
19497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19499 NDR_PULL_ALLOC(ndr, r->out.info);
19501 r->out.info = NULL;
19504 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19505 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19507 struct ndr_pull *_ndr_info;
19508 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19509 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19510 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19511 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19515 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19516 NDR_PULL_ALLOC(ndr, r->out.needed);
19518 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19519 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19520 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19522 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19524 return NDR_ERR_SUCCESS;
19527 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
19529 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
19531 if (flags & NDR_SET_VALUES) {
19532 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19534 if (flags & NDR_IN) {
19535 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
19537 ndr_print_ptr(ndr, "handle", r->in.handle);
19539 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19541 ndr_print_uint32(ndr, "level", r->in.level);
19542 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19544 if (r->in.buffer) {
19545 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19548 ndr_print_uint32(ndr, "offered", r->in.offered);
19551 if (flags & NDR_OUT) {
19552 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
19554 ndr_print_ptr(ndr, "info", r->out.info);
19557 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19558 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
19561 ndr_print_ptr(ndr, "needed", r->out.needed);
19563 ndr_print_uint32(ndr, "needed", *r->out.needed);
19565 ndr_print_WERROR(ndr, "result", r->out.result);
19571 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
19573 if (flags & NDR_IN) {
19574 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19575 if (r->in.servername) {
19576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19579 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19581 if (r->in.info_ctr == NULL) {
19582 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19584 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19586 if (flags & NDR_OUT) {
19587 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19589 return NDR_ERR_SUCCESS;
19592 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
19594 uint32_t _ptr_servername;
19595 TALLOC_CTX *_mem_save_servername_0;
19596 TALLOC_CTX *_mem_save_info_ctr_0;
19597 if (flags & NDR_IN) {
19598 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19599 if (_ptr_servername) {
19600 NDR_PULL_ALLOC(ndr, r->in.servername);
19602 r->in.servername = NULL;
19604 if (r->in.servername) {
19605 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19606 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19607 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19608 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19609 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19610 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));
19612 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19613 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19616 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19617 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19619 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19620 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19621 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19624 if (flags & NDR_OUT) {
19625 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19627 return NDR_ERR_SUCCESS;
19630 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
19632 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
19634 if (flags & NDR_SET_VALUES) {
19635 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19637 if (flags & NDR_IN) {
19638 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
19640 ndr_print_ptr(ndr, "servername", r->in.servername);
19642 if (r->in.servername) {
19643 ndr_print_string(ndr, "servername", r->in.servername);
19646 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19648 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19652 if (flags & NDR_OUT) {
19653 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
19655 ndr_print_WERROR(ndr, "result", r->out.result);
19661 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
19663 if (flags & NDR_IN) {
19664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19665 if (r->in.server) {
19666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19669 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19672 if (r->in.environment) {
19673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19680 if (r->in.buffer) {
19681 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19685 if (flags & NDR_OUT) {
19686 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19688 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19690 if (r->out.needed == NULL) {
19691 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19694 if (r->out.count == NULL) {
19695 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19698 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19700 return NDR_ERR_SUCCESS;
19703 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
19705 uint32_t _ptr_server;
19706 uint32_t _ptr_environment;
19707 uint32_t _ptr_buffer;
19708 uint32_t _ptr_info;
19709 TALLOC_CTX *_mem_save_server_0;
19710 TALLOC_CTX *_mem_save_environment_0;
19711 TALLOC_CTX *_mem_save_buffer_0;
19712 TALLOC_CTX *_mem_save_info_0;
19713 TALLOC_CTX *_mem_save_needed_0;
19714 TALLOC_CTX *_mem_save_count_0;
19715 if (flags & NDR_IN) {
19716 ZERO_STRUCT(r->out);
19718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19720 NDR_PULL_ALLOC(ndr, r->in.server);
19722 r->in.server = NULL;
19724 if (r->in.server) {
19725 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19726 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19727 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19728 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19729 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19730 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));
19732 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19733 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19734 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19737 if (_ptr_environment) {
19738 NDR_PULL_ALLOC(ndr, r->in.environment);
19740 r->in.environment = NULL;
19742 if (r->in.environment) {
19743 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19744 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19745 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19746 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19747 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19748 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));
19750 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19751 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19754 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19757 NDR_PULL_ALLOC(ndr, r->in.buffer);
19759 r->in.buffer = NULL;
19761 if (r->in.buffer) {
19762 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19763 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19764 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19768 NDR_PULL_ALLOC(ndr, r->out.needed);
19769 ZERO_STRUCTP(r->out.needed);
19770 NDR_PULL_ALLOC(ndr, r->out.count);
19771 ZERO_STRUCTP(r->out.count);
19773 if (flags & NDR_OUT) {
19774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19776 NDR_PULL_ALLOC(ndr, r->out.info);
19778 r->out.info = NULL;
19781 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19782 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19783 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19787 NDR_PULL_ALLOC(ndr, r->out.needed);
19789 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19790 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19791 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19793 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19794 NDR_PULL_ALLOC(ndr, r->out.count);
19796 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19797 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19798 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19799 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19800 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19802 return NDR_ERR_SUCCESS;
19805 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
19807 uint32_t cntr_info_0;
19808 if (flags & NDR_IN) {
19809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19812 if (flags & NDR_OUT) {
19813 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19814 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19815 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19817 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19818 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19821 return NDR_ERR_SUCCESS;
19824 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
19826 uint32_t cntr_info_0;
19827 TALLOC_CTX *_mem_save_info_0;
19828 if (flags & NDR_IN) {
19829 ZERO_STRUCT(r->out);
19831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19834 if (flags & NDR_OUT) {
19835 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19836 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19837 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19838 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19839 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19840 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19842 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19843 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19847 return NDR_ERR_SUCCESS;
19850 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
19852 uint32_t cntr_info_2;
19853 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
19855 if (flags & NDR_SET_VALUES) {
19856 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19858 if (flags & NDR_IN) {
19859 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
19861 ndr_print_ptr(ndr, "server", r->in.server);
19863 if (r->in.server) {
19864 ndr_print_string(ndr, "server", r->in.server);
19867 ndr_print_ptr(ndr, "environment", r->in.environment);
19869 if (r->in.environment) {
19870 ndr_print_string(ndr, "environment", r->in.environment);
19873 ndr_print_uint32(ndr, "level", r->in.level);
19874 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19876 if (r->in.buffer) {
19877 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19880 ndr_print_uint32(ndr, "offered", r->in.offered);
19883 if (flags & NDR_OUT) {
19884 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
19886 ndr_print_ptr(ndr, "count", r->out.count);
19888 ndr_print_uint32(ndr, "count", *r->out.count);
19890 ndr_print_ptr(ndr, "info", r->out.info);
19892 ndr_print_ptr(ndr, "info", *r->out.info);
19894 if (*r->out.info) {
19895 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19897 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19899 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19900 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19901 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19909 ndr_print_ptr(ndr, "needed", r->out.needed);
19911 ndr_print_uint32(ndr, "needed", *r->out.needed);
19913 ndr_print_WERROR(ndr, "result", r->out.result);
19919 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
19921 if (flags & NDR_IN) {
19923 if (flags & NDR_OUT) {
19924 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19926 return NDR_ERR_SUCCESS;
19929 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
19931 if (flags & NDR_IN) {
19933 if (flags & NDR_OUT) {
19934 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19936 return NDR_ERR_SUCCESS;
19939 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
19941 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
19943 if (flags & NDR_SET_VALUES) {
19944 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19946 if (flags & NDR_IN) {
19947 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
19951 if (flags & NDR_OUT) {
19952 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
19954 ndr_print_WERROR(ndr, "result", r->out.result);
19960 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
19962 if (flags & NDR_IN) {
19963 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19964 if (r->in.server) {
19965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19968 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19971 if (r->in.environment) {
19972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19975 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19978 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19979 if (r->in.buffer) {
19980 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19984 if (flags & NDR_OUT) {
19985 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19988 struct ndr_push *_ndr_info;
19989 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19990 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19991 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
19992 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19995 if (r->out.needed == NULL) {
19996 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19999 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20001 return NDR_ERR_SUCCESS;
20004 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20006 uint32_t _ptr_server;
20007 uint32_t _ptr_environment;
20008 uint32_t _ptr_buffer;
20009 uint32_t _ptr_info;
20010 TALLOC_CTX *_mem_save_server_0;
20011 TALLOC_CTX *_mem_save_environment_0;
20012 TALLOC_CTX *_mem_save_buffer_0;
20013 TALLOC_CTX *_mem_save_info_0;
20014 TALLOC_CTX *_mem_save_needed_0;
20015 if (flags & NDR_IN) {
20016 ZERO_STRUCT(r->out);
20018 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20020 NDR_PULL_ALLOC(ndr, r->in.server);
20022 r->in.server = NULL;
20024 if (r->in.server) {
20025 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20026 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20027 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20028 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20029 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20030 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.server), ndr_get_array_length(ndr, &r->in.server));
20032 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20037 if (_ptr_environment) {
20038 NDR_PULL_ALLOC(ndr, r->in.environment);
20040 r->in.environment = NULL;
20042 if (r->in.environment) {
20043 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20044 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20045 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20046 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20047 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20048 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));
20050 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20051 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20054 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20057 NDR_PULL_ALLOC(ndr, r->in.buffer);
20059 r->in.buffer = NULL;
20061 if (r->in.buffer) {
20062 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20063 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20064 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20067 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20068 NDR_PULL_ALLOC(ndr, r->out.needed);
20069 ZERO_STRUCTP(r->out.needed);
20071 if (flags & NDR_OUT) {
20072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20074 NDR_PULL_ALLOC(ndr, r->out.info);
20076 r->out.info = NULL;
20079 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20080 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20082 struct ndr_pull *_ndr_info;
20083 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20084 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20085 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20086 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20088 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20090 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20091 NDR_PULL_ALLOC(ndr, r->out.needed);
20093 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20094 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20095 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20097 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20099 return NDR_ERR_SUCCESS;
20102 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20104 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
20106 if (flags & NDR_SET_VALUES) {
20107 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20109 if (flags & NDR_IN) {
20110 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
20112 ndr_print_ptr(ndr, "server", r->in.server);
20114 if (r->in.server) {
20115 ndr_print_string(ndr, "server", r->in.server);
20118 ndr_print_ptr(ndr, "environment", r->in.environment);
20120 if (r->in.environment) {
20121 ndr_print_string(ndr, "environment", r->in.environment);
20124 ndr_print_uint32(ndr, "level", r->in.level);
20125 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20127 if (r->in.buffer) {
20128 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20131 ndr_print_uint32(ndr, "offered", r->in.offered);
20134 if (flags & NDR_OUT) {
20135 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
20137 ndr_print_ptr(ndr, "info", r->out.info);
20140 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20141 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
20144 ndr_print_ptr(ndr, "needed", r->out.needed);
20146 ndr_print_uint32(ndr, "needed", *r->out.needed);
20148 ndr_print_WERROR(ndr, "result", r->out.result);
20154 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
20156 if (flags & NDR_IN) {
20157 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20158 if (r->in.server) {
20159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20162 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20167 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20169 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20171 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20173 if (flags & NDR_OUT) {
20174 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20176 return NDR_ERR_SUCCESS;
20179 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20181 uint32_t _ptr_server;
20182 TALLOC_CTX *_mem_save_server_0;
20183 if (flags & NDR_IN) {
20184 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20186 NDR_PULL_ALLOC(ndr, r->in.server);
20188 r->in.server = NULL;
20190 if (r->in.server) {
20191 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20192 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20193 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20194 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20195 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20196 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));
20198 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20199 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20202 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20203 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20204 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20205 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));
20207 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20208 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20209 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20210 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20211 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20212 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));
20214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20215 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20217 if (flags & NDR_OUT) {
20218 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20220 return NDR_ERR_SUCCESS;
20223 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20225 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20227 if (flags & NDR_SET_VALUES) {
20228 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20230 if (flags & NDR_IN) {
20231 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20233 ndr_print_ptr(ndr, "server", r->in.server);
20235 if (r->in.server) {
20236 ndr_print_string(ndr, "server", r->in.server);
20239 ndr_print_string(ndr, "architecture", r->in.architecture);
20240 ndr_print_string(ndr, "driver", r->in.driver);
20243 if (flags & NDR_OUT) {
20244 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20246 ndr_print_WERROR(ndr, "result", r->out.result);
20252 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20254 if (flags & NDR_IN) {
20255 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20256 if (r->in.server) {
20257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20265 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20269 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));
20270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20271 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20273 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));
20275 if (flags & NDR_OUT) {
20276 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20278 return NDR_ERR_SUCCESS;
20281 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
20283 uint32_t _ptr_server;
20284 TALLOC_CTX *_mem_save_server_0;
20285 if (flags & NDR_IN) {
20286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20288 NDR_PULL_ALLOC(ndr, r->in.server);
20290 r->in.server = NULL;
20292 if (r->in.server) {
20293 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20294 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20295 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20296 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20297 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20298 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));
20300 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20301 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20304 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20305 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20306 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20307 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));
20309 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20310 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20311 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
20312 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
20313 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
20314 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));
20316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
20317 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));
20318 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
20319 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
20320 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
20321 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));
20323 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
20324 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));
20326 if (flags & NDR_OUT) {
20327 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20329 return NDR_ERR_SUCCESS;
20332 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
20334 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
20336 if (flags & NDR_SET_VALUES) {
20337 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20339 if (flags & NDR_IN) {
20340 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
20342 ndr_print_ptr(ndr, "server", r->in.server);
20344 if (r->in.server) {
20345 ndr_print_string(ndr, "server", r->in.server);
20348 ndr_print_string(ndr, "architecture", r->in.architecture);
20349 ndr_print_string(ndr, "path_name", r->in.path_name);
20350 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
20353 if (flags & NDR_OUT) {
20354 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
20356 ndr_print_WERROR(ndr, "result", r->out.result);
20362 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
20364 if (flags & NDR_IN) {
20365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20366 if (r->in.servername) {
20367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20373 if (r->in.environment) {
20374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20380 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20381 if (r->in.buffer) {
20382 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20386 if (flags & NDR_OUT) {
20387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20389 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20391 if (r->out.needed == NULL) {
20392 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20395 if (r->out.count == NULL) {
20396 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20399 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20401 return NDR_ERR_SUCCESS;
20404 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
20406 uint32_t _ptr_servername;
20407 uint32_t _ptr_environment;
20408 uint32_t _ptr_buffer;
20409 uint32_t _ptr_info;
20410 TALLOC_CTX *_mem_save_servername_0;
20411 TALLOC_CTX *_mem_save_environment_0;
20412 TALLOC_CTX *_mem_save_buffer_0;
20413 TALLOC_CTX *_mem_save_info_0;
20414 TALLOC_CTX *_mem_save_needed_0;
20415 TALLOC_CTX *_mem_save_count_0;
20416 if (flags & NDR_IN) {
20417 ZERO_STRUCT(r->out);
20419 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20420 if (_ptr_servername) {
20421 NDR_PULL_ALLOC(ndr, r->in.servername);
20423 r->in.servername = NULL;
20425 if (r->in.servername) {
20426 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20427 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20428 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20429 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20430 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20431 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));
20433 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20434 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20438 if (_ptr_environment) {
20439 NDR_PULL_ALLOC(ndr, r->in.environment);
20441 r->in.environment = NULL;
20443 if (r->in.environment) {
20444 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20445 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20446 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20447 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20448 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20449 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));
20451 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20452 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20458 NDR_PULL_ALLOC(ndr, r->in.buffer);
20460 r->in.buffer = NULL;
20462 if (r->in.buffer) {
20463 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20464 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20465 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20468 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20469 NDR_PULL_ALLOC(ndr, r->out.needed);
20470 ZERO_STRUCTP(r->out.needed);
20471 NDR_PULL_ALLOC(ndr, r->out.count);
20472 ZERO_STRUCTP(r->out.count);
20474 if (flags & NDR_OUT) {
20475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20477 NDR_PULL_ALLOC(ndr, r->out.info);
20479 r->out.info = NULL;
20482 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20483 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20484 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20487 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20488 NDR_PULL_ALLOC(ndr, r->out.needed);
20490 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20491 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20494 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20495 NDR_PULL_ALLOC(ndr, r->out.count);
20497 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20498 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20501 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20503 return NDR_ERR_SUCCESS;
20506 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
20508 uint32_t cntr_info_0;
20509 if (flags & NDR_IN) {
20510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20513 if (flags & NDR_OUT) {
20514 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20515 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20516 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20518 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20519 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20522 return NDR_ERR_SUCCESS;
20525 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
20527 uint32_t cntr_info_0;
20528 TALLOC_CTX *_mem_save_info_0;
20529 if (flags & NDR_IN) {
20530 ZERO_STRUCT(r->out);
20532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20535 if (flags & NDR_OUT) {
20536 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20537 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20538 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20539 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20540 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20541 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20543 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20544 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20548 return NDR_ERR_SUCCESS;
20551 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
20553 uint32_t cntr_info_2;
20554 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
20556 if (flags & NDR_SET_VALUES) {
20557 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20559 if (flags & NDR_IN) {
20560 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
20562 ndr_print_ptr(ndr, "servername", r->in.servername);
20564 if (r->in.servername) {
20565 ndr_print_string(ndr, "servername", r->in.servername);
20568 ndr_print_ptr(ndr, "environment", r->in.environment);
20570 if (r->in.environment) {
20571 ndr_print_string(ndr, "environment", r->in.environment);
20574 ndr_print_uint32(ndr, "level", r->in.level);
20575 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20577 if (r->in.buffer) {
20578 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20581 ndr_print_uint32(ndr, "offered", r->in.offered);
20584 if (flags & NDR_OUT) {
20585 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
20587 ndr_print_ptr(ndr, "count", r->out.count);
20589 ndr_print_uint32(ndr, "count", *r->out.count);
20591 ndr_print_ptr(ndr, "info", r->out.info);
20593 ndr_print_ptr(ndr, "info", *r->out.info);
20595 if (*r->out.info) {
20596 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20598 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20600 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20601 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20602 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20610 ndr_print_ptr(ndr, "needed", r->out.needed);
20612 ndr_print_uint32(ndr, "needed", *r->out.needed);
20614 ndr_print_WERROR(ndr, "result", r->out.result);
20620 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20622 if (flags & NDR_IN) {
20623 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20624 if (r->in.server) {
20625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20628 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20630 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20631 if (r->in.environment) {
20632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20635 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20638 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20639 if (r->in.buffer) {
20640 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20644 if (flags & NDR_OUT) {
20645 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20648 struct ndr_push *_ndr_info;
20649 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20650 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20651 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20652 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20655 if (r->out.needed == NULL) {
20656 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20659 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20661 return NDR_ERR_SUCCESS;
20664 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
20666 uint32_t _ptr_server;
20667 uint32_t _ptr_environment;
20668 uint32_t _ptr_buffer;
20669 uint32_t _ptr_info;
20670 TALLOC_CTX *_mem_save_server_0;
20671 TALLOC_CTX *_mem_save_environment_0;
20672 TALLOC_CTX *_mem_save_buffer_0;
20673 TALLOC_CTX *_mem_save_info_0;
20674 TALLOC_CTX *_mem_save_needed_0;
20675 if (flags & NDR_IN) {
20676 ZERO_STRUCT(r->out);
20678 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20680 NDR_PULL_ALLOC(ndr, r->in.server);
20682 r->in.server = NULL;
20684 if (r->in.server) {
20685 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20686 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20687 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20688 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20689 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20690 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));
20692 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20693 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20696 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20697 if (_ptr_environment) {
20698 NDR_PULL_ALLOC(ndr, r->in.environment);
20700 r->in.environment = NULL;
20702 if (r->in.environment) {
20703 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20704 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20705 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20706 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20707 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20708 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));
20710 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20711 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20717 NDR_PULL_ALLOC(ndr, r->in.buffer);
20719 r->in.buffer = NULL;
20721 if (r->in.buffer) {
20722 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20723 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20724 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20725 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20728 NDR_PULL_ALLOC(ndr, r->out.needed);
20729 ZERO_STRUCTP(r->out.needed);
20731 if (flags & NDR_OUT) {
20732 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20734 NDR_PULL_ALLOC(ndr, r->out.info);
20736 r->out.info = NULL;
20739 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20740 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20742 struct ndr_pull *_ndr_info;
20743 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20744 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20745 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20746 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20750 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20751 NDR_PULL_ALLOC(ndr, r->out.needed);
20753 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20754 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20757 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20759 return NDR_ERR_SUCCESS;
20762 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20764 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
20766 if (flags & NDR_SET_VALUES) {
20767 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20769 if (flags & NDR_IN) {
20770 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
20772 ndr_print_ptr(ndr, "server", r->in.server);
20774 if (r->in.server) {
20775 ndr_print_string(ndr, "server", r->in.server);
20778 ndr_print_ptr(ndr, "environment", r->in.environment);
20780 if (r->in.environment) {
20781 ndr_print_string(ndr, "environment", r->in.environment);
20784 ndr_print_uint32(ndr, "level", r->in.level);
20785 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20787 if (r->in.buffer) {
20788 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20791 ndr_print_uint32(ndr, "offered", r->in.offered);
20794 if (flags & NDR_OUT) {
20795 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
20797 ndr_print_ptr(ndr, "info", r->out.info);
20800 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20801 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
20804 ndr_print_ptr(ndr, "needed", r->out.needed);
20806 ndr_print_uint32(ndr, "needed", *r->out.needed);
20808 ndr_print_WERROR(ndr, "result", r->out.result);
20814 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
20816 if (flags & NDR_IN) {
20817 if (r->in.handle == NULL) {
20818 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20820 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20822 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
20823 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20825 if (flags & NDR_OUT) {
20826 if (r->out.job_id == NULL) {
20827 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
20830 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20832 return NDR_ERR_SUCCESS;
20835 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
20837 TALLOC_CTX *_mem_save_handle_0;
20838 TALLOC_CTX *_mem_save_job_id_0;
20839 if (flags & NDR_IN) {
20840 ZERO_STRUCT(r->out);
20842 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20843 NDR_PULL_ALLOC(ndr, r->in.handle);
20845 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20846 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20847 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20850 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
20851 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20852 NDR_PULL_ALLOC(ndr, r->out.job_id);
20853 ZERO_STRUCTP(r->out.job_id);
20855 if (flags & NDR_OUT) {
20856 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20857 NDR_PULL_ALLOC(ndr, r->out.job_id);
20859 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
20860 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
20861 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
20862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
20863 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20865 return NDR_ERR_SUCCESS;
20868 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
20870 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
20872 if (flags & NDR_SET_VALUES) {
20873 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20875 if (flags & NDR_IN) {
20876 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
20878 ndr_print_ptr(ndr, "handle", r->in.handle);
20880 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20882 ndr_print_uint32(ndr, "level", r->in.level);
20883 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
20884 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
20887 if (flags & NDR_OUT) {
20888 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
20890 ndr_print_ptr(ndr, "job_id", r->out.job_id);
20892 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
20894 ndr_print_WERROR(ndr, "result", r->out.result);
20900 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
20902 if (flags & NDR_IN) {
20903 if (r->in.handle == NULL) {
20904 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20906 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20908 if (flags & NDR_OUT) {
20909 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20911 return NDR_ERR_SUCCESS;
20914 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
20916 TALLOC_CTX *_mem_save_handle_0;
20917 if (flags & NDR_IN) {
20918 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20919 NDR_PULL_ALLOC(ndr, r->in.handle);
20921 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20922 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20923 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20926 if (flags & NDR_OUT) {
20927 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20929 return NDR_ERR_SUCCESS;
20932 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
20934 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
20936 if (flags & NDR_SET_VALUES) {
20937 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20939 if (flags & NDR_IN) {
20940 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
20942 ndr_print_ptr(ndr, "handle", r->in.handle);
20944 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20948 if (flags & NDR_OUT) {
20949 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
20951 ndr_print_WERROR(ndr, "result", r->out.result);
20957 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
20959 if (flags & NDR_IN) {
20960 if (r->in.handle == NULL) {
20961 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20963 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20964 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
20965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
20967 if (flags & NDR_OUT) {
20968 if (r->out.num_written == NULL) {
20969 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
20972 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20974 return NDR_ERR_SUCCESS;
20977 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
20979 TALLOC_CTX *_mem_save_handle_0;
20980 TALLOC_CTX *_mem_save_num_written_0;
20981 if (flags & NDR_IN) {
20982 ZERO_STRUCT(r->out);
20984 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20985 NDR_PULL_ALLOC(ndr, r->in.handle);
20987 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20988 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20989 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20991 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
20992 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
20993 NDR_PULL_ALLOC(ndr, r->out.num_written);
20994 ZERO_STRUCTP(r->out.num_written);
20996 if (flags & NDR_OUT) {
20997 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20998 NDR_PULL_ALLOC(ndr, r->out.num_written);
21000 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
21001 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
21002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
21003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
21004 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21006 return NDR_ERR_SUCCESS;
21009 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
21011 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
21013 if (flags & NDR_SET_VALUES) {
21014 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21016 if (flags & NDR_IN) {
21017 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
21019 ndr_print_ptr(ndr, "handle", r->in.handle);
21021 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21023 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
21024 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
21027 if (flags & NDR_OUT) {
21028 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
21030 ndr_print_ptr(ndr, "num_written", r->out.num_written);
21032 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
21034 ndr_print_WERROR(ndr, "result", r->out.result);
21040 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
21042 if (flags & NDR_IN) {
21043 if (r->in.handle == NULL) {
21044 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21046 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21048 if (flags & NDR_OUT) {
21049 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21051 return NDR_ERR_SUCCESS;
21054 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
21056 TALLOC_CTX *_mem_save_handle_0;
21057 if (flags & NDR_IN) {
21058 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21059 NDR_PULL_ALLOC(ndr, r->in.handle);
21061 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21062 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21063 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21066 if (flags & NDR_OUT) {
21067 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21069 return NDR_ERR_SUCCESS;
21072 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
21074 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
21076 if (flags & NDR_SET_VALUES) {
21077 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21079 if (flags & NDR_IN) {
21080 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
21082 ndr_print_ptr(ndr, "handle", r->in.handle);
21084 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21088 if (flags & NDR_OUT) {
21089 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
21091 ndr_print_WERROR(ndr, "result", r->out.result);
21097 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
21099 if (flags & NDR_IN) {
21100 if (r->in.handle == NULL) {
21101 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21103 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21105 if (flags & NDR_OUT) {
21106 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21108 return NDR_ERR_SUCCESS;
21111 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
21113 TALLOC_CTX *_mem_save_handle_0;
21114 if (flags & NDR_IN) {
21115 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21116 NDR_PULL_ALLOC(ndr, r->in.handle);
21118 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21119 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21120 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21123 if (flags & NDR_OUT) {
21124 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21126 return NDR_ERR_SUCCESS;
21129 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
21131 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
21133 if (flags & NDR_SET_VALUES) {
21134 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21136 if (flags & NDR_IN) {
21137 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
21139 ndr_print_ptr(ndr, "handle", r->in.handle);
21141 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21145 if (flags & NDR_OUT) {
21146 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
21148 ndr_print_WERROR(ndr, "result", r->out.result);
21154 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
21156 if (flags & NDR_IN) {
21157 if (r->in.handle == NULL) {
21158 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21160 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21163 if (flags & NDR_OUT) {
21164 if (r->out.data == NULL) {
21165 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21168 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
21169 if (r->out._data_size == NULL) {
21170 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
21173 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21175 return NDR_ERR_SUCCESS;
21178 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21180 TALLOC_CTX *_mem_save_handle_0;
21181 TALLOC_CTX *_mem_save__data_size_0;
21182 if (flags & NDR_IN) {
21183 ZERO_STRUCT(r->out);
21185 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21186 NDR_PULL_ALLOC(ndr, r->in.handle);
21188 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21189 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21190 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
21193 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
21194 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
21195 NDR_PULL_ALLOC(ndr, r->out._data_size);
21196 ZERO_STRUCTP(r->out._data_size);
21198 if (flags & NDR_OUT) {
21199 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
21200 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21201 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
21203 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
21204 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21205 NDR_PULL_ALLOC(ndr, r->out._data_size);
21207 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
21208 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
21209 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
21210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
21211 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21213 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21216 return NDR_ERR_SUCCESS;
21219 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21221 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21223 if (flags & NDR_SET_VALUES) {
21224 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21226 if (flags & NDR_IN) {
21227 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21229 ndr_print_ptr(ndr, "handle", r->in.handle);
21231 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21233 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21236 if (flags & NDR_OUT) {
21237 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21239 ndr_print_ptr(ndr, "data", r->out.data);
21241 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21243 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21245 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21247 ndr_print_WERROR(ndr, "result", r->out.result);
21253 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
21255 if (flags & NDR_IN) {
21256 if (r->in.handle == NULL) {
21257 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21259 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21261 if (flags & NDR_OUT) {
21262 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21264 return NDR_ERR_SUCCESS;
21267 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21269 TALLOC_CTX *_mem_save_handle_0;
21270 if (flags & NDR_IN) {
21271 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21272 NDR_PULL_ALLOC(ndr, r->in.handle);
21274 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21275 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21276 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21279 if (flags & NDR_OUT) {
21280 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21282 return NDR_ERR_SUCCESS;
21285 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
21287 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
21289 if (flags & NDR_SET_VALUES) {
21290 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21292 if (flags & NDR_IN) {
21293 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
21295 ndr_print_ptr(ndr, "handle", r->in.handle);
21297 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21301 if (flags & NDR_OUT) {
21302 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
21304 ndr_print_WERROR(ndr, "result", r->out.result);
21310 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
21312 if (flags & NDR_IN) {
21313 if (r->in.handle == NULL) {
21314 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21316 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21318 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21319 if (r->in.buffer) {
21320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21321 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21325 if (flags & NDR_OUT) {
21326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
21327 if (r->out.buffer) {
21328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21329 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21331 if (r->out.needed == NULL) {
21332 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21335 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21337 return NDR_ERR_SUCCESS;
21340 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
21342 uint32_t _ptr_buffer;
21343 TALLOC_CTX *_mem_save_handle_0;
21344 TALLOC_CTX *_mem_save_buffer_0;
21345 TALLOC_CTX *_mem_save_needed_0;
21346 if (flags & NDR_IN) {
21347 ZERO_STRUCT(r->out);
21349 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21350 NDR_PULL_ALLOC(ndr, r->in.handle);
21352 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21353 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21354 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21359 NDR_PULL_ALLOC(ndr, r->in.buffer);
21361 r->in.buffer = NULL;
21363 if (r->in.buffer) {
21364 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21365 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21366 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21367 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21368 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21372 NDR_PULL_ALLOC(ndr, r->out.needed);
21373 ZERO_STRUCTP(r->out.needed);
21374 if (r->in.buffer) {
21375 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21378 if (flags & NDR_OUT) {
21379 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21381 NDR_PULL_ALLOC(ndr, r->out.buffer);
21383 r->out.buffer = NULL;
21385 if (r->out.buffer) {
21386 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21387 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
21388 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21389 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21390 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21391 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21394 NDR_PULL_ALLOC(ndr, r->out.needed);
21396 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21397 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21398 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21400 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21401 if (r->out.buffer) {
21402 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21405 return NDR_ERR_SUCCESS;
21408 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
21410 ndr_print_struct(ndr, name, "spoolss_AddJob");
21412 if (flags & NDR_SET_VALUES) {
21413 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21415 if (flags & NDR_IN) {
21416 ndr_print_struct(ndr, "in", "spoolss_AddJob");
21418 ndr_print_ptr(ndr, "handle", r->in.handle);
21420 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21422 ndr_print_uint32(ndr, "level", r->in.level);
21423 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21425 if (r->in.buffer) {
21426 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21429 ndr_print_uint32(ndr, "offered", r->in.offered);
21432 if (flags & NDR_OUT) {
21433 ndr_print_struct(ndr, "out", "spoolss_AddJob");
21435 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21437 if (r->out.buffer) {
21438 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21441 ndr_print_ptr(ndr, "needed", r->out.needed);
21443 ndr_print_uint32(ndr, "needed", *r->out.needed);
21445 ndr_print_WERROR(ndr, "result", r->out.result);
21451 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
21453 if (flags & NDR_IN) {
21454 if (r->in.handle == NULL) {
21455 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21457 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
21460 if (flags & NDR_OUT) {
21461 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21463 return NDR_ERR_SUCCESS;
21466 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
21468 TALLOC_CTX *_mem_save_handle_0;
21469 if (flags & NDR_IN) {
21470 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21471 NDR_PULL_ALLOC(ndr, r->in.handle);
21473 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21474 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21475 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
21479 if (flags & NDR_OUT) {
21480 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21482 return NDR_ERR_SUCCESS;
21485 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
21487 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
21489 if (flags & NDR_SET_VALUES) {
21490 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21492 if (flags & NDR_IN) {
21493 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
21495 ndr_print_ptr(ndr, "handle", r->in.handle);
21497 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21499 ndr_print_uint32(ndr, "jobid", r->in.jobid);
21502 if (flags & NDR_OUT) {
21503 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
21505 ndr_print_WERROR(ndr, "result", r->out.result);
21511 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
21513 if (flags & NDR_IN) {
21514 if (r->in.handle == NULL) {
21515 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21517 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21521 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));
21522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21524 if (flags & NDR_OUT) {
21525 if (r->out.type == NULL) {
21526 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21528 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
21529 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
21530 if (r->out.needed == NULL) {
21531 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21534 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21536 return NDR_ERR_SUCCESS;
21539 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
21541 TALLOC_CTX *_mem_save_handle_0;
21542 TALLOC_CTX *_mem_save_type_0;
21543 TALLOC_CTX *_mem_save_needed_0;
21544 if (flags & NDR_IN) {
21545 ZERO_STRUCT(r->out);
21547 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21548 NDR_PULL_ALLOC(ndr, r->in.handle);
21550 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21551 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21552 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21554 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21555 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21556 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21557 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));
21559 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21560 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));
21561 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21562 NDR_PULL_ALLOC(ndr, r->out.type);
21563 ZERO_STRUCTP(r->out.type);
21564 NDR_PULL_ALLOC(ndr, r->out.needed);
21565 ZERO_STRUCTP(r->out.needed);
21567 if (flags & NDR_OUT) {
21568 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21569 NDR_PULL_ALLOC(ndr, r->out.type);
21571 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21572 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21573 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
21574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21575 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
21576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21577 NDR_PULL_ALLOC(ndr, r->out.needed);
21579 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21580 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21583 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21585 return NDR_ERR_SUCCESS;
21588 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
21590 if (flags & NDR_IN) {
21591 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21593 if (flags & NDR_OUT) {
21594 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21595 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21597 return NDR_ERR_SUCCESS;
21600 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
21602 if (flags & NDR_IN) {
21603 ZERO_STRUCT(r->out);
21605 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21607 if (flags & NDR_OUT) {
21608 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
21609 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21611 return NDR_ERR_SUCCESS;
21614 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
21616 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
21618 if (flags & NDR_SET_VALUES) {
21619 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21621 if (flags & NDR_IN) {
21622 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
21624 ndr_print_ptr(ndr, "handle", r->in.handle);
21626 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21628 ndr_print_string(ndr, "value_name", r->in.value_name);
21629 ndr_print_uint32(ndr, "offered", r->in.offered);
21632 if (flags & NDR_OUT) {
21633 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
21635 ndr_print_ptr(ndr, "type", r->out.type);
21637 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
21639 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
21640 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
21641 ndr_print_ptr(ndr, "needed", r->out.needed);
21643 ndr_print_uint32(ndr, "needed", *r->out.needed);
21645 ndr_print_WERROR(ndr, "result", r->out.result);
21651 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
21653 if (flags & NDR_IN) {
21654 if (r->in.handle == NULL) {
21655 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21657 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21659 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21660 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21661 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));
21662 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21663 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
21666 if (flags & NDR_OUT) {
21667 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21669 return NDR_ERR_SUCCESS;
21672 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
21674 if (flags & NDR_IN) {
21675 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
21677 if (flags & NDR_OUT) {
21678 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
21679 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
21681 return NDR_ERR_SUCCESS;
21684 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
21686 TALLOC_CTX *_mem_save_handle_0;
21687 if (flags & NDR_IN) {
21688 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21689 NDR_PULL_ALLOC(ndr, r->in.handle);
21691 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21692 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21693 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21694 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21695 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21696 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21697 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21698 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));
21700 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21701 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));
21702 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
21704 struct ndr_pull *_ndr_data;
21705 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
21706 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
21707 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
21708 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
21710 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
21712 if (flags & NDR_OUT) {
21713 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21715 return NDR_ERR_SUCCESS;
21718 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
21720 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
21722 if (flags & NDR_SET_VALUES) {
21723 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21725 if (flags & NDR_IN) {
21726 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
21728 ndr_print_ptr(ndr, "handle", r->in.handle);
21730 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21732 ndr_print_string(ndr, "value_name", r->in.value_name);
21733 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
21734 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
21735 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
21736 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);
21739 if (flags & NDR_OUT) {
21740 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
21742 ndr_print_WERROR(ndr, "result", r->out.result);
21748 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
21750 if (flags & NDR_IN) {
21752 if (flags & NDR_OUT) {
21753 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21755 return NDR_ERR_SUCCESS;
21758 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
21760 if (flags & NDR_IN) {
21762 if (flags & NDR_OUT) {
21763 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21765 return NDR_ERR_SUCCESS;
21768 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
21770 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
21772 if (flags & NDR_SET_VALUES) {
21773 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21775 if (flags & NDR_IN) {
21776 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
21780 if (flags & NDR_OUT) {
21781 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
21783 ndr_print_WERROR(ndr, "result", r->out.result);
21789 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
21791 if (flags & NDR_IN) {
21792 if (r->in.handle == NULL) {
21793 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21795 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21797 if (flags & NDR_OUT) {
21798 if (r->out.handle == NULL) {
21799 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21801 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21802 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21804 return NDR_ERR_SUCCESS;
21807 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
21809 TALLOC_CTX *_mem_save_handle_0;
21810 if (flags & NDR_IN) {
21811 ZERO_STRUCT(r->out);
21813 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21814 NDR_PULL_ALLOC(ndr, r->in.handle);
21816 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21817 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21818 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21819 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21820 NDR_PULL_ALLOC(ndr, r->out.handle);
21821 *r->out.handle = *r->in.handle;
21823 if (flags & NDR_OUT) {
21824 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21825 NDR_PULL_ALLOC(ndr, r->out.handle);
21827 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21828 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21829 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21830 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21831 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21833 return NDR_ERR_SUCCESS;
21836 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
21838 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
21840 if (flags & NDR_SET_VALUES) {
21841 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21843 if (flags & NDR_IN) {
21844 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
21846 ndr_print_ptr(ndr, "handle", r->in.handle);
21848 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21852 if (flags & NDR_OUT) {
21853 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
21855 ndr_print_ptr(ndr, "handle", r->out.handle);
21857 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21859 ndr_print_WERROR(ndr, "result", r->out.result);
21865 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
21867 if (flags & NDR_IN) {
21868 if (r->in.handle == NULL) {
21869 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21871 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21873 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21874 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21876 if (flags & NDR_OUT) {
21877 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21879 return NDR_ERR_SUCCESS;
21882 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
21884 TALLOC_CTX *_mem_save_handle_0;
21885 if (flags & NDR_IN) {
21886 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21887 NDR_PULL_ALLOC(ndr, r->in.handle);
21889 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21890 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21891 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21894 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21895 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21897 if (flags & NDR_OUT) {
21898 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21900 return NDR_ERR_SUCCESS;
21903 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
21905 ndr_print_struct(ndr, name, "spoolss_AddForm");
21907 if (flags & NDR_SET_VALUES) {
21908 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21910 if (flags & NDR_IN) {
21911 ndr_print_struct(ndr, "in", "spoolss_AddForm");
21913 ndr_print_ptr(ndr, "handle", r->in.handle);
21915 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21917 ndr_print_uint32(ndr, "level", r->in.level);
21918 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
21919 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
21922 if (flags & NDR_OUT) {
21923 ndr_print_struct(ndr, "out", "spoolss_AddForm");
21925 ndr_print_WERROR(ndr, "result", r->out.result);
21931 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
21933 if (flags & NDR_IN) {
21934 if (r->in.handle == NULL) {
21935 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21937 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21938 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
21941 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));
21943 if (flags & NDR_OUT) {
21944 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21946 return NDR_ERR_SUCCESS;
21949 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
21951 TALLOC_CTX *_mem_save_handle_0;
21952 if (flags & NDR_IN) {
21953 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21954 NDR_PULL_ALLOC(ndr, r->in.handle);
21956 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21957 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21958 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21960 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
21961 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
21962 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
21963 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));
21965 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
21966 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));
21968 if (flags & NDR_OUT) {
21969 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21971 return NDR_ERR_SUCCESS;
21974 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
21976 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
21978 if (flags & NDR_SET_VALUES) {
21979 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21981 if (flags & NDR_IN) {
21982 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
21984 ndr_print_ptr(ndr, "handle", r->in.handle);
21986 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21988 ndr_print_string(ndr, "form_name", r->in.form_name);
21991 if (flags & NDR_OUT) {
21992 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
21994 ndr_print_WERROR(ndr, "result", r->out.result);
22000 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
22002 if (flags & NDR_IN) {
22003 if (r->in.handle == NULL) {
22004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22006 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22008 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22010 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));
22011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22013 if (r->in.buffer) {
22014 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22018 if (flags & NDR_OUT) {
22019 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22022 struct ndr_push *_ndr_info;
22023 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22024 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22025 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22026 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22029 if (r->out.needed == NULL) {
22030 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22033 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22035 return NDR_ERR_SUCCESS;
22038 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
22040 uint32_t _ptr_buffer;
22041 uint32_t _ptr_info;
22042 TALLOC_CTX *_mem_save_handle_0;
22043 TALLOC_CTX *_mem_save_buffer_0;
22044 TALLOC_CTX *_mem_save_info_0;
22045 TALLOC_CTX *_mem_save_needed_0;
22046 if (flags & NDR_IN) {
22047 ZERO_STRUCT(r->out);
22049 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22050 NDR_PULL_ALLOC(ndr, r->in.handle);
22052 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22053 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22054 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22056 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22057 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22058 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22059 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));
22061 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22062 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));
22063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22066 NDR_PULL_ALLOC(ndr, r->in.buffer);
22068 r->in.buffer = NULL;
22070 if (r->in.buffer) {
22071 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22072 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22073 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22077 NDR_PULL_ALLOC(ndr, r->out.needed);
22078 ZERO_STRUCTP(r->out.needed);
22080 if (flags & NDR_OUT) {
22081 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22083 NDR_PULL_ALLOC(ndr, r->out.info);
22085 r->out.info = NULL;
22088 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22089 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22091 struct ndr_pull *_ndr_info;
22092 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22093 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22094 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22095 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22099 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22100 NDR_PULL_ALLOC(ndr, r->out.needed);
22102 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22103 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22105 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22106 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22108 return NDR_ERR_SUCCESS;
22111 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
22113 ndr_print_struct(ndr, name, "spoolss_GetForm");
22115 if (flags & NDR_SET_VALUES) {
22116 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22118 if (flags & NDR_IN) {
22119 ndr_print_struct(ndr, "in", "spoolss_GetForm");
22121 ndr_print_ptr(ndr, "handle", r->in.handle);
22123 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22125 ndr_print_string(ndr, "form_name", r->in.form_name);
22126 ndr_print_uint32(ndr, "level", r->in.level);
22127 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22129 if (r->in.buffer) {
22130 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22133 ndr_print_uint32(ndr, "offered", r->in.offered);
22136 if (flags & NDR_OUT) {
22137 ndr_print_struct(ndr, "out", "spoolss_GetForm");
22139 ndr_print_ptr(ndr, "info", r->out.info);
22142 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22143 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
22146 ndr_print_ptr(ndr, "needed", r->out.needed);
22148 ndr_print_uint32(ndr, "needed", *r->out.needed);
22150 ndr_print_WERROR(ndr, "result", r->out.result);
22156 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
22158 if (flags & NDR_IN) {
22159 if (r->in.handle == NULL) {
22160 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22162 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22165 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22166 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));
22167 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22168 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22169 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22171 if (flags & NDR_OUT) {
22172 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22174 return NDR_ERR_SUCCESS;
22177 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22179 TALLOC_CTX *_mem_save_handle_0;
22180 if (flags & NDR_IN) {
22181 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22182 NDR_PULL_ALLOC(ndr, r->in.handle);
22184 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22185 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22186 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22188 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22189 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22190 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22191 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));
22193 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22194 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));
22195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22196 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22197 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22199 if (flags & NDR_OUT) {
22200 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22202 return NDR_ERR_SUCCESS;
22205 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
22207 ndr_print_struct(ndr, name, "spoolss_SetForm");
22209 if (flags & NDR_SET_VALUES) {
22210 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22212 if (flags & NDR_IN) {
22213 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22215 ndr_print_ptr(ndr, "handle", r->in.handle);
22217 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22219 ndr_print_string(ndr, "form_name", r->in.form_name);
22220 ndr_print_uint32(ndr, "level", r->in.level);
22221 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22222 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22225 if (flags & NDR_OUT) {
22226 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22228 ndr_print_WERROR(ndr, "result", r->out.result);
22234 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22236 if (flags & NDR_IN) {
22237 if (r->in.handle == NULL) {
22238 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22240 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22242 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22243 if (r->in.buffer) {
22244 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22248 if (flags & NDR_OUT) {
22249 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22251 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22253 if (r->out.needed == NULL) {
22254 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22257 if (r->out.count == NULL) {
22258 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22263 return NDR_ERR_SUCCESS;
22266 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
22268 uint32_t _ptr_buffer;
22269 uint32_t _ptr_info;
22270 TALLOC_CTX *_mem_save_handle_0;
22271 TALLOC_CTX *_mem_save_buffer_0;
22272 TALLOC_CTX *_mem_save_info_0;
22273 TALLOC_CTX *_mem_save_needed_0;
22274 TALLOC_CTX *_mem_save_count_0;
22275 if (flags & NDR_IN) {
22276 ZERO_STRUCT(r->out);
22278 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22279 NDR_PULL_ALLOC(ndr, r->in.handle);
22281 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22282 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22283 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22288 NDR_PULL_ALLOC(ndr, r->in.buffer);
22290 r->in.buffer = NULL;
22292 if (r->in.buffer) {
22293 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22294 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22295 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22296 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22299 NDR_PULL_ALLOC(ndr, r->out.needed);
22300 ZERO_STRUCTP(r->out.needed);
22301 NDR_PULL_ALLOC(ndr, r->out.count);
22302 ZERO_STRUCTP(r->out.count);
22304 if (flags & NDR_OUT) {
22305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22307 NDR_PULL_ALLOC(ndr, r->out.info);
22309 r->out.info = NULL;
22312 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22313 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22314 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22317 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22318 NDR_PULL_ALLOC(ndr, r->out.needed);
22320 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22321 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22322 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22325 NDR_PULL_ALLOC(ndr, r->out.count);
22327 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22328 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22331 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22333 return NDR_ERR_SUCCESS;
22336 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
22338 uint32_t cntr_info_0;
22339 if (flags & NDR_IN) {
22340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22343 if (flags & NDR_OUT) {
22344 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22345 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22346 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22348 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22349 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22352 return NDR_ERR_SUCCESS;
22355 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
22357 uint32_t cntr_info_0;
22358 TALLOC_CTX *_mem_save_info_0;
22359 if (flags & NDR_IN) {
22360 ZERO_STRUCT(r->out);
22362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22365 if (flags & NDR_OUT) {
22366 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22367 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22368 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22369 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22370 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22371 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22373 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22374 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22376 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22378 return NDR_ERR_SUCCESS;
22381 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
22383 uint32_t cntr_info_2;
22384 ndr_print_struct(ndr, name, "spoolss_EnumForms");
22386 if (flags & NDR_SET_VALUES) {
22387 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22389 if (flags & NDR_IN) {
22390 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
22392 ndr_print_ptr(ndr, "handle", r->in.handle);
22394 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22396 ndr_print_uint32(ndr, "level", r->in.level);
22397 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22399 if (r->in.buffer) {
22400 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22403 ndr_print_uint32(ndr, "offered", r->in.offered);
22406 if (flags & NDR_OUT) {
22407 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
22409 ndr_print_ptr(ndr, "count", r->out.count);
22411 ndr_print_uint32(ndr, "count", *r->out.count);
22413 ndr_print_ptr(ndr, "info", r->out.info);
22415 ndr_print_ptr(ndr, "info", *r->out.info);
22417 if (*r->out.info) {
22418 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22420 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22422 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22423 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22424 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22432 ndr_print_ptr(ndr, "needed", r->out.needed);
22434 ndr_print_uint32(ndr, "needed", *r->out.needed);
22436 ndr_print_WERROR(ndr, "result", r->out.result);
22442 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
22444 if (flags & NDR_IN) {
22445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22446 if (r->in.servername) {
22447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22450 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22454 if (r->in.buffer) {
22455 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22459 if (flags & NDR_OUT) {
22460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22462 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22464 if (r->out.needed == NULL) {
22465 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22468 if (r->out.count == NULL) {
22469 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22472 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22474 return NDR_ERR_SUCCESS;
22477 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
22479 uint32_t _ptr_servername;
22480 uint32_t _ptr_buffer;
22481 uint32_t _ptr_info;
22482 TALLOC_CTX *_mem_save_servername_0;
22483 TALLOC_CTX *_mem_save_buffer_0;
22484 TALLOC_CTX *_mem_save_info_0;
22485 TALLOC_CTX *_mem_save_needed_0;
22486 TALLOC_CTX *_mem_save_count_0;
22487 if (flags & NDR_IN) {
22488 ZERO_STRUCT(r->out);
22490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22491 if (_ptr_servername) {
22492 NDR_PULL_ALLOC(ndr, r->in.servername);
22494 r->in.servername = NULL;
22496 if (r->in.servername) {
22497 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22498 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22499 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22500 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22501 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22502 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));
22504 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22505 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22511 NDR_PULL_ALLOC(ndr, r->in.buffer);
22513 r->in.buffer = NULL;
22515 if (r->in.buffer) {
22516 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22517 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22518 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22522 NDR_PULL_ALLOC(ndr, r->out.needed);
22523 ZERO_STRUCTP(r->out.needed);
22524 NDR_PULL_ALLOC(ndr, r->out.count);
22525 ZERO_STRUCTP(r->out.count);
22527 if (flags & NDR_OUT) {
22528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22530 NDR_PULL_ALLOC(ndr, r->out.info);
22532 r->out.info = NULL;
22535 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22536 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22537 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22540 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22541 NDR_PULL_ALLOC(ndr, r->out.needed);
22543 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22544 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22547 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22548 NDR_PULL_ALLOC(ndr, r->out.count);
22550 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22551 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22552 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22554 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22556 return NDR_ERR_SUCCESS;
22559 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
22561 uint32_t cntr_info_0;
22562 if (flags & NDR_IN) {
22563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22566 if (flags & NDR_OUT) {
22567 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22568 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22569 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22571 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22572 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22575 return NDR_ERR_SUCCESS;
22578 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
22580 uint32_t cntr_info_0;
22581 TALLOC_CTX *_mem_save_info_0;
22582 if (flags & NDR_IN) {
22583 ZERO_STRUCT(r->out);
22585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22586 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22588 if (flags & NDR_OUT) {
22589 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22590 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22591 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22592 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22593 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22594 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22596 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22597 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22601 return NDR_ERR_SUCCESS;
22604 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
22606 uint32_t cntr_info_2;
22607 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
22609 if (flags & NDR_SET_VALUES) {
22610 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22612 if (flags & NDR_IN) {
22613 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
22615 ndr_print_ptr(ndr, "servername", r->in.servername);
22617 if (r->in.servername) {
22618 ndr_print_string(ndr, "servername", r->in.servername);
22621 ndr_print_uint32(ndr, "level", r->in.level);
22622 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22624 if (r->in.buffer) {
22625 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22628 ndr_print_uint32(ndr, "offered", r->in.offered);
22631 if (flags & NDR_OUT) {
22632 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
22634 ndr_print_ptr(ndr, "count", r->out.count);
22636 ndr_print_uint32(ndr, "count", *r->out.count);
22638 ndr_print_ptr(ndr, "info", r->out.info);
22640 ndr_print_ptr(ndr, "info", *r->out.info);
22642 if (*r->out.info) {
22643 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22645 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22647 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22648 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22649 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22657 ndr_print_ptr(ndr, "needed", r->out.needed);
22659 ndr_print_uint32(ndr, "needed", *r->out.needed);
22661 ndr_print_WERROR(ndr, "result", r->out.result);
22667 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
22669 if (flags & NDR_IN) {
22670 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22671 if (r->in.servername) {
22672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22675 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22679 if (r->in.buffer) {
22680 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22684 if (flags & NDR_OUT) {
22685 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22687 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22689 if (r->out.needed == NULL) {
22690 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22693 if (r->out.count == NULL) {
22694 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22697 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22699 return NDR_ERR_SUCCESS;
22702 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
22704 uint32_t _ptr_servername;
22705 uint32_t _ptr_buffer;
22706 uint32_t _ptr_info;
22707 TALLOC_CTX *_mem_save_servername_0;
22708 TALLOC_CTX *_mem_save_buffer_0;
22709 TALLOC_CTX *_mem_save_info_0;
22710 TALLOC_CTX *_mem_save_needed_0;
22711 TALLOC_CTX *_mem_save_count_0;
22712 if (flags & NDR_IN) {
22713 ZERO_STRUCT(r->out);
22715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22716 if (_ptr_servername) {
22717 NDR_PULL_ALLOC(ndr, r->in.servername);
22719 r->in.servername = NULL;
22721 if (r->in.servername) {
22722 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22723 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22724 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22725 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22726 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22727 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));
22729 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22730 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22731 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22734 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22736 NDR_PULL_ALLOC(ndr, r->in.buffer);
22738 r->in.buffer = NULL;
22740 if (r->in.buffer) {
22741 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22742 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22743 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22746 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22747 NDR_PULL_ALLOC(ndr, r->out.needed);
22748 ZERO_STRUCTP(r->out.needed);
22749 NDR_PULL_ALLOC(ndr, r->out.count);
22750 ZERO_STRUCTP(r->out.count);
22752 if (flags & NDR_OUT) {
22753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22755 NDR_PULL_ALLOC(ndr, r->out.info);
22757 r->out.info = NULL;
22760 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22761 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22762 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22763 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22765 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22766 NDR_PULL_ALLOC(ndr, r->out.needed);
22768 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22769 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22772 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22773 NDR_PULL_ALLOC(ndr, r->out.count);
22775 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22776 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22779 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22781 return NDR_ERR_SUCCESS;
22784 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
22786 uint32_t cntr_info_0;
22787 if (flags & NDR_IN) {
22788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22791 if (flags & NDR_OUT) {
22792 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22793 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22794 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22796 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22797 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22800 return NDR_ERR_SUCCESS;
22803 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
22805 uint32_t cntr_info_0;
22806 TALLOC_CTX *_mem_save_info_0;
22807 if (flags & NDR_IN) {
22808 ZERO_STRUCT(r->out);
22810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22813 if (flags & NDR_OUT) {
22814 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22815 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22816 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22817 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22818 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22819 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22821 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22822 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22826 return NDR_ERR_SUCCESS;
22829 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
22831 uint32_t cntr_info_2;
22832 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
22834 if (flags & NDR_SET_VALUES) {
22835 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22837 if (flags & NDR_IN) {
22838 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
22840 ndr_print_ptr(ndr, "servername", r->in.servername);
22842 if (r->in.servername) {
22843 ndr_print_string(ndr, "servername", r->in.servername);
22846 ndr_print_uint32(ndr, "level", r->in.level);
22847 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22849 if (r->in.buffer) {
22850 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22853 ndr_print_uint32(ndr, "offered", r->in.offered);
22856 if (flags & NDR_OUT) {
22857 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
22859 ndr_print_ptr(ndr, "count", r->out.count);
22861 ndr_print_uint32(ndr, "count", *r->out.count);
22863 ndr_print_ptr(ndr, "info", r->out.info);
22865 ndr_print_ptr(ndr, "info", *r->out.info);
22867 if (*r->out.info) {
22868 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22870 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22872 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22873 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22874 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22882 ndr_print_ptr(ndr, "needed", r->out.needed);
22884 ndr_print_uint32(ndr, "needed", *r->out.needed);
22886 ndr_print_WERROR(ndr, "result", r->out.result);
22892 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
22894 if (flags & NDR_IN) {
22895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
22896 if (r->in.server_name) {
22897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22900 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));
22902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
22903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22906 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));
22908 if (flags & NDR_OUT) {
22909 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22911 return NDR_ERR_SUCCESS;
22914 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
22916 uint32_t _ptr_server_name;
22917 TALLOC_CTX *_mem_save_server_name_0;
22918 if (flags & NDR_IN) {
22919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
22920 if (_ptr_server_name) {
22921 NDR_PULL_ALLOC(ndr, r->in.server_name);
22923 r->in.server_name = NULL;
22925 if (r->in.server_name) {
22926 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
22927 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
22928 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
22929 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
22930 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
22931 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));
22933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
22934 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));
22935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
22937 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
22938 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
22939 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
22940 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_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.monitor_name), ndr_get_array_length(ndr, &r->in.monitor_name));
22943 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
22944 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));
22946 if (flags & NDR_OUT) {
22947 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22949 return NDR_ERR_SUCCESS;
22952 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
22954 ndr_print_struct(ndr, name, "spoolss_AddPort");
22956 if (flags & NDR_SET_VALUES) {
22957 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22959 if (flags & NDR_IN) {
22960 ndr_print_struct(ndr, "in", "spoolss_AddPort");
22962 ndr_print_ptr(ndr, "server_name", r->in.server_name);
22964 if (r->in.server_name) {
22965 ndr_print_string(ndr, "server_name", r->in.server_name);
22968 ndr_print_uint32(ndr, "unknown", r->in.unknown);
22969 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
22972 if (flags & NDR_OUT) {
22973 ndr_print_struct(ndr, "out", "spoolss_AddPort");
22975 ndr_print_WERROR(ndr, "result", r->out.result);
22981 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
22983 if (flags & NDR_IN) {
22985 if (flags & NDR_OUT) {
22986 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22988 return NDR_ERR_SUCCESS;
22991 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
22993 if (flags & NDR_IN) {
22995 if (flags & NDR_OUT) {
22996 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22998 return NDR_ERR_SUCCESS;
23001 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
23003 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
23005 if (flags & NDR_SET_VALUES) {
23006 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23008 if (flags & NDR_IN) {
23009 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
23013 if (flags & NDR_OUT) {
23014 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
23016 ndr_print_WERROR(ndr, "result", r->out.result);
23022 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
23024 if (flags & NDR_IN) {
23026 if (flags & NDR_OUT) {
23027 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23029 return NDR_ERR_SUCCESS;
23032 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
23034 if (flags & NDR_IN) {
23036 if (flags & NDR_OUT) {
23037 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23039 return NDR_ERR_SUCCESS;
23042 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
23044 ndr_print_struct(ndr, name, "spoolss_DeletePort");
23046 if (flags & NDR_SET_VALUES) {
23047 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23049 if (flags & NDR_IN) {
23050 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
23054 if (flags & NDR_OUT) {
23055 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
23057 ndr_print_WERROR(ndr, "result", r->out.result);
23063 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
23065 if (flags & NDR_IN) {
23067 if (flags & NDR_OUT) {
23068 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23070 return NDR_ERR_SUCCESS;
23073 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
23075 if (flags & NDR_IN) {
23077 if (flags & NDR_OUT) {
23078 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23080 return NDR_ERR_SUCCESS;
23083 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
23085 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
23087 if (flags & NDR_SET_VALUES) {
23088 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23090 if (flags & NDR_IN) {
23091 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
23095 if (flags & NDR_OUT) {
23096 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
23098 ndr_print_WERROR(ndr, "result", r->out.result);
23104 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23106 if (flags & NDR_IN) {
23108 if (flags & NDR_OUT) {
23109 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23111 return NDR_ERR_SUCCESS;
23114 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
23116 if (flags & NDR_IN) {
23118 if (flags & NDR_OUT) {
23119 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23121 return NDR_ERR_SUCCESS;
23124 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23126 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
23128 if (flags & NDR_SET_VALUES) {
23129 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23131 if (flags & NDR_IN) {
23132 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23136 if (flags & NDR_OUT) {
23137 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23139 ndr_print_WERROR(ndr, "result", r->out.result);
23145 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
23147 if (flags & NDR_IN) {
23149 if (flags & NDR_OUT) {
23150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23152 return NDR_ERR_SUCCESS;
23155 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
23157 if (flags & NDR_IN) {
23159 if (flags & NDR_OUT) {
23160 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23162 return NDR_ERR_SUCCESS;
23165 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
23167 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
23169 if (flags & NDR_SET_VALUES) {
23170 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23172 if (flags & NDR_IN) {
23173 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
23177 if (flags & NDR_OUT) {
23178 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
23180 ndr_print_WERROR(ndr, "result", r->out.result);
23186 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
23188 if (flags & NDR_IN) {
23190 if (flags & NDR_OUT) {
23191 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23193 return NDR_ERR_SUCCESS;
23196 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
23198 if (flags & NDR_IN) {
23200 if (flags & NDR_OUT) {
23201 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23203 return NDR_ERR_SUCCESS;
23206 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
23208 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
23210 if (flags & NDR_SET_VALUES) {
23211 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23213 if (flags & NDR_IN) {
23214 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
23218 if (flags & NDR_OUT) {
23219 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
23221 ndr_print_WERROR(ndr, "result", r->out.result);
23227 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23229 if (flags & NDR_IN) {
23231 if (flags & NDR_OUT) {
23232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23234 return NDR_ERR_SUCCESS;
23237 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23239 if (flags & NDR_IN) {
23241 if (flags & NDR_OUT) {
23242 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23244 return NDR_ERR_SUCCESS;
23247 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
23249 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
23251 if (flags & NDR_SET_VALUES) {
23252 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23254 if (flags & NDR_IN) {
23255 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
23259 if (flags & NDR_OUT) {
23260 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
23262 ndr_print_WERROR(ndr, "result", r->out.result);
23268 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
23270 if (flags & NDR_IN) {
23272 if (flags & NDR_OUT) {
23273 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23275 return NDR_ERR_SUCCESS;
23278 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
23280 if (flags & NDR_IN) {
23282 if (flags & NDR_OUT) {
23283 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23285 return NDR_ERR_SUCCESS;
23288 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
23290 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
23292 if (flags & NDR_SET_VALUES) {
23293 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23295 if (flags & NDR_IN) {
23296 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
23300 if (flags & NDR_OUT) {
23301 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
23303 ndr_print_WERROR(ndr, "result", r->out.result);
23309 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
23311 if (flags & NDR_IN) {
23313 if (flags & NDR_OUT) {
23314 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23316 return NDR_ERR_SUCCESS;
23319 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
23321 if (flags & NDR_IN) {
23323 if (flags & NDR_OUT) {
23324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23326 return NDR_ERR_SUCCESS;
23329 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
23331 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
23333 if (flags & NDR_SET_VALUES) {
23334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23336 if (flags & NDR_IN) {
23337 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
23341 if (flags & NDR_OUT) {
23342 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
23344 ndr_print_WERROR(ndr, "result", r->out.result);
23350 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
23352 if (flags & NDR_IN) {
23354 if (flags & NDR_OUT) {
23355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23357 return NDR_ERR_SUCCESS;
23360 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
23362 if (flags & NDR_IN) {
23364 if (flags & NDR_OUT) {
23365 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23367 return NDR_ERR_SUCCESS;
23370 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
23372 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
23374 if (flags & NDR_SET_VALUES) {
23375 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23377 if (flags & NDR_IN) {
23378 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
23382 if (flags & NDR_OUT) {
23383 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
23385 ndr_print_WERROR(ndr, "result", r->out.result);
23391 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
23393 if (flags & NDR_IN) {
23395 if (flags & NDR_OUT) {
23396 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23398 return NDR_ERR_SUCCESS;
23401 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
23403 if (flags & NDR_IN) {
23405 if (flags & NDR_OUT) {
23406 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23408 return NDR_ERR_SUCCESS;
23411 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
23413 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
23415 if (flags & NDR_SET_VALUES) {
23416 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23418 if (flags & NDR_IN) {
23419 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
23423 if (flags & NDR_OUT) {
23424 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
23426 ndr_print_WERROR(ndr, "result", r->out.result);
23432 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
23434 if (flags & NDR_IN) {
23436 if (flags & NDR_OUT) {
23437 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23439 return NDR_ERR_SUCCESS;
23442 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
23444 if (flags & NDR_IN) {
23446 if (flags & NDR_OUT) {
23447 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23449 return NDR_ERR_SUCCESS;
23452 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
23454 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
23456 if (flags & NDR_SET_VALUES) {
23457 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23459 if (flags & NDR_IN) {
23460 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
23464 if (flags & NDR_OUT) {
23465 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
23467 ndr_print_WERROR(ndr, "result", r->out.result);
23473 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
23475 if (flags & NDR_IN) {
23477 if (flags & NDR_OUT) {
23478 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23480 return NDR_ERR_SUCCESS;
23483 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
23485 if (flags & NDR_IN) {
23487 if (flags & NDR_OUT) {
23488 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23490 return NDR_ERR_SUCCESS;
23493 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
23495 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
23497 if (flags & NDR_SET_VALUES) {
23498 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23500 if (flags & NDR_IN) {
23501 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
23505 if (flags & NDR_OUT) {
23506 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
23508 ndr_print_WERROR(ndr, "result", r->out.result);
23514 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
23516 if (flags & NDR_IN) {
23517 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23518 if (r->in.servername) {
23519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23522 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23524 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
23525 if (r->in.print_processor_name) {
23526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23529 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));
23531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23533 if (r->in.buffer) {
23534 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23538 if (flags & NDR_OUT) {
23539 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23541 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23543 if (r->out.needed == NULL) {
23544 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23547 if (r->out.count == NULL) {
23548 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23551 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23553 return NDR_ERR_SUCCESS;
23556 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
23558 uint32_t _ptr_servername;
23559 uint32_t _ptr_print_processor_name;
23560 uint32_t _ptr_buffer;
23561 uint32_t _ptr_info;
23562 TALLOC_CTX *_mem_save_servername_0;
23563 TALLOC_CTX *_mem_save_print_processor_name_0;
23564 TALLOC_CTX *_mem_save_buffer_0;
23565 TALLOC_CTX *_mem_save_info_0;
23566 TALLOC_CTX *_mem_save_needed_0;
23567 TALLOC_CTX *_mem_save_count_0;
23568 if (flags & NDR_IN) {
23569 ZERO_STRUCT(r->out);
23571 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23572 if (_ptr_servername) {
23573 NDR_PULL_ALLOC(ndr, r->in.servername);
23575 r->in.servername = NULL;
23577 if (r->in.servername) {
23578 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23579 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23580 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23581 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23582 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23583 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));
23585 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23586 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23589 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
23590 if (_ptr_print_processor_name) {
23591 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
23593 r->in.print_processor_name = NULL;
23595 if (r->in.print_processor_name) {
23596 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23597 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
23598 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
23599 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
23600 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
23601 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));
23603 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
23604 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));
23605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
23607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23608 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23610 NDR_PULL_ALLOC(ndr, r->in.buffer);
23612 r->in.buffer = NULL;
23614 if (r->in.buffer) {
23615 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23616 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23617 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23618 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23620 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23621 NDR_PULL_ALLOC(ndr, r->out.needed);
23622 ZERO_STRUCTP(r->out.needed);
23623 NDR_PULL_ALLOC(ndr, r->out.count);
23624 ZERO_STRUCTP(r->out.count);
23626 if (flags & NDR_OUT) {
23627 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23629 NDR_PULL_ALLOC(ndr, r->out.info);
23631 r->out.info = NULL;
23634 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23635 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23636 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23639 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23640 NDR_PULL_ALLOC(ndr, r->out.needed);
23642 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23643 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23644 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23646 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23647 NDR_PULL_ALLOC(ndr, r->out.count);
23649 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23650 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23653 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23655 return NDR_ERR_SUCCESS;
23658 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
23660 uint32_t cntr_info_0;
23661 if (flags & NDR_IN) {
23662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23665 if (flags & NDR_OUT) {
23666 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23667 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23668 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23670 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23671 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23674 return NDR_ERR_SUCCESS;
23677 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
23679 uint32_t cntr_info_0;
23680 TALLOC_CTX *_mem_save_info_0;
23681 if (flags & NDR_IN) {
23682 ZERO_STRUCT(r->out);
23684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23687 if (flags & NDR_OUT) {
23688 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23689 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23690 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23691 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23692 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23693 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23695 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23696 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23700 return NDR_ERR_SUCCESS;
23703 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23705 uint32_t cntr_info_2;
23706 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
23708 if (flags & NDR_SET_VALUES) {
23709 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23711 if (flags & NDR_IN) {
23712 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
23714 ndr_print_ptr(ndr, "servername", r->in.servername);
23716 if (r->in.servername) {
23717 ndr_print_string(ndr, "servername", r->in.servername);
23720 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
23722 if (r->in.print_processor_name) {
23723 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
23726 ndr_print_uint32(ndr, "level", r->in.level);
23727 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23729 if (r->in.buffer) {
23730 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23733 ndr_print_uint32(ndr, "offered", r->in.offered);
23736 if (flags & NDR_OUT) {
23737 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
23739 ndr_print_ptr(ndr, "count", r->out.count);
23741 ndr_print_uint32(ndr, "count", *r->out.count);
23743 ndr_print_ptr(ndr, "info", r->out.info);
23745 ndr_print_ptr(ndr, "info", *r->out.info);
23747 if (*r->out.info) {
23748 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23750 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23752 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23753 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23754 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23762 ndr_print_ptr(ndr, "needed", r->out.needed);
23764 ndr_print_uint32(ndr, "needed", *r->out.needed);
23766 ndr_print_WERROR(ndr, "result", r->out.result);
23772 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
23774 if (flags & NDR_IN) {
23775 if (r->in.handle == NULL) {
23776 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23778 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23779 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
23780 if (r->in.data_type) {
23781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23784 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));
23786 if (r->in.devmode_ctr == NULL) {
23787 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23789 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23791 if (flags & NDR_OUT) {
23792 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23794 return NDR_ERR_SUCCESS;
23797 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
23799 uint32_t _ptr_data_type;
23800 TALLOC_CTX *_mem_save_handle_0;
23801 TALLOC_CTX *_mem_save_data_type_0;
23802 TALLOC_CTX *_mem_save_devmode_ctr_0;
23803 if (flags & NDR_IN) {
23804 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23805 NDR_PULL_ALLOC(ndr, r->in.handle);
23807 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23808 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23809 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23811 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
23812 if (_ptr_data_type) {
23813 NDR_PULL_ALLOC(ndr, r->in.data_type);
23815 r->in.data_type = NULL;
23817 if (r->in.data_type) {
23818 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23819 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
23820 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
23821 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
23822 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
23823 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));
23825 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
23826 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));
23827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
23829 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23830 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
23832 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
23833 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
23834 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23835 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
23837 if (flags & NDR_OUT) {
23838 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23840 return NDR_ERR_SUCCESS;
23843 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
23845 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
23847 if (flags & NDR_SET_VALUES) {
23848 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23850 if (flags & NDR_IN) {
23851 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
23853 ndr_print_ptr(ndr, "handle", r->in.handle);
23855 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23857 ndr_print_ptr(ndr, "data_type", r->in.data_type);
23859 if (r->in.data_type) {
23860 ndr_print_string(ndr, "data_type", r->in.data_type);
23863 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
23865 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
23869 if (flags & NDR_OUT) {
23870 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
23872 ndr_print_WERROR(ndr, "result", r->out.result);
23878 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
23880 if (flags & NDR_IN) {
23881 if (r->in.handle == NULL) {
23882 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23884 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23885 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
23886 if (r->in.architecture) {
23887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23890 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23893 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23894 if (r->in.buffer) {
23895 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
23899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
23901 if (flags & NDR_OUT) {
23902 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23905 struct ndr_push *_ndr_info;
23906 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23907 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23908 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23909 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23912 if (r->out.needed == NULL) {
23913 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23916 if (r->out.server_major_version == NULL) {
23917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
23920 if (r->out.server_minor_version == NULL) {
23921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
23924 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23926 return NDR_ERR_SUCCESS;
23929 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
23931 uint32_t _ptr_architecture;
23932 uint32_t _ptr_buffer;
23933 uint32_t _ptr_info;
23934 TALLOC_CTX *_mem_save_handle_0;
23935 TALLOC_CTX *_mem_save_architecture_0;
23936 TALLOC_CTX *_mem_save_buffer_0;
23937 TALLOC_CTX *_mem_save_info_0;
23938 TALLOC_CTX *_mem_save_needed_0;
23939 TALLOC_CTX *_mem_save_server_major_version_0;
23940 TALLOC_CTX *_mem_save_server_minor_version_0;
23941 if (flags & NDR_IN) {
23942 ZERO_STRUCT(r->out);
23944 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23945 NDR_PULL_ALLOC(ndr, r->in.handle);
23947 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23948 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23949 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23950 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23951 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
23952 if (_ptr_architecture) {
23953 NDR_PULL_ALLOC(ndr, r->in.architecture);
23955 r->in.architecture = NULL;
23957 if (r->in.architecture) {
23958 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
23959 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
23960 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
23961 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
23962 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
23963 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));
23965 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
23966 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
23967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
23969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23970 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23972 NDR_PULL_ALLOC(ndr, r->in.buffer);
23974 r->in.buffer = NULL;
23976 if (r->in.buffer) {
23977 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23978 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23979 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
23984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
23985 NDR_PULL_ALLOC(ndr, r->out.needed);
23986 ZERO_STRUCTP(r->out.needed);
23987 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
23988 ZERO_STRUCTP(r->out.server_major_version);
23989 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
23990 ZERO_STRUCTP(r->out.server_minor_version);
23992 if (flags & NDR_OUT) {
23993 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23995 NDR_PULL_ALLOC(ndr, r->out.info);
23997 r->out.info = NULL;
24000 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24001 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24003 struct ndr_pull *_ndr_info;
24004 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24005 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24006 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24007 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24011 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24012 NDR_PULL_ALLOC(ndr, r->out.needed);
24014 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24015 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24016 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24019 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24021 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24022 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
24023 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
24024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
24025 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24026 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24028 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24029 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
24030 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
24031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
24032 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24034 return NDR_ERR_SUCCESS;
24037 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
24039 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
24041 if (flags & NDR_SET_VALUES) {
24042 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24044 if (flags & NDR_IN) {
24045 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
24047 ndr_print_ptr(ndr, "handle", r->in.handle);
24049 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24051 ndr_print_ptr(ndr, "architecture", r->in.architecture);
24053 if (r->in.architecture) {
24054 ndr_print_string(ndr, "architecture", r->in.architecture);
24057 ndr_print_uint32(ndr, "level", r->in.level);
24058 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24060 if (r->in.buffer) {
24061 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24064 ndr_print_uint32(ndr, "offered", r->in.offered);
24065 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
24066 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
24069 if (flags & NDR_OUT) {
24070 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
24072 ndr_print_ptr(ndr, "info", r->out.info);
24075 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24076 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
24079 ndr_print_ptr(ndr, "needed", r->out.needed);
24081 ndr_print_uint32(ndr, "needed", *r->out.needed);
24083 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
24085 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
24087 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
24089 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
24091 ndr_print_WERROR(ndr, "result", r->out.result);
24097 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24099 if (flags & NDR_IN) {
24101 if (flags & NDR_OUT) {
24102 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24104 return NDR_ERR_SUCCESS;
24107 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
24109 if (flags & NDR_IN) {
24111 if (flags & NDR_OUT) {
24112 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24114 return NDR_ERR_SUCCESS;
24117 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24119 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
24121 if (flags & NDR_SET_VALUES) {
24122 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24124 if (flags & NDR_IN) {
24125 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
24129 if (flags & NDR_OUT) {
24130 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
24132 ndr_print_WERROR(ndr, "result", r->out.result);
24138 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24140 if (flags & NDR_IN) {
24142 if (flags & NDR_OUT) {
24143 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24145 return NDR_ERR_SUCCESS;
24148 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
24150 if (flags & NDR_IN) {
24152 if (flags & NDR_OUT) {
24153 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24155 return NDR_ERR_SUCCESS;
24158 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24160 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
24162 if (flags & NDR_SET_VALUES) {
24163 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24165 if (flags & NDR_IN) {
24166 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
24170 if (flags & NDR_OUT) {
24171 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
24173 ndr_print_WERROR(ndr, "result", r->out.result);
24179 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
24181 if (flags & NDR_IN) {
24182 if (r->in.handle == NULL) {
24183 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24185 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24187 if (flags & NDR_OUT) {
24188 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24190 return NDR_ERR_SUCCESS;
24193 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
24195 TALLOC_CTX *_mem_save_handle_0;
24196 if (flags & NDR_IN) {
24197 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24198 NDR_PULL_ALLOC(ndr, r->in.handle);
24200 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24201 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24202 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24205 if (flags & NDR_OUT) {
24206 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24208 return NDR_ERR_SUCCESS;
24211 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
24213 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
24215 if (flags & NDR_SET_VALUES) {
24216 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24218 if (flags & NDR_IN) {
24219 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
24221 ndr_print_ptr(ndr, "handle", r->in.handle);
24223 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24227 if (flags & NDR_OUT) {
24228 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
24230 ndr_print_WERROR(ndr, "result", r->out.result);
24236 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24238 if (flags & NDR_IN) {
24240 if (flags & NDR_OUT) {
24241 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24243 return NDR_ERR_SUCCESS;
24246 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24248 if (flags & NDR_IN) {
24250 if (flags & NDR_OUT) {
24251 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24253 return NDR_ERR_SUCCESS;
24256 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24258 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24260 if (flags & NDR_SET_VALUES) {
24261 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24263 if (flags & NDR_IN) {
24264 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24268 if (flags & NDR_OUT) {
24269 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24271 ndr_print_WERROR(ndr, "result", r->out.result);
24277 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
24279 if (flags & NDR_IN) {
24280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24283 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));
24284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24285 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24288 if (r->in.buffer) {
24289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24290 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24293 if (flags & NDR_OUT) {
24294 if (r->out.handle == NULL) {
24295 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24297 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24298 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24300 return NDR_ERR_SUCCESS;
24303 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
24305 uint32_t _ptr_buffer;
24306 TALLOC_CTX *_mem_save_buffer_0;
24307 TALLOC_CTX *_mem_save_handle_0;
24308 if (flags & NDR_IN) {
24309 ZERO_STRUCT(r->out);
24311 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24312 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24313 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24314 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));
24316 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24317 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));
24318 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24319 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24320 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24321 if (r->in.bufsize > 512) {
24322 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24324 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24326 NDR_PULL_ALLOC(ndr, r->in.buffer);
24328 r->in.buffer = NULL;
24330 if (r->in.buffer) {
24331 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24332 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24333 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24334 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24335 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24338 NDR_PULL_ALLOC(ndr, r->out.handle);
24339 ZERO_STRUCTP(r->out.handle);
24340 if (r->in.buffer) {
24341 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24344 if (flags & NDR_OUT) {
24345 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24346 NDR_PULL_ALLOC(ndr, r->out.handle);
24348 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24349 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24350 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24352 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24354 return NDR_ERR_SUCCESS;
24357 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
24359 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
24361 if (flags & NDR_SET_VALUES) {
24362 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24364 if (flags & NDR_IN) {
24365 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
24367 ndr_print_string(ndr, "server_name", r->in.server_name);
24368 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24369 ndr_print_winreg_Type(ndr, "type", r->in.type);
24370 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24371 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24373 if (r->in.buffer) {
24374 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24379 if (flags & NDR_OUT) {
24380 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
24382 ndr_print_ptr(ndr, "handle", r->out.handle);
24384 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24386 ndr_print_WERROR(ndr, "result", r->out.result);
24392 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
24394 if (flags & NDR_IN) {
24395 if (r->in.handle == NULL) {
24396 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24398 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24399 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24401 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24402 if (r->in.buffer) {
24403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24404 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24407 if (flags & NDR_OUT) {
24408 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24410 return NDR_ERR_SUCCESS;
24413 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
24415 uint32_t _ptr_buffer;
24416 TALLOC_CTX *_mem_save_handle_0;
24417 TALLOC_CTX *_mem_save_buffer_0;
24418 if (flags & NDR_IN) {
24419 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24420 NDR_PULL_ALLOC(ndr, r->in.handle);
24422 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24423 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24424 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24426 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24428 if (r->in.bufsize > 512) {
24429 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24431 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24433 NDR_PULL_ALLOC(ndr, r->in.buffer);
24435 r->in.buffer = NULL;
24437 if (r->in.buffer) {
24438 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24439 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24440 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24441 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24442 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24445 if (r->in.buffer) {
24446 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24449 if (flags & NDR_OUT) {
24450 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24452 return NDR_ERR_SUCCESS;
24455 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
24457 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
24459 if (flags & NDR_SET_VALUES) {
24460 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24462 if (flags & NDR_IN) {
24463 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
24465 ndr_print_ptr(ndr, "handle", r->in.handle);
24467 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24469 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24470 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24471 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24473 if (r->in.buffer) {
24474 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24479 if (flags & NDR_OUT) {
24480 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
24482 ndr_print_WERROR(ndr, "result", r->out.result);
24488 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
24490 if (flags & NDR_IN) {
24491 if (r->in.handle == NULL) {
24492 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24494 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24496 if (flags & NDR_OUT) {
24497 if (r->out.handle == NULL) {
24498 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24500 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24501 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24503 return NDR_ERR_SUCCESS;
24506 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
24508 TALLOC_CTX *_mem_save_handle_0;
24509 if (flags & NDR_IN) {
24510 ZERO_STRUCT(r->out);
24512 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24513 NDR_PULL_ALLOC(ndr, r->in.handle);
24515 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24516 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24517 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24519 NDR_PULL_ALLOC(ndr, r->out.handle);
24520 *r->out.handle = *r->in.handle;
24522 if (flags & NDR_OUT) {
24523 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24524 NDR_PULL_ALLOC(ndr, r->out.handle);
24526 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24527 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24528 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24530 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24532 return NDR_ERR_SUCCESS;
24535 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
24537 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
24539 if (flags & NDR_SET_VALUES) {
24540 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24542 if (flags & NDR_IN) {
24543 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
24545 ndr_print_ptr(ndr, "handle", r->in.handle);
24547 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24551 if (flags & NDR_OUT) {
24552 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
24554 ndr_print_ptr(ndr, "handle", r->out.handle);
24556 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24558 ndr_print_WERROR(ndr, "result", r->out.result);
24564 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
24566 if (flags & NDR_IN) {
24568 if (flags & NDR_OUT) {
24569 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24571 return NDR_ERR_SUCCESS;
24574 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
24576 if (flags & NDR_IN) {
24578 if (flags & NDR_OUT) {
24579 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24581 return NDR_ERR_SUCCESS;
24584 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
24586 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
24588 if (flags & NDR_SET_VALUES) {
24589 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24591 if (flags & NDR_IN) {
24592 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
24596 if (flags & NDR_OUT) {
24597 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
24599 ndr_print_WERROR(ndr, "result", r->out.result);
24605 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24607 if (flags & NDR_IN) {
24609 if (flags & NDR_OUT) {
24610 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24612 return NDR_ERR_SUCCESS;
24615 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24617 if (flags & NDR_IN) {
24619 if (flags & NDR_OUT) {
24620 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24622 return NDR_ERR_SUCCESS;
24625 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24627 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
24629 if (flags & NDR_SET_VALUES) {
24630 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24632 if (flags & NDR_IN) {
24633 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24637 if (flags & NDR_OUT) {
24638 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24640 ndr_print_WERROR(ndr, "result", r->out.result);
24646 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
24648 if (flags & NDR_IN) {
24650 if (flags & NDR_OUT) {
24651 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24653 return NDR_ERR_SUCCESS;
24656 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
24658 if (flags & NDR_IN) {
24660 if (flags & NDR_OUT) {
24661 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24663 return NDR_ERR_SUCCESS;
24666 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
24668 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
24670 if (flags & NDR_SET_VALUES) {
24671 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24673 if (flags & NDR_IN) {
24674 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
24678 if (flags & NDR_OUT) {
24679 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
24681 ndr_print_WERROR(ndr, "result", r->out.result);
24687 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
24689 if (flags & NDR_IN) {
24691 if (flags & NDR_OUT) {
24692 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24694 return NDR_ERR_SUCCESS;
24697 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
24699 if (flags & NDR_IN) {
24701 if (flags & NDR_OUT) {
24702 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24704 return NDR_ERR_SUCCESS;
24707 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
24709 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
24711 if (flags & NDR_SET_VALUES) {
24712 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24714 if (flags & NDR_IN) {
24715 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
24719 if (flags & NDR_OUT) {
24720 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
24722 ndr_print_WERROR(ndr, "result", r->out.result);
24728 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24730 if (flags & NDR_IN) {
24731 if (r->in.handle == NULL) {
24732 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24734 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24735 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
24737 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
24738 if (r->in.local_machine) {
24739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24742 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));
24744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24745 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
24746 if (r->in.notify_options) {
24747 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24750 if (flags & NDR_OUT) {
24751 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24753 return NDR_ERR_SUCCESS;
24756 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24758 uint32_t _ptr_local_machine;
24759 uint32_t _ptr_notify_options;
24760 TALLOC_CTX *_mem_save_handle_0;
24761 TALLOC_CTX *_mem_save_local_machine_0;
24762 TALLOC_CTX *_mem_save_notify_options_0;
24763 if (flags & NDR_IN) {
24764 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24765 NDR_PULL_ALLOC(ndr, r->in.handle);
24767 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24768 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24769 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24770 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24771 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
24773 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
24774 if (_ptr_local_machine) {
24775 NDR_PULL_ALLOC(ndr, r->in.local_machine);
24777 r->in.local_machine = NULL;
24779 if (r->in.local_machine) {
24780 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
24781 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
24782 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
24783 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
24784 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
24785 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));
24787 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
24788 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));
24789 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
24791 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24792 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
24793 if (_ptr_notify_options) {
24794 NDR_PULL_ALLOC(ndr, r->in.notify_options);
24796 r->in.notify_options = NULL;
24798 if (r->in.notify_options) {
24799 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24800 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
24801 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
24805 if (flags & NDR_OUT) {
24806 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24808 return NDR_ERR_SUCCESS;
24811 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24813 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24815 if (flags & NDR_SET_VALUES) {
24816 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24818 if (flags & NDR_IN) {
24819 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24821 ndr_print_ptr(ndr, "handle", r->in.handle);
24823 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24825 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24826 ndr_print_uint32(ndr, "options", r->in.options);
24827 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
24829 if (r->in.local_machine) {
24830 ndr_print_string(ndr, "local_machine", r->in.local_machine);
24833 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24834 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
24836 if (r->in.notify_options) {
24837 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
24842 if (flags & NDR_OUT) {
24843 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24845 ndr_print_WERROR(ndr, "result", r->out.result);
24851 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24853 if (flags & NDR_IN) {
24854 if (r->in.handle == NULL) {
24855 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24857 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
24859 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
24861 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24862 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24864 if (flags & NDR_OUT) {
24865 if (r->out.reply_result == NULL) {
24866 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24868 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
24869 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24871 return NDR_ERR_SUCCESS;
24874 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
24876 TALLOC_CTX *_mem_save_handle_0;
24877 TALLOC_CTX *_mem_save_reply_result_0;
24878 if (flags & NDR_IN) {
24879 ZERO_STRUCT(r->out);
24881 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24882 NDR_PULL_ALLOC(ndr, r->in.handle);
24884 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24885 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24886 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
24889 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
24891 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24892 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24893 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24894 ZERO_STRUCTP(r->out.reply_result);
24896 if (flags & NDR_OUT) {
24897 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24898 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24900 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
24901 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
24902 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
24903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
24904 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24906 return NDR_ERR_SUCCESS;
24909 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24911 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
24913 if (flags & NDR_SET_VALUES) {
24914 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24916 if (flags & NDR_IN) {
24917 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
24919 ndr_print_ptr(ndr, "handle", r->in.handle);
24921 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24923 ndr_print_uint32(ndr, "color", r->in.color);
24924 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24925 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
24926 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
24927 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
24930 if (flags & NDR_OUT) {
24931 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
24933 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
24935 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
24937 ndr_print_WERROR(ndr, "result", r->out.result);
24943 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
24945 if (flags & NDR_IN) {
24946 if (r->in.handle == NULL) {
24947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24949 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
24951 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
24952 if (r->in.options) {
24953 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
24956 if (flags & NDR_OUT) {
24957 if (r->out.info == NULL) {
24958 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24960 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
24961 if (*r->out.info) {
24962 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
24964 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24966 return NDR_ERR_SUCCESS;
24969 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
24971 uint32_t _ptr_options;
24972 uint32_t _ptr_info;
24973 TALLOC_CTX *_mem_save_handle_0;
24974 TALLOC_CTX *_mem_save_options_0;
24975 TALLOC_CTX *_mem_save_info_0;
24976 TALLOC_CTX *_mem_save_info_1;
24977 if (flags & NDR_IN) {
24978 ZERO_STRUCT(r->out);
24980 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24981 NDR_PULL_ALLOC(ndr, r->in.handle);
24983 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24984 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24985 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
24988 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
24989 if (_ptr_options) {
24990 NDR_PULL_ALLOC(ndr, r->in.options);
24992 r->in.options = NULL;
24994 if (r->in.options) {
24995 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24996 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
24997 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
24998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
25000 NDR_PULL_ALLOC(ndr, r->out.info);
25001 ZERO_STRUCTP(r->out.info);
25003 if (flags & NDR_OUT) {
25004 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25005 NDR_PULL_ALLOC(ndr, r->out.info);
25007 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25008 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
25009 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25011 NDR_PULL_ALLOC(ndr, *r->out.info);
25013 *r->out.info = NULL;
25015 if (*r->out.info) {
25016 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
25017 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
25018 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
25021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
25022 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25024 return NDR_ERR_SUCCESS;
25027 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25029 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
25031 if (flags & NDR_SET_VALUES) {
25032 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25034 if (flags & NDR_IN) {
25035 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25037 ndr_print_ptr(ndr, "handle", r->in.handle);
25039 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25041 ndr_print_uint32(ndr, "change_low", r->in.change_low);
25042 ndr_print_ptr(ndr, "options", r->in.options);
25044 if (r->in.options) {
25045 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
25050 if (flags & NDR_OUT) {
25051 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25053 ndr_print_ptr(ndr, "info", r->out.info);
25055 ndr_print_ptr(ndr, "info", *r->out.info);
25057 if (*r->out.info) {
25058 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
25062 ndr_print_WERROR(ndr, "result", r->out.result);
25068 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
25070 if (flags & NDR_IN) {
25072 if (flags & NDR_OUT) {
25073 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25075 return NDR_ERR_SUCCESS;
25078 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
25080 if (flags & NDR_IN) {
25082 if (flags & NDR_OUT) {
25083 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25085 return NDR_ERR_SUCCESS;
25088 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
25090 ndr_print_struct(ndr, name, "spoolss_44");
25092 if (flags & NDR_SET_VALUES) {
25093 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25095 if (flags & NDR_IN) {
25096 ndr_print_struct(ndr, "in", "spoolss_44");
25100 if (flags & NDR_OUT) {
25101 ndr_print_struct(ndr, "out", "spoolss_44");
25103 ndr_print_WERROR(ndr, "result", r->out.result);
25109 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
25111 if (flags & NDR_IN) {
25112 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
25113 if (r->in.printername) {
25114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25117 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25119 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
25120 if (r->in.datatype) {
25121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25124 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25126 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25127 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
25128 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25129 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25130 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25132 if (flags & NDR_OUT) {
25133 if (r->out.handle == NULL) {
25134 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25136 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25137 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25139 return NDR_ERR_SUCCESS;
25142 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
25144 uint32_t _ptr_printername;
25145 uint32_t _ptr_datatype;
25146 TALLOC_CTX *_mem_save_printername_0;
25147 TALLOC_CTX *_mem_save_datatype_0;
25148 TALLOC_CTX *_mem_save_handle_0;
25149 if (flags & NDR_IN) {
25150 ZERO_STRUCT(r->out);
25152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
25153 if (_ptr_printername) {
25154 NDR_PULL_ALLOC(ndr, r->in.printername);
25156 r->in.printername = NULL;
25158 if (r->in.printername) {
25159 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25160 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
25161 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
25162 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
25163 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
25164 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));
25166 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
25167 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
25168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
25170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
25171 if (_ptr_datatype) {
25172 NDR_PULL_ALLOC(ndr, r->in.datatype);
25174 r->in.datatype = NULL;
25176 if (r->in.datatype) {
25177 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
25178 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
25179 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
25180 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
25181 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
25182 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));
25184 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
25185 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
25186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
25188 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25189 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
25190 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25191 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25192 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25193 NDR_PULL_ALLOC(ndr, r->out.handle);
25194 ZERO_STRUCTP(r->out.handle);
25196 if (flags & NDR_OUT) {
25197 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25198 NDR_PULL_ALLOC(ndr, r->out.handle);
25200 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25201 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25202 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25206 return NDR_ERR_SUCCESS;
25209 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
25211 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
25213 if (flags & NDR_SET_VALUES) {
25214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25216 if (flags & NDR_IN) {
25217 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
25219 ndr_print_ptr(ndr, "printername", r->in.printername);
25221 if (r->in.printername) {
25222 ndr_print_string(ndr, "printername", r->in.printername);
25225 ndr_print_ptr(ndr, "datatype", r->in.datatype);
25227 if (r->in.datatype) {
25228 ndr_print_string(ndr, "datatype", r->in.datatype);
25231 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
25232 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
25233 ndr_print_uint32(ndr, "level", r->in.level);
25234 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
25235 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
25238 if (flags & NDR_OUT) {
25239 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
25241 ndr_print_ptr(ndr, "handle", r->out.handle);
25243 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25245 ndr_print_WERROR(ndr, "result", r->out.result);
25251 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
25253 if (flags & NDR_IN) {
25254 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
25255 if (r->in.server) {
25256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25259 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25261 if (r->in.info_ctr == NULL) {
25262 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25264 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25265 if (r->in.devmode_ctr == NULL) {
25266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25268 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25269 if (r->in.secdesc_ctr == NULL) {
25270 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25272 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25273 if (r->in.userlevel_ctr == NULL) {
25274 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25276 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25278 if (flags & NDR_OUT) {
25279 if (r->out.handle == NULL) {
25280 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25282 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25283 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25285 return NDR_ERR_SUCCESS;
25288 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
25290 uint32_t _ptr_server;
25291 TALLOC_CTX *_mem_save_server_0;
25292 TALLOC_CTX *_mem_save_info_ctr_0;
25293 TALLOC_CTX *_mem_save_devmode_ctr_0;
25294 TALLOC_CTX *_mem_save_secdesc_ctr_0;
25295 TALLOC_CTX *_mem_save_userlevel_ctr_0;
25296 TALLOC_CTX *_mem_save_handle_0;
25297 if (flags & NDR_IN) {
25298 ZERO_STRUCT(r->out);
25300 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
25302 NDR_PULL_ALLOC(ndr, r->in.server);
25304 r->in.server = NULL;
25306 if (r->in.server) {
25307 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
25308 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
25309 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
25310 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
25311 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
25312 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));
25314 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
25315 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
25316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
25318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25319 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
25321 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25322 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
25323 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25325 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25326 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25328 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25329 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25330 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25332 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25333 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
25335 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25336 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
25337 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25339 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25340 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
25342 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25343 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
25344 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25346 NDR_PULL_ALLOC(ndr, r->out.handle);
25347 ZERO_STRUCTP(r->out.handle);
25349 if (flags & NDR_OUT) {
25350 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25351 NDR_PULL_ALLOC(ndr, r->out.handle);
25353 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25354 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25355 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25357 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25359 return NDR_ERR_SUCCESS;
25362 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
25364 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
25366 if (flags & NDR_SET_VALUES) {
25367 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25369 if (flags & NDR_IN) {
25370 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
25372 ndr_print_ptr(ndr, "server", r->in.server);
25374 if (r->in.server) {
25375 ndr_print_string(ndr, "server", r->in.server);
25378 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25380 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25382 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25384 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25386 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25388 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25390 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25392 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25396 if (flags & NDR_OUT) {
25397 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
25399 ndr_print_ptr(ndr, "handle", r->out.handle);
25401 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25403 ndr_print_WERROR(ndr, "result", r->out.result);
25409 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
25411 if (flags & NDR_IN) {
25413 if (flags & NDR_OUT) {
25414 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25416 return NDR_ERR_SUCCESS;
25419 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
25421 if (flags & NDR_IN) {
25423 if (flags & NDR_OUT) {
25424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25426 return NDR_ERR_SUCCESS;
25429 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
25431 ndr_print_struct(ndr, name, "spoolss_47");
25433 if (flags & NDR_SET_VALUES) {
25434 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25436 if (flags & NDR_IN) {
25437 ndr_print_struct(ndr, "in", "spoolss_47");
25441 if (flags & NDR_OUT) {
25442 ndr_print_struct(ndr, "out", "spoolss_47");
25444 ndr_print_WERROR(ndr, "result", r->out.result);
25450 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
25452 if (flags & NDR_IN) {
25453 if (r->in.handle == NULL) {
25454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25456 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
25458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
25459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25461 if (flags & NDR_OUT) {
25462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
25463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
25464 if (r->out.value_needed == NULL) {
25465 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
25468 if (r->out.printerdata_type == NULL) {
25469 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
25472 if (r->out.buffer == NULL) {
25473 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25475 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
25476 if (r->out.data_needed == NULL) {
25477 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
25480 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25482 return NDR_ERR_SUCCESS;
25485 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
25487 TALLOC_CTX *_mem_save_handle_0;
25488 TALLOC_CTX *_mem_save_value_needed_0;
25489 TALLOC_CTX *_mem_save_printerdata_type_0;
25490 TALLOC_CTX *_mem_save_buffer_0;
25491 TALLOC_CTX *_mem_save_data_needed_0;
25492 if (flags & NDR_IN) {
25493 ZERO_STRUCT(r->out);
25495 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25496 NDR_PULL_ALLOC(ndr, r->in.handle);
25498 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25499 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25500 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
25503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
25504 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
25505 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25506 ZERO_STRUCTP(r->out.value_needed);
25507 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25508 ZERO_STRUCTP(r->out.printerdata_type);
25509 NDR_PULL_ALLOC(ndr, r->out.buffer);
25510 ZERO_STRUCTP(r->out.buffer);
25511 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25512 ZERO_STRUCTP(r->out.data_needed);
25514 if (flags & NDR_OUT) {
25515 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
25516 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));
25517 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25518 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25520 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25521 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
25522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
25523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
25524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25525 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
25527 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25528 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
25529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
25530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
25531 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25532 NDR_PULL_ALLOC(ndr, r->out.buffer);
25534 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
25535 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
25536 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
25537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
25538 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25539 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25541 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25542 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
25543 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
25544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
25545 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25546 if (r->out.value_name) {
25547 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
25550 return NDR_ERR_SUCCESS;
25553 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
25555 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
25557 if (flags & NDR_SET_VALUES) {
25558 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25560 if (flags & NDR_IN) {
25561 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
25563 ndr_print_ptr(ndr, "handle", r->in.handle);
25565 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25567 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
25568 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
25569 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
25572 if (flags & NDR_OUT) {
25573 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
25575 ndr_print_string(ndr, "value_name", r->out.value_name);
25576 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
25578 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
25580 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
25582 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
25584 ndr_print_ptr(ndr, "buffer", r->out.buffer);
25586 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
25588 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
25590 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
25592 ndr_print_WERROR(ndr, "result", r->out.result);
25598 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
25600 if (flags & NDR_IN) {
25601 if (r->in.handle == NULL) {
25602 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25604 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25608 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));
25610 if (flags & NDR_OUT) {
25611 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25613 return NDR_ERR_SUCCESS;
25616 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
25618 TALLOC_CTX *_mem_save_handle_0;
25619 if (flags & NDR_IN) {
25620 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25621 NDR_PULL_ALLOC(ndr, r->in.handle);
25623 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25624 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25625 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25627 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25628 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25629 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25630 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));
25632 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25633 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));
25635 if (flags & NDR_OUT) {
25636 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25638 return NDR_ERR_SUCCESS;
25641 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
25643 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
25645 if (flags & NDR_SET_VALUES) {
25646 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25648 if (flags & NDR_IN) {
25649 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
25651 ndr_print_ptr(ndr, "handle", r->in.handle);
25653 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25655 ndr_print_string(ndr, "value_name", r->in.value_name);
25658 if (flags & NDR_OUT) {
25659 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
25661 ndr_print_WERROR(ndr, "result", r->out.result);
25667 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
25669 if (flags & NDR_IN) {
25671 if (flags & NDR_OUT) {
25672 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25674 return NDR_ERR_SUCCESS;
25677 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
25679 if (flags & NDR_IN) {
25681 if (flags & NDR_OUT) {
25682 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25684 return NDR_ERR_SUCCESS;
25687 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
25689 ndr_print_struct(ndr, name, "spoolss_4a");
25691 if (flags & NDR_SET_VALUES) {
25692 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25694 if (flags & NDR_IN) {
25695 ndr_print_struct(ndr, "in", "spoolss_4a");
25699 if (flags & NDR_OUT) {
25700 ndr_print_struct(ndr, "out", "spoolss_4a");
25702 ndr_print_WERROR(ndr, "result", r->out.result);
25708 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
25710 if (flags & NDR_IN) {
25712 if (flags & NDR_OUT) {
25713 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25715 return NDR_ERR_SUCCESS;
25718 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
25720 if (flags & NDR_IN) {
25722 if (flags & NDR_OUT) {
25723 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25725 return NDR_ERR_SUCCESS;
25728 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
25730 ndr_print_struct(ndr, name, "spoolss_4b");
25732 if (flags & NDR_SET_VALUES) {
25733 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25735 if (flags & NDR_IN) {
25736 ndr_print_struct(ndr, "in", "spoolss_4b");
25740 if (flags & NDR_OUT) {
25741 ndr_print_struct(ndr, "out", "spoolss_4b");
25743 ndr_print_WERROR(ndr, "result", r->out.result);
25749 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
25751 if (flags & NDR_IN) {
25753 if (flags & NDR_OUT) {
25754 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25756 return NDR_ERR_SUCCESS;
25759 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
25761 if (flags & NDR_IN) {
25763 if (flags & NDR_OUT) {
25764 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25766 return NDR_ERR_SUCCESS;
25769 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
25771 ndr_print_struct(ndr, name, "spoolss_4c");
25773 if (flags & NDR_SET_VALUES) {
25774 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25776 if (flags & NDR_IN) {
25777 ndr_print_struct(ndr, "in", "spoolss_4c");
25781 if (flags & NDR_OUT) {
25782 ndr_print_struct(ndr, "out", "spoolss_4c");
25784 ndr_print_WERROR(ndr, "result", r->out.result);
25790 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
25792 if (flags & NDR_IN) {
25793 if (r->in.handle == NULL) {
25794 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25796 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25800 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));
25801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25804 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));
25805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
25806 if (r->in.buffer == NULL) {
25807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25810 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
25811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25813 if (flags & NDR_OUT) {
25814 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25816 return NDR_ERR_SUCCESS;
25819 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
25821 TALLOC_CTX *_mem_save_handle_0;
25822 if (flags & NDR_IN) {
25823 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25824 NDR_PULL_ALLOC(ndr, r->in.handle);
25826 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25827 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25828 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25830 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25831 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25832 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25833 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));
25835 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25836 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));
25837 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25838 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25839 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25840 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));
25842 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25843 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));
25844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
25845 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25846 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25847 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25849 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25851 if (r->in.buffer) {
25852 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
25855 if (flags & NDR_OUT) {
25856 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25858 return NDR_ERR_SUCCESS;
25861 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
25863 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
25865 if (flags & NDR_SET_VALUES) {
25866 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25868 if (flags & NDR_IN) {
25869 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
25871 ndr_print_ptr(ndr, "handle", r->in.handle);
25873 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25875 ndr_print_string(ndr, "key_name", r->in.key_name);
25876 ndr_print_string(ndr, "value_name", r->in.value_name);
25877 ndr_print_uint32(ndr, "type", r->in.type);
25878 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25880 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
25882 ndr_print_uint32(ndr, "offered", r->in.offered);
25885 if (flags & NDR_OUT) {
25886 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
25888 ndr_print_WERROR(ndr, "result", r->out.result);
25894 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
25896 if (flags & NDR_IN) {
25897 if (r->in.handle == NULL) {
25898 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25900 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25904 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));
25905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25906 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25908 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));
25909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25911 if (flags & NDR_OUT) {
25912 if (r->out.type == NULL) {
25913 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
25916 if (r->out.buffer == NULL) {
25917 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25920 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
25921 if (r->out.needed == NULL) {
25922 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
25925 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25927 return NDR_ERR_SUCCESS;
25930 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
25932 TALLOC_CTX *_mem_save_handle_0;
25933 TALLOC_CTX *_mem_save_type_0;
25934 TALLOC_CTX *_mem_save_needed_0;
25935 if (flags & NDR_IN) {
25936 ZERO_STRUCT(r->out);
25938 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25939 NDR_PULL_ALLOC(ndr, r->in.handle);
25941 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25942 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25943 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25945 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25946 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25947 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25948 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));
25950 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25951 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));
25952 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25953 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25954 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25955 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));
25957 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25958 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));
25959 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25960 NDR_PULL_ALLOC(ndr, r->out.type);
25961 ZERO_STRUCTP(r->out.type);
25962 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
25963 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
25964 NDR_PULL_ALLOC(ndr, r->out.needed);
25965 ZERO_STRUCTP(r->out.needed);
25967 if (flags & NDR_OUT) {
25968 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25969 NDR_PULL_ALLOC(ndr, r->out.type);
25971 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25972 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
25973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
25974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
25975 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
25976 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25977 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
25979 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
25980 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25981 NDR_PULL_ALLOC(ndr, r->out.needed);
25983 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25984 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
25985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
25986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
25987 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25988 if (r->out.buffer) {
25989 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
25992 return NDR_ERR_SUCCESS;
25995 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
25997 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
25999 if (flags & NDR_SET_VALUES) {
26000 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26002 if (flags & NDR_IN) {
26003 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
26005 ndr_print_ptr(ndr, "handle", r->in.handle);
26007 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26009 ndr_print_string(ndr, "key_name", r->in.key_name);
26010 ndr_print_string(ndr, "value_name", r->in.value_name);
26011 ndr_print_uint32(ndr, "offered", r->in.offered);
26014 if (flags & NDR_OUT) {
26015 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
26017 ndr_print_ptr(ndr, "type", r->out.type);
26019 ndr_print_uint32(ndr, "type", *r->out.type);
26021 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26023 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26025 ndr_print_ptr(ndr, "needed", r->out.needed);
26027 ndr_print_uint32(ndr, "needed", *r->out.needed);
26029 ndr_print_WERROR(ndr, "result", r->out.result);
26035 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
26037 if (flags & NDR_IN) {
26038 if (r->in.handle == NULL) {
26039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26041 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26045 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));
26046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26048 if (flags & NDR_OUT) {
26049 if (r->out.buffer == NULL) {
26050 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26053 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26054 if (r->out.needed == NULL) {
26055 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26058 if (r->out.count == NULL) {
26059 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26062 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26064 return NDR_ERR_SUCCESS;
26067 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
26069 TALLOC_CTX *_mem_save_handle_0;
26070 TALLOC_CTX *_mem_save_needed_0;
26071 TALLOC_CTX *_mem_save_count_0;
26072 if (flags & NDR_IN) {
26073 ZERO_STRUCT(r->out);
26075 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26076 NDR_PULL_ALLOC(ndr, r->in.handle);
26078 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26079 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26080 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26082 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26083 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26084 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26085 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));
26087 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26088 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));
26089 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26090 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26091 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26092 NDR_PULL_ALLOC(ndr, r->out.needed);
26093 ZERO_STRUCTP(r->out.needed);
26094 NDR_PULL_ALLOC(ndr, r->out.count);
26095 ZERO_STRUCTP(r->out.count);
26097 if (flags & NDR_OUT) {
26098 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26099 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26100 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26102 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26103 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26104 NDR_PULL_ALLOC(ndr, r->out.needed);
26106 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26107 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26108 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26110 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26111 NDR_PULL_ALLOC(ndr, r->out.count);
26113 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26114 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26117 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26118 if (r->out.buffer) {
26119 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26122 return NDR_ERR_SUCCESS;
26125 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
26127 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
26129 if (flags & NDR_SET_VALUES) {
26130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26132 if (flags & NDR_IN) {
26133 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
26135 ndr_print_ptr(ndr, "handle", r->in.handle);
26137 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26139 ndr_print_string(ndr, "key_name", r->in.key_name);
26140 ndr_print_uint32(ndr, "offered", r->in.offered);
26143 if (flags & NDR_OUT) {
26144 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
26146 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26148 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26150 ndr_print_ptr(ndr, "needed", r->out.needed);
26152 ndr_print_uint32(ndr, "needed", *r->out.needed);
26154 ndr_print_ptr(ndr, "count", r->out.count);
26156 ndr_print_uint32(ndr, "count", *r->out.count);
26158 ndr_print_WERROR(ndr, "result", r->out.result);
26164 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
26166 uint32_t cntr_key_buffer_1;
26167 if (flags & NDR_IN) {
26168 if (r->in.handle == NULL) {
26169 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26171 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26175 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));
26176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
26178 if (flags & NDR_OUT) {
26179 if (r->out.key_buffer == NULL) {
26180 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
26183 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
26184 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
26186 if (r->out.needed == NULL) {
26187 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26190 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26192 return NDR_ERR_SUCCESS;
26195 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
26197 uint32_t cntr_key_buffer_1;
26198 TALLOC_CTX *_mem_save_handle_0;
26199 TALLOC_CTX *_mem_save_key_buffer_1;
26200 TALLOC_CTX *_mem_save_needed_0;
26201 if (flags & NDR_IN) {
26202 ZERO_STRUCT(r->out);
26204 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26205 NDR_PULL_ALLOC(ndr, r->in.handle);
26207 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26208 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26209 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26211 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26212 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26213 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26214 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));
26216 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26217 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));
26218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
26219 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
26220 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
26221 NDR_PULL_ALLOC(ndr, r->out.needed);
26222 ZERO_STRUCTP(r->out.needed);
26224 if (flags & NDR_OUT) {
26225 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
26226 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26227 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
26229 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
26230 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
26231 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
26232 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
26234 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
26235 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26236 NDR_PULL_ALLOC(ndr, r->out.needed);
26238 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26239 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26241 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26242 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26243 if (r->out.key_buffer) {
26244 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
26247 return NDR_ERR_SUCCESS;
26250 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
26252 uint32_t cntr_key_buffer_1;
26253 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
26255 if (flags & NDR_SET_VALUES) {
26256 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26258 if (flags & NDR_IN) {
26259 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
26261 ndr_print_ptr(ndr, "handle", r->in.handle);
26263 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26265 ndr_print_string(ndr, "key_name", r->in.key_name);
26266 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
26269 if (flags & NDR_OUT) {
26270 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
26272 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
26274 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
26276 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
26278 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
26279 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
26285 ndr_print_ptr(ndr, "needed", r->out.needed);
26287 ndr_print_uint32(ndr, "needed", *r->out.needed);
26289 ndr_print_WERROR(ndr, "result", r->out.result);
26295 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
26297 if (flags & NDR_IN) {
26298 if (r->in.handle == NULL) {
26299 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26301 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26305 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));
26306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26309 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));
26311 if (flags & NDR_OUT) {
26312 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26314 return NDR_ERR_SUCCESS;
26317 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
26319 TALLOC_CTX *_mem_save_handle_0;
26320 if (flags & NDR_IN) {
26321 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26322 NDR_PULL_ALLOC(ndr, r->in.handle);
26324 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26325 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26326 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26328 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26329 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26330 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26331 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));
26333 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26334 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));
26335 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26336 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26337 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26338 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));
26340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26341 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));
26343 if (flags & NDR_OUT) {
26344 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26346 return NDR_ERR_SUCCESS;
26349 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
26351 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
26353 if (flags & NDR_SET_VALUES) {
26354 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26356 if (flags & NDR_IN) {
26357 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
26359 ndr_print_ptr(ndr, "handle", r->in.handle);
26361 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26363 ndr_print_string(ndr, "key_name", r->in.key_name);
26364 ndr_print_string(ndr, "value_name", r->in.value_name);
26367 if (flags & NDR_OUT) {
26368 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
26370 ndr_print_WERROR(ndr, "result", r->out.result);
26376 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
26378 if (flags & NDR_IN) {
26379 if (r->in.handle == NULL) {
26380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26382 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26386 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));
26388 if (flags & NDR_OUT) {
26389 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26391 return NDR_ERR_SUCCESS;
26394 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
26396 TALLOC_CTX *_mem_save_handle_0;
26397 if (flags & NDR_IN) {
26398 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26399 NDR_PULL_ALLOC(ndr, r->in.handle);
26401 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26402 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26403 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26405 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26406 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26407 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26408 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));
26410 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26411 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));
26413 if (flags & NDR_OUT) {
26414 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26416 return NDR_ERR_SUCCESS;
26419 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
26421 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
26423 if (flags & NDR_SET_VALUES) {
26424 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26426 if (flags & NDR_IN) {
26427 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
26429 ndr_print_ptr(ndr, "handle", r->in.handle);
26431 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26433 ndr_print_string(ndr, "key_name", r->in.key_name);
26436 if (flags & NDR_OUT) {
26437 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
26439 ndr_print_WERROR(ndr, "result", r->out.result);
26445 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
26447 if (flags & NDR_IN) {
26449 if (flags & NDR_OUT) {
26450 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26452 return NDR_ERR_SUCCESS;
26455 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
26457 if (flags & NDR_IN) {
26459 if (flags & NDR_OUT) {
26460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26462 return NDR_ERR_SUCCESS;
26465 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
26467 ndr_print_struct(ndr, name, "spoolss_53");
26469 if (flags & NDR_SET_VALUES) {
26470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26472 if (flags & NDR_IN) {
26473 ndr_print_struct(ndr, "in", "spoolss_53");
26477 if (flags & NDR_OUT) {
26478 ndr_print_struct(ndr, "out", "spoolss_53");
26480 ndr_print_WERROR(ndr, "result", r->out.result);
26486 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26488 if (flags & NDR_IN) {
26489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26490 if (r->in.server) {
26491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26494 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26497 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26498 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26499 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26503 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26504 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
26505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
26507 if (flags & NDR_OUT) {
26508 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26510 return NDR_ERR_SUCCESS;
26513 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
26515 uint32_t _ptr_server;
26516 TALLOC_CTX *_mem_save_server_0;
26517 if (flags & NDR_IN) {
26518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26520 NDR_PULL_ALLOC(ndr, r->in.server);
26522 r->in.server = NULL;
26524 if (r->in.server) {
26525 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26526 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26527 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26528 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26529 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26530 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));
26532 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26533 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26536 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26537 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26538 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26539 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));
26541 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26542 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26543 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26544 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26545 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
26546 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));
26548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
26549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
26550 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
26551 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
26553 if (flags & NDR_OUT) {
26554 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26556 return NDR_ERR_SUCCESS;
26559 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26561 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
26563 if (flags & NDR_SET_VALUES) {
26564 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26566 if (flags & NDR_IN) {
26567 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
26569 ndr_print_ptr(ndr, "server", r->in.server);
26571 if (r->in.server) {
26572 ndr_print_string(ndr, "server", r->in.server);
26575 ndr_print_string(ndr, "architecture", r->in.architecture);
26576 ndr_print_string(ndr, "driver", r->in.driver);
26577 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
26578 ndr_print_uint32(ndr, "version", r->in.version);
26581 if (flags & NDR_OUT) {
26582 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
26584 ndr_print_WERROR(ndr, "result", r->out.result);
26590 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
26592 if (flags & NDR_IN) {
26594 if (flags & NDR_OUT) {
26595 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26597 return NDR_ERR_SUCCESS;
26600 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
26602 if (flags & NDR_IN) {
26604 if (flags & NDR_OUT) {
26605 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26607 return NDR_ERR_SUCCESS;
26610 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
26612 ndr_print_struct(ndr, name, "spoolss_55");
26614 if (flags & NDR_SET_VALUES) {
26615 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26617 if (flags & NDR_IN) {
26618 ndr_print_struct(ndr, "in", "spoolss_55");
26622 if (flags & NDR_OUT) {
26623 ndr_print_struct(ndr, "out", "spoolss_55");
26625 ndr_print_WERROR(ndr, "result", r->out.result);
26631 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
26633 if (flags & NDR_IN) {
26635 if (flags & NDR_OUT) {
26636 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26638 return NDR_ERR_SUCCESS;
26641 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
26643 if (flags & NDR_IN) {
26645 if (flags & NDR_OUT) {
26646 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26648 return NDR_ERR_SUCCESS;
26651 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
26653 ndr_print_struct(ndr, name, "spoolss_56");
26655 if (flags & NDR_SET_VALUES) {
26656 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26658 if (flags & NDR_IN) {
26659 ndr_print_struct(ndr, "in", "spoolss_56");
26663 if (flags & NDR_OUT) {
26664 ndr_print_struct(ndr, "out", "spoolss_56");
26666 ndr_print_WERROR(ndr, "result", r->out.result);
26672 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
26674 if (flags & NDR_IN) {
26676 if (flags & NDR_OUT) {
26677 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26679 return NDR_ERR_SUCCESS;
26682 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
26684 if (flags & NDR_IN) {
26686 if (flags & NDR_OUT) {
26687 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26689 return NDR_ERR_SUCCESS;
26692 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
26694 ndr_print_struct(ndr, name, "spoolss_57");
26696 if (flags & NDR_SET_VALUES) {
26697 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26699 if (flags & NDR_IN) {
26700 ndr_print_struct(ndr, "in", "spoolss_57");
26704 if (flags & NDR_OUT) {
26705 ndr_print_struct(ndr, "out", "spoolss_57");
26707 ndr_print_WERROR(ndr, "result", r->out.result);
26713 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
26715 if (flags & NDR_IN) {
26716 if (r->in.handle == NULL) {
26717 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26719 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26723 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));
26724 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
26725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
26726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26727 if (r->in.status_code == NULL) {
26728 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
26732 if (flags & NDR_OUT) {
26733 if (r->out.out_data == NULL) {
26734 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26737 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
26738 if (r->out.needed == NULL) {
26739 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26742 if (r->out.status_code == NULL) {
26743 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
26746 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26748 return NDR_ERR_SUCCESS;
26751 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
26753 TALLOC_CTX *_mem_save_handle_0;
26754 TALLOC_CTX *_mem_save_needed_0;
26755 TALLOC_CTX *_mem_save_status_code_0;
26756 if (flags & NDR_IN) {
26757 ZERO_STRUCT(r->out);
26759 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26760 NDR_PULL_ALLOC(ndr, r->in.handle);
26762 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26763 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26764 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26766 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
26767 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
26768 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
26769 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));
26771 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
26772 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));
26773 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
26774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
26775 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
26776 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26777 NDR_PULL_ALLOC(ndr, r->in.status_code);
26779 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26780 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
26781 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
26782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26783 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
26784 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
26785 NDR_PULL_ALLOC(ndr, r->out.needed);
26786 ZERO_STRUCTP(r->out.needed);
26787 NDR_PULL_ALLOC(ndr, r->out.status_code);
26788 *r->out.status_code = *r->in.status_code;
26790 if (flags & NDR_OUT) {
26791 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
26792 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26793 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
26795 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
26796 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26797 NDR_PULL_ALLOC(ndr, r->out.needed);
26799 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26800 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26803 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26804 NDR_PULL_ALLOC(ndr, r->out.status_code);
26806 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26807 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
26808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
26809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26810 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26811 if (r->out.out_data) {
26812 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
26815 return NDR_ERR_SUCCESS;
26818 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
26820 ndr_print_struct(ndr, name, "spoolss_XcvData");
26822 if (flags & NDR_SET_VALUES) {
26823 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26825 if (flags & NDR_IN) {
26826 ndr_print_struct(ndr, "in", "spoolss_XcvData");
26828 ndr_print_ptr(ndr, "handle", r->in.handle);
26830 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26832 ndr_print_string(ndr, "function_name", r->in.function_name);
26833 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
26834 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
26835 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
26836 ndr_print_ptr(ndr, "status_code", r->in.status_code);
26838 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
26842 if (flags & NDR_OUT) {
26843 ndr_print_struct(ndr, "out", "spoolss_XcvData");
26845 ndr_print_ptr(ndr, "out_data", r->out.out_data);
26847 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
26849 ndr_print_ptr(ndr, "needed", r->out.needed);
26851 ndr_print_uint32(ndr, "needed", *r->out.needed);
26853 ndr_print_ptr(ndr, "status_code", r->out.status_code);
26855 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
26857 ndr_print_WERROR(ndr, "result", r->out.result);
26863 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
26865 if (flags & NDR_IN) {
26866 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26867 if (r->in.servername) {
26868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26871 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26873 if (r->in.info_ctr == NULL) {
26874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26876 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26877 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
26879 if (flags & NDR_OUT) {
26880 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26882 return NDR_ERR_SUCCESS;
26885 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
26887 uint32_t _ptr_servername;
26888 TALLOC_CTX *_mem_save_servername_0;
26889 TALLOC_CTX *_mem_save_info_ctr_0;
26890 if (flags & NDR_IN) {
26891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
26892 if (_ptr_servername) {
26893 NDR_PULL_ALLOC(ndr, r->in.servername);
26895 r->in.servername = NULL;
26897 if (r->in.servername) {
26898 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
26899 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
26900 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
26901 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
26902 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
26903 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));
26905 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
26906 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
26907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
26909 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26910 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
26912 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
26913 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
26914 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
26916 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
26918 if (flags & NDR_OUT) {
26919 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26921 return NDR_ERR_SUCCESS;
26924 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
26926 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
26928 if (flags & NDR_SET_VALUES) {
26929 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26931 if (flags & NDR_IN) {
26932 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
26934 ndr_print_ptr(ndr, "servername", r->in.servername);
26936 if (r->in.servername) {
26937 ndr_print_string(ndr, "servername", r->in.servername);
26940 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
26942 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
26944 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
26947 if (flags & NDR_OUT) {
26948 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
26950 ndr_print_WERROR(ndr, "result", r->out.result);
26956 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
26958 if (flags & NDR_IN) {
26960 if (flags & NDR_OUT) {
26961 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26963 return NDR_ERR_SUCCESS;
26966 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
26968 if (flags & NDR_IN) {
26970 if (flags & NDR_OUT) {
26971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26973 return NDR_ERR_SUCCESS;
26976 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
26978 ndr_print_struct(ndr, name, "spoolss_5a");
26980 if (flags & NDR_SET_VALUES) {
26981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26983 if (flags & NDR_IN) {
26984 ndr_print_struct(ndr, "in", "spoolss_5a");
26988 if (flags & NDR_OUT) {
26989 ndr_print_struct(ndr, "out", "spoolss_5a");
26991 ndr_print_WERROR(ndr, "result", r->out.result);
26997 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
26999 if (flags & NDR_IN) {
27001 if (flags & NDR_OUT) {
27002 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27004 return NDR_ERR_SUCCESS;
27007 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
27009 if (flags & NDR_IN) {
27011 if (flags & NDR_OUT) {
27012 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27014 return NDR_ERR_SUCCESS;
27017 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
27019 ndr_print_struct(ndr, name, "spoolss_5b");
27021 if (flags & NDR_SET_VALUES) {
27022 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27024 if (flags & NDR_IN) {
27025 ndr_print_struct(ndr, "in", "spoolss_5b");
27029 if (flags & NDR_OUT) {
27030 ndr_print_struct(ndr, "out", "spoolss_5b");
27032 ndr_print_WERROR(ndr, "result", r->out.result);
27038 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
27040 if (flags & NDR_IN) {
27042 if (flags & NDR_OUT) {
27043 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27045 return NDR_ERR_SUCCESS;
27048 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
27050 if (flags & NDR_IN) {
27052 if (flags & NDR_OUT) {
27053 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27055 return NDR_ERR_SUCCESS;
27058 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
27060 ndr_print_struct(ndr, name, "spoolss_5c");
27062 if (flags & NDR_SET_VALUES) {
27063 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27065 if (flags & NDR_IN) {
27066 ndr_print_struct(ndr, "in", "spoolss_5c");
27070 if (flags & NDR_OUT) {
27071 ndr_print_struct(ndr, "out", "spoolss_5c");
27073 ndr_print_WERROR(ndr, "result", r->out.result);
27079 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
27081 if (flags & NDR_IN) {
27083 if (flags & NDR_OUT) {
27084 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27086 return NDR_ERR_SUCCESS;
27089 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
27091 if (flags & NDR_IN) {
27093 if (flags & NDR_OUT) {
27094 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27096 return NDR_ERR_SUCCESS;
27099 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
27101 ndr_print_struct(ndr, name, "spoolss_5d");
27103 if (flags & NDR_SET_VALUES) {
27104 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27106 if (flags & NDR_IN) {
27107 ndr_print_struct(ndr, "in", "spoolss_5d");
27111 if (flags & NDR_OUT) {
27112 ndr_print_struct(ndr, "out", "spoolss_5d");
27114 ndr_print_WERROR(ndr, "result", r->out.result);
27120 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
27122 if (flags & NDR_IN) {
27124 if (flags & NDR_OUT) {
27125 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27127 return NDR_ERR_SUCCESS;
27130 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
27132 if (flags & NDR_IN) {
27134 if (flags & NDR_OUT) {
27135 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27137 return NDR_ERR_SUCCESS;
27140 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
27142 ndr_print_struct(ndr, name, "spoolss_5e");
27144 if (flags & NDR_SET_VALUES) {
27145 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27147 if (flags & NDR_IN) {
27148 ndr_print_struct(ndr, "in", "spoolss_5e");
27152 if (flags & NDR_OUT) {
27153 ndr_print_struct(ndr, "out", "spoolss_5e");
27155 ndr_print_WERROR(ndr, "result", r->out.result);
27161 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
27163 if (flags & NDR_IN) {
27165 if (flags & NDR_OUT) {
27166 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27168 return NDR_ERR_SUCCESS;
27171 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
27173 if (flags & NDR_IN) {
27175 if (flags & NDR_OUT) {
27176 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27178 return NDR_ERR_SUCCESS;
27181 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
27183 ndr_print_struct(ndr, name, "spoolss_5f");
27185 if (flags & NDR_SET_VALUES) {
27186 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27188 if (flags & NDR_IN) {
27189 ndr_print_struct(ndr, "in", "spoolss_5f");
27193 if (flags & NDR_OUT) {
27194 ndr_print_struct(ndr, "out", "spoolss_5f");
27196 ndr_print_WERROR(ndr, "result", r->out.result);
27202 static const struct ndr_interface_call spoolss_calls[] = {
27204 "spoolss_EnumPrinters",
27205 sizeof(struct spoolss_EnumPrinters),
27206 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
27207 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
27208 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
27212 "spoolss_OpenPrinter",
27213 sizeof(struct spoolss_OpenPrinter),
27214 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
27215 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
27216 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
27221 sizeof(struct spoolss_SetJob),
27222 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
27223 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
27224 (ndr_print_function_t) ndr_print_spoolss_SetJob,
27229 sizeof(struct spoolss_GetJob),
27230 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
27231 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
27232 (ndr_print_function_t) ndr_print_spoolss_GetJob,
27236 "spoolss_EnumJobs",
27237 sizeof(struct spoolss_EnumJobs),
27238 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
27239 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
27240 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
27244 "spoolss_AddPrinter",
27245 sizeof(struct spoolss_AddPrinter),
27246 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
27247 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
27248 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
27252 "spoolss_DeletePrinter",
27253 sizeof(struct spoolss_DeletePrinter),
27254 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
27255 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
27256 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
27260 "spoolss_SetPrinter",
27261 sizeof(struct spoolss_SetPrinter),
27262 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
27263 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
27264 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
27268 "spoolss_GetPrinter",
27269 sizeof(struct spoolss_GetPrinter),
27270 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
27271 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
27272 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
27276 "spoolss_AddPrinterDriver",
27277 sizeof(struct spoolss_AddPrinterDriver),
27278 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
27279 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
27280 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
27284 "spoolss_EnumPrinterDrivers",
27285 sizeof(struct spoolss_EnumPrinterDrivers),
27286 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
27287 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
27288 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
27292 "spoolss_GetPrinterDriver",
27293 sizeof(struct spoolss_GetPrinterDriver),
27294 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
27295 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
27296 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
27300 "spoolss_GetPrinterDriverDirectory",
27301 sizeof(struct spoolss_GetPrinterDriverDirectory),
27302 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
27303 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
27304 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
27308 "spoolss_DeletePrinterDriver",
27309 sizeof(struct spoolss_DeletePrinterDriver),
27310 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
27311 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
27312 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
27316 "spoolss_AddPrintProcessor",
27317 sizeof(struct spoolss_AddPrintProcessor),
27318 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
27319 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
27320 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
27324 "spoolss_EnumPrintProcessors",
27325 sizeof(struct spoolss_EnumPrintProcessors),
27326 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
27327 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
27328 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
27332 "spoolss_GetPrintProcessorDirectory",
27333 sizeof(struct spoolss_GetPrintProcessorDirectory),
27334 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
27335 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
27336 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
27340 "spoolss_StartDocPrinter",
27341 sizeof(struct spoolss_StartDocPrinter),
27342 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
27343 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
27344 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
27348 "spoolss_StartPagePrinter",
27349 sizeof(struct spoolss_StartPagePrinter),
27350 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
27351 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
27352 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
27356 "spoolss_WritePrinter",
27357 sizeof(struct spoolss_WritePrinter),
27358 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
27359 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
27360 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
27364 "spoolss_EndPagePrinter",
27365 sizeof(struct spoolss_EndPagePrinter),
27366 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
27367 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
27368 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
27372 "spoolss_AbortPrinter",
27373 sizeof(struct spoolss_AbortPrinter),
27374 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
27375 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
27376 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
27380 "spoolss_ReadPrinter",
27381 sizeof(struct spoolss_ReadPrinter),
27382 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
27383 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
27384 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
27388 "spoolss_EndDocPrinter",
27389 sizeof(struct spoolss_EndDocPrinter),
27390 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
27391 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
27392 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
27397 sizeof(struct spoolss_AddJob),
27398 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
27399 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
27400 (ndr_print_function_t) ndr_print_spoolss_AddJob,
27404 "spoolss_ScheduleJob",
27405 sizeof(struct spoolss_ScheduleJob),
27406 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
27407 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
27408 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
27412 "spoolss_GetPrinterData",
27413 sizeof(struct spoolss_GetPrinterData),
27414 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
27415 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
27416 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
27420 "spoolss_SetPrinterData",
27421 sizeof(struct spoolss_SetPrinterData),
27422 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
27423 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
27424 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
27428 "spoolss_WaitForPrinterChange",
27429 sizeof(struct spoolss_WaitForPrinterChange),
27430 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
27431 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
27432 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
27436 "spoolss_ClosePrinter",
27437 sizeof(struct spoolss_ClosePrinter),
27438 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
27439 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
27440 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
27445 sizeof(struct spoolss_AddForm),
27446 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
27447 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
27448 (ndr_print_function_t) ndr_print_spoolss_AddForm,
27452 "spoolss_DeleteForm",
27453 sizeof(struct spoolss_DeleteForm),
27454 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
27455 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
27456 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
27461 sizeof(struct spoolss_GetForm),
27462 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
27463 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
27464 (ndr_print_function_t) ndr_print_spoolss_GetForm,
27469 sizeof(struct spoolss_SetForm),
27470 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
27471 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
27472 (ndr_print_function_t) ndr_print_spoolss_SetForm,
27476 "spoolss_EnumForms",
27477 sizeof(struct spoolss_EnumForms),
27478 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
27479 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
27480 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
27484 "spoolss_EnumPorts",
27485 sizeof(struct spoolss_EnumPorts),
27486 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
27487 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
27488 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
27492 "spoolss_EnumMonitors",
27493 sizeof(struct spoolss_EnumMonitors),
27494 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
27495 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
27496 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
27501 sizeof(struct spoolss_AddPort),
27502 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
27503 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
27504 (ndr_print_function_t) ndr_print_spoolss_AddPort,
27508 "spoolss_ConfigurePort",
27509 sizeof(struct spoolss_ConfigurePort),
27510 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
27511 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
27512 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
27516 "spoolss_DeletePort",
27517 sizeof(struct spoolss_DeletePort),
27518 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
27519 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
27520 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
27524 "spoolss_CreatePrinterIC",
27525 sizeof(struct spoolss_CreatePrinterIC),
27526 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
27527 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
27528 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
27532 "spoolss_PlayGDIScriptOnPrinterIC",
27533 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
27534 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
27535 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
27536 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
27540 "spoolss_DeletePrinterIC",
27541 sizeof(struct spoolss_DeletePrinterIC),
27542 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
27543 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
27544 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
27548 "spoolss_AddPrinterConnection",
27549 sizeof(struct spoolss_AddPrinterConnection),
27550 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
27551 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
27552 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
27556 "spoolss_DeletePrinterConnection",
27557 sizeof(struct spoolss_DeletePrinterConnection),
27558 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
27559 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
27560 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
27564 "spoolss_PrinterMessageBox",
27565 sizeof(struct spoolss_PrinterMessageBox),
27566 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
27567 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
27568 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
27572 "spoolss_AddMonitor",
27573 sizeof(struct spoolss_AddMonitor),
27574 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
27575 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
27576 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
27580 "spoolss_DeleteMonitor",
27581 sizeof(struct spoolss_DeleteMonitor),
27582 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
27583 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
27584 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
27588 "spoolss_DeletePrintProcessor",
27589 sizeof(struct spoolss_DeletePrintProcessor),
27590 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
27591 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
27592 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
27596 "spoolss_AddPrintProvidor",
27597 sizeof(struct spoolss_AddPrintProvidor),
27598 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
27599 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
27600 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
27604 "spoolss_DeletePrintProvidor",
27605 sizeof(struct spoolss_DeletePrintProvidor),
27606 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
27607 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
27608 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
27612 "spoolss_EnumPrintProcDataTypes",
27613 sizeof(struct spoolss_EnumPrintProcDataTypes),
27614 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
27615 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
27616 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
27620 "spoolss_ResetPrinter",
27621 sizeof(struct spoolss_ResetPrinter),
27622 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
27623 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
27624 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
27628 "spoolss_GetPrinterDriver2",
27629 sizeof(struct spoolss_GetPrinterDriver2),
27630 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
27631 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
27632 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
27636 "spoolss_FindFirstPrinterChangeNotification",
27637 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
27638 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
27639 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
27640 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
27644 "spoolss_FindNextPrinterChangeNotification",
27645 sizeof(struct spoolss_FindNextPrinterChangeNotification),
27646 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
27647 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
27648 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
27652 "spoolss_FindClosePrinterNotify",
27653 sizeof(struct spoolss_FindClosePrinterNotify),
27654 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
27655 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
27656 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
27660 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27661 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
27662 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27663 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27664 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27668 "spoolss_ReplyOpenPrinter",
27669 sizeof(struct spoolss_ReplyOpenPrinter),
27670 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
27671 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
27672 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
27676 "spoolss_RouterReplyPrinter",
27677 sizeof(struct spoolss_RouterReplyPrinter),
27678 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
27679 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
27680 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
27684 "spoolss_ReplyClosePrinter",
27685 sizeof(struct spoolss_ReplyClosePrinter),
27686 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
27687 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
27688 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
27692 "spoolss_AddPortEx",
27693 sizeof(struct spoolss_AddPortEx),
27694 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
27695 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
27696 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
27700 "spoolss_RouterFindFirstPrinterChangeNotification",
27701 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
27702 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
27703 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
27704 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
27708 "spoolss_SpoolerInit",
27709 sizeof(struct spoolss_SpoolerInit),
27710 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
27711 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
27712 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
27716 "spoolss_ResetPrinterEx",
27717 sizeof(struct spoolss_ResetPrinterEx),
27718 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
27719 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
27720 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
27724 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27725 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
27726 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27727 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27728 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27732 "spoolss_RouterReplyPrinterEx",
27733 sizeof(struct spoolss_RouterReplyPrinterEx),
27734 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
27735 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
27736 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
27740 "spoolss_RouterRefreshPrinterChangeNotify",
27741 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
27742 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
27743 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
27744 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
27749 sizeof(struct spoolss_44),
27750 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
27751 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
27752 (ndr_print_function_t) ndr_print_spoolss_44,
27756 "spoolss_OpenPrinterEx",
27757 sizeof(struct spoolss_OpenPrinterEx),
27758 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
27759 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
27760 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
27764 "spoolss_AddPrinterEx",
27765 sizeof(struct spoolss_AddPrinterEx),
27766 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
27767 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
27768 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
27773 sizeof(struct spoolss_47),
27774 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
27775 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
27776 (ndr_print_function_t) ndr_print_spoolss_47,
27780 "spoolss_EnumPrinterData",
27781 sizeof(struct spoolss_EnumPrinterData),
27782 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
27783 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
27784 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
27788 "spoolss_DeletePrinterData",
27789 sizeof(struct spoolss_DeletePrinterData),
27790 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
27791 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
27792 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
27797 sizeof(struct spoolss_4a),
27798 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
27799 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
27800 (ndr_print_function_t) ndr_print_spoolss_4a,
27805 sizeof(struct spoolss_4b),
27806 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
27807 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
27808 (ndr_print_function_t) ndr_print_spoolss_4b,
27813 sizeof(struct spoolss_4c),
27814 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
27815 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
27816 (ndr_print_function_t) ndr_print_spoolss_4c,
27820 "spoolss_SetPrinterDataEx",
27821 sizeof(struct spoolss_SetPrinterDataEx),
27822 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
27823 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
27824 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
27828 "spoolss_GetPrinterDataEx",
27829 sizeof(struct spoolss_GetPrinterDataEx),
27830 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
27831 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
27832 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
27836 "spoolss_EnumPrinterDataEx",
27837 sizeof(struct spoolss_EnumPrinterDataEx),
27838 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
27839 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
27840 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
27844 "spoolss_EnumPrinterKey",
27845 sizeof(struct spoolss_EnumPrinterKey),
27846 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
27847 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
27848 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
27852 "spoolss_DeletePrinterDataEx",
27853 sizeof(struct spoolss_DeletePrinterDataEx),
27854 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
27855 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
27856 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
27860 "spoolss_DeletePrinterKey",
27861 sizeof(struct spoolss_DeletePrinterKey),
27862 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
27863 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
27864 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
27869 sizeof(struct spoolss_53),
27870 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
27871 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
27872 (ndr_print_function_t) ndr_print_spoolss_53,
27876 "spoolss_DeletePrinterDriverEx",
27877 sizeof(struct spoolss_DeletePrinterDriverEx),
27878 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
27879 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
27880 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
27885 sizeof(struct spoolss_55),
27886 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
27887 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
27888 (ndr_print_function_t) ndr_print_spoolss_55,
27893 sizeof(struct spoolss_56),
27894 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
27895 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
27896 (ndr_print_function_t) ndr_print_spoolss_56,
27901 sizeof(struct spoolss_57),
27902 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
27903 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
27904 (ndr_print_function_t) ndr_print_spoolss_57,
27909 sizeof(struct spoolss_XcvData),
27910 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
27911 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
27912 (ndr_print_function_t) ndr_print_spoolss_XcvData,
27916 "spoolss_AddPrinterDriverEx",
27917 sizeof(struct spoolss_AddPrinterDriverEx),
27918 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
27919 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
27920 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
27925 sizeof(struct spoolss_5a),
27926 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
27927 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
27928 (ndr_print_function_t) ndr_print_spoolss_5a,
27933 sizeof(struct spoolss_5b),
27934 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
27935 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
27936 (ndr_print_function_t) ndr_print_spoolss_5b,
27941 sizeof(struct spoolss_5c),
27942 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
27943 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
27944 (ndr_print_function_t) ndr_print_spoolss_5c,
27949 sizeof(struct spoolss_5d),
27950 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
27951 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
27952 (ndr_print_function_t) ndr_print_spoolss_5d,
27957 sizeof(struct spoolss_5e),
27958 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
27959 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
27960 (ndr_print_function_t) ndr_print_spoolss_5e,
27965 sizeof(struct spoolss_5f),
27966 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
27967 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
27968 (ndr_print_function_t) ndr_print_spoolss_5f,
27971 { NULL, 0, NULL, NULL, NULL, false }
27974 static const char * const spoolss_endpoint_strings[] = {
27975 "ncacn_np:[\\pipe\\spoolss]",
27978 static const struct ndr_interface_string_array spoolss_endpoints = {
27980 .names = spoolss_endpoint_strings
27983 static const char * const spoolss_authservice_strings[] = {
27987 static const struct ndr_interface_string_array spoolss_authservices = {
27989 .names = spoolss_authservice_strings
27993 const struct ndr_interface_table ndr_table_spoolss = {
27996 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
27997 NDR_SPOOLSS_VERSION
27999 .helpstring = NDR_SPOOLSS_HELPSTRING,
28001 .calls = spoolss_calls,
28002 .endpoints = &spoolss_endpoints,
28003 .authservices = &spoolss_authservices