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 _PUBLIC_ 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 _PUBLIC_ 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 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo0(const struct spoolss_PrinterInfo0 *r, struct smb_iconv_convenience *ic, int flags)
517 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo0, ic);
520 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
523 return NDR_ERR_SUCCESS;
526 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
531 return NDR_ERR_SUCCESS;
534 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
536 ndr_print_uint32(ndr, name, r);
538 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
539 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
540 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
541 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
542 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
543 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
544 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
545 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
546 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
547 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
548 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
549 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
550 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
551 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
552 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
553 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
554 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
555 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
556 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
557 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
558 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
559 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
560 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
561 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
562 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
563 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
564 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
565 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
569 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
571 if (ndr_flags & NDR_SCALARS) {
572 NDR_CHECK(ndr_push_align(ndr, 4));
573 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
574 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
575 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
576 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
577 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
578 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
579 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
580 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
581 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
582 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
583 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
584 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
585 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
586 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
587 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
588 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
589 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
590 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
591 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
592 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
593 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
598 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
608 uint32_t _flags_save_DATA_BLOB = ndr->flags;
609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
611 struct ndr_push *_ndr_driverextra_data;
612 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
613 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
614 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
616 ndr->flags = _flags_save_DATA_BLOB;
619 if (ndr_flags & NDR_BUFFERS) {
621 return NDR_ERR_SUCCESS;
624 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
626 if (ndr_flags & NDR_SCALARS) {
627 NDR_CHECK(ndr_pull_align(ndr, 4));
628 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
629 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
630 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
631 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
632 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
633 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
634 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
635 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
636 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
637 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
638 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
639 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
640 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
641 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
642 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
643 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
644 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
645 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
646 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
647 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
648 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
651 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
653 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
655 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
656 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
658 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
661 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
663 uint32_t _flags_save_DATA_BLOB = ndr->flags;
664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
666 struct ndr_pull *_ndr_driverextra_data;
667 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
668 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
669 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
671 ndr->flags = _flags_save_DATA_BLOB;
674 if (ndr_flags & NDR_BUFFERS) {
676 return NDR_ERR_SUCCESS;
679 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
681 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
683 ndr_print_string(ndr, "devicename", r->devicename);
684 ndr_print_uint16(ndr, "specversion", r->specversion);
685 ndr_print_uint16(ndr, "driverversion", r->driverversion);
686 ndr_print_uint16(ndr, "size", r->size);
687 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
688 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
689 ndr_print_uint16(ndr, "orientation", r->orientation);
690 ndr_print_uint16(ndr, "papersize", r->papersize);
691 ndr_print_uint16(ndr, "paperlength", r->paperlength);
692 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
693 ndr_print_uint16(ndr, "scale", r->scale);
694 ndr_print_uint16(ndr, "copies", r->copies);
695 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
696 ndr_print_uint16(ndr, "printquality", r->printquality);
697 ndr_print_uint16(ndr, "color", r->color);
698 ndr_print_uint16(ndr, "duplex", r->duplex);
699 ndr_print_uint16(ndr, "yresolution", r->yresolution);
700 ndr_print_uint16(ndr, "ttoption", r->ttoption);
701 ndr_print_uint16(ndr, "collate", r->collate);
702 ndr_print_string(ndr, "formname", r->formname);
703 ndr_print_uint16(ndr, "logpixels", r->logpixels);
704 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
705 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
706 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
707 ndr_print_uint32(ndr, "displayflags", r->displayflags);
708 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
709 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
710 ndr_print_uint32(ndr, "icmintent", r->icmintent);
711 ndr_print_uint32(ndr, "mediatype", r->mediatype);
712 ndr_print_uint32(ndr, "dithertype", r->dithertype);
713 ndr_print_uint32(ndr, "reserved1", r->reserved1);
714 ndr_print_uint32(ndr, "reserved2", r->reserved2);
715 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
716 ndr_print_uint32(ndr, "panningheight", r->panningheight);
717 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
721 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
723 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
726 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
729 return NDR_ERR_SUCCESS;
732 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
737 return NDR_ERR_SUCCESS;
740 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
742 ndr_print_uint32(ndr, name, r);
744 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
745 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
746 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
747 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
748 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
749 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
750 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
751 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
752 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
753 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
754 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
755 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
756 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
757 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
758 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
759 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
760 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
761 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
762 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
768 if (ndr_flags & NDR_SCALARS) {
769 NDR_CHECK(ndr_push_align(ndr, 4));
770 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
772 uint32_t _flags_save_string = ndr->flags;
773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
774 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
775 ndr->flags = _flags_save_string;
778 uint32_t _flags_save_string = ndr->flags;
779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
780 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
781 ndr->flags = _flags_save_string;
784 uint32_t _flags_save_string = ndr->flags;
785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
786 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
787 ndr->flags = _flags_save_string;
790 if (ndr_flags & NDR_BUFFERS) {
792 uint32_t _flags_save_string = ndr->flags;
793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
795 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
796 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
798 ndr->flags = _flags_save_string;
801 uint32_t _flags_save_string = ndr->flags;
802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
803 if (r->description) {
804 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
805 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
807 ndr->flags = _flags_save_string;
810 uint32_t _flags_save_string = ndr->flags;
811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
813 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
814 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
816 ndr->flags = _flags_save_string;
819 return NDR_ERR_SUCCESS;
822 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
825 TALLOC_CTX *_mem_save_name_0;
826 uint32_t _ptr_description;
827 TALLOC_CTX *_mem_save_description_0;
828 uint32_t _ptr_comment;
829 TALLOC_CTX *_mem_save_comment_0;
830 if (ndr_flags & NDR_SCALARS) {
831 NDR_CHECK(ndr_pull_align(ndr, 4));
832 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
834 uint32_t _flags_save_string = ndr->flags;
835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
838 NDR_PULL_ALLOC(ndr, r->name);
839 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
843 ndr->flags = _flags_save_string;
846 uint32_t _flags_save_string = ndr->flags;
847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
849 if (_ptr_description) {
850 NDR_PULL_ALLOC(ndr, r->description);
851 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
853 r->description = NULL;
855 ndr->flags = _flags_save_string;
858 uint32_t _flags_save_string = ndr->flags;
859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
862 NDR_PULL_ALLOC(ndr, r->comment);
863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
867 ndr->flags = _flags_save_string;
870 if (ndr_flags & NDR_BUFFERS) {
872 uint32_t _flags_save_string = ndr->flags;
873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
875 uint32_t _relative_save_offset;
876 _relative_save_offset = ndr->offset;
877 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
878 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
879 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
880 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
882 ndr->offset = _relative_save_offset;
884 ndr->flags = _flags_save_string;
887 uint32_t _flags_save_string = ndr->flags;
888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
889 if (r->description) {
890 uint32_t _relative_save_offset;
891 _relative_save_offset = ndr->offset;
892 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
893 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
894 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
895 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
896 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
897 ndr->offset = _relative_save_offset;
899 ndr->flags = _flags_save_string;
902 uint32_t _flags_save_string = ndr->flags;
903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
905 uint32_t _relative_save_offset;
906 _relative_save_offset = ndr->offset;
907 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
908 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
909 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
910 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
912 ndr->offset = _relative_save_offset;
914 ndr->flags = _flags_save_string;
917 return NDR_ERR_SUCCESS;
920 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
922 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
924 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
925 ndr_print_ptr(ndr, "name", r->name);
928 ndr_print_string(ndr, "name", r->name);
931 ndr_print_ptr(ndr, "description", r->description);
933 if (r->description) {
934 ndr_print_string(ndr, "description", r->description);
937 ndr_print_ptr(ndr, "comment", r->comment);
940 ndr_print_string(ndr, "comment", r->comment);
946 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo1(const struct spoolss_PrinterInfo1 *r, struct smb_iconv_convenience *ic, int flags)
948 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo1, ic);
951 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
954 return NDR_ERR_SUCCESS;
957 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
962 return NDR_ERR_SUCCESS;
965 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
967 ndr_print_uint32(ndr, name, r);
969 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
970 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
971 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
972 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
973 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
974 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
975 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
976 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
977 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
978 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
979 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
980 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
981 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
982 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
983 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
984 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
988 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
990 if (ndr_flags & NDR_SCALARS) {
991 NDR_CHECK(ndr_push_align(ndr, 4));
993 uint32_t _flags_save_string = ndr->flags;
994 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
995 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
996 ndr->flags = _flags_save_string;
999 uint32_t _flags_save_string = ndr->flags;
1000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1001 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1002 ndr->flags = _flags_save_string;
1005 uint32_t _flags_save_string = ndr->flags;
1006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1007 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
1008 ndr->flags = _flags_save_string;
1011 uint32_t _flags_save_string = ndr->flags;
1012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1013 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1014 ndr->flags = _flags_save_string;
1017 uint32_t _flags_save_string = ndr->flags;
1018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1019 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
1020 ndr->flags = _flags_save_string;
1023 uint32_t _flags_save_string = ndr->flags;
1024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1025 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
1026 ndr->flags = _flags_save_string;
1029 uint32_t _flags_save_string = ndr->flags;
1030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1031 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
1032 ndr->flags = _flags_save_string;
1034 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
1039 ndr->flags = _flags_save_string;
1042 uint32_t _flags_save_string = ndr->flags;
1043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1045 ndr->flags = _flags_save_string;
1048 uint32_t _flags_save_string = ndr->flags;
1049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1051 ndr->flags = _flags_save_string;
1054 uint32_t _flags_save_string = ndr->flags;
1055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1056 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1057 ndr->flags = _flags_save_string;
1059 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1060 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1065 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1069 if (ndr_flags & NDR_BUFFERS) {
1071 uint32_t _flags_save_string = ndr->flags;
1072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1073 if (r->servername) {
1074 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1075 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1077 ndr->flags = _flags_save_string;
1080 uint32_t _flags_save_string = ndr->flags;
1081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1082 if (r->printername) {
1083 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1086 ndr->flags = _flags_save_string;
1089 uint32_t _flags_save_string = ndr->flags;
1090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1092 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1093 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1095 ndr->flags = _flags_save_string;
1098 uint32_t _flags_save_string = ndr->flags;
1099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1101 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1102 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1104 ndr->flags = _flags_save_string;
1107 uint32_t _flags_save_string = ndr->flags;
1108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1109 if (r->drivername) {
1110 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1111 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1113 ndr->flags = _flags_save_string;
1116 uint32_t _flags_save_string = ndr->flags;
1117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1119 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1120 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1122 ndr->flags = _flags_save_string;
1125 uint32_t _flags_save_string = ndr->flags;
1126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1128 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1129 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1131 ndr->flags = _flags_save_string;
1134 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1136 struct ndr_push *_ndr_devmode;
1137 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1138 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1139 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1143 uint32_t _flags_save_string = ndr->flags;
1144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1146 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1147 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1149 ndr->flags = _flags_save_string;
1152 uint32_t _flags_save_string = ndr->flags;
1153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1154 if (r->printprocessor) {
1155 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1156 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1158 ndr->flags = _flags_save_string;
1161 uint32_t _flags_save_string = ndr->flags;
1162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1164 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1165 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1167 ndr->flags = _flags_save_string;
1170 uint32_t _flags_save_string = ndr->flags;
1171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1172 if (r->parameters) {
1173 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1174 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1176 ndr->flags = _flags_save_string;
1179 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1181 struct ndr_push *_ndr_secdesc;
1182 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1183 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1184 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1188 return NDR_ERR_SUCCESS;
1191 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1193 uint32_t _ptr_servername;
1194 TALLOC_CTX *_mem_save_servername_0;
1195 uint32_t _ptr_printername;
1196 TALLOC_CTX *_mem_save_printername_0;
1197 uint32_t _ptr_sharename;
1198 TALLOC_CTX *_mem_save_sharename_0;
1199 uint32_t _ptr_portname;
1200 TALLOC_CTX *_mem_save_portname_0;
1201 uint32_t _ptr_drivername;
1202 TALLOC_CTX *_mem_save_drivername_0;
1203 uint32_t _ptr_comment;
1204 TALLOC_CTX *_mem_save_comment_0;
1205 uint32_t _ptr_location;
1206 TALLOC_CTX *_mem_save_location_0;
1207 uint32_t _ptr_devmode;
1208 TALLOC_CTX *_mem_save_devmode_0;
1209 uint32_t _ptr_sepfile;
1210 TALLOC_CTX *_mem_save_sepfile_0;
1211 uint32_t _ptr_printprocessor;
1212 TALLOC_CTX *_mem_save_printprocessor_0;
1213 uint32_t _ptr_datatype;
1214 TALLOC_CTX *_mem_save_datatype_0;
1215 uint32_t _ptr_parameters;
1216 TALLOC_CTX *_mem_save_parameters_0;
1217 uint32_t _ptr_secdesc;
1218 TALLOC_CTX *_mem_save_secdesc_0;
1219 if (ndr_flags & NDR_SCALARS) {
1220 NDR_CHECK(ndr_pull_align(ndr, 4));
1222 uint32_t _flags_save_string = ndr->flags;
1223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1225 if (_ptr_servername) {
1226 NDR_PULL_ALLOC(ndr, r->servername);
1227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1229 r->servername = NULL;
1231 ndr->flags = _flags_save_string;
1234 uint32_t _flags_save_string = ndr->flags;
1235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1236 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1237 if (_ptr_printername) {
1238 NDR_PULL_ALLOC(ndr, r->printername);
1239 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1241 r->printername = NULL;
1243 ndr->flags = _flags_save_string;
1246 uint32_t _flags_save_string = ndr->flags;
1247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1248 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1249 if (_ptr_sharename) {
1250 NDR_PULL_ALLOC(ndr, r->sharename);
1251 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1253 r->sharename = NULL;
1255 ndr->flags = _flags_save_string;
1258 uint32_t _flags_save_string = ndr->flags;
1259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1261 if (_ptr_portname) {
1262 NDR_PULL_ALLOC(ndr, r->portname);
1263 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1267 ndr->flags = _flags_save_string;
1270 uint32_t _flags_save_string = ndr->flags;
1271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1272 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1273 if (_ptr_drivername) {
1274 NDR_PULL_ALLOC(ndr, r->drivername);
1275 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1277 r->drivername = NULL;
1279 ndr->flags = _flags_save_string;
1282 uint32_t _flags_save_string = ndr->flags;
1283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1284 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1286 NDR_PULL_ALLOC(ndr, r->comment);
1287 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1291 ndr->flags = _flags_save_string;
1294 uint32_t _flags_save_string = ndr->flags;
1295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1296 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1297 if (_ptr_location) {
1298 NDR_PULL_ALLOC(ndr, r->location);
1299 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1303 ndr->flags = _flags_save_string;
1305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1307 NDR_PULL_ALLOC(ndr, r->devmode);
1308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1313 uint32_t _flags_save_string = ndr->flags;
1314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1317 NDR_PULL_ALLOC(ndr, r->sepfile);
1318 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1322 ndr->flags = _flags_save_string;
1325 uint32_t _flags_save_string = ndr->flags;
1326 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1327 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1328 if (_ptr_printprocessor) {
1329 NDR_PULL_ALLOC(ndr, r->printprocessor);
1330 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1332 r->printprocessor = NULL;
1334 ndr->flags = _flags_save_string;
1337 uint32_t _flags_save_string = ndr->flags;
1338 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1339 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1340 if (_ptr_datatype) {
1341 NDR_PULL_ALLOC(ndr, r->datatype);
1342 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1346 ndr->flags = _flags_save_string;
1349 uint32_t _flags_save_string = ndr->flags;
1350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1352 if (_ptr_parameters) {
1353 NDR_PULL_ALLOC(ndr, r->parameters);
1354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1356 r->parameters = NULL;
1358 ndr->flags = _flags_save_string;
1360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1362 NDR_PULL_ALLOC(ndr, r->secdesc);
1363 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1367 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1368 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1372 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1376 if (ndr_flags & NDR_BUFFERS) {
1378 uint32_t _flags_save_string = ndr->flags;
1379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1380 if (r->servername) {
1381 uint32_t _relative_save_offset;
1382 _relative_save_offset = ndr->offset;
1383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1384 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1385 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1386 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1388 ndr->offset = _relative_save_offset;
1390 ndr->flags = _flags_save_string;
1393 uint32_t _flags_save_string = ndr->flags;
1394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1395 if (r->printername) {
1396 uint32_t _relative_save_offset;
1397 _relative_save_offset = ndr->offset;
1398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1399 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1400 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1401 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1403 ndr->offset = _relative_save_offset;
1405 ndr->flags = _flags_save_string;
1408 uint32_t _flags_save_string = ndr->flags;
1409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1411 uint32_t _relative_save_offset;
1412 _relative_save_offset = ndr->offset;
1413 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1414 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1415 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1416 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1418 ndr->offset = _relative_save_offset;
1420 ndr->flags = _flags_save_string;
1423 uint32_t _flags_save_string = ndr->flags;
1424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1426 uint32_t _relative_save_offset;
1427 _relative_save_offset = ndr->offset;
1428 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1429 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1430 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1431 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1433 ndr->offset = _relative_save_offset;
1435 ndr->flags = _flags_save_string;
1438 uint32_t _flags_save_string = ndr->flags;
1439 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1440 if (r->drivername) {
1441 uint32_t _relative_save_offset;
1442 _relative_save_offset = ndr->offset;
1443 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1444 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1445 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1446 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1447 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1448 ndr->offset = _relative_save_offset;
1450 ndr->flags = _flags_save_string;
1453 uint32_t _flags_save_string = ndr->flags;
1454 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1456 uint32_t _relative_save_offset;
1457 _relative_save_offset = ndr->offset;
1458 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1459 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1460 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1461 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1463 ndr->offset = _relative_save_offset;
1465 ndr->flags = _flags_save_string;
1468 uint32_t _flags_save_string = ndr->flags;
1469 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1471 uint32_t _relative_save_offset;
1472 _relative_save_offset = ndr->offset;
1473 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1474 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1475 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1476 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1478 ndr->offset = _relative_save_offset;
1480 ndr->flags = _flags_save_string;
1483 uint32_t _relative_save_offset;
1484 _relative_save_offset = ndr->offset;
1485 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1486 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1487 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1489 struct ndr_pull *_ndr_devmode;
1490 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1491 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1492 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1494 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1495 ndr->offset = _relative_save_offset;
1498 uint32_t _flags_save_string = ndr->flags;
1499 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 uint32_t _relative_save_offset;
1502 _relative_save_offset = ndr->offset;
1503 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1504 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1505 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1506 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1508 ndr->offset = _relative_save_offset;
1510 ndr->flags = _flags_save_string;
1513 uint32_t _flags_save_string = ndr->flags;
1514 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1515 if (r->printprocessor) {
1516 uint32_t _relative_save_offset;
1517 _relative_save_offset = ndr->offset;
1518 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1519 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1520 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1521 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1523 ndr->offset = _relative_save_offset;
1525 ndr->flags = _flags_save_string;
1528 uint32_t _flags_save_string = ndr->flags;
1529 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1531 uint32_t _relative_save_offset;
1532 _relative_save_offset = ndr->offset;
1533 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1534 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1535 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1536 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1538 ndr->offset = _relative_save_offset;
1540 ndr->flags = _flags_save_string;
1543 uint32_t _flags_save_string = ndr->flags;
1544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1545 if (r->parameters) {
1546 uint32_t _relative_save_offset;
1547 _relative_save_offset = ndr->offset;
1548 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1549 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1550 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1551 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1553 ndr->offset = _relative_save_offset;
1555 ndr->flags = _flags_save_string;
1558 uint32_t _relative_save_offset;
1559 _relative_save_offset = ndr->offset;
1560 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1561 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1562 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1564 struct ndr_pull *_ndr_secdesc;
1565 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1566 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1567 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1570 ndr->offset = _relative_save_offset;
1573 return NDR_ERR_SUCCESS;
1576 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1578 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1580 ndr_print_ptr(ndr, "servername", r->servername);
1582 if (r->servername) {
1583 ndr_print_string(ndr, "servername", r->servername);
1586 ndr_print_ptr(ndr, "printername", r->printername);
1588 if (r->printername) {
1589 ndr_print_string(ndr, "printername", r->printername);
1592 ndr_print_ptr(ndr, "sharename", r->sharename);
1595 ndr_print_string(ndr, "sharename", r->sharename);
1598 ndr_print_ptr(ndr, "portname", r->portname);
1601 ndr_print_string(ndr, "portname", r->portname);
1604 ndr_print_ptr(ndr, "drivername", r->drivername);
1606 if (r->drivername) {
1607 ndr_print_string(ndr, "drivername", r->drivername);
1610 ndr_print_ptr(ndr, "comment", r->comment);
1613 ndr_print_string(ndr, "comment", r->comment);
1616 ndr_print_ptr(ndr, "location", r->location);
1619 ndr_print_string(ndr, "location", r->location);
1622 ndr_print_ptr(ndr, "devmode", r->devmode);
1625 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1628 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1631 ndr_print_string(ndr, "sepfile", r->sepfile);
1634 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1636 if (r->printprocessor) {
1637 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1640 ndr_print_ptr(ndr, "datatype", r->datatype);
1643 ndr_print_string(ndr, "datatype", r->datatype);
1646 ndr_print_ptr(ndr, "parameters", r->parameters);
1648 if (r->parameters) {
1649 ndr_print_string(ndr, "parameters", r->parameters);
1652 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1655 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1658 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1659 ndr_print_uint32(ndr, "priority", r->priority);
1660 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1661 ndr_print_uint32(ndr, "starttime", r->starttime);
1662 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1663 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1664 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1665 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1669 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo2(const struct spoolss_PrinterInfo2 *r, struct smb_iconv_convenience *ic, int flags)
1671 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo2, ic);
1674 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1676 if (ndr_flags & NDR_SCALARS) {
1677 NDR_CHECK(ndr_push_align(ndr, 4));
1678 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1680 if (ndr_flags & NDR_BUFFERS) {
1682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1684 struct ndr_push *_ndr_secdesc;
1685 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1686 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1687 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1691 return NDR_ERR_SUCCESS;
1694 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1696 uint32_t _ptr_secdesc;
1697 TALLOC_CTX *_mem_save_secdesc_0;
1698 if (ndr_flags & NDR_SCALARS) {
1699 NDR_CHECK(ndr_pull_align(ndr, 4));
1700 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1702 NDR_PULL_ALLOC(ndr, r->secdesc);
1703 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1708 if (ndr_flags & NDR_BUFFERS) {
1710 uint32_t _relative_save_offset;
1711 _relative_save_offset = ndr->offset;
1712 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1713 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1714 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1716 struct ndr_pull *_ndr_secdesc;
1717 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1718 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1719 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1722 ndr->offset = _relative_save_offset;
1725 return NDR_ERR_SUCCESS;
1728 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1730 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1732 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1735 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1741 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo3(const struct spoolss_PrinterInfo3 *r, struct smb_iconv_convenience *ic, int flags)
1743 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo3, ic);
1746 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1748 if (ndr_flags & NDR_SCALARS) {
1749 NDR_CHECK(ndr_push_align(ndr, 4));
1751 uint32_t _flags_save_string = ndr->flags;
1752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1753 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1754 ndr->flags = _flags_save_string;
1757 uint32_t _flags_save_string = ndr->flags;
1758 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1759 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1760 ndr->flags = _flags_save_string;
1762 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1764 if (ndr_flags & NDR_BUFFERS) {
1766 uint32_t _flags_save_string = ndr->flags;
1767 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1768 if (r->printername) {
1769 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1770 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1772 ndr->flags = _flags_save_string;
1775 uint32_t _flags_save_string = ndr->flags;
1776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1777 if (r->servername) {
1778 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1779 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1781 ndr->flags = _flags_save_string;
1784 return NDR_ERR_SUCCESS;
1787 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1789 uint32_t _ptr_printername;
1790 TALLOC_CTX *_mem_save_printername_0;
1791 uint32_t _ptr_servername;
1792 TALLOC_CTX *_mem_save_servername_0;
1793 if (ndr_flags & NDR_SCALARS) {
1794 NDR_CHECK(ndr_pull_align(ndr, 4));
1796 uint32_t _flags_save_string = ndr->flags;
1797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1798 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1799 if (_ptr_printername) {
1800 NDR_PULL_ALLOC(ndr, r->printername);
1801 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1803 r->printername = NULL;
1805 ndr->flags = _flags_save_string;
1808 uint32_t _flags_save_string = ndr->flags;
1809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1810 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1811 if (_ptr_servername) {
1812 NDR_PULL_ALLOC(ndr, r->servername);
1813 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1815 r->servername = NULL;
1817 ndr->flags = _flags_save_string;
1819 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1821 if (ndr_flags & NDR_BUFFERS) {
1823 uint32_t _flags_save_string = ndr->flags;
1824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1825 if (r->printername) {
1826 uint32_t _relative_save_offset;
1827 _relative_save_offset = ndr->offset;
1828 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1829 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1830 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1831 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1833 ndr->offset = _relative_save_offset;
1835 ndr->flags = _flags_save_string;
1838 uint32_t _flags_save_string = ndr->flags;
1839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1840 if (r->servername) {
1841 uint32_t _relative_save_offset;
1842 _relative_save_offset = ndr->offset;
1843 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1844 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1845 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1846 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1848 ndr->offset = _relative_save_offset;
1850 ndr->flags = _flags_save_string;
1853 return NDR_ERR_SUCCESS;
1856 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1858 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1860 ndr_print_ptr(ndr, "printername", r->printername);
1862 if (r->printername) {
1863 ndr_print_string(ndr, "printername", r->printername);
1866 ndr_print_ptr(ndr, "servername", r->servername);
1868 if (r->servername) {
1869 ndr_print_string(ndr, "servername", r->servername);
1872 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1876 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo4(const struct spoolss_PrinterInfo4 *r, struct smb_iconv_convenience *ic, int flags)
1878 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo4, ic);
1881 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1883 if (ndr_flags & NDR_SCALARS) {
1884 NDR_CHECK(ndr_push_align(ndr, 4));
1886 uint32_t _flags_save_string = ndr->flags;
1887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1888 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1889 ndr->flags = _flags_save_string;
1892 uint32_t _flags_save_string = ndr->flags;
1893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1895 ndr->flags = _flags_save_string;
1897 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1901 if (ndr_flags & NDR_BUFFERS) {
1903 uint32_t _flags_save_string = ndr->flags;
1904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1905 if (r->printername) {
1906 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1907 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1909 ndr->flags = _flags_save_string;
1912 uint32_t _flags_save_string = ndr->flags;
1913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1915 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1916 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1918 ndr->flags = _flags_save_string;
1921 return NDR_ERR_SUCCESS;
1924 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1926 uint32_t _ptr_printername;
1927 TALLOC_CTX *_mem_save_printername_0;
1928 uint32_t _ptr_portname;
1929 TALLOC_CTX *_mem_save_portname_0;
1930 if (ndr_flags & NDR_SCALARS) {
1931 NDR_CHECK(ndr_pull_align(ndr, 4));
1933 uint32_t _flags_save_string = ndr->flags;
1934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1936 if (_ptr_printername) {
1937 NDR_PULL_ALLOC(ndr, r->printername);
1938 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1940 r->printername = NULL;
1942 ndr->flags = _flags_save_string;
1945 uint32_t _flags_save_string = ndr->flags;
1946 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1947 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1948 if (_ptr_portname) {
1949 NDR_PULL_ALLOC(ndr, r->portname);
1950 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1954 ndr->flags = _flags_save_string;
1956 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1958 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1960 if (ndr_flags & NDR_BUFFERS) {
1962 uint32_t _flags_save_string = ndr->flags;
1963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1964 if (r->printername) {
1965 uint32_t _relative_save_offset;
1966 _relative_save_offset = ndr->offset;
1967 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1968 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1969 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1970 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1972 ndr->offset = _relative_save_offset;
1974 ndr->flags = _flags_save_string;
1977 uint32_t _flags_save_string = ndr->flags;
1978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1980 uint32_t _relative_save_offset;
1981 _relative_save_offset = ndr->offset;
1982 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1983 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1984 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1985 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1987 ndr->offset = _relative_save_offset;
1989 ndr->flags = _flags_save_string;
1992 return NDR_ERR_SUCCESS;
1995 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1997 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1999 ndr_print_ptr(ndr, "printername", r->printername);
2001 if (r->printername) {
2002 ndr_print_string(ndr, "printername", r->printername);
2005 ndr_print_ptr(ndr, "portname", r->portname);
2008 ndr_print_string(ndr, "portname", r->portname);
2011 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
2012 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
2013 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
2017 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo5(const struct spoolss_PrinterInfo5 *r, struct smb_iconv_convenience *ic, int flags)
2019 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo5, ic);
2022 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
2024 if (ndr_flags & NDR_SCALARS) {
2025 NDR_CHECK(ndr_push_align(ndr, 4));
2026 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
2028 if (ndr_flags & NDR_BUFFERS) {
2030 return NDR_ERR_SUCCESS;
2033 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
2035 if (ndr_flags & NDR_SCALARS) {
2036 NDR_CHECK(ndr_pull_align(ndr, 4));
2037 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
2039 if (ndr_flags & NDR_BUFFERS) {
2041 return NDR_ERR_SUCCESS;
2044 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
2046 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
2048 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
2052 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo6(const struct spoolss_PrinterInfo6 *r, struct smb_iconv_convenience *ic, int flags)
2054 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo6, ic);
2057 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
2059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
2060 return NDR_ERR_SUCCESS;
2063 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
2066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
2068 return NDR_ERR_SUCCESS;
2071 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2073 ndr_print_uint32(ndr, name, r);
2075 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2076 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2077 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2078 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2079 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2083 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2085 if (ndr_flags & NDR_SCALARS) {
2086 NDR_CHECK(ndr_push_align(ndr, 4));
2088 uint32_t _flags_save_string = ndr->flags;
2089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2090 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2091 ndr->flags = _flags_save_string;
2093 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2095 if (ndr_flags & NDR_BUFFERS) {
2097 uint32_t _flags_save_string = ndr->flags;
2098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2100 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2101 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2103 ndr->flags = _flags_save_string;
2106 return NDR_ERR_SUCCESS;
2109 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2112 TALLOC_CTX *_mem_save_guid_0;
2113 if (ndr_flags & NDR_SCALARS) {
2114 NDR_CHECK(ndr_pull_align(ndr, 4));
2116 uint32_t _flags_save_string = ndr->flags;
2117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2120 NDR_PULL_ALLOC(ndr, r->guid);
2121 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2125 ndr->flags = _flags_save_string;
2127 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2129 if (ndr_flags & NDR_BUFFERS) {
2131 uint32_t _flags_save_string = ndr->flags;
2132 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2134 uint32_t _relative_save_offset;
2135 _relative_save_offset = ndr->offset;
2136 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2137 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2138 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2139 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2141 ndr->offset = _relative_save_offset;
2143 ndr->flags = _flags_save_string;
2146 return NDR_ERR_SUCCESS;
2149 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2151 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2153 ndr_print_ptr(ndr, "guid", r->guid);
2156 ndr_print_string(ndr, "guid", r->guid);
2159 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2163 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo7(const struct spoolss_PrinterInfo7 *r, struct smb_iconv_convenience *ic, int flags)
2165 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo7, ic);
2168 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2170 if (ndr_flags & NDR_SCALARS) {
2171 NDR_CHECK(ndr_push_align(ndr, 4));
2172 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2174 if (ndr_flags & NDR_BUFFERS) {
2176 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2178 struct ndr_push *_ndr_devmode;
2179 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2180 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2181 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2185 return NDR_ERR_SUCCESS;
2188 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2190 uint32_t _ptr_devmode;
2191 TALLOC_CTX *_mem_save_devmode_0;
2192 if (ndr_flags & NDR_SCALARS) {
2193 NDR_CHECK(ndr_pull_align(ndr, 4));
2194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2196 NDR_PULL_ALLOC(ndr, r->devmode);
2197 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2202 if (ndr_flags & NDR_BUFFERS) {
2204 uint32_t _relative_save_offset;
2205 _relative_save_offset = ndr->offset;
2206 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2207 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2208 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2210 struct ndr_pull *_ndr_devmode;
2211 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2212 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2213 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2216 ndr->offset = _relative_save_offset;
2219 return NDR_ERR_SUCCESS;
2222 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2224 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2226 ndr_print_ptr(ndr, "devmode", r->devmode);
2229 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2235 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2237 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2238 if (ndr_flags & NDR_SCALARS) {
2239 int level = ndr_push_get_switch_value(ndr, r);
2242 NDR_CHECK(ndr_push_align(ndr, 4));
2243 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2244 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2248 NDR_CHECK(ndr_push_align(ndr, 4));
2249 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2250 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2254 NDR_CHECK(ndr_push_align(ndr, 4));
2255 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2256 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2260 NDR_CHECK(ndr_push_align(ndr, 4));
2261 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2262 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2266 NDR_CHECK(ndr_push_align(ndr, 4));
2267 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2268 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2272 NDR_CHECK(ndr_push_align(ndr, 4));
2273 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2274 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2278 NDR_CHECK(ndr_push_align(ndr, 4));
2279 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2280 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2284 NDR_CHECK(ndr_push_align(ndr, 4));
2285 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2286 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2290 NDR_CHECK(ndr_push_align(ndr, 4));
2291 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2292 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2296 NDR_CHECK(ndr_push_align(ndr, 4));
2297 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2298 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2306 if (ndr_flags & NDR_BUFFERS) {
2307 int level = ndr_push_get_switch_value(ndr, r);
2308 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2311 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2315 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2319 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2323 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2327 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2331 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2338 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2342 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2346 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2354 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2355 return NDR_ERR_SUCCESS;
2358 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2360 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2362 level = ndr_pull_get_switch_value(ndr, r);
2363 if (ndr_flags & NDR_SCALARS) {
2366 NDR_CHECK(ndr_pull_align(ndr, 4));
2367 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2372 NDR_CHECK(ndr_pull_align(ndr, 4));
2373 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2374 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2378 NDR_CHECK(ndr_pull_align(ndr, 4));
2379 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2384 NDR_CHECK(ndr_pull_align(ndr, 4));
2385 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2386 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2390 NDR_CHECK(ndr_pull_align(ndr, 4));
2391 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2392 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2396 NDR_CHECK(ndr_pull_align(ndr, 4));
2397 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2398 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2402 NDR_CHECK(ndr_pull_align(ndr, 4));
2403 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2404 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2408 NDR_CHECK(ndr_pull_align(ndr, 4));
2409 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2410 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2414 NDR_CHECK(ndr_pull_align(ndr, 4));
2415 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2416 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2420 NDR_CHECK(ndr_pull_align(ndr, 4));
2421 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2422 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2430 if (ndr_flags & NDR_BUFFERS) {
2431 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2434 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2438 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2442 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2446 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2450 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2454 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2461 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2465 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2469 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2477 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2478 return NDR_ERR_SUCCESS;
2481 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2484 level = ndr_print_get_switch_value(ndr, r);
2485 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2488 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2492 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2496 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2500 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2504 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2508 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2512 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2516 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2520 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2524 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2533 _PUBLIC_ size_t ndr_size_spoolss_PrinterInfo(const union spoolss_PrinterInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
2535 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterInfo, ic);
2538 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2540 if (ndr_flags & NDR_SCALARS) {
2541 NDR_CHECK(ndr_push_align(ndr, 4));
2542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2543 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2545 if (ndr_flags & NDR_BUFFERS) {
2548 struct ndr_push *_ndr_devmode;
2549 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2550 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2551 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2555 return NDR_ERR_SUCCESS;
2558 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2560 uint32_t _ptr_devmode;
2561 TALLOC_CTX *_mem_save_devmode_0;
2562 if (ndr_flags & NDR_SCALARS) {
2563 NDR_CHECK(ndr_pull_align(ndr, 4));
2564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2567 NDR_PULL_ALLOC(ndr, r->devmode);
2572 if (ndr_flags & NDR_BUFFERS) {
2574 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2575 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2577 struct ndr_pull *_ndr_devmode;
2578 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2579 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2580 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2585 return NDR_ERR_SUCCESS;
2588 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2590 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2592 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);
2593 ndr_print_ptr(ndr, "devmode", r->devmode);
2596 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2602 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2604 if (ndr_flags & NDR_SCALARS) {
2605 NDR_CHECK(ndr_push_align(ndr, 4));
2606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2608 uint32_t _flags_save_string = ndr->flags;
2609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2610 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2611 ndr->flags = _flags_save_string;
2614 uint32_t _flags_save_string = ndr->flags;
2615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2616 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2617 ndr->flags = _flags_save_string;
2620 uint32_t _flags_save_string = ndr->flags;
2621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2622 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2623 ndr->flags = _flags_save_string;
2626 uint32_t _flags_save_string = ndr->flags;
2627 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2628 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2629 ndr->flags = _flags_save_string;
2632 uint32_t _flags_save_string = ndr->flags;
2633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2634 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2635 ndr->flags = _flags_save_string;
2638 uint32_t _flags_save_string = ndr->flags;
2639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2640 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2641 ndr->flags = _flags_save_string;
2643 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
2644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2645 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2648 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2650 if (ndr_flags & NDR_BUFFERS) {
2652 uint32_t _flags_save_string = ndr->flags;
2653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2654 if (r->printer_name) {
2655 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2658 ndr->flags = _flags_save_string;
2661 uint32_t _flags_save_string = ndr->flags;
2662 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2663 if (r->server_name) {
2664 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2665 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2667 ndr->flags = _flags_save_string;
2670 uint32_t _flags_save_string = ndr->flags;
2671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2673 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2676 ndr->flags = _flags_save_string;
2679 uint32_t _flags_save_string = ndr->flags;
2680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2681 if (r->document_name) {
2682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2685 ndr->flags = _flags_save_string;
2688 uint32_t _flags_save_string = ndr->flags;
2689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2694 ndr->flags = _flags_save_string;
2697 uint32_t _flags_save_string = ndr->flags;
2698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2699 if (r->text_status) {
2700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2703 ndr->flags = _flags_save_string;
2706 return NDR_ERR_SUCCESS;
2709 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2711 uint32_t _ptr_printer_name;
2712 TALLOC_CTX *_mem_save_printer_name_0;
2713 uint32_t _ptr_server_name;
2714 TALLOC_CTX *_mem_save_server_name_0;
2715 uint32_t _ptr_user_name;
2716 TALLOC_CTX *_mem_save_user_name_0;
2717 uint32_t _ptr_document_name;
2718 TALLOC_CTX *_mem_save_document_name_0;
2719 uint32_t _ptr_data_type;
2720 TALLOC_CTX *_mem_save_data_type_0;
2721 uint32_t _ptr_text_status;
2722 TALLOC_CTX *_mem_save_text_status_0;
2723 if (ndr_flags & NDR_SCALARS) {
2724 NDR_CHECK(ndr_pull_align(ndr, 4));
2725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2727 uint32_t _flags_save_string = ndr->flags;
2728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2729 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2730 if (_ptr_printer_name) {
2731 NDR_PULL_ALLOC(ndr, r->printer_name);
2732 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2734 r->printer_name = NULL;
2736 ndr->flags = _flags_save_string;
2739 uint32_t _flags_save_string = ndr->flags;
2740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2742 if (_ptr_server_name) {
2743 NDR_PULL_ALLOC(ndr, r->server_name);
2744 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2746 r->server_name = NULL;
2748 ndr->flags = _flags_save_string;
2751 uint32_t _flags_save_string = ndr->flags;
2752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2754 if (_ptr_user_name) {
2755 NDR_PULL_ALLOC(ndr, r->user_name);
2756 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2758 r->user_name = NULL;
2760 ndr->flags = _flags_save_string;
2763 uint32_t _flags_save_string = ndr->flags;
2764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2766 if (_ptr_document_name) {
2767 NDR_PULL_ALLOC(ndr, r->document_name);
2768 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2770 r->document_name = NULL;
2772 ndr->flags = _flags_save_string;
2775 uint32_t _flags_save_string = ndr->flags;
2776 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2778 if (_ptr_data_type) {
2779 NDR_PULL_ALLOC(ndr, r->data_type);
2780 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2782 r->data_type = NULL;
2784 ndr->flags = _flags_save_string;
2787 uint32_t _flags_save_string = ndr->flags;
2788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2790 if (_ptr_text_status) {
2791 NDR_PULL_ALLOC(ndr, r->text_status);
2792 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2794 r->text_status = NULL;
2796 ndr->flags = _flags_save_string;
2798 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
2799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2800 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2802 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2803 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
2805 if (ndr_flags & NDR_BUFFERS) {
2807 uint32_t _flags_save_string = ndr->flags;
2808 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2809 if (r->printer_name) {
2810 uint32_t _relative_save_offset;
2811 _relative_save_offset = ndr->offset;
2812 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2813 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2814 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2815 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2816 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_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);
2824 if (r->server_name) {
2825 uint32_t _relative_save_offset;
2826 _relative_save_offset = ndr->offset;
2827 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2828 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2829 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2830 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_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);
2840 uint32_t _relative_save_offset;
2841 _relative_save_offset = ndr->offset;
2842 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2843 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2844 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2845 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2846 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2847 ndr->offset = _relative_save_offset;
2849 ndr->flags = _flags_save_string;
2852 uint32_t _flags_save_string = ndr->flags;
2853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2854 if (r->document_name) {
2855 uint32_t _relative_save_offset;
2856 _relative_save_offset = ndr->offset;
2857 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2858 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2859 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2860 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2862 ndr->offset = _relative_save_offset;
2864 ndr->flags = _flags_save_string;
2867 uint32_t _flags_save_string = ndr->flags;
2868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2870 uint32_t _relative_save_offset;
2871 _relative_save_offset = ndr->offset;
2872 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2873 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2874 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2875 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2877 ndr->offset = _relative_save_offset;
2879 ndr->flags = _flags_save_string;
2882 uint32_t _flags_save_string = ndr->flags;
2883 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2884 if (r->text_status) {
2885 uint32_t _relative_save_offset;
2886 _relative_save_offset = ndr->offset;
2887 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2888 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2889 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2890 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2892 ndr->offset = _relative_save_offset;
2894 ndr->flags = _flags_save_string;
2897 return NDR_ERR_SUCCESS;
2900 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2902 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2904 ndr_print_uint32(ndr, "job_id", r->job_id);
2905 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2907 if (r->printer_name) {
2908 ndr_print_string(ndr, "printer_name", r->printer_name);
2911 ndr_print_ptr(ndr, "server_name", r->server_name);
2913 if (r->server_name) {
2914 ndr_print_string(ndr, "server_name", r->server_name);
2917 ndr_print_ptr(ndr, "user_name", r->user_name);
2920 ndr_print_string(ndr, "user_name", r->user_name);
2923 ndr_print_ptr(ndr, "document_name", r->document_name);
2925 if (r->document_name) {
2926 ndr_print_string(ndr, "document_name", r->document_name);
2929 ndr_print_ptr(ndr, "data_type", r->data_type);
2932 ndr_print_string(ndr, "data_type", r->data_type);
2935 ndr_print_ptr(ndr, "text_status", r->text_status);
2937 if (r->text_status) {
2938 ndr_print_string(ndr, "text_status", r->text_status);
2941 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
2942 ndr_print_uint32(ndr, "priority", r->priority);
2943 ndr_print_uint32(ndr, "position", r->position);
2944 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2945 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2946 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
2950 _PUBLIC_ size_t ndr_size_spoolss_JobInfo1(const struct spoolss_JobInfo1 *r, struct smb_iconv_convenience *ic, int flags)
2952 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo1, ic);
2955 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo2 *r)
2957 if (ndr_flags & NDR_SCALARS) {
2958 NDR_CHECK(ndr_push_align(ndr, 4));
2959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2961 uint32_t _flags_save_string = ndr->flags;
2962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2963 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2964 ndr->flags = _flags_save_string;
2967 uint32_t _flags_save_string = ndr->flags;
2968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2970 ndr->flags = _flags_save_string;
2973 uint32_t _flags_save_string = ndr->flags;
2974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2976 ndr->flags = _flags_save_string;
2979 uint32_t _flags_save_string = ndr->flags;
2980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2982 ndr->flags = _flags_save_string;
2985 uint32_t _flags_save_string = ndr->flags;
2986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
2988 ndr->flags = _flags_save_string;
2991 uint32_t _flags_save_string = ndr->flags;
2992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2993 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2994 ndr->flags = _flags_save_string;
2997 uint32_t _flags_save_string = ndr->flags;
2998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2999 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
3000 ndr->flags = _flags_save_string;
3003 uint32_t _flags_save_string = ndr->flags;
3004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3005 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3006 ndr->flags = _flags_save_string;
3009 uint32_t _flags_save_string = ndr->flags;
3010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3011 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3012 ndr->flags = _flags_save_string;
3014 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3016 uint32_t _flags_save_string = ndr->flags;
3017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3018 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3019 ndr->flags = _flags_save_string;
3021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3022 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3029 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3033 if (ndr_flags & NDR_BUFFERS) {
3035 uint32_t _flags_save_string = ndr->flags;
3036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3037 if (r->printer_name) {
3038 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3039 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3041 ndr->flags = _flags_save_string;
3044 uint32_t _flags_save_string = ndr->flags;
3045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3046 if (r->server_name) {
3047 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3048 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3050 ndr->flags = _flags_save_string;
3053 uint32_t _flags_save_string = ndr->flags;
3054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3056 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3057 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3059 ndr->flags = _flags_save_string;
3062 uint32_t _flags_save_string = ndr->flags;
3063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3064 if (r->document_name) {
3065 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3066 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3068 ndr->flags = _flags_save_string;
3071 uint32_t _flags_save_string = ndr->flags;
3072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3073 if (r->notify_name) {
3074 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3075 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3077 ndr->flags = _flags_save_string;
3080 uint32_t _flags_save_string = ndr->flags;
3081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3083 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3086 ndr->flags = _flags_save_string;
3089 uint32_t _flags_save_string = ndr->flags;
3090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3091 if (r->print_processor) {
3092 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3093 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3095 ndr->flags = _flags_save_string;
3098 uint32_t _flags_save_string = ndr->flags;
3099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3100 if (r->parameters) {
3101 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3102 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3104 ndr->flags = _flags_save_string;
3107 uint32_t _flags_save_string = ndr->flags;
3108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3109 if (r->driver_name) {
3110 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3111 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3113 ndr->flags = _flags_save_string;
3116 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3117 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3120 uint32_t _flags_save_string = ndr->flags;
3121 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3122 if (r->text_status) {
3123 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3124 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3126 ndr->flags = _flags_save_string;
3129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3130 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3133 return NDR_ERR_SUCCESS;
3136 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo2 *r)
3138 uint32_t _ptr_printer_name;
3139 TALLOC_CTX *_mem_save_printer_name_0;
3140 uint32_t _ptr_server_name;
3141 TALLOC_CTX *_mem_save_server_name_0;
3142 uint32_t _ptr_user_name;
3143 TALLOC_CTX *_mem_save_user_name_0;
3144 uint32_t _ptr_document_name;
3145 TALLOC_CTX *_mem_save_document_name_0;
3146 uint32_t _ptr_notify_name;
3147 TALLOC_CTX *_mem_save_notify_name_0;
3148 uint32_t _ptr_data_type;
3149 TALLOC_CTX *_mem_save_data_type_0;
3150 uint32_t _ptr_print_processor;
3151 TALLOC_CTX *_mem_save_print_processor_0;
3152 uint32_t _ptr_parameters;
3153 TALLOC_CTX *_mem_save_parameters_0;
3154 uint32_t _ptr_driver_name;
3155 TALLOC_CTX *_mem_save_driver_name_0;
3156 uint32_t _ptr_devmode;
3157 TALLOC_CTX *_mem_save_devmode_0;
3158 uint32_t _ptr_text_status;
3159 TALLOC_CTX *_mem_save_text_status_0;
3160 uint32_t _ptr_secdesc;
3161 TALLOC_CTX *_mem_save_secdesc_0;
3162 if (ndr_flags & NDR_SCALARS) {
3163 NDR_CHECK(ndr_pull_align(ndr, 4));
3164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3166 uint32_t _flags_save_string = ndr->flags;
3167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
3169 if (_ptr_printer_name) {
3170 NDR_PULL_ALLOC(ndr, r->printer_name);
3171 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3173 r->printer_name = NULL;
3175 ndr->flags = _flags_save_string;
3178 uint32_t _flags_save_string = ndr->flags;
3179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
3181 if (_ptr_server_name) {
3182 NDR_PULL_ALLOC(ndr, r->server_name);
3183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3185 r->server_name = NULL;
3187 ndr->flags = _flags_save_string;
3190 uint32_t _flags_save_string = ndr->flags;
3191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
3193 if (_ptr_user_name) {
3194 NDR_PULL_ALLOC(ndr, r->user_name);
3195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3197 r->user_name = NULL;
3199 ndr->flags = _flags_save_string;
3202 uint32_t _flags_save_string = ndr->flags;
3203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
3205 if (_ptr_document_name) {
3206 NDR_PULL_ALLOC(ndr, r->document_name);
3207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3209 r->document_name = NULL;
3211 ndr->flags = _flags_save_string;
3214 uint32_t _flags_save_string = ndr->flags;
3215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3217 if (_ptr_notify_name) {
3218 NDR_PULL_ALLOC(ndr, r->notify_name);
3219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3221 r->notify_name = NULL;
3223 ndr->flags = _flags_save_string;
3226 uint32_t _flags_save_string = ndr->flags;
3227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3229 if (_ptr_data_type) {
3230 NDR_PULL_ALLOC(ndr, r->data_type);
3231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3233 r->data_type = NULL;
3235 ndr->flags = _flags_save_string;
3238 uint32_t _flags_save_string = ndr->flags;
3239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3241 if (_ptr_print_processor) {
3242 NDR_PULL_ALLOC(ndr, r->print_processor);
3243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3245 r->print_processor = NULL;
3247 ndr->flags = _flags_save_string;
3250 uint32_t _flags_save_string = ndr->flags;
3251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3253 if (_ptr_parameters) {
3254 NDR_PULL_ALLOC(ndr, r->parameters);
3255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3257 r->parameters = NULL;
3259 ndr->flags = _flags_save_string;
3262 uint32_t _flags_save_string = ndr->flags;
3263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3264 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3265 if (_ptr_driver_name) {
3266 NDR_PULL_ALLOC(ndr, r->driver_name);
3267 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3269 r->driver_name = NULL;
3271 ndr->flags = _flags_save_string;
3273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3275 NDR_PULL_ALLOC(ndr, r->devmode);
3276 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3281 uint32_t _flags_save_string = ndr->flags;
3282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3284 if (_ptr_text_status) {
3285 NDR_PULL_ALLOC(ndr, r->text_status);
3286 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3288 r->text_status = NULL;
3290 ndr->flags = _flags_save_string;
3292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3294 NDR_PULL_ALLOC(ndr, r->secdesc);
3295 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3299 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3303 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3305 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3306 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3307 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3310 if (ndr_flags & NDR_BUFFERS) {
3312 uint32_t _flags_save_string = ndr->flags;
3313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3314 if (r->printer_name) {
3315 uint32_t _relative_save_offset;
3316 _relative_save_offset = ndr->offset;
3317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3318 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3319 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
3322 ndr->offset = _relative_save_offset;
3324 ndr->flags = _flags_save_string;
3327 uint32_t _flags_save_string = ndr->flags;
3328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3329 if (r->server_name) {
3330 uint32_t _relative_save_offset;
3331 _relative_save_offset = ndr->offset;
3332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
3333 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3334 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
3335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
3336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
3337 ndr->offset = _relative_save_offset;
3339 ndr->flags = _flags_save_string;
3342 uint32_t _flags_save_string = ndr->flags;
3343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3345 uint32_t _relative_save_offset;
3346 _relative_save_offset = ndr->offset;
3347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
3348 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3349 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
3350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
3351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
3352 ndr->offset = _relative_save_offset;
3354 ndr->flags = _flags_save_string;
3357 uint32_t _flags_save_string = ndr->flags;
3358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3359 if (r->document_name) {
3360 uint32_t _relative_save_offset;
3361 _relative_save_offset = ndr->offset;
3362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
3363 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3364 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
3365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
3366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
3367 ndr->offset = _relative_save_offset;
3369 ndr->flags = _flags_save_string;
3372 uint32_t _flags_save_string = ndr->flags;
3373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3374 if (r->notify_name) {
3375 uint32_t _relative_save_offset;
3376 _relative_save_offset = ndr->offset;
3377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
3378 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3379 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
3380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
3381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
3382 ndr->offset = _relative_save_offset;
3384 ndr->flags = _flags_save_string;
3387 uint32_t _flags_save_string = ndr->flags;
3388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3390 uint32_t _relative_save_offset;
3391 _relative_save_offset = ndr->offset;
3392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
3393 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
3394 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
3395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
3396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
3397 ndr->offset = _relative_save_offset;
3399 ndr->flags = _flags_save_string;
3402 uint32_t _flags_save_string = ndr->flags;
3403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3404 if (r->print_processor) {
3405 uint32_t _relative_save_offset;
3406 _relative_save_offset = ndr->offset;
3407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
3408 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3409 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
3410 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
3411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
3412 ndr->offset = _relative_save_offset;
3414 ndr->flags = _flags_save_string;
3417 uint32_t _flags_save_string = ndr->flags;
3418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3419 if (r->parameters) {
3420 uint32_t _relative_save_offset;
3421 _relative_save_offset = ndr->offset;
3422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
3423 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3424 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
3426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3427 ndr->offset = _relative_save_offset;
3429 ndr->flags = _flags_save_string;
3432 uint32_t _flags_save_string = ndr->flags;
3433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3434 if (r->driver_name) {
3435 uint32_t _relative_save_offset;
3436 _relative_save_offset = ndr->offset;
3437 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
3438 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3439 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
3440 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
3441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
3442 ndr->offset = _relative_save_offset;
3444 ndr->flags = _flags_save_string;
3447 uint32_t _relative_save_offset;
3448 _relative_save_offset = ndr->offset;
3449 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
3450 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3451 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3452 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3454 ndr->offset = _relative_save_offset;
3457 uint32_t _flags_save_string = ndr->flags;
3458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3459 if (r->text_status) {
3460 uint32_t _relative_save_offset;
3461 _relative_save_offset = ndr->offset;
3462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
3463 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
3464 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
3465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
3466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
3467 ndr->offset = _relative_save_offset;
3469 ndr->flags = _flags_save_string;
3472 uint32_t _relative_save_offset;
3473 _relative_save_offset = ndr->offset;
3474 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
3475 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3476 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3477 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3479 ndr->offset = _relative_save_offset;
3482 return NDR_ERR_SUCCESS;
3485 _PUBLIC_ void ndr_print_spoolss_JobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo2 *r)
3487 ndr_print_struct(ndr, name, "spoolss_JobInfo2");
3489 ndr_print_uint32(ndr, "job_id", r->job_id);
3490 ndr_print_ptr(ndr, "printer_name", r->printer_name);
3492 if (r->printer_name) {
3493 ndr_print_string(ndr, "printer_name", r->printer_name);
3496 ndr_print_ptr(ndr, "server_name", r->server_name);
3498 if (r->server_name) {
3499 ndr_print_string(ndr, "server_name", r->server_name);
3502 ndr_print_ptr(ndr, "user_name", r->user_name);
3505 ndr_print_string(ndr, "user_name", r->user_name);
3508 ndr_print_ptr(ndr, "document_name", r->document_name);
3510 if (r->document_name) {
3511 ndr_print_string(ndr, "document_name", r->document_name);
3514 ndr_print_ptr(ndr, "notify_name", r->notify_name);
3516 if (r->notify_name) {
3517 ndr_print_string(ndr, "notify_name", r->notify_name);
3520 ndr_print_ptr(ndr, "data_type", r->data_type);
3523 ndr_print_string(ndr, "data_type", r->data_type);
3526 ndr_print_ptr(ndr, "print_processor", r->print_processor);
3528 if (r->print_processor) {
3529 ndr_print_string(ndr, "print_processor", r->print_processor);
3532 ndr_print_ptr(ndr, "parameters", r->parameters);
3534 if (r->parameters) {
3535 ndr_print_string(ndr, "parameters", r->parameters);
3538 ndr_print_ptr(ndr, "driver_name", r->driver_name);
3540 if (r->driver_name) {
3541 ndr_print_string(ndr, "driver_name", r->driver_name);
3544 ndr_print_ptr(ndr, "devmode", r->devmode);
3547 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3550 ndr_print_ptr(ndr, "text_status", r->text_status);
3552 if (r->text_status) {
3553 ndr_print_string(ndr, "text_status", r->text_status);
3556 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3559 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3562 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
3563 ndr_print_uint32(ndr, "priority", r->priority);
3564 ndr_print_uint32(ndr, "position", r->position);
3565 ndr_print_uint32(ndr, "start_time", r->start_time);
3566 ndr_print_uint32(ndr, "until_time", r->until_time);
3567 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3568 ndr_print_uint32(ndr, "size", r->size);
3569 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
3570 ndr_print_uint32(ndr, "time", r->time);
3571 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
3575 _PUBLIC_ size_t ndr_size_spoolss_JobInfo2(const struct spoolss_JobInfo2 *r, struct smb_iconv_convenience *ic, int flags)
3577 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo2, ic);
3580 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo3 *r)
3582 if (ndr_flags & NDR_SCALARS) {
3583 NDR_CHECK(ndr_push_align(ndr, 4));
3584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->next_job_id));
3586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
3588 if (ndr_flags & NDR_BUFFERS) {
3590 return NDR_ERR_SUCCESS;
3593 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo3 *r)
3595 if (ndr_flags & NDR_SCALARS) {
3596 NDR_CHECK(ndr_pull_align(ndr, 4));
3597 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
3598 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->next_job_id));
3599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
3601 if (ndr_flags & NDR_BUFFERS) {
3603 return NDR_ERR_SUCCESS;
3606 _PUBLIC_ void ndr_print_spoolss_JobInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo3 *r)
3608 ndr_print_struct(ndr, name, "spoolss_JobInfo3");
3610 ndr_print_uint32(ndr, "job_id", r->job_id);
3611 ndr_print_uint32(ndr, "next_job_id", r->next_job_id);
3612 ndr_print_uint32(ndr, "reserved", r->reserved);
3616 _PUBLIC_ size_t ndr_size_spoolss_JobInfo3(const struct spoolss_JobInfo3 *r, struct smb_iconv_convenience *ic, int flags)
3618 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo3, ic);
3621 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo4 *r)
3623 if (ndr_flags & NDR_SCALARS) {
3624 NDR_CHECK(ndr_push_align(ndr, 4));
3625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
3627 uint32_t _flags_save_string = ndr->flags;
3628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
3630 ndr->flags = _flags_save_string;
3633 uint32_t _flags_save_string = ndr->flags;
3634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3635 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
3636 ndr->flags = _flags_save_string;
3639 uint32_t _flags_save_string = ndr->flags;
3640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3641 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
3642 ndr->flags = _flags_save_string;
3645 uint32_t _flags_save_string = ndr->flags;
3646 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3647 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->notify_name));
3654 ndr->flags = _flags_save_string;
3657 uint32_t _flags_save_string = ndr->flags;
3658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3659 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
3660 ndr->flags = _flags_save_string;
3663 uint32_t _flags_save_string = ndr->flags;
3664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3665 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
3672 ndr->flags = _flags_save_string;
3675 uint32_t _flags_save_string = ndr->flags;
3676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3677 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
3678 ndr->flags = _flags_save_string;
3680 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
3682 uint32_t _flags_save_string = ndr->flags;
3683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3684 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
3685 ndr->flags = _flags_save_string;
3687 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
3688 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
3689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
3691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
3692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
3693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
3695 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
3697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
3698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
3700 if (ndr_flags & NDR_BUFFERS) {
3702 uint32_t _flags_save_string = ndr->flags;
3703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3704 if (r->printer_name) {
3705 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
3706 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
3708 ndr->flags = _flags_save_string;
3711 uint32_t _flags_save_string = ndr->flags;
3712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3713 if (r->server_name) {
3714 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
3715 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
3717 ndr->flags = _flags_save_string;
3720 uint32_t _flags_save_string = ndr->flags;
3721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3723 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
3724 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
3726 ndr->flags = _flags_save_string;
3729 uint32_t _flags_save_string = ndr->flags;
3730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3731 if (r->document_name) {
3732 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
3733 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
3735 ndr->flags = _flags_save_string;
3738 uint32_t _flags_save_string = ndr->flags;
3739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3740 if (r->notify_name) {
3741 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->notify_name));
3742 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->notify_name));
3744 ndr->flags = _flags_save_string;
3747 uint32_t _flags_save_string = ndr->flags;
3748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3750 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
3751 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
3753 ndr->flags = _flags_save_string;
3756 uint32_t _flags_save_string = ndr->flags;
3757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3758 if (r->print_processor) {
3759 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
3760 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
3762 ndr->flags = _flags_save_string;
3765 uint32_t _flags_save_string = ndr->flags;
3766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3767 if (r->parameters) {
3768 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
3769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
3771 ndr->flags = _flags_save_string;
3774 uint32_t _flags_save_string = ndr->flags;
3775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3776 if (r->driver_name) {
3777 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
3778 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
3780 ndr->flags = _flags_save_string;
3783 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
3784 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
3787 uint32_t _flags_save_string = ndr->flags;
3788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3789 if (r->text_status) {
3790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
3791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
3793 ndr->flags = _flags_save_string;
3796 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
3797 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3800 return NDR_ERR_SUCCESS;
3803 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo4 *r)
3805 uint32_t _ptr_printer_name;
3806 TALLOC_CTX *_mem_save_printer_name_0;
3807 uint32_t _ptr_server_name;
3808 TALLOC_CTX *_mem_save_server_name_0;
3809 uint32_t _ptr_user_name;
3810 TALLOC_CTX *_mem_save_user_name_0;
3811 uint32_t _ptr_document_name;
3812 TALLOC_CTX *_mem_save_document_name_0;
3813 uint32_t _ptr_notify_name;
3814 TALLOC_CTX *_mem_save_notify_name_0;
3815 uint32_t _ptr_data_type;
3816 TALLOC_CTX *_mem_save_data_type_0;
3817 uint32_t _ptr_print_processor;
3818 TALLOC_CTX *_mem_save_print_processor_0;
3819 uint32_t _ptr_parameters;
3820 TALLOC_CTX *_mem_save_parameters_0;
3821 uint32_t _ptr_driver_name;
3822 TALLOC_CTX *_mem_save_driver_name_0;
3823 uint32_t _ptr_devmode;
3824 TALLOC_CTX *_mem_save_devmode_0;
3825 uint32_t _ptr_text_status;
3826 TALLOC_CTX *_mem_save_text_status_0;
3827 uint32_t _ptr_secdesc;
3828 TALLOC_CTX *_mem_save_secdesc_0;
3829 if (ndr_flags & NDR_SCALARS) {
3830 NDR_CHECK(ndr_pull_align(ndr, 4));
3831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
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_printer_name));
3836 if (_ptr_printer_name) {
3837 NDR_PULL_ALLOC(ndr, r->printer_name);
3838 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
3840 r->printer_name = 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_server_name));
3848 if (_ptr_server_name) {
3849 NDR_PULL_ALLOC(ndr, r->server_name);
3850 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
3852 r->server_name = 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_user_name));
3860 if (_ptr_user_name) {
3861 NDR_PULL_ALLOC(ndr, r->user_name);
3862 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
3864 r->user_name = 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_document_name));
3872 if (_ptr_document_name) {
3873 NDR_PULL_ALLOC(ndr, r->document_name);
3874 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
3876 r->document_name = NULL;
3878 ndr->flags = _flags_save_string;
3881 uint32_t _flags_save_string = ndr->flags;
3882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
3884 if (_ptr_notify_name) {
3885 NDR_PULL_ALLOC(ndr, r->notify_name);
3886 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->notify_name, _ptr_notify_name));
3888 r->notify_name = NULL;
3890 ndr->flags = _flags_save_string;
3893 uint32_t _flags_save_string = ndr->flags;
3894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
3896 if (_ptr_data_type) {
3897 NDR_PULL_ALLOC(ndr, r->data_type);
3898 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
3900 r->data_type = NULL;
3902 ndr->flags = _flags_save_string;
3905 uint32_t _flags_save_string = ndr->flags;
3906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
3908 if (_ptr_print_processor) {
3909 NDR_PULL_ALLOC(ndr, r->print_processor);
3910 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
3912 r->print_processor = NULL;
3914 ndr->flags = _flags_save_string;
3917 uint32_t _flags_save_string = ndr->flags;
3918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3920 if (_ptr_parameters) {
3921 NDR_PULL_ALLOC(ndr, r->parameters);
3922 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
3924 r->parameters = NULL;
3926 ndr->flags = _flags_save_string;
3929 uint32_t _flags_save_string = ndr->flags;
3930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
3932 if (_ptr_driver_name) {
3933 NDR_PULL_ALLOC(ndr, r->driver_name);
3934 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
3936 r->driver_name = NULL;
3938 ndr->flags = _flags_save_string;
3940 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3942 NDR_PULL_ALLOC(ndr, r->devmode);
3943 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
3948 uint32_t _flags_save_string = ndr->flags;
3949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
3951 if (_ptr_text_status) {
3952 NDR_PULL_ALLOC(ndr, r->text_status);
3953 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
3955 r->text_status = NULL;
3957 ndr->flags = _flags_save_string;
3959 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3961 NDR_PULL_ALLOC(ndr, r->secdesc);
3962 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
3966 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
3967 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3968 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
3969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
3970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
3971 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3972 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
3973 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
3974 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
3975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
3976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
3978 if (ndr_flags & NDR_BUFFERS) {
3980 uint32_t _flags_save_string = ndr->flags;
3981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
3982 if (r->printer_name) {
3983 uint32_t _relative_save_offset;
3984 _relative_save_offset = ndr->offset;
3985 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
3986 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3987 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
3988 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
3989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_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);
3997 if (r->server_name) {
3998 uint32_t _relative_save_offset;
3999 _relative_save_offset = ndr->offset;
4000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
4001 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4002 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
4004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_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);
4013 uint32_t _relative_save_offset;
4014 _relative_save_offset = ndr->offset;
4015 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
4016 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4017 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4018 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
4019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_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->document_name) {
4028 uint32_t _relative_save_offset;
4029 _relative_save_offset = ndr->offset;
4030 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
4031 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4032 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4033 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
4034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_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->notify_name) {
4043 uint32_t _relative_save_offset;
4044 _relative_save_offset = ndr->offset;
4045 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->notify_name));
4046 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4047 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4048 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->notify_name));
4049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4050 ndr->offset = _relative_save_offset;
4052 ndr->flags = _flags_save_string;
4055 uint32_t _flags_save_string = ndr->flags;
4056 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4058 uint32_t _relative_save_offset;
4059 _relative_save_offset = ndr->offset;
4060 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
4061 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4062 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4063 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
4064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4065 ndr->offset = _relative_save_offset;
4067 ndr->flags = _flags_save_string;
4070 uint32_t _flags_save_string = ndr->flags;
4071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4072 if (r->print_processor) {
4073 uint32_t _relative_save_offset;
4074 _relative_save_offset = ndr->offset;
4075 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
4076 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4077 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4078 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
4079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4080 ndr->offset = _relative_save_offset;
4082 ndr->flags = _flags_save_string;
4085 uint32_t _flags_save_string = ndr->flags;
4086 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4087 if (r->parameters) {
4088 uint32_t _relative_save_offset;
4089 _relative_save_offset = ndr->offset;
4090 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
4091 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4092 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4093 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
4094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4095 ndr->offset = _relative_save_offset;
4097 ndr->flags = _flags_save_string;
4100 uint32_t _flags_save_string = ndr->flags;
4101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4102 if (r->driver_name) {
4103 uint32_t _relative_save_offset;
4104 _relative_save_offset = ndr->offset;
4105 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
4106 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4107 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4108 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
4109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4110 ndr->offset = _relative_save_offset;
4112 ndr->flags = _flags_save_string;
4115 uint32_t _relative_save_offset;
4116 _relative_save_offset = ndr->offset;
4117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
4118 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
4119 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
4120 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
4121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
4122 ndr->offset = _relative_save_offset;
4125 uint32_t _flags_save_string = ndr->flags;
4126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4127 if (r->text_status) {
4128 uint32_t _relative_save_offset;
4129 _relative_save_offset = ndr->offset;
4130 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
4131 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4132 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4133 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
4134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4135 ndr->offset = _relative_save_offset;
4137 ndr->flags = _flags_save_string;
4140 uint32_t _relative_save_offset;
4141 _relative_save_offset = ndr->offset;
4142 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
4143 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
4144 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
4145 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
4146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
4147 ndr->offset = _relative_save_offset;
4150 return NDR_ERR_SUCCESS;
4153 _PUBLIC_ void ndr_print_spoolss_JobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo4 *r)
4155 ndr_print_struct(ndr, name, "spoolss_JobInfo4");
4157 ndr_print_uint32(ndr, "job_id", r->job_id);
4158 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4160 if (r->printer_name) {
4161 ndr_print_string(ndr, "printer_name", r->printer_name);
4164 ndr_print_ptr(ndr, "server_name", r->server_name);
4166 if (r->server_name) {
4167 ndr_print_string(ndr, "server_name", r->server_name);
4170 ndr_print_ptr(ndr, "user_name", r->user_name);
4173 ndr_print_string(ndr, "user_name", r->user_name);
4176 ndr_print_ptr(ndr, "document_name", r->document_name);
4178 if (r->document_name) {
4179 ndr_print_string(ndr, "document_name", r->document_name);
4182 ndr_print_ptr(ndr, "notify_name", r->notify_name);
4184 if (r->notify_name) {
4185 ndr_print_string(ndr, "notify_name", r->notify_name);
4188 ndr_print_ptr(ndr, "data_type", r->data_type);
4191 ndr_print_string(ndr, "data_type", r->data_type);
4194 ndr_print_ptr(ndr, "print_processor", r->print_processor);
4196 if (r->print_processor) {
4197 ndr_print_string(ndr, "print_processor", r->print_processor);
4200 ndr_print_ptr(ndr, "parameters", r->parameters);
4202 if (r->parameters) {
4203 ndr_print_string(ndr, "parameters", r->parameters);
4206 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4208 if (r->driver_name) {
4209 ndr_print_string(ndr, "driver_name", r->driver_name);
4212 ndr_print_ptr(ndr, "devmode", r->devmode);
4215 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
4218 ndr_print_ptr(ndr, "text_status", r->text_status);
4220 if (r->text_status) {
4221 ndr_print_string(ndr, "text_status", r->text_status);
4224 ndr_print_ptr(ndr, "secdesc", r->secdesc);
4227 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
4230 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4231 ndr_print_uint32(ndr, "priority", r->priority);
4232 ndr_print_uint32(ndr, "position", r->position);
4233 ndr_print_uint32(ndr, "start_time", r->start_time);
4234 ndr_print_uint32(ndr, "until_time", r->until_time);
4235 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4236 ndr_print_uint32(ndr, "size", r->size);
4237 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4238 ndr_print_uint32(ndr, "time", r->time);
4239 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4240 ndr_print_uint32(ndr, "size_high", r->size_high);
4244 _PUBLIC_ size_t ndr_size_spoolss_JobInfo4(const struct spoolss_JobInfo4 *r, struct smb_iconv_convenience *ic, int flags)
4246 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo4, ic);
4249 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
4251 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
4252 if (ndr_flags & NDR_SCALARS) {
4253 int level = ndr_push_get_switch_value(ndr, r);
4256 NDR_CHECK(ndr_push_align(ndr, 4));
4257 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4258 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4262 NDR_CHECK(ndr_push_align(ndr, 4));
4263 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4264 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4268 NDR_CHECK(ndr_push_align(ndr, 4));
4269 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4270 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4274 NDR_CHECK(ndr_push_align(ndr, 4));
4275 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
4276 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4284 if (ndr_flags & NDR_BUFFERS) {
4285 int level = ndr_push_get_switch_value(ndr, r);
4286 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
4289 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4293 NDR_CHECK(ndr_push_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4300 NDR_CHECK(ndr_push_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4308 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
4309 return NDR_ERR_SUCCESS;
4312 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
4314 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
4316 level = ndr_pull_get_switch_value(ndr, r);
4317 if (ndr_flags & NDR_SCALARS) {
4320 NDR_CHECK(ndr_pull_align(ndr, 4));
4321 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4322 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
4326 NDR_CHECK(ndr_pull_align(ndr, 4));
4327 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4328 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_SCALARS, &r->info2));
4332 NDR_CHECK(ndr_pull_align(ndr, 4));
4333 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4334 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, &r->info3));
4338 NDR_CHECK(ndr_pull_align(ndr, 4));
4339 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
4340 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_SCALARS, &r->info4));
4348 if (ndr_flags & NDR_BUFFERS) {
4349 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
4352 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
4356 NDR_CHECK(ndr_pull_spoolss_JobInfo2(ndr, NDR_BUFFERS, &r->info2));
4363 NDR_CHECK(ndr_pull_spoolss_JobInfo4(ndr, NDR_BUFFERS, &r->info4));
4371 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
4372 return NDR_ERR_SUCCESS;
4375 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
4378 level = ndr_print_get_switch_value(ndr, r);
4379 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
4382 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
4386 ndr_print_spoolss_JobInfo2(ndr, "info2", &r->info2);
4390 ndr_print_spoolss_JobInfo3(ndr, "info3", &r->info3);
4394 ndr_print_spoolss_JobInfo4(ndr, "info4", &r->info4);
4403 _PUBLIC_ size_t ndr_size_spoolss_JobInfo(const union spoolss_JobInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
4405 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_JobInfo, ic);
4408 static enum ndr_err_code ndr_push_spoolss_SetJobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo1 *r)
4410 if (ndr_flags & NDR_SCALARS) {
4411 NDR_CHECK(ndr_push_align(ndr, 4));
4412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4413 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4414 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4415 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4416 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4418 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4419 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4424 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4426 if (ndr_flags & NDR_BUFFERS) {
4427 if (r->printer_name) {
4428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4431 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4433 if (r->server_name) {
4434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4445 if (r->document_name) {
4446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4449 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4457 if (r->text_status) {
4458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4461 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4464 return NDR_ERR_SUCCESS;
4467 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo1 *r)
4469 uint32_t _ptr_printer_name;
4470 TALLOC_CTX *_mem_save_printer_name_0;
4471 uint32_t _ptr_server_name;
4472 TALLOC_CTX *_mem_save_server_name_0;
4473 uint32_t _ptr_user_name;
4474 TALLOC_CTX *_mem_save_user_name_0;
4475 uint32_t _ptr_document_name;
4476 TALLOC_CTX *_mem_save_document_name_0;
4477 uint32_t _ptr_data_type;
4478 TALLOC_CTX *_mem_save_data_type_0;
4479 uint32_t _ptr_text_status;
4480 TALLOC_CTX *_mem_save_text_status_0;
4481 if (ndr_flags & NDR_SCALARS) {
4482 NDR_CHECK(ndr_pull_align(ndr, 4));
4483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4484 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4485 if (_ptr_printer_name) {
4486 NDR_PULL_ALLOC(ndr, r->printer_name);
4488 r->printer_name = NULL;
4490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4491 if (_ptr_server_name) {
4492 NDR_PULL_ALLOC(ndr, r->server_name);
4494 r->server_name = NULL;
4496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4497 if (_ptr_user_name) {
4498 NDR_PULL_ALLOC(ndr, r->user_name);
4500 r->user_name = NULL;
4502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4503 if (_ptr_document_name) {
4504 NDR_PULL_ALLOC(ndr, r->document_name);
4506 r->document_name = NULL;
4508 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4509 if (_ptr_data_type) {
4510 NDR_PULL_ALLOC(ndr, r->data_type);
4512 r->data_type = NULL;
4514 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4515 if (_ptr_text_status) {
4516 NDR_PULL_ALLOC(ndr, r->text_status);
4518 r->text_status = NULL;
4520 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4522 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4525 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4527 if (ndr_flags & NDR_BUFFERS) {
4528 if (r->printer_name) {
4529 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4530 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4531 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4532 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4533 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4534 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));
4536 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4537 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4540 if (r->server_name) {
4541 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4542 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4543 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4544 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4545 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4546 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));
4548 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4549 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4553 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4554 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4555 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4556 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4557 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4558 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));
4560 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4561 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4564 if (r->document_name) {
4565 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4566 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4567 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4568 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4569 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4570 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));
4572 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4573 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4577 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4578 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4579 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4580 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4581 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4582 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));
4584 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4585 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4588 if (r->text_status) {
4589 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4590 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4591 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4592 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4593 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4594 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));
4596 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4597 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4598 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4601 return NDR_ERR_SUCCESS;
4604 _PUBLIC_ void ndr_print_spoolss_SetJobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo1 *r)
4606 ndr_print_struct(ndr, name, "spoolss_SetJobInfo1");
4608 ndr_print_uint32(ndr, "job_id", r->job_id);
4609 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4611 if (r->printer_name) {
4612 ndr_print_string(ndr, "printer_name", r->printer_name);
4615 ndr_print_ptr(ndr, "server_name", r->server_name);
4617 if (r->server_name) {
4618 ndr_print_string(ndr, "server_name", r->server_name);
4621 ndr_print_ptr(ndr, "user_name", r->user_name);
4624 ndr_print_string(ndr, "user_name", r->user_name);
4627 ndr_print_ptr(ndr, "document_name", r->document_name);
4629 if (r->document_name) {
4630 ndr_print_string(ndr, "document_name", r->document_name);
4633 ndr_print_ptr(ndr, "data_type", r->data_type);
4636 ndr_print_string(ndr, "data_type", r->data_type);
4639 ndr_print_ptr(ndr, "text_status", r->text_status);
4641 if (r->text_status) {
4642 ndr_print_string(ndr, "text_status", r->text_status);
4645 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
4646 ndr_print_uint32(ndr, "priority", r->priority);
4647 ndr_print_uint32(ndr, "position", r->position);
4648 ndr_print_uint32(ndr, "total_pages", r->total_pages);
4649 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
4650 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
4654 static enum ndr_err_code ndr_push_spoolss_SetJobInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo2 *r)
4656 if (ndr_flags & NDR_SCALARS) {
4657 NDR_CHECK(ndr_push_align(ndr, 4));
4658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
4659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
4660 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
4661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
4662 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
4663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
4664 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
4665 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
4666 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
4667 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
4669 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
4670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
4671 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
4672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
4673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
4674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
4675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
4676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
4677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
4678 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
4680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
4682 if (ndr_flags & NDR_BUFFERS) {
4683 if (r->printer_name) {
4684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
4687 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4689 if (r->server_name) {
4690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
4693 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
4699 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4701 if (r->document_name) {
4702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
4705 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4707 if (r->notify_name) {
4708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
4711 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
4717 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4719 if (r->print_processor) {
4720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
4723 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4725 if (r->parameters) {
4726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
4729 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4731 if (r->driver_name) {
4732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4735 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4737 if (r->text_status) {
4738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
4741 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4744 return NDR_ERR_SUCCESS;
4747 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo2 *r)
4749 uint32_t _ptr_printer_name;
4750 TALLOC_CTX *_mem_save_printer_name_0;
4751 uint32_t _ptr_server_name;
4752 TALLOC_CTX *_mem_save_server_name_0;
4753 uint32_t _ptr_user_name;
4754 TALLOC_CTX *_mem_save_user_name_0;
4755 uint32_t _ptr_document_name;
4756 TALLOC_CTX *_mem_save_document_name_0;
4757 uint32_t _ptr_notify_name;
4758 TALLOC_CTX *_mem_save_notify_name_0;
4759 uint32_t _ptr_data_type;
4760 TALLOC_CTX *_mem_save_data_type_0;
4761 uint32_t _ptr_print_processor;
4762 TALLOC_CTX *_mem_save_print_processor_0;
4763 uint32_t _ptr_parameters;
4764 TALLOC_CTX *_mem_save_parameters_0;
4765 uint32_t _ptr_driver_name;
4766 TALLOC_CTX *_mem_save_driver_name_0;
4767 uint32_t _ptr_text_status;
4768 TALLOC_CTX *_mem_save_text_status_0;
4769 if (ndr_flags & NDR_SCALARS) {
4770 NDR_CHECK(ndr_pull_align(ndr, 4));
4771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
4772 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
4773 if (_ptr_printer_name) {
4774 NDR_PULL_ALLOC(ndr, r->printer_name);
4776 r->printer_name = NULL;
4778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
4779 if (_ptr_server_name) {
4780 NDR_PULL_ALLOC(ndr, r->server_name);
4782 r->server_name = NULL;
4784 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
4785 if (_ptr_user_name) {
4786 NDR_PULL_ALLOC(ndr, r->user_name);
4788 r->user_name = NULL;
4790 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
4791 if (_ptr_document_name) {
4792 NDR_PULL_ALLOC(ndr, r->document_name);
4794 r->document_name = NULL;
4796 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
4797 if (_ptr_notify_name) {
4798 NDR_PULL_ALLOC(ndr, r->notify_name);
4800 r->notify_name = NULL;
4802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
4803 if (_ptr_data_type) {
4804 NDR_PULL_ALLOC(ndr, r->data_type);
4806 r->data_type = NULL;
4808 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
4809 if (_ptr_print_processor) {
4810 NDR_PULL_ALLOC(ndr, r->print_processor);
4812 r->print_processor = NULL;
4814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
4815 if (_ptr_parameters) {
4816 NDR_PULL_ALLOC(ndr, r->parameters);
4818 r->parameters = NULL;
4820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4821 if (_ptr_driver_name) {
4822 NDR_PULL_ALLOC(ndr, r->driver_name);
4824 r->driver_name = NULL;
4826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
4827 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
4828 if (_ptr_text_status) {
4829 NDR_PULL_ALLOC(ndr, r->text_status);
4831 r->text_status = NULL;
4833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
4834 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
4835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
4836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
4837 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
4838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
4839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
4840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
4841 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
4842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
4843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
4845 if (ndr_flags & NDR_BUFFERS) {
4846 if (r->printer_name) {
4847 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4848 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
4849 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
4850 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
4851 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
4852 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));
4854 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
4855 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
4856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
4858 if (r->server_name) {
4859 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4860 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
4861 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
4862 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
4863 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
4864 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));
4866 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
4867 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
4868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
4871 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4872 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
4873 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
4874 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
4875 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
4876 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));
4878 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
4879 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
4880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
4882 if (r->document_name) {
4883 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4884 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
4885 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
4886 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
4887 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
4888 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));
4890 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
4891 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
4892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
4894 if (r->notify_name) {
4895 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4896 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
4897 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
4898 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
4899 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
4900 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));
4902 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
4903 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
4904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
4907 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
4908 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
4909 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
4910 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
4911 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
4912 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));
4914 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
4915 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
4916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
4918 if (r->print_processor) {
4919 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
4920 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
4921 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
4922 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
4923 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
4924 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));
4926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
4927 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
4928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
4930 if (r->parameters) {
4931 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
4932 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
4933 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
4934 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
4935 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
4936 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));
4938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
4939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
4940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
4942 if (r->driver_name) {
4943 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4944 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4945 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4946 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4947 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4948 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));
4950 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4951 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4954 if (r->text_status) {
4955 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
4956 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
4957 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
4958 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
4959 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
4960 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));
4962 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
4963 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
4964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
4967 return NDR_ERR_SUCCESS;
4970 _PUBLIC_ void ndr_print_spoolss_SetJobInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo2 *r)
4972 ndr_print_struct(ndr, name, "spoolss_SetJobInfo2");
4974 ndr_print_uint32(ndr, "job_id", r->job_id);
4975 ndr_print_ptr(ndr, "printer_name", r->printer_name);
4977 if (r->printer_name) {
4978 ndr_print_string(ndr, "printer_name", r->printer_name);
4981 ndr_print_ptr(ndr, "server_name", r->server_name);
4983 if (r->server_name) {
4984 ndr_print_string(ndr, "server_name", r->server_name);
4987 ndr_print_ptr(ndr, "user_name", r->user_name);
4990 ndr_print_string(ndr, "user_name", r->user_name);
4993 ndr_print_ptr(ndr, "document_name", r->document_name);
4995 if (r->document_name) {
4996 ndr_print_string(ndr, "document_name", r->document_name);
4999 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5001 if (r->notify_name) {
5002 ndr_print_string(ndr, "notify_name", r->notify_name);
5005 ndr_print_ptr(ndr, "data_type", r->data_type);
5008 ndr_print_string(ndr, "data_type", r->data_type);
5011 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5013 if (r->print_processor) {
5014 ndr_print_string(ndr, "print_processor", r->print_processor);
5017 ndr_print_ptr(ndr, "parameters", r->parameters);
5019 if (r->parameters) {
5020 ndr_print_string(ndr, "parameters", r->parameters);
5023 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5025 if (r->driver_name) {
5026 ndr_print_string(ndr, "driver_name", r->driver_name);
5029 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5030 ndr_print_ptr(ndr, "text_status", r->text_status);
5032 if (r->text_status) {
5033 ndr_print_string(ndr, "text_status", r->text_status);
5036 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5037 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5038 ndr_print_uint32(ndr, "priority", r->priority);
5039 ndr_print_uint32(ndr, "position", r->position);
5040 ndr_print_uint32(ndr, "start_time", r->start_time);
5041 ndr_print_uint32(ndr, "until_time", r->until_time);
5042 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5043 ndr_print_uint32(ndr, "size", r->size);
5044 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5045 ndr_print_uint32(ndr, "time", r->time);
5046 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5050 static enum ndr_err_code ndr_push_spoolss_SetJobInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetJobInfo4 *r)
5052 if (ndr_flags & NDR_SCALARS) {
5053 NDR_CHECK(ndr_push_align(ndr, 4));
5054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
5055 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printer_name));
5056 NDR_CHECK(ndr_push_unique_ptr(ndr, r->server_name));
5057 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user_name));
5058 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
5059 NDR_CHECK(ndr_push_unique_ptr(ndr, r->notify_name));
5060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_type));
5061 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
5062 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
5063 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_devmode_ptr));
5065 NDR_CHECK(ndr_push_unique_ptr(ndr, r->text_status));
5066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->_secdesc_ptr));
5067 NDR_CHECK(ndr_push_spoolss_JobStatus(ndr, NDR_SCALARS, r->status));
5068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
5069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
5070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->start_time));
5071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->until_time));
5072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
5074 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->time));
5076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
5077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size_high));
5079 if (ndr_flags & NDR_BUFFERS) {
5080 if (r->printer_name) {
5081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printer_name, CH_UTF16)));
5084 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printer_name, ndr_charset_length(r->printer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5086 if (r->server_name) {
5087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->server_name, CH_UTF16)));
5090 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->server_name, ndr_charset_length(r->server_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user_name, CH_UTF16)));
5096 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user_name, ndr_charset_length(r->user_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5098 if (r->document_name) {
5099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
5102 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5104 if (r->notify_name) {
5105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->notify_name, CH_UTF16)));
5108 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->notify_name, ndr_charset_length(r->notify_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_type, CH_UTF16)));
5114 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_type, ndr_charset_length(r->data_type, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5116 if (r->print_processor) {
5117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
5120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5122 if (r->parameters) {
5123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
5126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5128 if (r->driver_name) {
5129 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5132 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5134 if (r->text_status) {
5135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->text_status, CH_UTF16)));
5138 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->text_status, ndr_charset_length(r->text_status, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5141 return NDR_ERR_SUCCESS;
5144 static enum ndr_err_code ndr_pull_spoolss_SetJobInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetJobInfo4 *r)
5146 uint32_t _ptr_printer_name;
5147 TALLOC_CTX *_mem_save_printer_name_0;
5148 uint32_t _ptr_server_name;
5149 TALLOC_CTX *_mem_save_server_name_0;
5150 uint32_t _ptr_user_name;
5151 TALLOC_CTX *_mem_save_user_name_0;
5152 uint32_t _ptr_document_name;
5153 TALLOC_CTX *_mem_save_document_name_0;
5154 uint32_t _ptr_notify_name;
5155 TALLOC_CTX *_mem_save_notify_name_0;
5156 uint32_t _ptr_data_type;
5157 TALLOC_CTX *_mem_save_data_type_0;
5158 uint32_t _ptr_print_processor;
5159 TALLOC_CTX *_mem_save_print_processor_0;
5160 uint32_t _ptr_parameters;
5161 TALLOC_CTX *_mem_save_parameters_0;
5162 uint32_t _ptr_driver_name;
5163 TALLOC_CTX *_mem_save_driver_name_0;
5164 uint32_t _ptr_text_status;
5165 TALLOC_CTX *_mem_save_text_status_0;
5166 if (ndr_flags & NDR_SCALARS) {
5167 NDR_CHECK(ndr_pull_align(ndr, 4));
5168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
5169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
5170 if (_ptr_printer_name) {
5171 NDR_PULL_ALLOC(ndr, r->printer_name);
5173 r->printer_name = NULL;
5175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
5176 if (_ptr_server_name) {
5177 NDR_PULL_ALLOC(ndr, r->server_name);
5179 r->server_name = NULL;
5181 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
5182 if (_ptr_user_name) {
5183 NDR_PULL_ALLOC(ndr, r->user_name);
5185 r->user_name = NULL;
5187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
5188 if (_ptr_document_name) {
5189 NDR_PULL_ALLOC(ndr, r->document_name);
5191 r->document_name = NULL;
5193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_name));
5194 if (_ptr_notify_name) {
5195 NDR_PULL_ALLOC(ndr, r->notify_name);
5197 r->notify_name = NULL;
5199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
5200 if (_ptr_data_type) {
5201 NDR_PULL_ALLOC(ndr, r->data_type);
5203 r->data_type = NULL;
5205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
5206 if (_ptr_print_processor) {
5207 NDR_PULL_ALLOC(ndr, r->print_processor);
5209 r->print_processor = NULL;
5211 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
5212 if (_ptr_parameters) {
5213 NDR_PULL_ALLOC(ndr, r->parameters);
5215 r->parameters = NULL;
5217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5218 if (_ptr_driver_name) {
5219 NDR_PULL_ALLOC(ndr, r->driver_name);
5221 r->driver_name = NULL;
5223 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_devmode_ptr));
5224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
5225 if (_ptr_text_status) {
5226 NDR_PULL_ALLOC(ndr, r->text_status);
5228 r->text_status = NULL;
5230 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_secdesc_ptr));
5231 NDR_CHECK(ndr_pull_spoolss_JobStatus(ndr, NDR_SCALARS, &r->status));
5232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
5233 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
5234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->start_time));
5235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->until_time));
5236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
5238 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->submitted));
5239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->time));
5240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
5241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size_high));
5243 if (ndr_flags & NDR_BUFFERS) {
5244 if (r->printer_name) {
5245 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5246 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
5247 NDR_CHECK(ndr_pull_array_size(ndr, &r->printer_name));
5248 NDR_CHECK(ndr_pull_array_length(ndr, &r->printer_name));
5249 if (ndr_get_array_length(ndr, &r->printer_name) > ndr_get_array_size(ndr, &r->printer_name)) {
5250 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));
5252 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t)));
5253 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printer_name, ndr_get_array_length(ndr, &r->printer_name), sizeof(uint16_t), CH_UTF16));
5254 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
5256 if (r->server_name) {
5257 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5258 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
5259 NDR_CHECK(ndr_pull_array_size(ndr, &r->server_name));
5260 NDR_CHECK(ndr_pull_array_length(ndr, &r->server_name));
5261 if (ndr_get_array_length(ndr, &r->server_name) > ndr_get_array_size(ndr, &r->server_name)) {
5262 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));
5264 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t)));
5265 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->server_name, ndr_get_array_length(ndr, &r->server_name), sizeof(uint16_t), CH_UTF16));
5266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
5269 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5270 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
5271 NDR_CHECK(ndr_pull_array_size(ndr, &r->user_name));
5272 NDR_CHECK(ndr_pull_array_length(ndr, &r->user_name));
5273 if (ndr_get_array_length(ndr, &r->user_name) > ndr_get_array_size(ndr, &r->user_name)) {
5274 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));
5276 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t)));
5277 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user_name, ndr_get_array_length(ndr, &r->user_name), sizeof(uint16_t), CH_UTF16));
5278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
5280 if (r->document_name) {
5281 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5282 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
5283 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
5284 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
5285 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
5286 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));
5288 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
5289 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
5290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
5292 if (r->notify_name) {
5293 _mem_save_notify_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5294 NDR_PULL_SET_MEM_CTX(ndr, r->notify_name, 0);
5295 NDR_CHECK(ndr_pull_array_size(ndr, &r->notify_name));
5296 NDR_CHECK(ndr_pull_array_length(ndr, &r->notify_name));
5297 if (ndr_get_array_length(ndr, &r->notify_name) > ndr_get_array_size(ndr, &r->notify_name)) {
5298 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));
5300 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t)));
5301 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->notify_name, ndr_get_array_length(ndr, &r->notify_name), sizeof(uint16_t), CH_UTF16));
5302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_name_0, 0);
5305 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
5306 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
5307 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_type));
5308 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_type));
5309 if (ndr_get_array_length(ndr, &r->data_type) > ndr_get_array_size(ndr, &r->data_type)) {
5310 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));
5312 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t)));
5313 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_type, ndr_get_array_length(ndr, &r->data_type), sizeof(uint16_t), CH_UTF16));
5314 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
5316 if (r->print_processor) {
5317 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
5318 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
5319 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
5320 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
5321 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
5322 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));
5324 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
5325 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
5326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
5328 if (r->parameters) {
5329 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
5330 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
5331 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
5332 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
5333 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
5334 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));
5336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
5337 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
5338 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
5340 if (r->driver_name) {
5341 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5342 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5343 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5344 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5345 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5346 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));
5348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5349 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5352 if (r->text_status) {
5353 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
5354 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
5355 NDR_CHECK(ndr_pull_array_size(ndr, &r->text_status));
5356 NDR_CHECK(ndr_pull_array_length(ndr, &r->text_status));
5357 if (ndr_get_array_length(ndr, &r->text_status) > ndr_get_array_size(ndr, &r->text_status)) {
5358 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));
5360 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t)));
5361 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->text_status, ndr_get_array_length(ndr, &r->text_status), sizeof(uint16_t), CH_UTF16));
5362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
5365 return NDR_ERR_SUCCESS;
5368 _PUBLIC_ void ndr_print_spoolss_SetJobInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetJobInfo4 *r)
5370 ndr_print_struct(ndr, name, "spoolss_SetJobInfo4");
5372 ndr_print_uint32(ndr, "job_id", r->job_id);
5373 ndr_print_ptr(ndr, "printer_name", r->printer_name);
5375 if (r->printer_name) {
5376 ndr_print_string(ndr, "printer_name", r->printer_name);
5379 ndr_print_ptr(ndr, "server_name", r->server_name);
5381 if (r->server_name) {
5382 ndr_print_string(ndr, "server_name", r->server_name);
5385 ndr_print_ptr(ndr, "user_name", r->user_name);
5388 ndr_print_string(ndr, "user_name", r->user_name);
5391 ndr_print_ptr(ndr, "document_name", r->document_name);
5393 if (r->document_name) {
5394 ndr_print_string(ndr, "document_name", r->document_name);
5397 ndr_print_ptr(ndr, "notify_name", r->notify_name);
5399 if (r->notify_name) {
5400 ndr_print_string(ndr, "notify_name", r->notify_name);
5403 ndr_print_ptr(ndr, "data_type", r->data_type);
5406 ndr_print_string(ndr, "data_type", r->data_type);
5409 ndr_print_ptr(ndr, "print_processor", r->print_processor);
5411 if (r->print_processor) {
5412 ndr_print_string(ndr, "print_processor", r->print_processor);
5415 ndr_print_ptr(ndr, "parameters", r->parameters);
5417 if (r->parameters) {
5418 ndr_print_string(ndr, "parameters", r->parameters);
5421 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5423 if (r->driver_name) {
5424 ndr_print_string(ndr, "driver_name", r->driver_name);
5427 ndr_print_uint32(ndr, "_devmode_ptr", r->_devmode_ptr);
5428 ndr_print_ptr(ndr, "text_status", r->text_status);
5430 if (r->text_status) {
5431 ndr_print_string(ndr, "text_status", r->text_status);
5434 ndr_print_uint32(ndr, "_secdesc_ptr", r->_secdesc_ptr);
5435 ndr_print_spoolss_JobStatus(ndr, "status", r->status);
5436 ndr_print_uint32(ndr, "priority", r->priority);
5437 ndr_print_uint32(ndr, "position", r->position);
5438 ndr_print_uint32(ndr, "start_time", r->start_time);
5439 ndr_print_uint32(ndr, "until_time", r->until_time);
5440 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5441 ndr_print_uint32(ndr, "size", r->size);
5442 ndr_print_spoolss_Time(ndr, "submitted", &r->submitted);
5443 ndr_print_uint32(ndr, "time", r->time);
5444 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
5445 ndr_print_uint32(ndr, "size_high", r->size_high);
5449 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_SetJobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetJobInfo *r)
5451 if (ndr_flags & NDR_SCALARS) {
5452 int level = ndr_push_get_switch_value(ndr, r);
5453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
5456 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
5460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
5464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
5468 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
5476 if (ndr_flags & NDR_BUFFERS) {
5477 int level = ndr_push_get_switch_value(ndr, r);
5481 NDR_CHECK(ndr_push_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5487 NDR_CHECK(ndr_push_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5493 NDR_CHECK(ndr_push_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5499 NDR_CHECK(ndr_push_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5508 return NDR_ERR_SUCCESS;
5511 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_SetJobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetJobInfo *r)
5515 TALLOC_CTX *_mem_save_info1_0;
5516 TALLOC_CTX *_mem_save_info2_0;
5517 TALLOC_CTX *_mem_save_info3_0;
5518 TALLOC_CTX *_mem_save_info4_0;
5519 level = ndr_pull_get_switch_value(ndr, r);
5520 if (ndr_flags & NDR_SCALARS) {
5521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
5522 if (_level != level) {
5523 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
5527 uint32_t _ptr_info1;
5528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
5530 NDR_PULL_ALLOC(ndr, r->info1);
5537 uint32_t _ptr_info2;
5538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
5540 NDR_PULL_ALLOC(ndr, r->info2);
5547 uint32_t _ptr_info3;
5548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
5550 NDR_PULL_ALLOC(ndr, r->info3);
5557 uint32_t _ptr_info4;
5558 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
5560 NDR_PULL_ALLOC(ndr, r->info4);
5571 if (ndr_flags & NDR_BUFFERS) {
5575 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
5576 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
5577 NDR_CHECK(ndr_pull_spoolss_SetJobInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
5578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
5584 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
5585 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
5586 NDR_CHECK(ndr_pull_spoolss_SetJobInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
5587 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
5593 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
5594 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
5595 NDR_CHECK(ndr_pull_spoolss_JobInfo3(ndr, NDR_SCALARS, r->info3));
5596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
5602 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
5603 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
5604 NDR_CHECK(ndr_pull_spoolss_SetJobInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
5605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
5614 return NDR_ERR_SUCCESS;
5617 _PUBLIC_ void ndr_print_spoolss_SetJobInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetJobInfo *r)
5620 level = ndr_print_get_switch_value(ndr, r);
5621 ndr_print_union(ndr, name, level, "spoolss_SetJobInfo");
5624 ndr_print_ptr(ndr, "info1", r->info1);
5627 ndr_print_spoolss_SetJobInfo1(ndr, "info1", r->info1);
5633 ndr_print_ptr(ndr, "info2", r->info2);
5636 ndr_print_spoolss_SetJobInfo2(ndr, "info2", r->info2);
5642 ndr_print_ptr(ndr, "info3", r->info3);
5645 ndr_print_spoolss_JobInfo3(ndr, "info3", r->info3);
5651 ndr_print_ptr(ndr, "info4", r->info4);
5654 ndr_print_spoolss_SetJobInfo4(ndr, "info4", r->info4);
5665 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
5667 if (ndr_flags & NDR_SCALARS) {
5668 NDR_CHECK(ndr_push_align(ndr, 4));
5669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
5670 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
5671 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5673 if (ndr_flags & NDR_BUFFERS) {
5674 NDR_CHECK(ndr_push_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5676 return NDR_ERR_SUCCESS;
5679 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
5681 if (ndr_flags & NDR_SCALARS) {
5682 NDR_CHECK(ndr_pull_align(ndr, 4));
5683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
5684 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
5685 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_SCALARS, &r->info));
5687 if (ndr_flags & NDR_BUFFERS) {
5688 NDR_CHECK(ndr_pull_spoolss_SetJobInfo(ndr, NDR_BUFFERS, &r->info));
5690 return NDR_ERR_SUCCESS;
5693 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
5695 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
5697 ndr_print_uint32(ndr, "level", r->level);
5698 ndr_print_set_switch_value(ndr, &r->info, r->level);
5699 ndr_print_spoolss_SetJobInfo(ndr, "info", &r->info);
5703 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
5705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5706 return NDR_ERR_SUCCESS;
5709 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
5712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5714 return NDR_ERR_SUCCESS;
5717 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
5719 const char *val = NULL;
5722 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
5723 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
5724 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
5725 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
5726 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
5727 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
5728 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
5729 case SPOOLSS_JOB_CONTROL_RETAIN: val = "SPOOLSS_JOB_CONTROL_RETAIN"; break;
5730 case SPOOLSS_JOB_CONTROL_RELEASE: val = "SPOOLSS_JOB_CONTROL_RELEASE"; break;
5732 ndr_print_enum(ndr, name, "ENUM", val, r);
5735 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
5737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
5738 return NDR_ERR_SUCCESS;
5741 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
5744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
5746 return NDR_ERR_SUCCESS;
5749 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
5751 const char *val = NULL;
5754 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
5755 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
5756 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
5757 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
5758 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
5760 ndr_print_enum(ndr, name, "ENUM", val, r);
5763 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
5765 if (ndr_flags & NDR_SCALARS) {
5766 NDR_CHECK(ndr_push_align(ndr, 4));
5767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
5768 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
5769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
5772 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
5774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
5775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
5776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
5777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
5778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
5779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
5780 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
5781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
5782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
5783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
5784 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
5785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
5786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
5787 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
5788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
5789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
5790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
5791 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
5792 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
5793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
5794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
5795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
5797 if (ndr_flags & NDR_BUFFERS) {
5798 if (r->servername) {
5799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
5802 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5804 if (r->printername) {
5805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
5808 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5811 return NDR_ERR_SUCCESS;
5814 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
5816 uint32_t _ptr_servername;
5817 TALLOC_CTX *_mem_save_servername_0;
5818 uint32_t _ptr_printername;
5819 TALLOC_CTX *_mem_save_printername_0;
5820 if (ndr_flags & NDR_SCALARS) {
5821 NDR_CHECK(ndr_pull_align(ndr, 4));
5822 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
5823 if (_ptr_servername) {
5824 NDR_PULL_ALLOC(ndr, r->servername);
5826 r->servername = NULL;
5828 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
5829 if (_ptr_printername) {
5830 NDR_PULL_ALLOC(ndr, r->printername);
5832 r->printername = NULL;
5834 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
5835 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
5836 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
5837 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
5838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
5839 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
5840 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
5841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
5842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
5843 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
5844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
5845 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
5846 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
5847 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
5848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
5849 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
5850 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
5851 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
5852 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
5853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
5854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
5855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
5856 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
5857 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
5858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
5859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
5860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
5862 if (ndr_flags & NDR_BUFFERS) {
5863 if (r->servername) {
5864 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5865 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
5866 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
5867 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
5868 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
5869 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));
5871 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
5872 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
5873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
5875 if (r->printername) {
5876 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
5877 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
5878 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
5879 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
5880 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
5881 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));
5883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
5884 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
5885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
5888 return NDR_ERR_SUCCESS;
5891 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
5893 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
5895 ndr_print_ptr(ndr, "servername", r->servername);
5897 if (r->servername) {
5898 ndr_print_string(ndr, "servername", r->servername);
5901 ndr_print_ptr(ndr, "printername", r->printername);
5903 if (r->printername) {
5904 ndr_print_string(ndr, "printername", r->printername);
5907 ndr_print_uint32(ndr, "cjobs", r->cjobs);
5908 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
5909 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
5910 ndr_print_spoolss_Time(ndr, "time", &r->time);
5911 ndr_print_uint32(ndr, "global_counter", r->global_counter);
5912 ndr_print_uint32(ndr, "total_pages", r->total_pages);
5913 ndr_print_uint32(ndr, "version", r->version);
5914 ndr_print_uint32(ndr, "free_build", r->free_build);
5915 ndr_print_uint32(ndr, "spooling", r->spooling);
5916 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
5917 ndr_print_uint32(ndr, "session_counter", r->session_counter);
5918 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
5919 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
5920 ndr_print_uint32(ndr, "job_error", r->job_error);
5921 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
5922 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
5923 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
5924 ndr_print_uint32(ndr, "change_id", r->change_id);
5925 ndr_print_WERROR(ndr, "last_error", r->last_error);
5926 ndr_print_uint32(ndr, "status", r->status);
5927 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
5928 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
5929 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
5930 ndr_print_uint16(ndr, "processor_level", r->processor_level);
5931 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
5932 ndr_print_uint32(ndr, "reserved2", r->reserved2);
5933 ndr_print_uint32(ndr, "reserved3", r->reserved3);
5937 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
5939 if (ndr_flags & NDR_SCALARS) {
5940 NDR_CHECK(ndr_push_align(ndr, 4));
5941 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
5942 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
5943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
5944 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
5946 if (ndr_flags & NDR_BUFFERS) {
5948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
5951 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5953 if (r->description) {
5954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
5957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5960 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
5963 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5966 return NDR_ERR_SUCCESS;
5969 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
5972 TALLOC_CTX *_mem_save_name_0;
5973 uint32_t _ptr_description;
5974 TALLOC_CTX *_mem_save_description_0;
5975 uint32_t _ptr_comment;
5976 TALLOC_CTX *_mem_save_comment_0;
5977 if (ndr_flags & NDR_SCALARS) {
5978 NDR_CHECK(ndr_pull_align(ndr, 4));
5979 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
5980 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
5982 NDR_PULL_ALLOC(ndr, r->name);
5986 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
5987 if (_ptr_description) {
5988 NDR_PULL_ALLOC(ndr, r->description);
5990 r->description = NULL;
5992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
5994 NDR_PULL_ALLOC(ndr, r->comment);
5999 if (ndr_flags & NDR_BUFFERS) {
6001 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6002 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
6003 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
6004 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
6005 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
6006 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));
6008 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
6009 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
6010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
6012 if (r->description) {
6013 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
6014 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
6015 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
6016 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
6017 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
6018 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));
6020 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
6021 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
6022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
6025 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6026 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6027 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6028 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6029 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6030 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));
6032 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6033 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6037 return NDR_ERR_SUCCESS;
6040 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
6042 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
6044 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
6045 ndr_print_ptr(ndr, "name", r->name);
6048 ndr_print_string(ndr, "name", r->name);
6051 ndr_print_ptr(ndr, "description", r->description);
6053 if (r->description) {
6054 ndr_print_string(ndr, "description", r->description);
6057 ndr_print_ptr(ndr, "comment", r->comment);
6060 ndr_print_string(ndr, "comment", r->comment);
6066 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
6068 if (ndr_flags & NDR_SCALARS) {
6069 NDR_CHECK(ndr_push_align(ndr, 4));
6070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6072 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
6073 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6074 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
6075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
6076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
6077 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
6078 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
6079 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
6080 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
6081 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
6082 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
6083 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
6085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
6086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
6087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
6088 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
6090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
6092 if (ndr_flags & NDR_BUFFERS) {
6093 if (r->servername) {
6094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6097 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6099 if (r->printername) {
6100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6103 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
6109 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6115 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6117 if (r->drivername) {
6118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
6121 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
6127 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6131 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
6133 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6137 struct ndr_push *_ndr_devmode;
6138 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6139 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6140 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
6144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
6147 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6149 if (r->printprocessor) {
6150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
6153 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
6159 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6161 if (r->parameters) {
6162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6164 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
6165 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6169 struct ndr_push *_ndr_secdesc;
6170 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6171 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6172 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6176 return NDR_ERR_SUCCESS;
6179 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
6181 uint32_t _ptr_servername;
6182 TALLOC_CTX *_mem_save_servername_0;
6183 uint32_t _ptr_printername;
6184 TALLOC_CTX *_mem_save_printername_0;
6185 uint32_t _ptr_sharename;
6186 TALLOC_CTX *_mem_save_sharename_0;
6187 uint32_t _ptr_portname;
6188 TALLOC_CTX *_mem_save_portname_0;
6189 uint32_t _ptr_drivername;
6190 TALLOC_CTX *_mem_save_drivername_0;
6191 uint32_t _ptr_comment;
6192 TALLOC_CTX *_mem_save_comment_0;
6193 uint32_t _ptr_location;
6194 TALLOC_CTX *_mem_save_location_0;
6195 uint32_t _ptr_devmode;
6196 TALLOC_CTX *_mem_save_devmode_0;
6197 uint32_t _ptr_sepfile;
6198 TALLOC_CTX *_mem_save_sepfile_0;
6199 uint32_t _ptr_printprocessor;
6200 TALLOC_CTX *_mem_save_printprocessor_0;
6201 uint32_t _ptr_datatype;
6202 TALLOC_CTX *_mem_save_datatype_0;
6203 uint32_t _ptr_parameters;
6204 TALLOC_CTX *_mem_save_parameters_0;
6205 uint32_t _ptr_secdesc;
6206 TALLOC_CTX *_mem_save_secdesc_0;
6207 if (ndr_flags & NDR_SCALARS) {
6208 NDR_CHECK(ndr_pull_align(ndr, 4));
6209 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6210 if (_ptr_servername) {
6211 NDR_PULL_ALLOC(ndr, r->servername);
6213 r->servername = NULL;
6215 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6216 if (_ptr_printername) {
6217 NDR_PULL_ALLOC(ndr, r->printername);
6219 r->printername = NULL;
6221 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
6222 if (_ptr_sharename) {
6223 NDR_PULL_ALLOC(ndr, r->sharename);
6225 r->sharename = NULL;
6227 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6228 if (_ptr_portname) {
6229 NDR_PULL_ALLOC(ndr, r->portname);
6233 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
6234 if (_ptr_drivername) {
6235 NDR_PULL_ALLOC(ndr, r->drivername);
6237 r->drivername = NULL;
6239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
6241 NDR_PULL_ALLOC(ndr, r->comment);
6245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
6246 if (_ptr_location) {
6247 NDR_PULL_ALLOC(ndr, r->location);
6251 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
6253 NDR_PULL_ALLOC(ndr, r->devmode);
6257 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
6259 NDR_PULL_ALLOC(ndr, r->sepfile);
6263 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
6264 if (_ptr_printprocessor) {
6265 NDR_PULL_ALLOC(ndr, r->printprocessor);
6267 r->printprocessor = NULL;
6269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
6270 if (_ptr_datatype) {
6271 NDR_PULL_ALLOC(ndr, r->datatype);
6275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
6276 if (_ptr_parameters) {
6277 NDR_PULL_ALLOC(ndr, r->parameters);
6279 r->parameters = NULL;
6281 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
6283 NDR_PULL_ALLOC(ndr, r->secdesc);
6287 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
6289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
6290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
6291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
6292 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6293 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
6294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
6296 if (ndr_flags & NDR_BUFFERS) {
6297 if (r->servername) {
6298 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6299 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6300 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6301 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6302 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6303 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));
6305 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6306 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6309 if (r->printername) {
6310 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6311 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6312 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6313 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6314 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6315 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));
6317 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6318 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6322 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
6323 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
6324 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
6325 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
6326 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
6327 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));
6329 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
6330 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
6331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
6334 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6335 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6336 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6337 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6338 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6339 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));
6341 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6342 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6345 if (r->drivername) {
6346 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6347 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
6348 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
6349 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
6350 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
6351 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));
6353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
6354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
6355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
6358 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
6359 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
6360 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
6361 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
6362 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
6363 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));
6365 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
6366 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
6367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
6370 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
6371 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
6372 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
6373 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
6374 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
6375 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));
6377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
6378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
6379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
6382 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
6383 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
6385 struct ndr_pull *_ndr_devmode;
6386 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
6387 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
6388 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
6390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
6393 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
6394 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
6395 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
6396 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
6397 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
6398 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));
6400 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
6401 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
6402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
6404 if (r->printprocessor) {
6405 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6406 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
6407 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
6408 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
6409 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
6410 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));
6412 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
6413 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
6414 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
6417 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6418 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
6419 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
6420 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
6421 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
6422 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));
6424 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
6425 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
6426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
6428 if (r->parameters) {
6429 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
6430 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
6431 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
6432 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
6433 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
6434 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));
6436 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
6437 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
6438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
6441 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
6442 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
6444 struct ndr_pull *_ndr_secdesc;
6445 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
6446 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
6447 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
6449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
6452 return NDR_ERR_SUCCESS;
6455 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
6457 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
6459 ndr_print_ptr(ndr, "servername", r->servername);
6461 if (r->servername) {
6462 ndr_print_string(ndr, "servername", r->servername);
6465 ndr_print_ptr(ndr, "printername", r->printername);
6467 if (r->printername) {
6468 ndr_print_string(ndr, "printername", r->printername);
6471 ndr_print_ptr(ndr, "sharename", r->sharename);
6474 ndr_print_string(ndr, "sharename", r->sharename);
6477 ndr_print_ptr(ndr, "portname", r->portname);
6480 ndr_print_string(ndr, "portname", r->portname);
6483 ndr_print_ptr(ndr, "drivername", r->drivername);
6485 if (r->drivername) {
6486 ndr_print_string(ndr, "drivername", r->drivername);
6489 ndr_print_ptr(ndr, "comment", r->comment);
6492 ndr_print_string(ndr, "comment", r->comment);
6495 ndr_print_ptr(ndr, "location", r->location);
6498 ndr_print_string(ndr, "location", r->location);
6501 ndr_print_ptr(ndr, "devmode", r->devmode);
6504 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
6507 ndr_print_ptr(ndr, "sepfile", r->sepfile);
6510 ndr_print_string(ndr, "sepfile", r->sepfile);
6513 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
6515 if (r->printprocessor) {
6516 ndr_print_string(ndr, "printprocessor", r->printprocessor);
6519 ndr_print_ptr(ndr, "datatype", r->datatype);
6522 ndr_print_string(ndr, "datatype", r->datatype);
6525 ndr_print_ptr(ndr, "parameters", r->parameters);
6527 if (r->parameters) {
6528 ndr_print_string(ndr, "parameters", r->parameters);
6531 ndr_print_ptr(ndr, "secdesc", r->secdesc);
6534 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
6537 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6538 ndr_print_uint32(ndr, "priority", r->priority);
6539 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
6540 ndr_print_uint32(ndr, "starttime", r->starttime);
6541 ndr_print_uint32(ndr, "untiltime", r->untiltime);
6542 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6543 ndr_print_uint32(ndr, "cjobs", r->cjobs);
6544 ndr_print_uint32(ndr, "averageppm", r->averageppm);
6548 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
6550 if (ndr_flags & NDR_SCALARS) {
6551 NDR_CHECK(ndr_push_align(ndr, 4));
6552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->sec_desc_ptr));
6554 if (ndr_flags & NDR_BUFFERS) {
6556 return NDR_ERR_SUCCESS;
6559 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
6561 if (ndr_flags & NDR_SCALARS) {
6562 NDR_CHECK(ndr_pull_align(ndr, 4));
6563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->sec_desc_ptr));
6565 if (ndr_flags & NDR_BUFFERS) {
6567 return NDR_ERR_SUCCESS;
6570 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
6572 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
6574 ndr_print_uint32(ndr, "sec_desc_ptr", r->sec_desc_ptr);
6578 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
6580 if (ndr_flags & NDR_SCALARS) {
6581 NDR_CHECK(ndr_push_align(ndr, 4));
6582 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
6584 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6586 if (ndr_flags & NDR_BUFFERS) {
6587 if (r->printername) {
6588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6591 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6593 if (r->servername) {
6594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
6597 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6600 return NDR_ERR_SUCCESS;
6603 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
6605 uint32_t _ptr_printername;
6606 TALLOC_CTX *_mem_save_printername_0;
6607 uint32_t _ptr_servername;
6608 TALLOC_CTX *_mem_save_servername_0;
6609 if (ndr_flags & NDR_SCALARS) {
6610 NDR_CHECK(ndr_pull_align(ndr, 4));
6611 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6612 if (_ptr_printername) {
6613 NDR_PULL_ALLOC(ndr, r->printername);
6615 r->printername = NULL;
6617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
6618 if (_ptr_servername) {
6619 NDR_PULL_ALLOC(ndr, r->servername);
6621 r->servername = NULL;
6623 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6625 if (ndr_flags & NDR_BUFFERS) {
6626 if (r->printername) {
6627 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6628 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6629 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6630 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6631 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6632 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));
6634 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6635 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6638 if (r->servername) {
6639 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6640 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
6641 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
6642 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
6643 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
6644 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));
6646 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
6647 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
6648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
6651 return NDR_ERR_SUCCESS;
6654 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
6656 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
6658 ndr_print_ptr(ndr, "printername", r->printername);
6660 if (r->printername) {
6661 ndr_print_string(ndr, "printername", r->printername);
6664 ndr_print_ptr(ndr, "servername", r->servername);
6666 if (r->servername) {
6667 ndr_print_string(ndr, "servername", r->servername);
6670 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6674 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
6676 if (ndr_flags & NDR_SCALARS) {
6677 NDR_CHECK(ndr_push_align(ndr, 4));
6678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
6679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
6680 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
6681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
6682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
6684 if (ndr_flags & NDR_BUFFERS) {
6685 if (r->printername) {
6686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
6689 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
6695 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6698 return NDR_ERR_SUCCESS;
6701 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
6703 uint32_t _ptr_printername;
6704 TALLOC_CTX *_mem_save_printername_0;
6705 uint32_t _ptr_portname;
6706 TALLOC_CTX *_mem_save_portname_0;
6707 if (ndr_flags & NDR_SCALARS) {
6708 NDR_CHECK(ndr_pull_align(ndr, 4));
6709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
6710 if (_ptr_printername) {
6711 NDR_PULL_ALLOC(ndr, r->printername);
6713 r->printername = NULL;
6715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
6716 if (_ptr_portname) {
6717 NDR_PULL_ALLOC(ndr, r->portname);
6721 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
6722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
6723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
6725 if (ndr_flags & NDR_BUFFERS) {
6726 if (r->printername) {
6727 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
6728 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
6729 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
6730 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
6731 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
6732 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));
6734 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
6735 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
6736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
6739 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
6740 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
6741 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
6742 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
6743 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
6744 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));
6746 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
6747 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
6748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
6751 return NDR_ERR_SUCCESS;
6754 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
6756 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
6758 ndr_print_ptr(ndr, "printername", r->printername);
6760 if (r->printername) {
6761 ndr_print_string(ndr, "printername", r->printername);
6764 ndr_print_ptr(ndr, "portname", r->portname);
6767 ndr_print_string(ndr, "portname", r->portname);
6770 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
6771 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
6772 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
6776 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
6778 if (ndr_flags & NDR_SCALARS) {
6779 NDR_CHECK(ndr_push_align(ndr, 4));
6780 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
6782 if (ndr_flags & NDR_BUFFERS) {
6784 return NDR_ERR_SUCCESS;
6787 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
6789 if (ndr_flags & NDR_SCALARS) {
6790 NDR_CHECK(ndr_pull_align(ndr, 4));
6791 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
6793 if (ndr_flags & NDR_BUFFERS) {
6795 return NDR_ERR_SUCCESS;
6798 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
6800 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
6802 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
6806 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
6808 if (ndr_flags & NDR_SCALARS) {
6809 NDR_CHECK(ndr_push_align(ndr, 4));
6810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
6811 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
6813 if (ndr_flags & NDR_BUFFERS) {
6815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
6818 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6821 return NDR_ERR_SUCCESS;
6824 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
6827 TALLOC_CTX *_mem_save_guid_0;
6828 if (ndr_flags & NDR_SCALARS) {
6829 NDR_CHECK(ndr_pull_align(ndr, 4));
6830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
6832 NDR_PULL_ALLOC(ndr, r->guid);
6836 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
6838 if (ndr_flags & NDR_BUFFERS) {
6840 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
6841 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
6842 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
6843 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
6844 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
6845 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));
6847 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
6848 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
6849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
6852 return NDR_ERR_SUCCESS;
6855 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
6857 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
6859 ndr_print_ptr(ndr, "guid", r->guid);
6862 ndr_print_string(ndr, "guid", r->guid);
6865 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
6869 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
6871 if (ndr_flags & NDR_SCALARS) {
6872 int level = ndr_push_get_switch_value(ndr, r);
6873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6876 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
6880 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6884 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6888 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6892 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
6900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6904 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
6908 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
6920 if (ndr_flags & NDR_BUFFERS) {
6921 int level = ndr_push_get_switch_value(ndr, r);
6925 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
6931 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6937 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6943 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
6949 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6955 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
6961 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
6967 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
6973 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6979 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
6988 return NDR_ERR_SUCCESS;
6991 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
6995 TALLOC_CTX *_mem_save_info0_0;
6996 TALLOC_CTX *_mem_save_info1_0;
6997 TALLOC_CTX *_mem_save_info2_0;
6998 TALLOC_CTX *_mem_save_info3_0;
6999 TALLOC_CTX *_mem_save_info4_0;
7000 TALLOC_CTX *_mem_save_info5_0;
7001 TALLOC_CTX *_mem_save_info6_0;
7002 TALLOC_CTX *_mem_save_info7_0;
7003 TALLOC_CTX *_mem_save_info8_0;
7004 TALLOC_CTX *_mem_save_info9_0;
7005 level = ndr_pull_get_switch_value(ndr, r);
7006 if (ndr_flags & NDR_SCALARS) {
7007 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
7008 if (_level != level) {
7009 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
7013 uint32_t _ptr_info0;
7014 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
7016 NDR_PULL_ALLOC(ndr, r->info0);
7023 uint32_t _ptr_info1;
7024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
7026 NDR_PULL_ALLOC(ndr, r->info1);
7033 uint32_t _ptr_info2;
7034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
7036 NDR_PULL_ALLOC(ndr, r->info2);
7043 uint32_t _ptr_info3;
7044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
7046 NDR_PULL_ALLOC(ndr, r->info3);
7053 uint32_t _ptr_info4;
7054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
7056 NDR_PULL_ALLOC(ndr, r->info4);
7063 uint32_t _ptr_info5;
7064 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
7066 NDR_PULL_ALLOC(ndr, r->info5);
7073 uint32_t _ptr_info6;
7074 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
7076 NDR_PULL_ALLOC(ndr, r->info6);
7083 uint32_t _ptr_info7;
7084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
7086 NDR_PULL_ALLOC(ndr, r->info7);
7093 uint32_t _ptr_info8;
7094 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
7096 NDR_PULL_ALLOC(ndr, r->info8);
7103 uint32_t _ptr_info9;
7104 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
7106 NDR_PULL_ALLOC(ndr, r->info9);
7117 if (ndr_flags & NDR_BUFFERS) {
7121 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
7122 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
7123 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
7124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
7130 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
7131 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
7132 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
7133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7139 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7140 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7141 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7148 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7149 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7150 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS, r->info3));
7151 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7157 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7158 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7159 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7166 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
7167 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
7168 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
7169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
7175 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7176 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7177 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
7178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7184 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
7185 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
7186 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
7187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
7193 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7194 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7195 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7202 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
7203 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
7204 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
7205 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
7214 return NDR_ERR_SUCCESS;
7217 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
7220 level = ndr_print_get_switch_value(ndr, r);
7221 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
7224 ndr_print_ptr(ndr, "info0", r->info0);
7227 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
7233 ndr_print_ptr(ndr, "info1", r->info1);
7236 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
7242 ndr_print_ptr(ndr, "info2", r->info2);
7245 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
7251 ndr_print_ptr(ndr, "info3", r->info3);
7254 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
7260 ndr_print_ptr(ndr, "info4", r->info4);
7263 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
7269 ndr_print_ptr(ndr, "info5", r->info5);
7272 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
7278 ndr_print_ptr(ndr, "info6", r->info6);
7281 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
7287 ndr_print_ptr(ndr, "info7", r->info7);
7290 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
7296 ndr_print_ptr(ndr, "info8", r->info8);
7299 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
7305 ndr_print_ptr(ndr, "info9", r->info9);
7308 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
7319 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
7321 if (ndr_flags & NDR_SCALARS) {
7322 NDR_CHECK(ndr_push_align(ndr, 4));
7323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7324 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7325 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7327 if (ndr_flags & NDR_BUFFERS) {
7328 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7330 return NDR_ERR_SUCCESS;
7333 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
7335 if (ndr_flags & NDR_SCALARS) {
7336 NDR_CHECK(ndr_pull_align(ndr, 4));
7337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7338 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7339 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
7341 if (ndr_flags & NDR_BUFFERS) {
7342 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
7344 return NDR_ERR_SUCCESS;
7347 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
7349 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
7351 ndr_print_uint32(ndr, "level", r->level);
7352 ndr_print_set_switch_value(ndr, &r->info, r->level);
7353 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
7357 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
7359 if (ndr_flags & NDR_SCALARS) {
7360 NDR_CHECK(ndr_push_align(ndr, 4));
7361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
7363 uint32_t _flags_save_string_array = ndr->flags;
7364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7365 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
7366 ndr->flags = _flags_save_string_array;
7369 if (ndr_flags & NDR_BUFFERS) {
7371 return NDR_ERR_SUCCESS;
7374 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
7376 if (ndr_flags & NDR_SCALARS) {
7377 NDR_CHECK(ndr_pull_align(ndr, 4));
7378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
7380 uint32_t _flags_save_string_array = ndr->flags;
7381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7382 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
7383 ndr->flags = _flags_save_string_array;
7386 if (ndr_flags & NDR_BUFFERS) {
7388 return NDR_ERR_SUCCESS;
7391 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
7393 ndr_print_struct(ndr, name, "spoolss_StringArray");
7395 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);
7396 ndr_print_string_array(ndr, "string", r->string);
7400 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
7402 if (ndr_flags & NDR_SCALARS) {
7403 NDR_CHECK(ndr_push_align(ndr, 4));
7404 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7406 if (ndr_flags & NDR_BUFFERS) {
7407 if (r->driver_name) {
7408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7411 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7414 return NDR_ERR_SUCCESS;
7417 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
7419 uint32_t _ptr_driver_name;
7420 TALLOC_CTX *_mem_save_driver_name_0;
7421 if (ndr_flags & NDR_SCALARS) {
7422 NDR_CHECK(ndr_pull_align(ndr, 4));
7423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7424 if (_ptr_driver_name) {
7425 NDR_PULL_ALLOC(ndr, r->driver_name);
7427 r->driver_name = NULL;
7430 if (ndr_flags & NDR_BUFFERS) {
7431 if (r->driver_name) {
7432 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7433 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7434 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7435 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7436 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7437 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));
7439 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7440 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7444 return NDR_ERR_SUCCESS;
7447 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
7449 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
7451 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7453 if (r->driver_name) {
7454 ndr_print_string(ndr, "driver_name", r->driver_name);
7460 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
7462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
7463 return NDR_ERR_SUCCESS;
7466 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
7469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
7471 return NDR_ERR_SUCCESS;
7474 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
7476 const char *val = NULL;
7479 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
7480 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
7481 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
7482 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
7484 ndr_print_enum(ndr, name, "ENUM", val, r);
7487 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
7489 if (ndr_flags & NDR_SCALARS) {
7490 NDR_CHECK(ndr_push_align(ndr, 4));
7491 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7493 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7494 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7495 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7498 if (ndr_flags & NDR_BUFFERS) {
7499 if (r->driver_name) {
7500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7503 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7505 if (r->architecture) {
7506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7507 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7508 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7509 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7511 if (r->driver_path) {
7512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7515 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7521 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7523 if (r->config_file) {
7524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7525 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7527 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7530 return NDR_ERR_SUCCESS;
7533 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
7535 uint32_t _ptr_driver_name;
7536 TALLOC_CTX *_mem_save_driver_name_0;
7537 uint32_t _ptr_architecture;
7538 TALLOC_CTX *_mem_save_architecture_0;
7539 uint32_t _ptr_driver_path;
7540 TALLOC_CTX *_mem_save_driver_path_0;
7541 uint32_t _ptr_data_file;
7542 TALLOC_CTX *_mem_save_data_file_0;
7543 uint32_t _ptr_config_file;
7544 TALLOC_CTX *_mem_save_config_file_0;
7545 if (ndr_flags & NDR_SCALARS) {
7546 NDR_CHECK(ndr_pull_align(ndr, 4));
7547 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7549 if (_ptr_driver_name) {
7550 NDR_PULL_ALLOC(ndr, r->driver_name);
7552 r->driver_name = NULL;
7554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7555 if (_ptr_architecture) {
7556 NDR_PULL_ALLOC(ndr, r->architecture);
7558 r->architecture = NULL;
7560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7561 if (_ptr_driver_path) {
7562 NDR_PULL_ALLOC(ndr, r->driver_path);
7564 r->driver_path = NULL;
7566 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7567 if (_ptr_data_file) {
7568 NDR_PULL_ALLOC(ndr, r->data_file);
7570 r->data_file = NULL;
7572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7573 if (_ptr_config_file) {
7574 NDR_PULL_ALLOC(ndr, r->config_file);
7576 r->config_file = NULL;
7579 if (ndr_flags & NDR_BUFFERS) {
7580 if (r->driver_name) {
7581 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7582 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7583 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7584 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7585 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7586 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));
7588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7592 if (r->architecture) {
7593 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7594 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7595 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7596 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7597 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7598 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));
7600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7604 if (r->driver_path) {
7605 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7606 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7607 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7608 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7609 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7610 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));
7612 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7613 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7617 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7618 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7619 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7620 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7621 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7622 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));
7624 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7625 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7626 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7628 if (r->config_file) {
7629 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7630 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7631 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7632 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7633 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7634 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));
7636 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7637 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7641 return NDR_ERR_SUCCESS;
7644 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
7646 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
7648 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7649 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7651 if (r->driver_name) {
7652 ndr_print_string(ndr, "driver_name", r->driver_name);
7655 ndr_print_ptr(ndr, "architecture", r->architecture);
7657 if (r->architecture) {
7658 ndr_print_string(ndr, "architecture", r->architecture);
7661 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7663 if (r->driver_path) {
7664 ndr_print_string(ndr, "driver_path", r->driver_path);
7667 ndr_print_ptr(ndr, "data_file", r->data_file);
7670 ndr_print_string(ndr, "data_file", r->data_file);
7673 ndr_print_ptr(ndr, "config_file", r->config_file);
7675 if (r->config_file) {
7676 ndr_print_string(ndr, "config_file", r->config_file);
7682 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
7684 if (ndr_flags & NDR_SCALARS) {
7685 NDR_CHECK(ndr_push_align(ndr, 4));
7686 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7687 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
7688 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
7689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
7690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
7691 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
7692 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
7693 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
7694 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
7695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
7696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
7698 if (ndr_flags & NDR_BUFFERS) {
7699 if (r->driver_name) {
7700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
7703 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7705 if (r->architecture) {
7706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
7709 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7711 if (r->driver_path) {
7712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
7715 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
7721 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7723 if (r->config_file) {
7724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
7727 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
7733 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7735 if (r->monitor_name) {
7736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
7739 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7741 if (r->default_datatype) {
7742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
7744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
7745 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
7747 if (r->dependent_files) {
7748 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7751 return NDR_ERR_SUCCESS;
7754 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
7756 uint32_t _ptr_driver_name;
7757 TALLOC_CTX *_mem_save_driver_name_0;
7758 uint32_t _ptr_architecture;
7759 TALLOC_CTX *_mem_save_architecture_0;
7760 uint32_t _ptr_driver_path;
7761 TALLOC_CTX *_mem_save_driver_path_0;
7762 uint32_t _ptr_data_file;
7763 TALLOC_CTX *_mem_save_data_file_0;
7764 uint32_t _ptr_config_file;
7765 TALLOC_CTX *_mem_save_config_file_0;
7766 uint32_t _ptr_help_file;
7767 TALLOC_CTX *_mem_save_help_file_0;
7768 uint32_t _ptr_monitor_name;
7769 TALLOC_CTX *_mem_save_monitor_name_0;
7770 uint32_t _ptr_default_datatype;
7771 TALLOC_CTX *_mem_save_default_datatype_0;
7772 uint32_t _ptr_dependent_files;
7773 TALLOC_CTX *_mem_save_dependent_files_0;
7774 if (ndr_flags & NDR_SCALARS) {
7775 NDR_CHECK(ndr_pull_align(ndr, 4));
7776 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7777 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7778 if (_ptr_driver_name) {
7779 NDR_PULL_ALLOC(ndr, r->driver_name);
7781 r->driver_name = NULL;
7783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7784 if (_ptr_architecture) {
7785 NDR_PULL_ALLOC(ndr, r->architecture);
7787 r->architecture = NULL;
7789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7790 if (_ptr_driver_path) {
7791 NDR_PULL_ALLOC(ndr, r->driver_path);
7793 r->driver_path = NULL;
7795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7796 if (_ptr_data_file) {
7797 NDR_PULL_ALLOC(ndr, r->data_file);
7799 r->data_file = NULL;
7801 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7802 if (_ptr_config_file) {
7803 NDR_PULL_ALLOC(ndr, r->config_file);
7805 r->config_file = NULL;
7807 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7808 if (_ptr_help_file) {
7809 NDR_PULL_ALLOC(ndr, r->help_file);
7811 r->help_file = NULL;
7813 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7814 if (_ptr_monitor_name) {
7815 NDR_PULL_ALLOC(ndr, r->monitor_name);
7817 r->monitor_name = NULL;
7819 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7820 if (_ptr_default_datatype) {
7821 NDR_PULL_ALLOC(ndr, r->default_datatype);
7823 r->default_datatype = NULL;
7825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
7826 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7827 if (_ptr_dependent_files) {
7828 NDR_PULL_ALLOC(ndr, r->dependent_files);
7830 r->dependent_files = NULL;
7833 if (ndr_flags & NDR_BUFFERS) {
7834 if (r->driver_name) {
7835 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7836 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7837 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
7838 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
7839 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
7840 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));
7842 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
7843 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
7844 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7846 if (r->architecture) {
7847 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7848 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7849 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
7850 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
7851 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
7852 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));
7854 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
7855 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
7856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7858 if (r->driver_path) {
7859 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7860 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7861 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
7862 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
7863 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
7864 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));
7866 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
7867 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
7868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7871 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7872 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7873 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
7874 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
7875 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
7876 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));
7878 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
7879 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
7880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7882 if (r->config_file) {
7883 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7884 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7885 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
7886 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
7887 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
7888 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));
7890 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
7891 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
7892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7895 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7896 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7897 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
7898 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
7899 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
7900 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));
7902 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
7903 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
7904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7906 if (r->monitor_name) {
7907 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7908 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7909 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
7910 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
7911 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
7912 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));
7914 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
7915 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
7916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7918 if (r->default_datatype) {
7919 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7920 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7921 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
7922 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
7923 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
7924 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));
7926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
7927 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
7928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7930 if (r->dependent_files) {
7931 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7932 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7933 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
7934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7937 return NDR_ERR_SUCCESS;
7940 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
7942 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
7944 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7945 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7947 if (r->driver_name) {
7948 ndr_print_string(ndr, "driver_name", r->driver_name);
7951 ndr_print_ptr(ndr, "architecture", r->architecture);
7953 if (r->architecture) {
7954 ndr_print_string(ndr, "architecture", r->architecture);
7957 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7959 if (r->driver_path) {
7960 ndr_print_string(ndr, "driver_path", r->driver_path);
7963 ndr_print_ptr(ndr, "data_file", r->data_file);
7966 ndr_print_string(ndr, "data_file", r->data_file);
7969 ndr_print_ptr(ndr, "config_file", r->config_file);
7971 if (r->config_file) {
7972 ndr_print_string(ndr, "config_file", r->config_file);
7975 ndr_print_ptr(ndr, "help_file", r->help_file);
7978 ndr_print_string(ndr, "help_file", r->help_file);
7981 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7983 if (r->monitor_name) {
7984 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7987 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7989 if (r->default_datatype) {
7990 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7993 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);
7994 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7996 if (r->dependent_files) {
7997 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8003 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
8005 if (ndr_flags & NDR_SCALARS) {
8006 NDR_CHECK(ndr_push_align(ndr, 4));
8007 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8008 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8009 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8010 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8011 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8012 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8013 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8014 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8016 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8019 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8021 if (ndr_flags & NDR_BUFFERS) {
8022 if (r->driver_name) {
8023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8026 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8028 if (r->architecture) {
8029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8032 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8034 if (r->driver_path) {
8035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8038 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8044 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8046 if (r->config_file) {
8047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8058 if (r->monitor_name) {
8059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8062 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8064 if (r->default_datatype) {
8065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8070 if (r->dependent_files) {
8071 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8073 if (r->previous_names) {
8074 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8077 return NDR_ERR_SUCCESS;
8080 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
8082 uint32_t _ptr_driver_name;
8083 TALLOC_CTX *_mem_save_driver_name_0;
8084 uint32_t _ptr_architecture;
8085 TALLOC_CTX *_mem_save_architecture_0;
8086 uint32_t _ptr_driver_path;
8087 TALLOC_CTX *_mem_save_driver_path_0;
8088 uint32_t _ptr_data_file;
8089 TALLOC_CTX *_mem_save_data_file_0;
8090 uint32_t _ptr_config_file;
8091 TALLOC_CTX *_mem_save_config_file_0;
8092 uint32_t _ptr_help_file;
8093 TALLOC_CTX *_mem_save_help_file_0;
8094 uint32_t _ptr_monitor_name;
8095 TALLOC_CTX *_mem_save_monitor_name_0;
8096 uint32_t _ptr_default_datatype;
8097 TALLOC_CTX *_mem_save_default_datatype_0;
8098 uint32_t _ptr_dependent_files;
8099 TALLOC_CTX *_mem_save_dependent_files_0;
8100 uint32_t _ptr_previous_names;
8101 TALLOC_CTX *_mem_save_previous_names_0;
8102 if (ndr_flags & NDR_SCALARS) {
8103 NDR_CHECK(ndr_pull_align(ndr, 4));
8104 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8105 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8106 if (_ptr_driver_name) {
8107 NDR_PULL_ALLOC(ndr, r->driver_name);
8109 r->driver_name = NULL;
8111 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8112 if (_ptr_architecture) {
8113 NDR_PULL_ALLOC(ndr, r->architecture);
8115 r->architecture = NULL;
8117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8118 if (_ptr_driver_path) {
8119 NDR_PULL_ALLOC(ndr, r->driver_path);
8121 r->driver_path = NULL;
8123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8124 if (_ptr_data_file) {
8125 NDR_PULL_ALLOC(ndr, r->data_file);
8127 r->data_file = NULL;
8129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8130 if (_ptr_config_file) {
8131 NDR_PULL_ALLOC(ndr, r->config_file);
8133 r->config_file = NULL;
8135 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8136 if (_ptr_help_file) {
8137 NDR_PULL_ALLOC(ndr, r->help_file);
8139 r->help_file = NULL;
8141 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8142 if (_ptr_monitor_name) {
8143 NDR_PULL_ALLOC(ndr, r->monitor_name);
8145 r->monitor_name = NULL;
8147 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8148 if (_ptr_default_datatype) {
8149 NDR_PULL_ALLOC(ndr, r->default_datatype);
8151 r->default_datatype = NULL;
8153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8155 if (_ptr_dependent_files) {
8156 NDR_PULL_ALLOC(ndr, r->dependent_files);
8158 r->dependent_files = NULL;
8160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8161 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8162 if (_ptr_previous_names) {
8163 NDR_PULL_ALLOC(ndr, r->previous_names);
8165 r->previous_names = NULL;
8168 if (ndr_flags & NDR_BUFFERS) {
8169 if (r->driver_name) {
8170 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8171 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8172 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8173 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8174 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8175 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));
8177 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8178 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8181 if (r->architecture) {
8182 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8183 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8184 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8185 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8186 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8187 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));
8189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8193 if (r->driver_path) {
8194 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8195 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8196 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8197 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8198 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8199 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));
8201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8206 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8207 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8208 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8209 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8210 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8211 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));
8213 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8217 if (r->config_file) {
8218 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8219 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8220 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8221 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8222 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8223 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));
8225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8230 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8231 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8232 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8233 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8234 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8235 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));
8237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8241 if (r->monitor_name) {
8242 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8243 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8244 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8245 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8246 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8247 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));
8249 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8250 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8253 if (r->default_datatype) {
8254 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8255 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8256 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8257 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8258 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8259 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));
8261 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8262 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8265 if (r->dependent_files) {
8266 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8267 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8268 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8271 if (r->previous_names) {
8272 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8273 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8274 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8278 return NDR_ERR_SUCCESS;
8281 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
8283 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
8285 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8286 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8288 if (r->driver_name) {
8289 ndr_print_string(ndr, "driver_name", r->driver_name);
8292 ndr_print_ptr(ndr, "architecture", r->architecture);
8294 if (r->architecture) {
8295 ndr_print_string(ndr, "architecture", r->architecture);
8298 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8300 if (r->driver_path) {
8301 ndr_print_string(ndr, "driver_path", r->driver_path);
8304 ndr_print_ptr(ndr, "data_file", r->data_file);
8307 ndr_print_string(ndr, "data_file", r->data_file);
8310 ndr_print_ptr(ndr, "config_file", r->config_file);
8312 if (r->config_file) {
8313 ndr_print_string(ndr, "config_file", r->config_file);
8316 ndr_print_ptr(ndr, "help_file", r->help_file);
8319 ndr_print_string(ndr, "help_file", r->help_file);
8322 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8324 if (r->monitor_name) {
8325 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8328 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8330 if (r->default_datatype) {
8331 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8334 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);
8335 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8337 if (r->dependent_files) {
8338 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8341 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);
8342 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8344 if (r->previous_names) {
8345 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8351 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
8353 if (ndr_flags & NDR_SCALARS) {
8354 NDR_CHECK(ndr_push_align(ndr, 8));
8355 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8359 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8360 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8363 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8367 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8368 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8369 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8371 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8373 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8375 if (ndr_flags & NDR_BUFFERS) {
8376 if (r->driver_name) {
8377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8380 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8382 if (r->architecture) {
8383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8386 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8388 if (r->driver_path) {
8389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8392 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8398 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8400 if (r->config_file) {
8401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8404 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8410 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8412 if (r->monitor_name) {
8413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8416 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8418 if (r->default_datatype) {
8419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8422 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8424 if (r->dependent_files) {
8425 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8427 if (r->previous_names) {
8428 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8430 if (r->manufacturer_name) {
8431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8436 if (r->manufacturer_url) {
8437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8440 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8442 if (r->hardware_id) {
8443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8452 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8455 return NDR_ERR_SUCCESS;
8458 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
8460 uint32_t _ptr_driver_name;
8461 TALLOC_CTX *_mem_save_driver_name_0;
8462 uint32_t _ptr_architecture;
8463 TALLOC_CTX *_mem_save_architecture_0;
8464 uint32_t _ptr_driver_path;
8465 TALLOC_CTX *_mem_save_driver_path_0;
8466 uint32_t _ptr_data_file;
8467 TALLOC_CTX *_mem_save_data_file_0;
8468 uint32_t _ptr_config_file;
8469 TALLOC_CTX *_mem_save_config_file_0;
8470 uint32_t _ptr_help_file;
8471 TALLOC_CTX *_mem_save_help_file_0;
8472 uint32_t _ptr_monitor_name;
8473 TALLOC_CTX *_mem_save_monitor_name_0;
8474 uint32_t _ptr_default_datatype;
8475 TALLOC_CTX *_mem_save_default_datatype_0;
8476 uint32_t _ptr_dependent_files;
8477 TALLOC_CTX *_mem_save_dependent_files_0;
8478 uint32_t _ptr_previous_names;
8479 TALLOC_CTX *_mem_save_previous_names_0;
8480 uint32_t _ptr_manufacturer_name;
8481 TALLOC_CTX *_mem_save_manufacturer_name_0;
8482 uint32_t _ptr_manufacturer_url;
8483 TALLOC_CTX *_mem_save_manufacturer_url_0;
8484 uint32_t _ptr_hardware_id;
8485 TALLOC_CTX *_mem_save_hardware_id_0;
8486 uint32_t _ptr_provider;
8487 TALLOC_CTX *_mem_save_provider_0;
8488 if (ndr_flags & NDR_SCALARS) {
8489 NDR_CHECK(ndr_pull_align(ndr, 8));
8490 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8492 if (_ptr_driver_name) {
8493 NDR_PULL_ALLOC(ndr, r->driver_name);
8495 r->driver_name = NULL;
8497 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8498 if (_ptr_architecture) {
8499 NDR_PULL_ALLOC(ndr, r->architecture);
8501 r->architecture = NULL;
8503 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8504 if (_ptr_driver_path) {
8505 NDR_PULL_ALLOC(ndr, r->driver_path);
8507 r->driver_path = NULL;
8509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8510 if (_ptr_data_file) {
8511 NDR_PULL_ALLOC(ndr, r->data_file);
8513 r->data_file = NULL;
8515 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8516 if (_ptr_config_file) {
8517 NDR_PULL_ALLOC(ndr, r->config_file);
8519 r->config_file = NULL;
8521 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8522 if (_ptr_help_file) {
8523 NDR_PULL_ALLOC(ndr, r->help_file);
8525 r->help_file = NULL;
8527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8528 if (_ptr_monitor_name) {
8529 NDR_PULL_ALLOC(ndr, r->monitor_name);
8531 r->monitor_name = NULL;
8533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8534 if (_ptr_default_datatype) {
8535 NDR_PULL_ALLOC(ndr, r->default_datatype);
8537 r->default_datatype = NULL;
8539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
8540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8541 if (_ptr_dependent_files) {
8542 NDR_PULL_ALLOC(ndr, r->dependent_files);
8544 r->dependent_files = NULL;
8546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
8547 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8548 if (_ptr_previous_names) {
8549 NDR_PULL_ALLOC(ndr, r->previous_names);
8551 r->previous_names = NULL;
8553 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
8554 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8555 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8556 if (_ptr_manufacturer_name) {
8557 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8559 r->manufacturer_name = NULL;
8561 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8562 if (_ptr_manufacturer_url) {
8563 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8565 r->manufacturer_url = NULL;
8567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8568 if (_ptr_hardware_id) {
8569 NDR_PULL_ALLOC(ndr, r->hardware_id);
8571 r->hardware_id = NULL;
8573 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8574 if (_ptr_provider) {
8575 NDR_PULL_ALLOC(ndr, r->provider);
8580 if (ndr_flags & NDR_BUFFERS) {
8581 if (r->driver_name) {
8582 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8583 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8584 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
8585 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
8586 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
8587 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));
8589 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
8590 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
8591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8593 if (r->architecture) {
8594 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8595 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8596 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
8597 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
8598 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
8599 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));
8601 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
8602 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
8603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8605 if (r->driver_path) {
8606 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8607 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8608 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
8609 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
8610 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
8611 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));
8613 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
8614 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
8615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8618 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8619 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8620 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
8621 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
8622 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
8623 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));
8625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
8626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
8627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8629 if (r->config_file) {
8630 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8631 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8632 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
8633 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
8634 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
8635 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));
8637 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
8638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
8639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8642 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8643 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8644 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
8645 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
8646 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
8647 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));
8649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
8650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
8651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8653 if (r->monitor_name) {
8654 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8655 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8656 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
8657 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
8658 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
8659 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));
8661 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
8662 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
8663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8665 if (r->default_datatype) {
8666 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8667 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8668 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
8669 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
8670 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
8671 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));
8673 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
8674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
8675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8677 if (r->dependent_files) {
8678 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8679 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8680 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8683 if (r->previous_names) {
8684 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8685 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8686 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8689 if (r->manufacturer_name) {
8690 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8691 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8692 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
8693 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
8694 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
8695 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));
8697 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
8698 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
8699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8701 if (r->manufacturer_url) {
8702 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
8703 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8704 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
8705 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
8706 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
8707 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));
8709 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
8710 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
8711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8713 if (r->hardware_id) {
8714 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8715 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8716 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
8717 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
8718 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
8719 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));
8721 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
8722 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
8723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8726 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
8727 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8728 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
8729 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
8730 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
8731 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));
8733 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
8734 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
8735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8738 return NDR_ERR_SUCCESS;
8741 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
8743 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
8745 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8746 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8748 if (r->driver_name) {
8749 ndr_print_string(ndr, "driver_name", r->driver_name);
8752 ndr_print_ptr(ndr, "architecture", r->architecture);
8754 if (r->architecture) {
8755 ndr_print_string(ndr, "architecture", r->architecture);
8758 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8760 if (r->driver_path) {
8761 ndr_print_string(ndr, "driver_path", r->driver_path);
8764 ndr_print_ptr(ndr, "data_file", r->data_file);
8767 ndr_print_string(ndr, "data_file", r->data_file);
8770 ndr_print_ptr(ndr, "config_file", r->config_file);
8772 if (r->config_file) {
8773 ndr_print_string(ndr, "config_file", r->config_file);
8776 ndr_print_ptr(ndr, "help_file", r->help_file);
8779 ndr_print_string(ndr, "help_file", r->help_file);
8782 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8784 if (r->monitor_name) {
8785 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8788 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8790 if (r->default_datatype) {
8791 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8794 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);
8795 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8797 if (r->dependent_files) {
8798 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
8801 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);
8802 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8804 if (r->previous_names) {
8805 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
8808 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
8809 ndr_print_hyper(ndr, "driver_version", r->driver_version);
8810 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
8812 if (r->manufacturer_name) {
8813 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
8816 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
8818 if (r->manufacturer_url) {
8819 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
8822 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
8824 if (r->hardware_id) {
8825 ndr_print_string(ndr, "hardware_id", r->hardware_id);
8828 ndr_print_ptr(ndr, "provider", r->provider);
8831 ndr_print_string(ndr, "provider", r->provider);
8837 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
8839 if (ndr_flags & NDR_SCALARS) {
8840 NDR_CHECK(ndr_push_align(ndr, 8));
8841 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
8843 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
8844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
8845 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
8846 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
8847 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
8848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
8849 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
8850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8851 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
8852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
8854 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8855 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
8857 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
8858 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
8859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
8860 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
8861 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
8862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
8864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
8865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
8866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
8867 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
8868 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
8869 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
8871 if (ndr_flags & NDR_BUFFERS) {
8872 if (r->driver_name) {
8873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
8876 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8878 if (r->architecture) {
8879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
8882 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8884 if (r->driver_path) {
8885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8887 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
8888 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8891 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8893 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
8894 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8896 if (r->config_file) {
8897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
8900 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8905 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
8906 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8908 if (r->monitor_name) {
8909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
8912 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8914 if (r->default_datatype) {
8915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
8918 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8920 if (r->dependent_files) {
8921 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
8923 if (r->previous_names) {
8924 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
8926 if (r->manufacturer_name) {
8927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
8930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8932 if (r->manufacturer_url) {
8933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
8936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8938 if (r->hardware_id) {
8939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
8942 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
8948 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8950 if (r->print_processor) {
8951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8952 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
8954 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8956 if (r->vendor_setup) {
8957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
8960 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8962 if (r->color_profiles) {
8963 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
8966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
8968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
8969 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
8971 if (r->core_driver_dependencies) {
8972 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
8975 return NDR_ERR_SUCCESS;
8978 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
8980 uint32_t _ptr_driver_name;
8981 TALLOC_CTX *_mem_save_driver_name_0;
8982 uint32_t _ptr_architecture;
8983 TALLOC_CTX *_mem_save_architecture_0;
8984 uint32_t _ptr_driver_path;
8985 TALLOC_CTX *_mem_save_driver_path_0;
8986 uint32_t _ptr_data_file;
8987 TALLOC_CTX *_mem_save_data_file_0;
8988 uint32_t _ptr_config_file;
8989 TALLOC_CTX *_mem_save_config_file_0;
8990 uint32_t _ptr_help_file;
8991 TALLOC_CTX *_mem_save_help_file_0;
8992 uint32_t _ptr_monitor_name;
8993 TALLOC_CTX *_mem_save_monitor_name_0;
8994 uint32_t _ptr_default_datatype;
8995 TALLOC_CTX *_mem_save_default_datatype_0;
8996 uint32_t _ptr_dependent_files;
8997 TALLOC_CTX *_mem_save_dependent_files_0;
8998 uint32_t _ptr_previous_names;
8999 TALLOC_CTX *_mem_save_previous_names_0;
9000 uint32_t _ptr_manufacturer_name;
9001 TALLOC_CTX *_mem_save_manufacturer_name_0;
9002 uint32_t _ptr_manufacturer_url;
9003 TALLOC_CTX *_mem_save_manufacturer_url_0;
9004 uint32_t _ptr_hardware_id;
9005 TALLOC_CTX *_mem_save_hardware_id_0;
9006 uint32_t _ptr_provider;
9007 TALLOC_CTX *_mem_save_provider_0;
9008 uint32_t _ptr_print_processor;
9009 TALLOC_CTX *_mem_save_print_processor_0;
9010 uint32_t _ptr_vendor_setup;
9011 TALLOC_CTX *_mem_save_vendor_setup_0;
9012 uint32_t _ptr_color_profiles;
9013 TALLOC_CTX *_mem_save_color_profiles_0;
9014 uint32_t _ptr_inf_path;
9015 TALLOC_CTX *_mem_save_inf_path_0;
9016 uint32_t _ptr_core_driver_dependencies;
9017 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9018 if (ndr_flags & NDR_SCALARS) {
9019 NDR_CHECK(ndr_pull_align(ndr, 8));
9020 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9021 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9022 if (_ptr_driver_name) {
9023 NDR_PULL_ALLOC(ndr, r->driver_name);
9025 r->driver_name = NULL;
9027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9028 if (_ptr_architecture) {
9029 NDR_PULL_ALLOC(ndr, r->architecture);
9031 r->architecture = NULL;
9033 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9034 if (_ptr_driver_path) {
9035 NDR_PULL_ALLOC(ndr, r->driver_path);
9037 r->driver_path = NULL;
9039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9040 if (_ptr_data_file) {
9041 NDR_PULL_ALLOC(ndr, r->data_file);
9043 r->data_file = NULL;
9045 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9046 if (_ptr_config_file) {
9047 NDR_PULL_ALLOC(ndr, r->config_file);
9049 r->config_file = NULL;
9051 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9052 if (_ptr_help_file) {
9053 NDR_PULL_ALLOC(ndr, r->help_file);
9055 r->help_file = NULL;
9057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9058 if (_ptr_monitor_name) {
9059 NDR_PULL_ALLOC(ndr, r->monitor_name);
9061 r->monitor_name = NULL;
9063 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9064 if (_ptr_default_datatype) {
9065 NDR_PULL_ALLOC(ndr, r->default_datatype);
9067 r->default_datatype = NULL;
9069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
9070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9071 if (_ptr_dependent_files) {
9072 NDR_PULL_ALLOC(ndr, r->dependent_files);
9074 r->dependent_files = NULL;
9076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
9077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9078 if (_ptr_previous_names) {
9079 NDR_PULL_ALLOC(ndr, r->previous_names);
9081 r->previous_names = NULL;
9083 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9084 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9086 if (_ptr_manufacturer_name) {
9087 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9089 r->manufacturer_name = NULL;
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9092 if (_ptr_manufacturer_url) {
9093 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9095 r->manufacturer_url = NULL;
9097 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9098 if (_ptr_hardware_id) {
9099 NDR_PULL_ALLOC(ndr, r->hardware_id);
9101 r->hardware_id = NULL;
9103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9104 if (_ptr_provider) {
9105 NDR_PULL_ALLOC(ndr, r->provider);
9109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
9110 if (_ptr_print_processor) {
9111 NDR_PULL_ALLOC(ndr, r->print_processor);
9113 r->print_processor = NULL;
9115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
9116 if (_ptr_vendor_setup) {
9117 NDR_PULL_ALLOC(ndr, r->vendor_setup);
9119 r->vendor_setup = NULL;
9121 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
9122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
9123 if (_ptr_color_profiles) {
9124 NDR_PULL_ALLOC(ndr, r->color_profiles);
9126 r->color_profiles = NULL;
9128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
9129 if (_ptr_inf_path) {
9130 NDR_PULL_ALLOC(ndr, r->inf_path);
9134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
9135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
9136 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
9137 if (_ptr_core_driver_dependencies) {
9138 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
9140 r->core_driver_dependencies = NULL;
9142 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
9143 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
9145 if (ndr_flags & NDR_BUFFERS) {
9146 if (r->driver_name) {
9147 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9148 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9149 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
9150 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
9151 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
9152 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));
9154 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
9155 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
9156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9158 if (r->architecture) {
9159 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9160 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9161 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
9162 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
9163 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
9164 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));
9166 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
9167 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
9168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9170 if (r->driver_path) {
9171 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9172 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9173 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
9174 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
9175 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
9176 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));
9178 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
9179 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
9180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9183 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9184 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9185 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
9186 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
9187 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
9188 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));
9190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
9191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
9192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9194 if (r->config_file) {
9195 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9196 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9197 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
9198 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
9199 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
9200 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));
9202 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
9203 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
9204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9207 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9208 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9209 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
9210 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
9211 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
9212 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));
9214 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
9215 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
9216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9218 if (r->monitor_name) {
9219 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9220 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9221 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
9222 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
9223 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
9224 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));
9226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
9227 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
9228 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9230 if (r->default_datatype) {
9231 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9232 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9233 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
9234 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
9235 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
9236 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));
9238 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
9239 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
9240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9242 if (r->dependent_files) {
9243 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9244 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9245 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
9246 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9248 if (r->previous_names) {
9249 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9250 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9251 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
9252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9254 if (r->manufacturer_name) {
9255 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9256 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9257 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
9258 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
9259 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
9260 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));
9262 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
9263 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
9264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9266 if (r->manufacturer_url) {
9267 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9268 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9269 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
9270 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
9271 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
9272 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));
9274 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
9275 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
9276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9278 if (r->hardware_id) {
9279 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9280 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9281 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
9282 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
9283 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
9284 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));
9286 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
9287 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
9288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9291 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9292 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9293 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
9294 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
9295 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
9296 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));
9298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
9299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
9300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9302 if (r->print_processor) {
9303 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
9304 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
9305 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
9306 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
9307 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
9308 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));
9310 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
9311 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
9312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
9314 if (r->vendor_setup) {
9315 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
9316 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
9317 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
9318 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
9319 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
9320 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));
9322 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
9323 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
9324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
9326 if (r->color_profiles) {
9327 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
9328 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
9329 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
9330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
9333 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9334 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
9335 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
9336 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
9337 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
9338 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));
9340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
9341 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
9342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
9344 if (r->core_driver_dependencies) {
9345 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
9346 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
9347 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
9348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
9351 return NDR_ERR_SUCCESS;
9354 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
9356 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
9358 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9359 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9361 if (r->driver_name) {
9362 ndr_print_string(ndr, "driver_name", r->driver_name);
9365 ndr_print_ptr(ndr, "architecture", r->architecture);
9367 if (r->architecture) {
9368 ndr_print_string(ndr, "architecture", r->architecture);
9371 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9373 if (r->driver_path) {
9374 ndr_print_string(ndr, "driver_path", r->driver_path);
9377 ndr_print_ptr(ndr, "data_file", r->data_file);
9380 ndr_print_string(ndr, "data_file", r->data_file);
9383 ndr_print_ptr(ndr, "config_file", r->config_file);
9385 if (r->config_file) {
9386 ndr_print_string(ndr, "config_file", r->config_file);
9389 ndr_print_ptr(ndr, "help_file", r->help_file);
9392 ndr_print_string(ndr, "help_file", r->help_file);
9395 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9397 if (r->monitor_name) {
9398 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9401 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9403 if (r->default_datatype) {
9404 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9407 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);
9408 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9410 if (r->dependent_files) {
9411 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
9414 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);
9415 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9417 if (r->previous_names) {
9418 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
9421 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9422 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9423 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9425 if (r->manufacturer_name) {
9426 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9429 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9431 if (r->manufacturer_url) {
9432 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9435 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9437 if (r->hardware_id) {
9438 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9441 ndr_print_ptr(ndr, "provider", r->provider);
9444 ndr_print_string(ndr, "provider", r->provider);
9447 ndr_print_ptr(ndr, "print_processor", r->print_processor);
9449 if (r->print_processor) {
9450 ndr_print_string(ndr, "print_processor", r->print_processor);
9453 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
9455 if (r->vendor_setup) {
9456 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
9459 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);
9460 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
9462 if (r->color_profiles) {
9463 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
9466 ndr_print_ptr(ndr, "inf_path", r->inf_path);
9469 ndr_print_string(ndr, "inf_path", r->inf_path);
9472 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
9473 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);
9474 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9476 if (r->core_driver_dependencies) {
9477 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
9480 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
9481 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
9485 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
9487 if (ndr_flags & NDR_SCALARS) {
9488 int level = ndr_push_get_switch_value(ndr, r);
9489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
9500 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
9504 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
9508 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
9512 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
9516 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9519 if (ndr_flags & NDR_BUFFERS) {
9520 int level = ndr_push_get_switch_value(ndr, r);
9524 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9530 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9536 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9542 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9548 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9554 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9559 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9562 return NDR_ERR_SUCCESS;
9565 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
9569 TALLOC_CTX *_mem_save_info1_0;
9570 TALLOC_CTX *_mem_save_info2_0;
9571 TALLOC_CTX *_mem_save_info3_0;
9572 TALLOC_CTX *_mem_save_info4_0;
9573 TALLOC_CTX *_mem_save_info6_0;
9574 TALLOC_CTX *_mem_save_info8_0;
9575 level = ndr_pull_get_switch_value(ndr, r);
9576 if (ndr_flags & NDR_SCALARS) {
9577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9578 if (_level != level) {
9579 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9583 uint32_t _ptr_info1;
9584 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9586 NDR_PULL_ALLOC(ndr, r->info1);
9593 uint32_t _ptr_info2;
9594 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
9596 NDR_PULL_ALLOC(ndr, r->info2);
9603 uint32_t _ptr_info3;
9604 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
9606 NDR_PULL_ALLOC(ndr, r->info3);
9613 uint32_t _ptr_info4;
9614 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
9616 NDR_PULL_ALLOC(ndr, r->info4);
9623 uint32_t _ptr_info6;
9624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
9626 NDR_PULL_ALLOC(ndr, r->info6);
9633 uint32_t _ptr_info8;
9634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
9636 NDR_PULL_ALLOC(ndr, r->info8);
9643 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9646 if (ndr_flags & NDR_BUFFERS) {
9650 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9651 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9652 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9659 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
9660 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
9661 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
9662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
9668 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
9669 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
9670 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
9671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
9677 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
9678 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
9679 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
9680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
9686 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
9687 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
9688 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
9689 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
9695 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
9696 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
9697 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
9698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
9703 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
9706 return NDR_ERR_SUCCESS;
9709 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
9712 level = ndr_print_get_switch_value(ndr, r);
9713 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
9716 ndr_print_ptr(ndr, "info1", r->info1);
9719 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
9725 ndr_print_ptr(ndr, "info2", r->info2);
9728 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
9734 ndr_print_ptr(ndr, "info3", r->info3);
9737 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
9743 ndr_print_ptr(ndr, "info4", r->info4);
9746 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
9752 ndr_print_ptr(ndr, "info6", r->info6);
9755 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
9761 ndr_print_ptr(ndr, "info8", r->info8);
9764 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
9770 ndr_print_bad_level(ndr, name, level);
9774 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
9776 if (ndr_flags & NDR_SCALARS) {
9777 NDR_CHECK(ndr_push_align(ndr, 4));
9778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
9779 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
9780 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9782 if (ndr_flags & NDR_BUFFERS) {
9783 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9785 return NDR_ERR_SUCCESS;
9788 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
9790 if (ndr_flags & NDR_SCALARS) {
9791 NDR_CHECK(ndr_pull_align(ndr, 4));
9792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
9793 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
9794 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
9796 if (ndr_flags & NDR_BUFFERS) {
9797 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
9799 return NDR_ERR_SUCCESS;
9802 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
9804 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
9806 ndr_print_uint32(ndr, "level", r->level);
9807 ndr_print_set_switch_value(ndr, &r->info, r->level);
9808 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
9812 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
9814 if (ndr_flags & NDR_SCALARS) {
9815 NDR_CHECK(ndr_push_align(ndr, 4));
9817 uint32_t _flags_save_string = ndr->flags;
9818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9819 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9820 ndr->flags = _flags_save_string;
9823 if (ndr_flags & NDR_BUFFERS) {
9825 uint32_t _flags_save_string = ndr->flags;
9826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9827 if (r->driver_name) {
9828 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9829 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9831 ndr->flags = _flags_save_string;
9834 return NDR_ERR_SUCCESS;
9837 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
9839 uint32_t _ptr_driver_name;
9840 TALLOC_CTX *_mem_save_driver_name_0;
9841 if (ndr_flags & NDR_SCALARS) {
9842 NDR_CHECK(ndr_pull_align(ndr, 4));
9844 uint32_t _flags_save_string = ndr->flags;
9845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9846 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9847 if (_ptr_driver_name) {
9848 NDR_PULL_ALLOC(ndr, r->driver_name);
9849 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9851 r->driver_name = NULL;
9853 ndr->flags = _flags_save_string;
9856 if (ndr_flags & NDR_BUFFERS) {
9858 uint32_t _flags_save_string = ndr->flags;
9859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9860 if (r->driver_name) {
9861 uint32_t _relative_save_offset;
9862 _relative_save_offset = ndr->offset;
9863 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9864 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9865 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9866 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9868 ndr->offset = _relative_save_offset;
9870 ndr->flags = _flags_save_string;
9873 return NDR_ERR_SUCCESS;
9876 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
9878 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
9880 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9882 if (r->driver_name) {
9883 ndr_print_string(ndr, "driver_name", r->driver_name);
9889 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
9891 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
9894 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
9896 if (ndr_flags & NDR_SCALARS) {
9897 NDR_CHECK(ndr_push_align(ndr, 4));
9898 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9900 uint32_t _flags_save_string = ndr->flags;
9901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9902 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9903 ndr->flags = _flags_save_string;
9906 uint32_t _flags_save_string = ndr->flags;
9907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9908 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9909 ndr->flags = _flags_save_string;
9912 uint32_t _flags_save_string = ndr->flags;
9913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9914 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9915 ndr->flags = _flags_save_string;
9918 uint32_t _flags_save_string = ndr->flags;
9919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9920 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9921 ndr->flags = _flags_save_string;
9924 uint32_t _flags_save_string = ndr->flags;
9925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9926 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9927 ndr->flags = _flags_save_string;
9930 if (ndr_flags & NDR_BUFFERS) {
9932 uint32_t _flags_save_string = ndr->flags;
9933 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9934 if (r->driver_name) {
9935 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9936 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9938 ndr->flags = _flags_save_string;
9941 uint32_t _flags_save_string = ndr->flags;
9942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9943 if (r->architecture) {
9944 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9945 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
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 if (r->driver_path) {
9953 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9954 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9956 ndr->flags = _flags_save_string;
9959 uint32_t _flags_save_string = ndr->flags;
9960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9962 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9963 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9965 ndr->flags = _flags_save_string;
9968 uint32_t _flags_save_string = ndr->flags;
9969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9970 if (r->config_file) {
9971 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9972 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9974 ndr->flags = _flags_save_string;
9977 return NDR_ERR_SUCCESS;
9980 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
9982 uint32_t _ptr_driver_name;
9983 TALLOC_CTX *_mem_save_driver_name_0;
9984 uint32_t _ptr_architecture;
9985 TALLOC_CTX *_mem_save_architecture_0;
9986 uint32_t _ptr_driver_path;
9987 TALLOC_CTX *_mem_save_driver_path_0;
9988 uint32_t _ptr_data_file;
9989 TALLOC_CTX *_mem_save_data_file_0;
9990 uint32_t _ptr_config_file;
9991 TALLOC_CTX *_mem_save_config_file_0;
9992 if (ndr_flags & NDR_SCALARS) {
9993 NDR_CHECK(ndr_pull_align(ndr, 4));
9994 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9996 uint32_t _flags_save_string = ndr->flags;
9997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9999 if (_ptr_driver_name) {
10000 NDR_PULL_ALLOC(ndr, r->driver_name);
10001 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10003 r->driver_name = NULL;
10005 ndr->flags = _flags_save_string;
10008 uint32_t _flags_save_string = ndr->flags;
10009 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10010 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10011 if (_ptr_architecture) {
10012 NDR_PULL_ALLOC(ndr, r->architecture);
10013 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10015 r->architecture = NULL;
10017 ndr->flags = _flags_save_string;
10020 uint32_t _flags_save_string = ndr->flags;
10021 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10022 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10023 if (_ptr_driver_path) {
10024 NDR_PULL_ALLOC(ndr, r->driver_path);
10025 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10027 r->driver_path = NULL;
10029 ndr->flags = _flags_save_string;
10032 uint32_t _flags_save_string = ndr->flags;
10033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10035 if (_ptr_data_file) {
10036 NDR_PULL_ALLOC(ndr, r->data_file);
10037 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10039 r->data_file = NULL;
10041 ndr->flags = _flags_save_string;
10044 uint32_t _flags_save_string = ndr->flags;
10045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10047 if (_ptr_config_file) {
10048 NDR_PULL_ALLOC(ndr, r->config_file);
10049 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10051 r->config_file = NULL;
10053 ndr->flags = _flags_save_string;
10056 if (ndr_flags & NDR_BUFFERS) {
10058 uint32_t _flags_save_string = ndr->flags;
10059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10060 if (r->driver_name) {
10061 uint32_t _relative_save_offset;
10062 _relative_save_offset = ndr->offset;
10063 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10064 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10065 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10066 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10068 ndr->offset = _relative_save_offset;
10070 ndr->flags = _flags_save_string;
10073 uint32_t _flags_save_string = ndr->flags;
10074 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10075 if (r->architecture) {
10076 uint32_t _relative_save_offset;
10077 _relative_save_offset = ndr->offset;
10078 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10079 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10080 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10081 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10082 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10083 ndr->offset = _relative_save_offset;
10085 ndr->flags = _flags_save_string;
10088 uint32_t _flags_save_string = ndr->flags;
10089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10090 if (r->driver_path) {
10091 uint32_t _relative_save_offset;
10092 _relative_save_offset = ndr->offset;
10093 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10094 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10095 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10096 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10098 ndr->offset = _relative_save_offset;
10100 ndr->flags = _flags_save_string;
10103 uint32_t _flags_save_string = ndr->flags;
10104 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10105 if (r->data_file) {
10106 uint32_t _relative_save_offset;
10107 _relative_save_offset = ndr->offset;
10108 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10109 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10110 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10111 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10112 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10113 ndr->offset = _relative_save_offset;
10115 ndr->flags = _flags_save_string;
10118 uint32_t _flags_save_string = ndr->flags;
10119 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10120 if (r->config_file) {
10121 uint32_t _relative_save_offset;
10122 _relative_save_offset = ndr->offset;
10123 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10124 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10125 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10126 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10128 ndr->offset = _relative_save_offset;
10130 ndr->flags = _flags_save_string;
10133 return NDR_ERR_SUCCESS;
10136 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
10138 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
10140 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10141 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10143 if (r->driver_name) {
10144 ndr_print_string(ndr, "driver_name", r->driver_name);
10147 ndr_print_ptr(ndr, "architecture", r->architecture);
10149 if (r->architecture) {
10150 ndr_print_string(ndr, "architecture", r->architecture);
10153 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10155 if (r->driver_path) {
10156 ndr_print_string(ndr, "driver_path", r->driver_path);
10159 ndr_print_ptr(ndr, "data_file", r->data_file);
10161 if (r->data_file) {
10162 ndr_print_string(ndr, "data_file", r->data_file);
10165 ndr_print_ptr(ndr, "config_file", r->config_file);
10167 if (r->config_file) {
10168 ndr_print_string(ndr, "config_file", r->config_file);
10174 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
10176 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
10179 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
10181 if (ndr_flags & NDR_SCALARS) {
10182 NDR_CHECK(ndr_push_align(ndr, 4));
10183 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10185 uint32_t _flags_save_string = ndr->flags;
10186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10187 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10188 ndr->flags = _flags_save_string;
10191 uint32_t _flags_save_string = ndr->flags;
10192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10193 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10194 ndr->flags = _flags_save_string;
10197 uint32_t _flags_save_string = ndr->flags;
10198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10199 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10200 ndr->flags = _flags_save_string;
10203 uint32_t _flags_save_string = ndr->flags;
10204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10205 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10206 ndr->flags = _flags_save_string;
10209 uint32_t _flags_save_string = ndr->flags;
10210 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10211 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10212 ndr->flags = _flags_save_string;
10215 uint32_t _flags_save_string = ndr->flags;
10216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10217 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10218 ndr->flags = _flags_save_string;
10221 uint32_t _flags_save_string_array = ndr->flags;
10222 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10223 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10224 ndr->flags = _flags_save_string_array;
10227 uint32_t _flags_save_string = ndr->flags;
10228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10229 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10230 ndr->flags = _flags_save_string;
10233 uint32_t _flags_save_string = ndr->flags;
10234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10235 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10236 ndr->flags = _flags_save_string;
10239 if (ndr_flags & NDR_BUFFERS) {
10241 uint32_t _flags_save_string = ndr->flags;
10242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10243 if (r->driver_name) {
10244 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10245 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10247 ndr->flags = _flags_save_string;
10250 uint32_t _flags_save_string = ndr->flags;
10251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10252 if (r->architecture) {
10253 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10254 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10256 ndr->flags = _flags_save_string;
10259 uint32_t _flags_save_string = ndr->flags;
10260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10261 if (r->driver_path) {
10262 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10263 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10265 ndr->flags = _flags_save_string;
10268 uint32_t _flags_save_string = ndr->flags;
10269 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10270 if (r->data_file) {
10271 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10272 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10274 ndr->flags = _flags_save_string;
10277 uint32_t _flags_save_string = ndr->flags;
10278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10279 if (r->config_file) {
10280 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10281 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10283 ndr->flags = _flags_save_string;
10286 uint32_t _flags_save_string = ndr->flags;
10287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10288 if (r->help_file) {
10289 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10290 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10292 ndr->flags = _flags_save_string;
10295 uint32_t _flags_save_string_array = ndr->flags;
10296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10297 if (r->dependent_files) {
10298 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10299 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10301 ndr->flags = _flags_save_string_array;
10304 uint32_t _flags_save_string = ndr->flags;
10305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10306 if (r->monitor_name) {
10307 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10308 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10310 ndr->flags = _flags_save_string;
10313 uint32_t _flags_save_string = ndr->flags;
10314 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10315 if (r->default_datatype) {
10316 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10317 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10319 ndr->flags = _flags_save_string;
10322 return NDR_ERR_SUCCESS;
10325 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
10327 uint32_t _ptr_driver_name;
10328 TALLOC_CTX *_mem_save_driver_name_0;
10329 uint32_t _ptr_architecture;
10330 TALLOC_CTX *_mem_save_architecture_0;
10331 uint32_t _ptr_driver_path;
10332 TALLOC_CTX *_mem_save_driver_path_0;
10333 uint32_t _ptr_data_file;
10334 TALLOC_CTX *_mem_save_data_file_0;
10335 uint32_t _ptr_config_file;
10336 TALLOC_CTX *_mem_save_config_file_0;
10337 uint32_t _ptr_help_file;
10338 TALLOC_CTX *_mem_save_help_file_0;
10339 uint32_t _ptr_dependent_files;
10340 TALLOC_CTX *_mem_save_dependent_files_0;
10341 uint32_t _ptr_monitor_name;
10342 TALLOC_CTX *_mem_save_monitor_name_0;
10343 uint32_t _ptr_default_datatype;
10344 TALLOC_CTX *_mem_save_default_datatype_0;
10345 if (ndr_flags & NDR_SCALARS) {
10346 NDR_CHECK(ndr_pull_align(ndr, 4));
10347 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10349 uint32_t _flags_save_string = ndr->flags;
10350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10351 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10352 if (_ptr_driver_name) {
10353 NDR_PULL_ALLOC(ndr, r->driver_name);
10354 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10356 r->driver_name = NULL;
10358 ndr->flags = _flags_save_string;
10361 uint32_t _flags_save_string = ndr->flags;
10362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10364 if (_ptr_architecture) {
10365 NDR_PULL_ALLOC(ndr, r->architecture);
10366 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10368 r->architecture = NULL;
10370 ndr->flags = _flags_save_string;
10373 uint32_t _flags_save_string = ndr->flags;
10374 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10376 if (_ptr_driver_path) {
10377 NDR_PULL_ALLOC(ndr, r->driver_path);
10378 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10380 r->driver_path = NULL;
10382 ndr->flags = _flags_save_string;
10385 uint32_t _flags_save_string = ndr->flags;
10386 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10388 if (_ptr_data_file) {
10389 NDR_PULL_ALLOC(ndr, r->data_file);
10390 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10392 r->data_file = NULL;
10394 ndr->flags = _flags_save_string;
10397 uint32_t _flags_save_string = ndr->flags;
10398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10399 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10400 if (_ptr_config_file) {
10401 NDR_PULL_ALLOC(ndr, r->config_file);
10402 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10404 r->config_file = NULL;
10406 ndr->flags = _flags_save_string;
10409 uint32_t _flags_save_string = ndr->flags;
10410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10412 if (_ptr_help_file) {
10413 NDR_PULL_ALLOC(ndr, r->help_file);
10414 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10416 r->help_file = NULL;
10418 ndr->flags = _flags_save_string;
10421 uint32_t _flags_save_string_array = ndr->flags;
10422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10424 if (_ptr_dependent_files) {
10425 NDR_PULL_ALLOC(ndr, r->dependent_files);
10426 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10428 r->dependent_files = NULL;
10430 ndr->flags = _flags_save_string_array;
10433 uint32_t _flags_save_string = ndr->flags;
10434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10436 if (_ptr_monitor_name) {
10437 NDR_PULL_ALLOC(ndr, r->monitor_name);
10438 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10440 r->monitor_name = NULL;
10442 ndr->flags = _flags_save_string;
10445 uint32_t _flags_save_string = ndr->flags;
10446 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10448 if (_ptr_default_datatype) {
10449 NDR_PULL_ALLOC(ndr, r->default_datatype);
10450 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10452 r->default_datatype = NULL;
10454 ndr->flags = _flags_save_string;
10457 if (ndr_flags & NDR_BUFFERS) {
10459 uint32_t _flags_save_string = ndr->flags;
10460 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10461 if (r->driver_name) {
10462 uint32_t _relative_save_offset;
10463 _relative_save_offset = ndr->offset;
10464 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10465 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10466 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10467 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10469 ndr->offset = _relative_save_offset;
10471 ndr->flags = _flags_save_string;
10474 uint32_t _flags_save_string = ndr->flags;
10475 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10476 if (r->architecture) {
10477 uint32_t _relative_save_offset;
10478 _relative_save_offset = ndr->offset;
10479 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10480 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10481 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10482 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10484 ndr->offset = _relative_save_offset;
10486 ndr->flags = _flags_save_string;
10489 uint32_t _flags_save_string = ndr->flags;
10490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10491 if (r->driver_path) {
10492 uint32_t _relative_save_offset;
10493 _relative_save_offset = ndr->offset;
10494 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10495 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10496 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10497 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10499 ndr->offset = _relative_save_offset;
10501 ndr->flags = _flags_save_string;
10504 uint32_t _flags_save_string = ndr->flags;
10505 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10506 if (r->data_file) {
10507 uint32_t _relative_save_offset;
10508 _relative_save_offset = ndr->offset;
10509 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10510 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10511 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10512 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10514 ndr->offset = _relative_save_offset;
10516 ndr->flags = _flags_save_string;
10519 uint32_t _flags_save_string = ndr->flags;
10520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10521 if (r->config_file) {
10522 uint32_t _relative_save_offset;
10523 _relative_save_offset = ndr->offset;
10524 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10525 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10526 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10527 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10529 ndr->offset = _relative_save_offset;
10531 ndr->flags = _flags_save_string;
10534 uint32_t _flags_save_string = ndr->flags;
10535 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10536 if (r->help_file) {
10537 uint32_t _relative_save_offset;
10538 _relative_save_offset = ndr->offset;
10539 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10540 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10541 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10542 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10544 ndr->offset = _relative_save_offset;
10546 ndr->flags = _flags_save_string;
10549 uint32_t _flags_save_string_array = ndr->flags;
10550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10551 if (r->dependent_files) {
10552 uint32_t _relative_save_offset;
10553 _relative_save_offset = ndr->offset;
10554 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10555 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10556 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10557 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10559 ndr->offset = _relative_save_offset;
10561 ndr->flags = _flags_save_string_array;
10564 uint32_t _flags_save_string = ndr->flags;
10565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10566 if (r->monitor_name) {
10567 uint32_t _relative_save_offset;
10568 _relative_save_offset = ndr->offset;
10569 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10570 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10571 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10572 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10574 ndr->offset = _relative_save_offset;
10576 ndr->flags = _flags_save_string;
10579 uint32_t _flags_save_string = ndr->flags;
10580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10581 if (r->default_datatype) {
10582 uint32_t _relative_save_offset;
10583 _relative_save_offset = ndr->offset;
10584 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10585 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10586 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10587 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10589 ndr->offset = _relative_save_offset;
10591 ndr->flags = _flags_save_string;
10594 return NDR_ERR_SUCCESS;
10597 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
10599 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
10601 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10602 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10604 if (r->driver_name) {
10605 ndr_print_string(ndr, "driver_name", r->driver_name);
10608 ndr_print_ptr(ndr, "architecture", r->architecture);
10610 if (r->architecture) {
10611 ndr_print_string(ndr, "architecture", r->architecture);
10614 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10616 if (r->driver_path) {
10617 ndr_print_string(ndr, "driver_path", r->driver_path);
10620 ndr_print_ptr(ndr, "data_file", r->data_file);
10622 if (r->data_file) {
10623 ndr_print_string(ndr, "data_file", r->data_file);
10626 ndr_print_ptr(ndr, "config_file", r->config_file);
10628 if (r->config_file) {
10629 ndr_print_string(ndr, "config_file", r->config_file);
10632 ndr_print_ptr(ndr, "help_file", r->help_file);
10634 if (r->help_file) {
10635 ndr_print_string(ndr, "help_file", r->help_file);
10638 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10640 if (r->dependent_files) {
10641 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10644 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10646 if (r->monitor_name) {
10647 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10650 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10652 if (r->default_datatype) {
10653 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10659 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
10661 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
10664 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
10666 if (ndr_flags & NDR_SCALARS) {
10667 NDR_CHECK(ndr_push_align(ndr, 4));
10668 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
10670 uint32_t _flags_save_string = ndr->flags;
10671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10672 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
10673 ndr->flags = _flags_save_string;
10676 uint32_t _flags_save_string = ndr->flags;
10677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10678 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
10679 ndr->flags = _flags_save_string;
10682 uint32_t _flags_save_string = ndr->flags;
10683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10684 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
10685 ndr->flags = _flags_save_string;
10688 uint32_t _flags_save_string = ndr->flags;
10689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10690 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
10691 ndr->flags = _flags_save_string;
10694 uint32_t _flags_save_string = ndr->flags;
10695 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10696 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
10697 ndr->flags = _flags_save_string;
10700 uint32_t _flags_save_string = ndr->flags;
10701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10702 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
10703 ndr->flags = _flags_save_string;
10706 uint32_t _flags_save_string_array = ndr->flags;
10707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10708 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
10709 ndr->flags = _flags_save_string_array;
10712 uint32_t _flags_save_string = ndr->flags;
10713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10714 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10715 ndr->flags = _flags_save_string;
10718 uint32_t _flags_save_string = ndr->flags;
10719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10720 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
10721 ndr->flags = _flags_save_string;
10724 uint32_t _flags_save_string_array = ndr->flags;
10725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10726 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
10727 ndr->flags = _flags_save_string_array;
10730 if (ndr_flags & NDR_BUFFERS) {
10732 uint32_t _flags_save_string = ndr->flags;
10733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10734 if (r->driver_name) {
10735 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
10736 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
10738 ndr->flags = _flags_save_string;
10741 uint32_t _flags_save_string = ndr->flags;
10742 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10743 if (r->architecture) {
10744 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
10745 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
10747 ndr->flags = _flags_save_string;
10750 uint32_t _flags_save_string = ndr->flags;
10751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10752 if (r->driver_path) {
10753 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
10754 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
10756 ndr->flags = _flags_save_string;
10759 uint32_t _flags_save_string = ndr->flags;
10760 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10761 if (r->data_file) {
10762 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
10763 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
10765 ndr->flags = _flags_save_string;
10768 uint32_t _flags_save_string = ndr->flags;
10769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10770 if (r->config_file) {
10771 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
10772 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
10774 ndr->flags = _flags_save_string;
10777 uint32_t _flags_save_string = ndr->flags;
10778 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10779 if (r->help_file) {
10780 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
10781 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
10783 ndr->flags = _flags_save_string;
10786 uint32_t _flags_save_string_array = ndr->flags;
10787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10788 if (r->dependent_files) {
10789 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
10790 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
10792 ndr->flags = _flags_save_string_array;
10795 uint32_t _flags_save_string = ndr->flags;
10796 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10797 if (r->monitor_name) {
10798 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10799 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10801 ndr->flags = _flags_save_string;
10804 uint32_t _flags_save_string = ndr->flags;
10805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10806 if (r->default_datatype) {
10807 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
10808 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
10810 ndr->flags = _flags_save_string;
10813 uint32_t _flags_save_string_array = ndr->flags;
10814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10815 if (r->previous_names) {
10816 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
10817 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
10819 ndr->flags = _flags_save_string_array;
10822 return NDR_ERR_SUCCESS;
10825 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
10827 uint32_t _ptr_driver_name;
10828 TALLOC_CTX *_mem_save_driver_name_0;
10829 uint32_t _ptr_architecture;
10830 TALLOC_CTX *_mem_save_architecture_0;
10831 uint32_t _ptr_driver_path;
10832 TALLOC_CTX *_mem_save_driver_path_0;
10833 uint32_t _ptr_data_file;
10834 TALLOC_CTX *_mem_save_data_file_0;
10835 uint32_t _ptr_config_file;
10836 TALLOC_CTX *_mem_save_config_file_0;
10837 uint32_t _ptr_help_file;
10838 TALLOC_CTX *_mem_save_help_file_0;
10839 uint32_t _ptr_dependent_files;
10840 TALLOC_CTX *_mem_save_dependent_files_0;
10841 uint32_t _ptr_monitor_name;
10842 TALLOC_CTX *_mem_save_monitor_name_0;
10843 uint32_t _ptr_default_datatype;
10844 TALLOC_CTX *_mem_save_default_datatype_0;
10845 uint32_t _ptr_previous_names;
10846 TALLOC_CTX *_mem_save_previous_names_0;
10847 if (ndr_flags & NDR_SCALARS) {
10848 NDR_CHECK(ndr_pull_align(ndr, 4));
10849 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
10851 uint32_t _flags_save_string = ndr->flags;
10852 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
10854 if (_ptr_driver_name) {
10855 NDR_PULL_ALLOC(ndr, r->driver_name);
10856 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
10858 r->driver_name = NULL;
10860 ndr->flags = _flags_save_string;
10863 uint32_t _flags_save_string = ndr->flags;
10864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
10866 if (_ptr_architecture) {
10867 NDR_PULL_ALLOC(ndr, r->architecture);
10868 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
10870 r->architecture = NULL;
10872 ndr->flags = _flags_save_string;
10875 uint32_t _flags_save_string = ndr->flags;
10876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
10878 if (_ptr_driver_path) {
10879 NDR_PULL_ALLOC(ndr, r->driver_path);
10880 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
10882 r->driver_path = NULL;
10884 ndr->flags = _flags_save_string;
10887 uint32_t _flags_save_string = ndr->flags;
10888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
10890 if (_ptr_data_file) {
10891 NDR_PULL_ALLOC(ndr, r->data_file);
10892 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
10894 r->data_file = NULL;
10896 ndr->flags = _flags_save_string;
10899 uint32_t _flags_save_string = ndr->flags;
10900 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
10902 if (_ptr_config_file) {
10903 NDR_PULL_ALLOC(ndr, r->config_file);
10904 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
10906 r->config_file = NULL;
10908 ndr->flags = _flags_save_string;
10911 uint32_t _flags_save_string = ndr->flags;
10912 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10913 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
10914 if (_ptr_help_file) {
10915 NDR_PULL_ALLOC(ndr, r->help_file);
10916 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
10918 r->help_file = NULL;
10920 ndr->flags = _flags_save_string;
10923 uint32_t _flags_save_string_array = ndr->flags;
10924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10926 if (_ptr_dependent_files) {
10927 NDR_PULL_ALLOC(ndr, r->dependent_files);
10928 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10930 r->dependent_files = NULL;
10932 ndr->flags = _flags_save_string_array;
10935 uint32_t _flags_save_string = ndr->flags;
10936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10937 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10938 if (_ptr_monitor_name) {
10939 NDR_PULL_ALLOC(ndr, r->monitor_name);
10940 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10942 r->monitor_name = NULL;
10944 ndr->flags = _flags_save_string;
10947 uint32_t _flags_save_string = ndr->flags;
10948 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10949 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10950 if (_ptr_default_datatype) {
10951 NDR_PULL_ALLOC(ndr, r->default_datatype);
10952 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10954 r->default_datatype = NULL;
10956 ndr->flags = _flags_save_string;
10959 uint32_t _flags_save_string_array = ndr->flags;
10960 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10961 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10962 if (_ptr_previous_names) {
10963 NDR_PULL_ALLOC(ndr, r->previous_names);
10964 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10966 r->previous_names = NULL;
10968 ndr->flags = _flags_save_string_array;
10971 if (ndr_flags & NDR_BUFFERS) {
10973 uint32_t _flags_save_string = ndr->flags;
10974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10975 if (r->driver_name) {
10976 uint32_t _relative_save_offset;
10977 _relative_save_offset = ndr->offset;
10978 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10979 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10980 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10981 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10983 ndr->offset = _relative_save_offset;
10985 ndr->flags = _flags_save_string;
10988 uint32_t _flags_save_string = ndr->flags;
10989 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10990 if (r->architecture) {
10991 uint32_t _relative_save_offset;
10992 _relative_save_offset = ndr->offset;
10993 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10994 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10995 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10996 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10998 ndr->offset = _relative_save_offset;
11000 ndr->flags = _flags_save_string;
11003 uint32_t _flags_save_string = ndr->flags;
11004 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11005 if (r->driver_path) {
11006 uint32_t _relative_save_offset;
11007 _relative_save_offset = ndr->offset;
11008 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11009 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11010 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11011 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11012 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11013 ndr->offset = _relative_save_offset;
11015 ndr->flags = _flags_save_string;
11018 uint32_t _flags_save_string = ndr->flags;
11019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11020 if (r->data_file) {
11021 uint32_t _relative_save_offset;
11022 _relative_save_offset = ndr->offset;
11023 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11024 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11025 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11026 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11028 ndr->offset = _relative_save_offset;
11030 ndr->flags = _flags_save_string;
11033 uint32_t _flags_save_string = ndr->flags;
11034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11035 if (r->config_file) {
11036 uint32_t _relative_save_offset;
11037 _relative_save_offset = ndr->offset;
11038 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11039 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11040 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11041 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11043 ndr->offset = _relative_save_offset;
11045 ndr->flags = _flags_save_string;
11048 uint32_t _flags_save_string = ndr->flags;
11049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11050 if (r->help_file) {
11051 uint32_t _relative_save_offset;
11052 _relative_save_offset = ndr->offset;
11053 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
11054 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11055 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
11056 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
11057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
11058 ndr->offset = _relative_save_offset;
11060 ndr->flags = _flags_save_string;
11063 uint32_t _flags_save_string_array = ndr->flags;
11064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11065 if (r->dependent_files) {
11066 uint32_t _relative_save_offset;
11067 _relative_save_offset = ndr->offset;
11068 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
11069 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
11070 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
11071 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
11072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
11073 ndr->offset = _relative_save_offset;
11075 ndr->flags = _flags_save_string_array;
11078 uint32_t _flags_save_string = ndr->flags;
11079 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11080 if (r->monitor_name) {
11081 uint32_t _relative_save_offset;
11082 _relative_save_offset = ndr->offset;
11083 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
11084 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11085 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
11086 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
11087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
11088 ndr->offset = _relative_save_offset;
11090 ndr->flags = _flags_save_string;
11093 uint32_t _flags_save_string = ndr->flags;
11094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11095 if (r->default_datatype) {
11096 uint32_t _relative_save_offset;
11097 _relative_save_offset = ndr->offset;
11098 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
11099 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11100 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
11101 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
11102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
11103 ndr->offset = _relative_save_offset;
11105 ndr->flags = _flags_save_string;
11108 uint32_t _flags_save_string_array = ndr->flags;
11109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11110 if (r->previous_names) {
11111 uint32_t _relative_save_offset;
11112 _relative_save_offset = ndr->offset;
11113 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
11114 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
11115 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
11116 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
11117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
11118 ndr->offset = _relative_save_offset;
11120 ndr->flags = _flags_save_string_array;
11123 return NDR_ERR_SUCCESS;
11126 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
11128 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
11130 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11131 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11133 if (r->driver_name) {
11134 ndr_print_string(ndr, "driver_name", r->driver_name);
11137 ndr_print_ptr(ndr, "architecture", r->architecture);
11139 if (r->architecture) {
11140 ndr_print_string(ndr, "architecture", r->architecture);
11143 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11145 if (r->driver_path) {
11146 ndr_print_string(ndr, "driver_path", r->driver_path);
11149 ndr_print_ptr(ndr, "data_file", r->data_file);
11151 if (r->data_file) {
11152 ndr_print_string(ndr, "data_file", r->data_file);
11155 ndr_print_ptr(ndr, "config_file", r->config_file);
11157 if (r->config_file) {
11158 ndr_print_string(ndr, "config_file", r->config_file);
11161 ndr_print_ptr(ndr, "help_file", r->help_file);
11163 if (r->help_file) {
11164 ndr_print_string(ndr, "help_file", r->help_file);
11167 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
11169 if (r->dependent_files) {
11170 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
11173 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11175 if (r->monitor_name) {
11176 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11179 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
11181 if (r->default_datatype) {
11182 ndr_print_string(ndr, "default_datatype", r->default_datatype);
11185 ndr_print_ptr(ndr, "previous_names", r->previous_names);
11187 if (r->previous_names) {
11188 ndr_print_string_array(ndr, "previous_names", r->previous_names);
11194 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
11196 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
11199 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
11201 if (ndr_flags & NDR_SCALARS) {
11202 NDR_CHECK(ndr_push_align(ndr, 4));
11203 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11205 uint32_t _flags_save_string = ndr->flags;
11206 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11207 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11208 ndr->flags = _flags_save_string;
11211 uint32_t _flags_save_string = ndr->flags;
11212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11213 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11214 ndr->flags = _flags_save_string;
11217 uint32_t _flags_save_string = ndr->flags;
11218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11219 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11220 ndr->flags = _flags_save_string;
11223 uint32_t _flags_save_string = ndr->flags;
11224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11225 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11226 ndr->flags = _flags_save_string;
11229 uint32_t _flags_save_string = ndr->flags;
11230 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11231 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11232 ndr->flags = _flags_save_string;
11234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
11235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
11236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
11238 if (ndr_flags & NDR_BUFFERS) {
11240 uint32_t _flags_save_string = ndr->flags;
11241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11242 if (r->driver_name) {
11243 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11244 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11246 ndr->flags = _flags_save_string;
11249 uint32_t _flags_save_string = ndr->flags;
11250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11251 if (r->architecture) {
11252 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11253 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
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 if (r->driver_path) {
11261 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11262 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11264 ndr->flags = _flags_save_string;
11267 uint32_t _flags_save_string = ndr->flags;
11268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11269 if (r->data_file) {
11270 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11271 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11273 ndr->flags = _flags_save_string;
11276 uint32_t _flags_save_string = ndr->flags;
11277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11278 if (r->config_file) {
11279 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11280 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11282 ndr->flags = _flags_save_string;
11285 return NDR_ERR_SUCCESS;
11288 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
11290 uint32_t _ptr_driver_name;
11291 TALLOC_CTX *_mem_save_driver_name_0;
11292 uint32_t _ptr_architecture;
11293 TALLOC_CTX *_mem_save_architecture_0;
11294 uint32_t _ptr_driver_path;
11295 TALLOC_CTX *_mem_save_driver_path_0;
11296 uint32_t _ptr_data_file;
11297 TALLOC_CTX *_mem_save_data_file_0;
11298 uint32_t _ptr_config_file;
11299 TALLOC_CTX *_mem_save_config_file_0;
11300 if (ndr_flags & NDR_SCALARS) {
11301 NDR_CHECK(ndr_pull_align(ndr, 4));
11302 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11304 uint32_t _flags_save_string = ndr->flags;
11305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11307 if (_ptr_driver_name) {
11308 NDR_PULL_ALLOC(ndr, r->driver_name);
11309 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11311 r->driver_name = NULL;
11313 ndr->flags = _flags_save_string;
11316 uint32_t _flags_save_string = ndr->flags;
11317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11318 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11319 if (_ptr_architecture) {
11320 NDR_PULL_ALLOC(ndr, r->architecture);
11321 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11323 r->architecture = NULL;
11325 ndr->flags = _flags_save_string;
11328 uint32_t _flags_save_string = ndr->flags;
11329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11330 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11331 if (_ptr_driver_path) {
11332 NDR_PULL_ALLOC(ndr, r->driver_path);
11333 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11335 r->driver_path = NULL;
11337 ndr->flags = _flags_save_string;
11340 uint32_t _flags_save_string = ndr->flags;
11341 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11342 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11343 if (_ptr_data_file) {
11344 NDR_PULL_ALLOC(ndr, r->data_file);
11345 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11347 r->data_file = NULL;
11349 ndr->flags = _flags_save_string;
11352 uint32_t _flags_save_string = ndr->flags;
11353 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11354 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11355 if (_ptr_config_file) {
11356 NDR_PULL_ALLOC(ndr, r->config_file);
11357 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11359 r->config_file = NULL;
11361 ndr->flags = _flags_save_string;
11363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
11364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
11365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
11367 if (ndr_flags & NDR_BUFFERS) {
11369 uint32_t _flags_save_string = ndr->flags;
11370 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11371 if (r->driver_name) {
11372 uint32_t _relative_save_offset;
11373 _relative_save_offset = ndr->offset;
11374 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11375 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11376 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11377 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11379 ndr->offset = _relative_save_offset;
11381 ndr->flags = _flags_save_string;
11384 uint32_t _flags_save_string = ndr->flags;
11385 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11386 if (r->architecture) {
11387 uint32_t _relative_save_offset;
11388 _relative_save_offset = ndr->offset;
11389 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11390 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11391 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11392 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11394 ndr->offset = _relative_save_offset;
11396 ndr->flags = _flags_save_string;
11399 uint32_t _flags_save_string = ndr->flags;
11400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11401 if (r->driver_path) {
11402 uint32_t _relative_save_offset;
11403 _relative_save_offset = ndr->offset;
11404 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11405 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11406 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11407 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11409 ndr->offset = _relative_save_offset;
11411 ndr->flags = _flags_save_string;
11414 uint32_t _flags_save_string = ndr->flags;
11415 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11416 if (r->data_file) {
11417 uint32_t _relative_save_offset;
11418 _relative_save_offset = ndr->offset;
11419 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11420 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11421 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11422 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11424 ndr->offset = _relative_save_offset;
11426 ndr->flags = _flags_save_string;
11429 uint32_t _flags_save_string = ndr->flags;
11430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11431 if (r->config_file) {
11432 uint32_t _relative_save_offset;
11433 _relative_save_offset = ndr->offset;
11434 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11435 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11436 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11437 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11439 ndr->offset = _relative_save_offset;
11441 ndr->flags = _flags_save_string;
11444 return NDR_ERR_SUCCESS;
11447 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
11449 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
11451 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
11452 ndr_print_ptr(ndr, "driver_name", r->driver_name);
11454 if (r->driver_name) {
11455 ndr_print_string(ndr, "driver_name", r->driver_name);
11458 ndr_print_ptr(ndr, "architecture", r->architecture);
11460 if (r->architecture) {
11461 ndr_print_string(ndr, "architecture", r->architecture);
11464 ndr_print_ptr(ndr, "driver_path", r->driver_path);
11466 if (r->driver_path) {
11467 ndr_print_string(ndr, "driver_path", r->driver_path);
11470 ndr_print_ptr(ndr, "data_file", r->data_file);
11472 if (r->data_file) {
11473 ndr_print_string(ndr, "data_file", r->data_file);
11476 ndr_print_ptr(ndr, "config_file", r->config_file);
11478 if (r->config_file) {
11479 ndr_print_string(ndr, "config_file", r->config_file);
11482 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
11483 ndr_print_uint32(ndr, "config_version", r->config_version);
11484 ndr_print_uint32(ndr, "driver_version", r->driver_version);
11488 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
11490 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
11493 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
11495 if (ndr_flags & NDR_SCALARS) {
11496 NDR_CHECK(ndr_push_align(ndr, 8));
11497 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
11499 uint32_t _flags_save_string = ndr->flags;
11500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11501 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
11502 ndr->flags = _flags_save_string;
11505 uint32_t _flags_save_string = ndr->flags;
11506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11507 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
11508 ndr->flags = _flags_save_string;
11511 uint32_t _flags_save_string = ndr->flags;
11512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11513 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
11514 ndr->flags = _flags_save_string;
11517 uint32_t _flags_save_string = ndr->flags;
11518 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11519 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
11520 ndr->flags = _flags_save_string;
11523 uint32_t _flags_save_string = ndr->flags;
11524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11525 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
11526 ndr->flags = _flags_save_string;
11529 uint32_t _flags_save_string = ndr->flags;
11530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
11532 ndr->flags = _flags_save_string;
11535 uint32_t _flags_save_string_array = ndr->flags;
11536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
11538 ndr->flags = _flags_save_string_array;
11541 uint32_t _flags_save_string = ndr->flags;
11542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
11544 ndr->flags = _flags_save_string;
11547 uint32_t _flags_save_string = ndr->flags;
11548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
11550 ndr->flags = _flags_save_string;
11553 uint32_t _flags_save_string_array = ndr->flags;
11554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
11556 ndr->flags = _flags_save_string_array;
11558 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
11559 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
11561 uint32_t _flags_save_string = ndr->flags;
11562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
11564 ndr->flags = _flags_save_string;
11567 uint32_t _flags_save_string = ndr->flags;
11568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
11570 ndr->flags = _flags_save_string;
11573 uint32_t _flags_save_string = ndr->flags;
11574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
11576 ndr->flags = _flags_save_string;
11579 uint32_t _flags_save_string = ndr->flags;
11580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
11582 ndr->flags = _flags_save_string;
11585 if (ndr_flags & NDR_BUFFERS) {
11587 uint32_t _flags_save_string = ndr->flags;
11588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11589 if (r->driver_name) {
11590 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
11591 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
11593 ndr->flags = _flags_save_string;
11596 uint32_t _flags_save_string = ndr->flags;
11597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11598 if (r->architecture) {
11599 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
11600 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
11602 ndr->flags = _flags_save_string;
11605 uint32_t _flags_save_string = ndr->flags;
11606 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11607 if (r->driver_path) {
11608 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
11609 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
11611 ndr->flags = _flags_save_string;
11614 uint32_t _flags_save_string = ndr->flags;
11615 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11616 if (r->data_file) {
11617 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
11618 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
11620 ndr->flags = _flags_save_string;
11623 uint32_t _flags_save_string = ndr->flags;
11624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11625 if (r->config_file) {
11626 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
11627 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
11629 ndr->flags = _flags_save_string;
11632 uint32_t _flags_save_string = ndr->flags;
11633 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11634 if (r->help_file) {
11635 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
11636 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
11638 ndr->flags = _flags_save_string;
11641 uint32_t _flags_save_string_array = ndr->flags;
11642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11643 if (r->dependent_files) {
11644 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
11645 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
11647 ndr->flags = _flags_save_string_array;
11650 uint32_t _flags_save_string = ndr->flags;
11651 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11652 if (r->monitor_name) {
11653 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
11654 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
11656 ndr->flags = _flags_save_string;
11659 uint32_t _flags_save_string = ndr->flags;
11660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11661 if (r->default_datatype) {
11662 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
11663 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
11665 ndr->flags = _flags_save_string;
11668 uint32_t _flags_save_string_array = ndr->flags;
11669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11670 if (r->previous_names) {
11671 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
11672 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
11674 ndr->flags = _flags_save_string_array;
11677 uint32_t _flags_save_string = ndr->flags;
11678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11679 if (r->manufacturer_name) {
11680 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
11681 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
11683 ndr->flags = _flags_save_string;
11686 uint32_t _flags_save_string = ndr->flags;
11687 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11688 if (r->manufacturer_url) {
11689 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
11690 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
11692 ndr->flags = _flags_save_string;
11695 uint32_t _flags_save_string = ndr->flags;
11696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11697 if (r->hardware_id) {
11698 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
11699 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
11701 ndr->flags = _flags_save_string;
11704 uint32_t _flags_save_string = ndr->flags;
11705 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11707 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
11708 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
11710 ndr->flags = _flags_save_string;
11713 return NDR_ERR_SUCCESS;
11716 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
11718 uint32_t _ptr_driver_name;
11719 TALLOC_CTX *_mem_save_driver_name_0;
11720 uint32_t _ptr_architecture;
11721 TALLOC_CTX *_mem_save_architecture_0;
11722 uint32_t _ptr_driver_path;
11723 TALLOC_CTX *_mem_save_driver_path_0;
11724 uint32_t _ptr_data_file;
11725 TALLOC_CTX *_mem_save_data_file_0;
11726 uint32_t _ptr_config_file;
11727 TALLOC_CTX *_mem_save_config_file_0;
11728 uint32_t _ptr_help_file;
11729 TALLOC_CTX *_mem_save_help_file_0;
11730 uint32_t _ptr_dependent_files;
11731 TALLOC_CTX *_mem_save_dependent_files_0;
11732 uint32_t _ptr_monitor_name;
11733 TALLOC_CTX *_mem_save_monitor_name_0;
11734 uint32_t _ptr_default_datatype;
11735 TALLOC_CTX *_mem_save_default_datatype_0;
11736 uint32_t _ptr_previous_names;
11737 TALLOC_CTX *_mem_save_previous_names_0;
11738 uint32_t _ptr_manufacturer_name;
11739 TALLOC_CTX *_mem_save_manufacturer_name_0;
11740 uint32_t _ptr_manufacturer_url;
11741 TALLOC_CTX *_mem_save_manufacturer_url_0;
11742 uint32_t _ptr_hardware_id;
11743 TALLOC_CTX *_mem_save_hardware_id_0;
11744 uint32_t _ptr_provider;
11745 TALLOC_CTX *_mem_save_provider_0;
11746 if (ndr_flags & NDR_SCALARS) {
11747 NDR_CHECK(ndr_pull_align(ndr, 8));
11748 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
11750 uint32_t _flags_save_string = ndr->flags;
11751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
11753 if (_ptr_driver_name) {
11754 NDR_PULL_ALLOC(ndr, r->driver_name);
11755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
11757 r->driver_name = NULL;
11759 ndr->flags = _flags_save_string;
11762 uint32_t _flags_save_string = ndr->flags;
11763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
11765 if (_ptr_architecture) {
11766 NDR_PULL_ALLOC(ndr, r->architecture);
11767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
11769 r->architecture = NULL;
11771 ndr->flags = _flags_save_string;
11774 uint32_t _flags_save_string = ndr->flags;
11775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
11777 if (_ptr_driver_path) {
11778 NDR_PULL_ALLOC(ndr, r->driver_path);
11779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
11781 r->driver_path = NULL;
11783 ndr->flags = _flags_save_string;
11786 uint32_t _flags_save_string = ndr->flags;
11787 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11788 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
11789 if (_ptr_data_file) {
11790 NDR_PULL_ALLOC(ndr, r->data_file);
11791 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
11793 r->data_file = NULL;
11795 ndr->flags = _flags_save_string;
11798 uint32_t _flags_save_string = ndr->flags;
11799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
11801 if (_ptr_config_file) {
11802 NDR_PULL_ALLOC(ndr, r->config_file);
11803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
11805 r->config_file = NULL;
11807 ndr->flags = _flags_save_string;
11810 uint32_t _flags_save_string = ndr->flags;
11811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
11813 if (_ptr_help_file) {
11814 NDR_PULL_ALLOC(ndr, r->help_file);
11815 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
11817 r->help_file = NULL;
11819 ndr->flags = _flags_save_string;
11822 uint32_t _flags_save_string_array = ndr->flags;
11823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11824 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
11825 if (_ptr_dependent_files) {
11826 NDR_PULL_ALLOC(ndr, r->dependent_files);
11827 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
11829 r->dependent_files = NULL;
11831 ndr->flags = _flags_save_string_array;
11834 uint32_t _flags_save_string = ndr->flags;
11835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
11837 if (_ptr_monitor_name) {
11838 NDR_PULL_ALLOC(ndr, r->monitor_name);
11839 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
11841 r->monitor_name = NULL;
11843 ndr->flags = _flags_save_string;
11846 uint32_t _flags_save_string = ndr->flags;
11847 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
11849 if (_ptr_default_datatype) {
11850 NDR_PULL_ALLOC(ndr, r->default_datatype);
11851 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
11853 r->default_datatype = NULL;
11855 ndr->flags = _flags_save_string;
11858 uint32_t _flags_save_string_array = ndr->flags;
11859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
11861 if (_ptr_previous_names) {
11862 NDR_PULL_ALLOC(ndr, r->previous_names);
11863 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
11865 r->previous_names = NULL;
11867 ndr->flags = _flags_save_string_array;
11869 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
11870 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
11872 uint32_t _flags_save_string = ndr->flags;
11873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
11875 if (_ptr_manufacturer_name) {
11876 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
11877 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
11879 r->manufacturer_name = NULL;
11881 ndr->flags = _flags_save_string;
11884 uint32_t _flags_save_string = ndr->flags;
11885 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
11887 if (_ptr_manufacturer_url) {
11888 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
11889 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
11891 r->manufacturer_url = NULL;
11893 ndr->flags = _flags_save_string;
11896 uint32_t _flags_save_string = ndr->flags;
11897 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
11899 if (_ptr_hardware_id) {
11900 NDR_PULL_ALLOC(ndr, r->hardware_id);
11901 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
11903 r->hardware_id = NULL;
11905 ndr->flags = _flags_save_string;
11908 uint32_t _flags_save_string = ndr->flags;
11909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
11911 if (_ptr_provider) {
11912 NDR_PULL_ALLOC(ndr, r->provider);
11913 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
11915 r->provider = NULL;
11917 ndr->flags = _flags_save_string;
11920 if (ndr_flags & NDR_BUFFERS) {
11922 uint32_t _flags_save_string = ndr->flags;
11923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11924 if (r->driver_name) {
11925 uint32_t _relative_save_offset;
11926 _relative_save_offset = ndr->offset;
11927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
11928 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11929 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
11930 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
11931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
11932 ndr->offset = _relative_save_offset;
11934 ndr->flags = _flags_save_string;
11937 uint32_t _flags_save_string = ndr->flags;
11938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11939 if (r->architecture) {
11940 uint32_t _relative_save_offset;
11941 _relative_save_offset = ndr->offset;
11942 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
11943 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
11944 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
11945 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
11946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
11947 ndr->offset = _relative_save_offset;
11949 ndr->flags = _flags_save_string;
11952 uint32_t _flags_save_string = ndr->flags;
11953 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11954 if (r->driver_path) {
11955 uint32_t _relative_save_offset;
11956 _relative_save_offset = ndr->offset;
11957 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
11958 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
11959 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
11960 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
11961 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
11962 ndr->offset = _relative_save_offset;
11964 ndr->flags = _flags_save_string;
11967 uint32_t _flags_save_string = ndr->flags;
11968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11969 if (r->data_file) {
11970 uint32_t _relative_save_offset;
11971 _relative_save_offset = ndr->offset;
11972 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
11973 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11974 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
11975 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
11976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
11977 ndr->offset = _relative_save_offset;
11979 ndr->flags = _flags_save_string;
11982 uint32_t _flags_save_string = ndr->flags;
11983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11984 if (r->config_file) {
11985 uint32_t _relative_save_offset;
11986 _relative_save_offset = ndr->offset;
11987 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
11988 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11989 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
11990 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
11991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
11992 ndr->offset = _relative_save_offset;
11994 ndr->flags = _flags_save_string;
11997 uint32_t _flags_save_string = ndr->flags;
11998 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11999 if (r->help_file) {
12000 uint32_t _relative_save_offset;
12001 _relative_save_offset = ndr->offset;
12002 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12003 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12004 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12005 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12007 ndr->offset = _relative_save_offset;
12009 ndr->flags = _flags_save_string;
12012 uint32_t _flags_save_string_array = ndr->flags;
12013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12014 if (r->dependent_files) {
12015 uint32_t _relative_save_offset;
12016 _relative_save_offset = ndr->offset;
12017 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12018 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12019 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12020 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12021 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12022 ndr->offset = _relative_save_offset;
12024 ndr->flags = _flags_save_string_array;
12027 uint32_t _flags_save_string = ndr->flags;
12028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12029 if (r->monitor_name) {
12030 uint32_t _relative_save_offset;
12031 _relative_save_offset = ndr->offset;
12032 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12033 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12034 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12035 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12036 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12037 ndr->offset = _relative_save_offset;
12039 ndr->flags = _flags_save_string;
12042 uint32_t _flags_save_string = ndr->flags;
12043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12044 if (r->default_datatype) {
12045 uint32_t _relative_save_offset;
12046 _relative_save_offset = ndr->offset;
12047 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12048 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12049 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12050 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12051 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12052 ndr->offset = _relative_save_offset;
12054 ndr->flags = _flags_save_string;
12057 uint32_t _flags_save_string_array = ndr->flags;
12058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12059 if (r->previous_names) {
12060 uint32_t _relative_save_offset;
12061 _relative_save_offset = ndr->offset;
12062 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12063 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12064 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12065 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12066 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12067 ndr->offset = _relative_save_offset;
12069 ndr->flags = _flags_save_string_array;
12072 uint32_t _flags_save_string = ndr->flags;
12073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12074 if (r->manufacturer_name) {
12075 uint32_t _relative_save_offset;
12076 _relative_save_offset = ndr->offset;
12077 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12078 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12079 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12080 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12082 ndr->offset = _relative_save_offset;
12084 ndr->flags = _flags_save_string;
12087 uint32_t _flags_save_string = ndr->flags;
12088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12089 if (r->manufacturer_url) {
12090 uint32_t _relative_save_offset;
12091 _relative_save_offset = ndr->offset;
12092 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12093 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12094 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12095 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12097 ndr->offset = _relative_save_offset;
12099 ndr->flags = _flags_save_string;
12102 uint32_t _flags_save_string = ndr->flags;
12103 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12104 if (r->hardware_id) {
12105 uint32_t _relative_save_offset;
12106 _relative_save_offset = ndr->offset;
12107 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
12108 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
12109 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
12110 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
12111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
12112 ndr->offset = _relative_save_offset;
12114 ndr->flags = _flags_save_string;
12117 uint32_t _flags_save_string = ndr->flags;
12118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12120 uint32_t _relative_save_offset;
12121 _relative_save_offset = ndr->offset;
12122 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
12123 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
12124 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
12125 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
12126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
12127 ndr->offset = _relative_save_offset;
12129 ndr->flags = _flags_save_string;
12132 return NDR_ERR_SUCCESS;
12135 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
12137 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
12139 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
12140 ndr_print_ptr(ndr, "driver_name", r->driver_name);
12142 if (r->driver_name) {
12143 ndr_print_string(ndr, "driver_name", r->driver_name);
12146 ndr_print_ptr(ndr, "architecture", r->architecture);
12148 if (r->architecture) {
12149 ndr_print_string(ndr, "architecture", r->architecture);
12152 ndr_print_ptr(ndr, "driver_path", r->driver_path);
12154 if (r->driver_path) {
12155 ndr_print_string(ndr, "driver_path", r->driver_path);
12158 ndr_print_ptr(ndr, "data_file", r->data_file);
12160 if (r->data_file) {
12161 ndr_print_string(ndr, "data_file", r->data_file);
12164 ndr_print_ptr(ndr, "config_file", r->config_file);
12166 if (r->config_file) {
12167 ndr_print_string(ndr, "config_file", r->config_file);
12170 ndr_print_ptr(ndr, "help_file", r->help_file);
12172 if (r->help_file) {
12173 ndr_print_string(ndr, "help_file", r->help_file);
12176 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
12178 if (r->dependent_files) {
12179 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
12182 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12184 if (r->monitor_name) {
12185 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12188 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
12190 if (r->default_datatype) {
12191 ndr_print_string(ndr, "default_datatype", r->default_datatype);
12194 ndr_print_ptr(ndr, "previous_names", r->previous_names);
12196 if (r->previous_names) {
12197 ndr_print_string_array(ndr, "previous_names", r->previous_names);
12200 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
12201 ndr_print_hyper(ndr, "driver_version", r->driver_version);
12202 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
12204 if (r->manufacturer_name) {
12205 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
12208 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
12210 if (r->manufacturer_url) {
12211 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
12214 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
12216 if (r->hardware_id) {
12217 ndr_print_string(ndr, "hardware_id", r->hardware_id);
12220 ndr_print_ptr(ndr, "provider", r->provider);
12223 ndr_print_string(ndr, "provider", r->provider);
12229 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
12231 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
12234 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
12236 if (ndr_flags & NDR_SCALARS) {
12237 NDR_CHECK(ndr_push_align(ndr, 8));
12238 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
12240 uint32_t _flags_save_string = ndr->flags;
12241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12242 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
12243 ndr->flags = _flags_save_string;
12246 uint32_t _flags_save_string = ndr->flags;
12247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12248 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
12249 ndr->flags = _flags_save_string;
12252 uint32_t _flags_save_string = ndr->flags;
12253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12254 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
12255 ndr->flags = _flags_save_string;
12258 uint32_t _flags_save_string = ndr->flags;
12259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12260 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
12261 ndr->flags = _flags_save_string;
12264 uint32_t _flags_save_string = ndr->flags;
12265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12266 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
12267 ndr->flags = _flags_save_string;
12270 uint32_t _flags_save_string = ndr->flags;
12271 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12272 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
12273 ndr->flags = _flags_save_string;
12276 uint32_t _flags_save_string = ndr->flags;
12277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12278 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12279 ndr->flags = _flags_save_string;
12282 uint32_t _flags_save_string = ndr->flags;
12283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12284 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
12285 ndr->flags = _flags_save_string;
12288 uint32_t _flags_save_string_array = ndr->flags;
12289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12290 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
12291 ndr->flags = _flags_save_string_array;
12294 uint32_t _flags_save_string_array = ndr->flags;
12295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12296 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
12297 ndr->flags = _flags_save_string_array;
12299 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
12300 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
12302 uint32_t _flags_save_string = ndr->flags;
12303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12304 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
12305 ndr->flags = _flags_save_string;
12308 uint32_t _flags_save_string = ndr->flags;
12309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12310 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
12311 ndr->flags = _flags_save_string;
12314 uint32_t _flags_save_string = ndr->flags;
12315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12316 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
12317 ndr->flags = _flags_save_string;
12320 uint32_t _flags_save_string = ndr->flags;
12321 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12322 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
12323 ndr->flags = _flags_save_string;
12326 uint32_t _flags_save_string = ndr->flags;
12327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12328 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
12329 ndr->flags = _flags_save_string;
12332 uint32_t _flags_save_string = ndr->flags;
12333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12334 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
12335 ndr->flags = _flags_save_string;
12338 uint32_t _flags_save_string_array = ndr->flags;
12339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12340 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
12341 ndr->flags = _flags_save_string_array;
12344 uint32_t _flags_save_string = ndr->flags;
12345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12346 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
12347 ndr->flags = _flags_save_string;
12349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
12351 uint32_t _flags_save_string_array = ndr->flags;
12352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12353 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
12354 ndr->flags = _flags_save_string_array;
12356 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
12357 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
12359 if (ndr_flags & NDR_BUFFERS) {
12361 uint32_t _flags_save_string = ndr->flags;
12362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12363 if (r->driver_name) {
12364 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
12365 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
12367 ndr->flags = _flags_save_string;
12370 uint32_t _flags_save_string = ndr->flags;
12371 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12372 if (r->architecture) {
12373 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
12374 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
12376 ndr->flags = _flags_save_string;
12379 uint32_t _flags_save_string = ndr->flags;
12380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12381 if (r->driver_path) {
12382 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
12383 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
12385 ndr->flags = _flags_save_string;
12388 uint32_t _flags_save_string = ndr->flags;
12389 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12390 if (r->data_file) {
12391 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
12392 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
12394 ndr->flags = _flags_save_string;
12397 uint32_t _flags_save_string = ndr->flags;
12398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12399 if (r->config_file) {
12400 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
12401 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
12403 ndr->flags = _flags_save_string;
12406 uint32_t _flags_save_string = ndr->flags;
12407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12408 if (r->help_file) {
12409 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
12410 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
12412 ndr->flags = _flags_save_string;
12415 uint32_t _flags_save_string = ndr->flags;
12416 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12417 if (r->monitor_name) {
12418 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12419 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12421 ndr->flags = _flags_save_string;
12424 uint32_t _flags_save_string = ndr->flags;
12425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12426 if (r->default_datatype) {
12427 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
12428 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
12430 ndr->flags = _flags_save_string;
12433 uint32_t _flags_save_string_array = ndr->flags;
12434 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12435 if (r->dependent_files) {
12436 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
12437 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
12439 ndr->flags = _flags_save_string_array;
12442 uint32_t _flags_save_string_array = ndr->flags;
12443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12444 if (r->previous_names) {
12445 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
12446 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
12448 ndr->flags = _flags_save_string_array;
12451 uint32_t _flags_save_string = ndr->flags;
12452 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12453 if (r->manufacturer_name) {
12454 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
12455 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
12457 ndr->flags = _flags_save_string;
12460 uint32_t _flags_save_string = ndr->flags;
12461 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12462 if (r->manufacturer_url) {
12463 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
12464 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
12466 ndr->flags = _flags_save_string;
12469 uint32_t _flags_save_string = ndr->flags;
12470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12471 if (r->hardware_id) {
12472 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
12473 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
12475 ndr->flags = _flags_save_string;
12478 uint32_t _flags_save_string = ndr->flags;
12479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12481 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
12482 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
12484 ndr->flags = _flags_save_string;
12487 uint32_t _flags_save_string = ndr->flags;
12488 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12489 if (r->print_processor) {
12490 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
12491 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
12493 ndr->flags = _flags_save_string;
12496 uint32_t _flags_save_string = ndr->flags;
12497 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12498 if (r->vendor_setup) {
12499 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
12500 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
12502 ndr->flags = _flags_save_string;
12505 uint32_t _flags_save_string_array = ndr->flags;
12506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12507 if (r->color_profiles) {
12508 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
12509 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
12511 ndr->flags = _flags_save_string_array;
12514 uint32_t _flags_save_string = ndr->flags;
12515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12517 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
12518 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
12520 ndr->flags = _flags_save_string;
12523 uint32_t _flags_save_string_array = ndr->flags;
12524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12525 if (r->core_driver_dependencies) {
12526 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
12527 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
12529 ndr->flags = _flags_save_string_array;
12532 return NDR_ERR_SUCCESS;
12535 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
12537 uint32_t _ptr_driver_name;
12538 TALLOC_CTX *_mem_save_driver_name_0;
12539 uint32_t _ptr_architecture;
12540 TALLOC_CTX *_mem_save_architecture_0;
12541 uint32_t _ptr_driver_path;
12542 TALLOC_CTX *_mem_save_driver_path_0;
12543 uint32_t _ptr_data_file;
12544 TALLOC_CTX *_mem_save_data_file_0;
12545 uint32_t _ptr_config_file;
12546 TALLOC_CTX *_mem_save_config_file_0;
12547 uint32_t _ptr_help_file;
12548 TALLOC_CTX *_mem_save_help_file_0;
12549 uint32_t _ptr_monitor_name;
12550 TALLOC_CTX *_mem_save_monitor_name_0;
12551 uint32_t _ptr_default_datatype;
12552 TALLOC_CTX *_mem_save_default_datatype_0;
12553 uint32_t _ptr_dependent_files;
12554 TALLOC_CTX *_mem_save_dependent_files_0;
12555 uint32_t _ptr_previous_names;
12556 TALLOC_CTX *_mem_save_previous_names_0;
12557 uint32_t _ptr_manufacturer_name;
12558 TALLOC_CTX *_mem_save_manufacturer_name_0;
12559 uint32_t _ptr_manufacturer_url;
12560 TALLOC_CTX *_mem_save_manufacturer_url_0;
12561 uint32_t _ptr_hardware_id;
12562 TALLOC_CTX *_mem_save_hardware_id_0;
12563 uint32_t _ptr_provider;
12564 TALLOC_CTX *_mem_save_provider_0;
12565 uint32_t _ptr_print_processor;
12566 TALLOC_CTX *_mem_save_print_processor_0;
12567 uint32_t _ptr_vendor_setup;
12568 TALLOC_CTX *_mem_save_vendor_setup_0;
12569 uint32_t _ptr_color_profiles;
12570 TALLOC_CTX *_mem_save_color_profiles_0;
12571 uint32_t _ptr_inf_path;
12572 TALLOC_CTX *_mem_save_inf_path_0;
12573 uint32_t _ptr_core_driver_dependencies;
12574 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
12575 if (ndr_flags & NDR_SCALARS) {
12576 NDR_CHECK(ndr_pull_align(ndr, 8));
12577 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
12579 uint32_t _flags_save_string = ndr->flags;
12580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
12582 if (_ptr_driver_name) {
12583 NDR_PULL_ALLOC(ndr, r->driver_name);
12584 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
12586 r->driver_name = NULL;
12588 ndr->flags = _flags_save_string;
12591 uint32_t _flags_save_string = ndr->flags;
12592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
12594 if (_ptr_architecture) {
12595 NDR_PULL_ALLOC(ndr, r->architecture);
12596 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
12598 r->architecture = NULL;
12600 ndr->flags = _flags_save_string;
12603 uint32_t _flags_save_string = ndr->flags;
12604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
12606 if (_ptr_driver_path) {
12607 NDR_PULL_ALLOC(ndr, r->driver_path);
12608 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
12610 r->driver_path = NULL;
12612 ndr->flags = _flags_save_string;
12615 uint32_t _flags_save_string = ndr->flags;
12616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12617 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
12618 if (_ptr_data_file) {
12619 NDR_PULL_ALLOC(ndr, r->data_file);
12620 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
12622 r->data_file = NULL;
12624 ndr->flags = _flags_save_string;
12627 uint32_t _flags_save_string = ndr->flags;
12628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
12630 if (_ptr_config_file) {
12631 NDR_PULL_ALLOC(ndr, r->config_file);
12632 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
12634 r->config_file = NULL;
12636 ndr->flags = _flags_save_string;
12639 uint32_t _flags_save_string = ndr->flags;
12640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
12642 if (_ptr_help_file) {
12643 NDR_PULL_ALLOC(ndr, r->help_file);
12644 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
12646 r->help_file = NULL;
12648 ndr->flags = _flags_save_string;
12651 uint32_t _flags_save_string = ndr->flags;
12652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12653 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12654 if (_ptr_monitor_name) {
12655 NDR_PULL_ALLOC(ndr, r->monitor_name);
12656 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12658 r->monitor_name = NULL;
12660 ndr->flags = _flags_save_string;
12663 uint32_t _flags_save_string = ndr->flags;
12664 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12665 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
12666 if (_ptr_default_datatype) {
12667 NDR_PULL_ALLOC(ndr, r->default_datatype);
12668 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
12670 r->default_datatype = NULL;
12672 ndr->flags = _flags_save_string;
12675 uint32_t _flags_save_string_array = ndr->flags;
12676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
12678 if (_ptr_dependent_files) {
12679 NDR_PULL_ALLOC(ndr, r->dependent_files);
12680 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
12682 r->dependent_files = NULL;
12684 ndr->flags = _flags_save_string_array;
12687 uint32_t _flags_save_string_array = ndr->flags;
12688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
12690 if (_ptr_previous_names) {
12691 NDR_PULL_ALLOC(ndr, r->previous_names);
12692 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
12694 r->previous_names = NULL;
12696 ndr->flags = _flags_save_string_array;
12698 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
12699 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
12701 uint32_t _flags_save_string = ndr->flags;
12702 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12703 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
12704 if (_ptr_manufacturer_name) {
12705 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
12706 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
12708 r->manufacturer_name = NULL;
12710 ndr->flags = _flags_save_string;
12713 uint32_t _flags_save_string = ndr->flags;
12714 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12715 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
12716 if (_ptr_manufacturer_url) {
12717 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
12718 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
12720 r->manufacturer_url = NULL;
12722 ndr->flags = _flags_save_string;
12725 uint32_t _flags_save_string = ndr->flags;
12726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
12728 if (_ptr_hardware_id) {
12729 NDR_PULL_ALLOC(ndr, r->hardware_id);
12730 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
12732 r->hardware_id = NULL;
12734 ndr->flags = _flags_save_string;
12737 uint32_t _flags_save_string = ndr->flags;
12738 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
12740 if (_ptr_provider) {
12741 NDR_PULL_ALLOC(ndr, r->provider);
12742 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
12744 r->provider = NULL;
12746 ndr->flags = _flags_save_string;
12749 uint32_t _flags_save_string = ndr->flags;
12750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
12752 if (_ptr_print_processor) {
12753 NDR_PULL_ALLOC(ndr, r->print_processor);
12754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
12756 r->print_processor = NULL;
12758 ndr->flags = _flags_save_string;
12761 uint32_t _flags_save_string = ndr->flags;
12762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
12764 if (_ptr_vendor_setup) {
12765 NDR_PULL_ALLOC(ndr, r->vendor_setup);
12766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
12768 r->vendor_setup = NULL;
12770 ndr->flags = _flags_save_string;
12773 uint32_t _flags_save_string_array = ndr->flags;
12774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
12776 if (_ptr_color_profiles) {
12777 NDR_PULL_ALLOC(ndr, r->color_profiles);
12778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
12780 r->color_profiles = NULL;
12782 ndr->flags = _flags_save_string_array;
12785 uint32_t _flags_save_string = ndr->flags;
12786 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
12788 if (_ptr_inf_path) {
12789 NDR_PULL_ALLOC(ndr, r->inf_path);
12790 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
12792 r->inf_path = NULL;
12794 ndr->flags = _flags_save_string;
12796 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
12798 uint32_t _flags_save_string_array = ndr->flags;
12799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
12801 if (_ptr_core_driver_dependencies) {
12802 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
12803 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
12805 r->core_driver_dependencies = NULL;
12807 ndr->flags = _flags_save_string_array;
12809 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
12810 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
12812 if (ndr_flags & NDR_BUFFERS) {
12814 uint32_t _flags_save_string = ndr->flags;
12815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12816 if (r->driver_name) {
12817 uint32_t _relative_save_offset;
12818 _relative_save_offset = ndr->offset;
12819 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
12820 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12821 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
12822 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
12823 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
12824 ndr->offset = _relative_save_offset;
12826 ndr->flags = _flags_save_string;
12829 uint32_t _flags_save_string = ndr->flags;
12830 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12831 if (r->architecture) {
12832 uint32_t _relative_save_offset;
12833 _relative_save_offset = ndr->offset;
12834 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
12835 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
12836 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
12837 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
12838 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
12839 ndr->offset = _relative_save_offset;
12841 ndr->flags = _flags_save_string;
12844 uint32_t _flags_save_string = ndr->flags;
12845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12846 if (r->driver_path) {
12847 uint32_t _relative_save_offset;
12848 _relative_save_offset = ndr->offset;
12849 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
12850 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
12851 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
12852 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
12853 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
12854 ndr->offset = _relative_save_offset;
12856 ndr->flags = _flags_save_string;
12859 uint32_t _flags_save_string = ndr->flags;
12860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12861 if (r->data_file) {
12862 uint32_t _relative_save_offset;
12863 _relative_save_offset = ndr->offset;
12864 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
12865 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12866 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
12867 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
12868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
12869 ndr->offset = _relative_save_offset;
12871 ndr->flags = _flags_save_string;
12874 uint32_t _flags_save_string = ndr->flags;
12875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12876 if (r->config_file) {
12877 uint32_t _relative_save_offset;
12878 _relative_save_offset = ndr->offset;
12879 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
12880 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12881 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
12882 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
12883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
12884 ndr->offset = _relative_save_offset;
12886 ndr->flags = _flags_save_string;
12889 uint32_t _flags_save_string = ndr->flags;
12890 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12891 if (r->help_file) {
12892 uint32_t _relative_save_offset;
12893 _relative_save_offset = ndr->offset;
12894 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
12895 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
12896 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
12897 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
12898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
12899 ndr->offset = _relative_save_offset;
12901 ndr->flags = _flags_save_string;
12904 uint32_t _flags_save_string = ndr->flags;
12905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12906 if (r->monitor_name) {
12907 uint32_t _relative_save_offset;
12908 _relative_save_offset = ndr->offset;
12909 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12910 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12911 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12912 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12914 ndr->offset = _relative_save_offset;
12916 ndr->flags = _flags_save_string;
12919 uint32_t _flags_save_string = ndr->flags;
12920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12921 if (r->default_datatype) {
12922 uint32_t _relative_save_offset;
12923 _relative_save_offset = ndr->offset;
12924 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
12925 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12926 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
12927 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
12928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
12929 ndr->offset = _relative_save_offset;
12931 ndr->flags = _flags_save_string;
12934 uint32_t _flags_save_string_array = ndr->flags;
12935 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12936 if (r->dependent_files) {
12937 uint32_t _relative_save_offset;
12938 _relative_save_offset = ndr->offset;
12939 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
12940 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
12941 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
12942 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
12943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
12944 ndr->offset = _relative_save_offset;
12946 ndr->flags = _flags_save_string_array;
12949 uint32_t _flags_save_string_array = ndr->flags;
12950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12951 if (r->previous_names) {
12952 uint32_t _relative_save_offset;
12953 _relative_save_offset = ndr->offset;
12954 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
12955 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
12956 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
12957 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
12958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
12959 ndr->offset = _relative_save_offset;
12961 ndr->flags = _flags_save_string_array;
12964 uint32_t _flags_save_string = ndr->flags;
12965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12966 if (r->manufacturer_name) {
12967 uint32_t _relative_save_offset;
12968 _relative_save_offset = ndr->offset;
12969 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
12970 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12971 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
12972 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
12973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
12974 ndr->offset = _relative_save_offset;
12976 ndr->flags = _flags_save_string;
12979 uint32_t _flags_save_string = ndr->flags;
12980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12981 if (r->manufacturer_url) {
12982 uint32_t _relative_save_offset;
12983 _relative_save_offset = ndr->offset;
12984 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
12985 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
12986 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
12987 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
12988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
12989 ndr->offset = _relative_save_offset;
12991 ndr->flags = _flags_save_string;
12994 uint32_t _flags_save_string = ndr->flags;
12995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12996 if (r->hardware_id) {
12997 uint32_t _relative_save_offset;
12998 _relative_save_offset = ndr->offset;
12999 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
13000 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
13001 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
13002 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
13003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
13004 ndr->offset = _relative_save_offset;
13006 ndr->flags = _flags_save_string;
13009 uint32_t _flags_save_string = ndr->flags;
13010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13012 uint32_t _relative_save_offset;
13013 _relative_save_offset = ndr->offset;
13014 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
13015 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
13016 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
13017 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
13018 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
13019 ndr->offset = _relative_save_offset;
13021 ndr->flags = _flags_save_string;
13024 uint32_t _flags_save_string = ndr->flags;
13025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13026 if (r->print_processor) {
13027 uint32_t _relative_save_offset;
13028 _relative_save_offset = ndr->offset;
13029 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
13030 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
13031 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
13032 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
13033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
13034 ndr->offset = _relative_save_offset;
13036 ndr->flags = _flags_save_string;
13039 uint32_t _flags_save_string = ndr->flags;
13040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13041 if (r->vendor_setup) {
13042 uint32_t _relative_save_offset;
13043 _relative_save_offset = ndr->offset;
13044 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
13045 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
13046 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
13047 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
13048 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
13049 ndr->offset = _relative_save_offset;
13051 ndr->flags = _flags_save_string;
13054 uint32_t _flags_save_string_array = ndr->flags;
13055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13056 if (r->color_profiles) {
13057 uint32_t _relative_save_offset;
13058 _relative_save_offset = ndr->offset;
13059 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
13060 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
13061 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
13062 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
13063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
13064 ndr->offset = _relative_save_offset;
13066 ndr->flags = _flags_save_string_array;
13069 uint32_t _flags_save_string = ndr->flags;
13070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13072 uint32_t _relative_save_offset;
13073 _relative_save_offset = ndr->offset;
13074 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
13075 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
13076 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
13077 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
13078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
13079 ndr->offset = _relative_save_offset;
13081 ndr->flags = _flags_save_string;
13084 uint32_t _flags_save_string_array = ndr->flags;
13085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13086 if (r->core_driver_dependencies) {
13087 uint32_t _relative_save_offset;
13088 _relative_save_offset = ndr->offset;
13089 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
13090 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13091 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
13092 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
13093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
13094 ndr->offset = _relative_save_offset;
13096 ndr->flags = _flags_save_string_array;
13099 return NDR_ERR_SUCCESS;
13102 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
13104 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
13106 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13107 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13109 if (r->driver_name) {
13110 ndr_print_string(ndr, "driver_name", r->driver_name);
13113 ndr_print_ptr(ndr, "architecture", r->architecture);
13115 if (r->architecture) {
13116 ndr_print_string(ndr, "architecture", r->architecture);
13119 ndr_print_ptr(ndr, "driver_path", r->driver_path);
13121 if (r->driver_path) {
13122 ndr_print_string(ndr, "driver_path", r->driver_path);
13125 ndr_print_ptr(ndr, "data_file", r->data_file);
13127 if (r->data_file) {
13128 ndr_print_string(ndr, "data_file", r->data_file);
13131 ndr_print_ptr(ndr, "config_file", r->config_file);
13133 if (r->config_file) {
13134 ndr_print_string(ndr, "config_file", r->config_file);
13137 ndr_print_ptr(ndr, "help_file", r->help_file);
13139 if (r->help_file) {
13140 ndr_print_string(ndr, "help_file", r->help_file);
13143 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13145 if (r->monitor_name) {
13146 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13149 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13151 if (r->default_datatype) {
13152 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13155 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
13157 if (r->dependent_files) {
13158 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
13161 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13163 if (r->previous_names) {
13164 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13167 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13168 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13169 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13171 if (r->manufacturer_name) {
13172 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13175 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13177 if (r->manufacturer_url) {
13178 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13181 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13183 if (r->hardware_id) {
13184 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13187 ndr_print_ptr(ndr, "provider", r->provider);
13190 ndr_print_string(ndr, "provider", r->provider);
13193 ndr_print_ptr(ndr, "print_processor", r->print_processor);
13195 if (r->print_processor) {
13196 ndr_print_string(ndr, "print_processor", r->print_processor);
13199 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
13201 if (r->vendor_setup) {
13202 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
13205 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
13207 if (r->color_profiles) {
13208 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
13211 ndr_print_ptr(ndr, "inf_path", r->inf_path);
13214 ndr_print_string(ndr, "inf_path", r->inf_path);
13217 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
13218 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13220 if (r->core_driver_dependencies) {
13221 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
13224 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
13225 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
13229 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
13231 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
13234 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
13236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13237 return NDR_ERR_SUCCESS;
13240 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
13243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13245 return NDR_ERR_SUCCESS;
13248 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
13250 const char *val = NULL;
13253 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
13254 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
13255 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
13256 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
13257 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
13259 ndr_print_enum(ndr, name, "ENUM", val, r);
13262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
13264 if (ndr_flags & NDR_SCALARS) {
13265 NDR_CHECK(ndr_push_align(ndr, 4));
13267 uint32_t _flags_save_string = ndr->flags;
13268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13269 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
13270 ndr->flags = _flags_save_string;
13272 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
13273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
13275 if (ndr_flags & NDR_BUFFERS) {
13277 uint32_t _flags_save_string = ndr->flags;
13278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13279 if (r->file_name) {
13280 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
13281 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
13283 ndr->flags = _flags_save_string;
13286 return NDR_ERR_SUCCESS;
13289 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
13291 uint32_t _ptr_file_name;
13292 TALLOC_CTX *_mem_save_file_name_0;
13293 if (ndr_flags & NDR_SCALARS) {
13294 NDR_CHECK(ndr_pull_align(ndr, 4));
13296 uint32_t _flags_save_string = ndr->flags;
13297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
13299 if (_ptr_file_name) {
13300 NDR_PULL_ALLOC(ndr, r->file_name);
13301 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
13303 r->file_name = NULL;
13305 ndr->flags = _flags_save_string;
13307 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
13308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
13310 if (ndr_flags & NDR_BUFFERS) {
13312 uint32_t _flags_save_string = ndr->flags;
13313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13314 if (r->file_name) {
13315 uint32_t _relative_save_offset;
13316 _relative_save_offset = ndr->offset;
13317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
13318 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13319 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
13320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
13321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
13322 ndr->offset = _relative_save_offset;
13324 ndr->flags = _flags_save_string;
13327 return NDR_ERR_SUCCESS;
13330 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
13332 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
13334 ndr_print_ptr(ndr, "file_name", r->file_name);
13336 if (r->file_name) {
13337 ndr_print_string(ndr, "file_name", r->file_name);
13340 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
13341 ndr_print_uint32(ndr, "file_version", r->file_version);
13345 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
13347 uint32_t cntr_file_info_1;
13348 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
13350 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
13351 ndr_print_ptr(ndr, "driver_name", r->driver_name);
13353 if (r->driver_name) {
13354 ndr_print_string(ndr, "driver_name", r->driver_name);
13357 ndr_print_ptr(ndr, "architecture", r->architecture);
13359 if (r->architecture) {
13360 ndr_print_string(ndr, "architecture", r->architecture);
13363 ndr_print_ptr(ndr, "file_info", r->file_info);
13365 if (r->file_info) {
13366 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
13368 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
13370 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
13371 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
13378 ndr_print_uint32(ndr, "file_count", r->file_count);
13379 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13381 if (r->monitor_name) {
13382 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13385 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
13387 if (r->default_datatype) {
13388 ndr_print_string(ndr, "default_datatype", r->default_datatype);
13391 ndr_print_ptr(ndr, "previous_names", r->previous_names);
13393 if (r->previous_names) {
13394 ndr_print_string_array(ndr, "previous_names", r->previous_names);
13397 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
13398 ndr_print_hyper(ndr, "driver_version", r->driver_version);
13399 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
13401 if (r->manufacturer_name) {
13402 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
13405 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
13407 if (r->manufacturer_url) {
13408 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
13411 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
13413 if (r->hardware_id) {
13414 ndr_print_string(ndr, "hardware_id", r->hardware_id);
13417 ndr_print_ptr(ndr, "provider", r->provider);
13420 ndr_print_string(ndr, "provider", r->provider);
13426 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
13428 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
13431 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
13433 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13434 if (ndr_flags & NDR_SCALARS) {
13435 int level = ndr_push_get_switch_value(ndr, r);
13438 NDR_CHECK(ndr_push_align(ndr, 4));
13439 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13440 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13444 NDR_CHECK(ndr_push_align(ndr, 4));
13445 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13446 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13450 NDR_CHECK(ndr_push_align(ndr, 4));
13451 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13452 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13456 NDR_CHECK(ndr_push_align(ndr, 4));
13457 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13458 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13462 NDR_CHECK(ndr_push_align(ndr, 4));
13463 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13464 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13468 NDR_CHECK(ndr_push_align(ndr, 8));
13469 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13470 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13474 NDR_CHECK(ndr_push_align(ndr, 8));
13475 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13476 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13480 NDR_CHECK(ndr_push_align(ndr, 8));
13481 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13482 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13490 if (ndr_flags & NDR_BUFFERS) {
13491 int level = ndr_push_get_switch_value(ndr, r);
13492 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13495 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13499 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13503 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13507 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13511 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13515 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13519 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13523 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13531 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13532 return NDR_ERR_SUCCESS;
13535 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
13537 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13539 level = ndr_pull_get_switch_value(ndr, r);
13540 if (ndr_flags & NDR_SCALARS) {
13543 NDR_CHECK(ndr_pull_align(ndr, 4));
13544 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13545 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
13549 NDR_CHECK(ndr_pull_align(ndr, 4));
13550 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13551 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
13555 NDR_CHECK(ndr_pull_align(ndr, 4));
13556 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13557 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
13561 NDR_CHECK(ndr_pull_align(ndr, 4));
13562 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13563 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
13567 NDR_CHECK(ndr_pull_align(ndr, 4));
13568 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13569 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
13573 NDR_CHECK(ndr_pull_align(ndr, 8));
13574 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13575 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
13579 NDR_CHECK(ndr_pull_align(ndr, 8));
13580 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13581 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
13585 NDR_CHECK(ndr_pull_align(ndr, 8));
13586 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13587 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
13595 if (ndr_flags & NDR_BUFFERS) {
13596 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13599 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
13603 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
13607 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
13611 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
13615 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
13619 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
13623 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
13627 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
13635 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13636 return NDR_ERR_SUCCESS;
13639 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
13642 level = ndr_print_get_switch_value(ndr, r);
13643 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
13646 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
13650 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
13654 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
13658 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
13662 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
13666 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
13670 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
13674 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
13683 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo(const union spoolss_DriverInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13685 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo, ic);
13688 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
13690 if (ndr_flags & NDR_SCALARS) {
13691 NDR_CHECK(ndr_push_align(ndr, 4));
13693 uint32_t _flags_save_string = ndr->flags;
13694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13695 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
13696 ndr->flags = _flags_save_string;
13699 if (ndr_flags & NDR_BUFFERS) {
13701 return NDR_ERR_SUCCESS;
13704 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
13706 if (ndr_flags & NDR_SCALARS) {
13707 NDR_CHECK(ndr_pull_align(ndr, 4));
13709 uint32_t _flags_save_string = ndr->flags;
13710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13711 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
13712 ndr->flags = _flags_save_string;
13715 if (ndr_flags & NDR_BUFFERS) {
13717 return NDR_ERR_SUCCESS;
13720 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
13722 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
13724 ndr_print_string(ndr, "directory_name", r->directory_name);
13728 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13730 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
13733 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
13735 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13736 if (ndr_flags & NDR_SCALARS) {
13737 int level = ndr_push_get_switch_value(ndr, r);
13740 NDR_CHECK(ndr_push_align(ndr, 4));
13741 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13742 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13746 NDR_CHECK(ndr_push_align(ndr, 4));
13747 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13748 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13753 if (ndr_flags & NDR_BUFFERS) {
13754 int level = ndr_push_get_switch_value(ndr, r);
13755 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13765 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13766 return NDR_ERR_SUCCESS;
13769 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
13771 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13773 level = ndr_pull_get_switch_value(ndr, r);
13774 if (ndr_flags & NDR_SCALARS) {
13777 NDR_CHECK(ndr_pull_align(ndr, 4));
13778 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13779 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13783 NDR_CHECK(ndr_pull_align(ndr, 4));
13784 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13785 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
13790 if (ndr_flags & NDR_BUFFERS) {
13791 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13801 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13802 return NDR_ERR_SUCCESS;
13805 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
13808 level = ndr_print_get_switch_value(ndr, r);
13809 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
13812 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13816 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
13822 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
13824 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
13827 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
13829 if (ndr_flags & NDR_SCALARS) {
13830 NDR_CHECK(ndr_push_align(ndr, 4));
13832 uint32_t _flags_save_string = ndr->flags;
13833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13834 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
13835 ndr->flags = _flags_save_string;
13838 if (ndr_flags & NDR_BUFFERS) {
13840 uint32_t _flags_save_string = ndr->flags;
13841 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13842 if (r->print_processor_name) {
13843 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
13844 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
13846 ndr->flags = _flags_save_string;
13849 return NDR_ERR_SUCCESS;
13852 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
13854 uint32_t _ptr_print_processor_name;
13855 TALLOC_CTX *_mem_save_print_processor_name_0;
13856 if (ndr_flags & NDR_SCALARS) {
13857 NDR_CHECK(ndr_pull_align(ndr, 4));
13859 uint32_t _flags_save_string = ndr->flags;
13860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
13862 if (_ptr_print_processor_name) {
13863 NDR_PULL_ALLOC(ndr, r->print_processor_name);
13864 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
13866 r->print_processor_name = NULL;
13868 ndr->flags = _flags_save_string;
13871 if (ndr_flags & NDR_BUFFERS) {
13873 uint32_t _flags_save_string = ndr->flags;
13874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13875 if (r->print_processor_name) {
13876 uint32_t _relative_save_offset;
13877 _relative_save_offset = ndr->offset;
13878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
13879 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13880 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
13881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
13882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
13883 ndr->offset = _relative_save_offset;
13885 ndr->flags = _flags_save_string;
13888 return NDR_ERR_SUCCESS;
13891 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
13893 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
13895 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
13897 if (r->print_processor_name) {
13898 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
13904 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorInfo1(const struct spoolss_PrintProcessorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
13906 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorInfo1, ic);
13909 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
13911 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13912 if (ndr_flags & NDR_SCALARS) {
13913 int level = ndr_push_get_switch_value(ndr, r);
13916 NDR_CHECK(ndr_push_align(ndr, 4));
13917 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13918 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13926 if (ndr_flags & NDR_BUFFERS) {
13927 int level = ndr_push_get_switch_value(ndr, r);
13928 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13931 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13939 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13940 return NDR_ERR_SUCCESS;
13943 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
13945 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13947 level = ndr_pull_get_switch_value(ndr, r);
13948 if (ndr_flags & NDR_SCALARS) {
13951 NDR_CHECK(ndr_pull_align(ndr, 4));
13952 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13953 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
13961 if (ndr_flags & NDR_BUFFERS) {
13962 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13965 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
13973 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13974 return NDR_ERR_SUCCESS;
13977 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
13980 level = ndr_print_get_switch_value(ndr, r);
13981 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
13984 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
13993 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
13995 if (ndr_flags & NDR_SCALARS) {
13996 NDR_CHECK(ndr_push_align(ndr, 4));
13998 uint32_t _flags_save_string = ndr->flags;
13999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14000 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
14001 ndr->flags = _flags_save_string;
14004 if (ndr_flags & NDR_BUFFERS) {
14006 return NDR_ERR_SUCCESS;
14009 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
14011 if (ndr_flags & NDR_SCALARS) {
14012 NDR_CHECK(ndr_pull_align(ndr, 4));
14014 uint32_t _flags_save_string = ndr->flags;
14015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14016 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
14017 ndr->flags = _flags_save_string;
14020 if (ndr_flags & NDR_BUFFERS) {
14022 return NDR_ERR_SUCCESS;
14025 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
14027 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
14029 ndr_print_string(ndr, "directory_name", r->directory_name);
14033 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14035 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
14038 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
14040 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
14041 if (ndr_flags & NDR_SCALARS) {
14042 int level = ndr_push_get_switch_value(ndr, r);
14045 NDR_CHECK(ndr_push_align(ndr, 4));
14046 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14047 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14051 NDR_CHECK(ndr_push_align(ndr, 4));
14052 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
14053 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14058 if (ndr_flags & NDR_BUFFERS) {
14059 int level = ndr_push_get_switch_value(ndr, r);
14060 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
14070 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
14071 return NDR_ERR_SUCCESS;
14074 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
14076 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
14078 level = ndr_pull_get_switch_value(ndr, r);
14079 if (ndr_flags & NDR_SCALARS) {
14082 NDR_CHECK(ndr_pull_align(ndr, 4));
14083 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14084 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14088 NDR_CHECK(ndr_pull_align(ndr, 4));
14089 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
14090 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
14095 if (ndr_flags & NDR_BUFFERS) {
14096 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
14106 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
14107 return NDR_ERR_SUCCESS;
14110 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
14113 level = ndr_print_get_switch_value(ndr, r);
14114 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
14117 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14121 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
14127 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14129 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
14132 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
14134 if (ndr_flags & NDR_SCALARS) {
14135 NDR_CHECK(ndr_push_align(ndr, 4));
14136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
14137 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
14138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
14140 if (ndr_flags & NDR_BUFFERS) {
14141 if (r->document_name) {
14142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
14145 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14147 if (r->output_file) {
14148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
14151 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
14157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14160 return NDR_ERR_SUCCESS;
14163 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
14165 uint32_t _ptr_document_name;
14166 TALLOC_CTX *_mem_save_document_name_0;
14167 uint32_t _ptr_output_file;
14168 TALLOC_CTX *_mem_save_output_file_0;
14169 uint32_t _ptr_datatype;
14170 TALLOC_CTX *_mem_save_datatype_0;
14171 if (ndr_flags & NDR_SCALARS) {
14172 NDR_CHECK(ndr_pull_align(ndr, 4));
14173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
14174 if (_ptr_document_name) {
14175 NDR_PULL_ALLOC(ndr, r->document_name);
14177 r->document_name = NULL;
14179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
14180 if (_ptr_output_file) {
14181 NDR_PULL_ALLOC(ndr, r->output_file);
14183 r->output_file = NULL;
14185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14186 if (_ptr_datatype) {
14187 NDR_PULL_ALLOC(ndr, r->datatype);
14189 r->datatype = NULL;
14192 if (ndr_flags & NDR_BUFFERS) {
14193 if (r->document_name) {
14194 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14195 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
14196 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
14197 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
14198 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
14199 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));
14201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
14202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
14203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
14205 if (r->output_file) {
14206 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
14207 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
14208 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
14209 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
14210 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
14211 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));
14213 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
14214 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
14215 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
14218 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14219 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
14220 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
14221 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
14222 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
14223 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));
14225 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
14226 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
14227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14230 return NDR_ERR_SUCCESS;
14233 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
14235 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
14237 ndr_print_ptr(ndr, "document_name", r->document_name);
14239 if (r->document_name) {
14240 ndr_print_string(ndr, "document_name", r->document_name);
14243 ndr_print_ptr(ndr, "output_file", r->output_file);
14245 if (r->output_file) {
14246 ndr_print_string(ndr, "output_file", r->output_file);
14249 ndr_print_ptr(ndr, "datatype", r->datatype);
14252 ndr_print_string(ndr, "datatype", r->datatype);
14258 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
14260 if (ndr_flags & NDR_SCALARS) {
14261 int level = ndr_push_get_switch_value(ndr, r);
14262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14265 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
14279 if (ndr_flags & NDR_BUFFERS) {
14280 int level = ndr_push_get_switch_value(ndr, r);
14284 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14299 return NDR_ERR_SUCCESS;
14302 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
14306 TALLOC_CTX *_mem_save_info1_0;
14307 level = ndr_pull_get_switch_value(ndr, r);
14308 if (ndr_flags & NDR_SCALARS) {
14309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14310 if (_level != level) {
14311 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14315 uint32_t _ptr_info1;
14316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
14318 NDR_PULL_ALLOC(ndr, r->info1);
14335 if (ndr_flags & NDR_BUFFERS) {
14339 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14340 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
14341 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
14342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
14357 return NDR_ERR_SUCCESS;
14360 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
14363 level = ndr_print_get_switch_value(ndr, r);
14364 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
14367 ndr_print_ptr(ndr, "info1", r->info1);
14370 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
14387 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
14389 if (ndr_flags & NDR_SCALARS) {
14390 NDR_CHECK(ndr_push_align(ndr, 4));
14391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
14392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14397 uint32_t _flags_save_string = ndr->flags;
14398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14400 struct ndr_push *_ndr_extra_string;
14401 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14402 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14403 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14405 ndr->flags = _flags_save_string;
14408 if (ndr_flags & NDR_BUFFERS) {
14410 return NDR_ERR_SUCCESS;
14413 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
14415 if (ndr_flags & NDR_SCALARS) {
14416 NDR_CHECK(ndr_pull_align(ndr, 4));
14417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14418 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
14423 uint32_t _flags_save_string = ndr->flags;
14424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14426 struct ndr_pull *_ndr_extra_string;
14427 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14428 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14429 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14431 ndr->flags = _flags_save_string;
14434 if (ndr_flags & NDR_BUFFERS) {
14436 return NDR_ERR_SUCCESS;
14439 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
14441 ndr_print_struct(ndr, name, "spoolss_OSVersion");
14443 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);
14444 ndr_print_uint32(ndr, "major", r->major);
14445 ndr_print_uint32(ndr, "minor", r->minor);
14446 ndr_print_uint32(ndr, "build", r->build);
14447 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
14448 ndr_print_string(ndr, "extra_string", r->extra_string);
14452 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
14454 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
14457 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
14459 if (ndr_flags & NDR_SCALARS) {
14460 NDR_CHECK(ndr_push_align(ndr, 4));
14461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
14462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
14463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
14464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
14467 uint32_t _flags_save_string = ndr->flags;
14468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14470 struct ndr_push *_ndr_extra_string;
14471 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14472 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
14473 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14475 ndr->flags = _flags_save_string;
14477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
14478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
14480 if (ndr_flags & NDR_BUFFERS) {
14482 return NDR_ERR_SUCCESS;
14485 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
14487 if (ndr_flags & NDR_SCALARS) {
14488 NDR_CHECK(ndr_pull_align(ndr, 4));
14489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
14490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
14491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
14492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
14495 uint32_t _flags_save_string = ndr->flags;
14496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14498 struct ndr_pull *_ndr_extra_string;
14499 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
14500 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
14501 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
14503 ndr->flags = _flags_save_string;
14505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
14506 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
14508 if (ndr_flags & NDR_BUFFERS) {
14510 return NDR_ERR_SUCCESS;
14513 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
14515 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
14517 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);
14518 ndr_print_uint32(ndr, "major", r->major);
14519 ndr_print_uint32(ndr, "minor", r->minor);
14520 ndr_print_uint32(ndr, "build", r->build);
14521 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
14522 ndr_print_string(ndr, "extra_string", r->extra_string);
14523 ndr_print_uint32(ndr, "unknown2", r->unknown2);
14524 ndr_print_uint32(ndr, "unknown3", r->unknown3);
14528 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
14530 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
14533 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
14535 if (ndr_flags & NDR_SCALARS) {
14536 int level = ndr_push_get_switch_value(ndr, r);
14543 uint32_t _flags_save_string = ndr->flags;
14544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14545 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
14546 ndr->flags = _flags_save_string;
14552 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14553 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14554 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
14555 ndr->flags = _flags_save_DATA_BLOB;
14560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
14563 case REG_MULTI_SZ: {
14565 uint32_t _flags_save_string_array = ndr->flags;
14566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14567 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
14568 ndr->flags = _flags_save_string_array;
14574 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14576 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
14577 ndr->flags = _flags_save_DATA_BLOB;
14583 if (ndr_flags & NDR_BUFFERS) {
14584 int level = ndr_push_get_switch_value(ndr, r);
14606 return NDR_ERR_SUCCESS;
14609 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
14612 level = ndr_pull_get_switch_value(ndr, r);
14613 if (ndr_flags & NDR_SCALARS) {
14620 uint32_t _flags_save_string = ndr->flags;
14621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14622 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
14623 ndr->flags = _flags_save_string;
14629 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14631 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
14632 ndr->flags = _flags_save_DATA_BLOB;
14637 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
14640 case REG_MULTI_SZ: {
14642 uint32_t _flags_save_string_array = ndr->flags;
14643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14644 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
14645 ndr->flags = _flags_save_string_array;
14651 uint32_t _flags_save_DATA_BLOB = ndr->flags;
14652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
14653 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
14654 ndr->flags = _flags_save_DATA_BLOB;
14660 if (ndr_flags & NDR_BUFFERS) {
14682 return NDR_ERR_SUCCESS;
14685 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
14688 level = ndr_print_get_switch_value(ndr, r);
14689 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
14695 ndr_print_string(ndr, "string", r->string);
14699 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
14703 ndr_print_uint32(ndr, "value", r->value);
14707 ndr_print_string_array(ndr, "string_array", r->string_array);
14711 ndr_print_DATA_BLOB(ndr, "data", r->data);
14717 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
14719 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
14722 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
14724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14725 return NDR_ERR_SUCCESS;
14728 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
14731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14733 return NDR_ERR_SUCCESS;
14736 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
14738 const char *val = NULL;
14741 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
14742 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
14743 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
14745 ndr_print_enum(ndr, name, "ENUM", val, r);
14748 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
14750 if (ndr_flags & NDR_SCALARS) {
14751 NDR_CHECK(ndr_push_align(ndr, 4));
14752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
14753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
14755 if (ndr_flags & NDR_BUFFERS) {
14757 return NDR_ERR_SUCCESS;
14760 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
14762 if (ndr_flags & NDR_SCALARS) {
14763 NDR_CHECK(ndr_pull_align(ndr, 4));
14764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
14765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
14767 if (ndr_flags & NDR_BUFFERS) {
14769 return NDR_ERR_SUCCESS;
14772 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
14774 ndr_print_struct(ndr, name, "spoolss_FormSize");
14776 ndr_print_uint32(ndr, "width", r->width);
14777 ndr_print_uint32(ndr, "height", r->height);
14781 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
14783 if (ndr_flags & NDR_SCALARS) {
14784 NDR_CHECK(ndr_push_align(ndr, 4));
14785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
14786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
14787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
14788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
14790 if (ndr_flags & NDR_BUFFERS) {
14792 return NDR_ERR_SUCCESS;
14795 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
14797 if (ndr_flags & NDR_SCALARS) {
14798 NDR_CHECK(ndr_pull_align(ndr, 4));
14799 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
14800 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
14801 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
14802 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
14804 if (ndr_flags & NDR_BUFFERS) {
14806 return NDR_ERR_SUCCESS;
14809 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
14811 ndr_print_struct(ndr, name, "spoolss_FormArea");
14813 ndr_print_uint32(ndr, "left", r->left);
14814 ndr_print_uint32(ndr, "top", r->top);
14815 ndr_print_uint32(ndr, "right", r->right);
14816 ndr_print_uint32(ndr, "bottom", r->bottom);
14820 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
14822 if (ndr_flags & NDR_SCALARS) {
14823 NDR_CHECK(ndr_push_align(ndr, 4));
14824 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14826 uint32_t _flags_save_string = ndr->flags;
14827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14828 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14829 ndr->flags = _flags_save_string;
14831 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14832 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14834 if (ndr_flags & NDR_BUFFERS) {
14836 uint32_t _flags_save_string = ndr->flags;
14837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14838 if (r->form_name) {
14839 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14840 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14842 ndr->flags = _flags_save_string;
14845 return NDR_ERR_SUCCESS;
14848 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
14850 uint32_t _ptr_form_name;
14851 TALLOC_CTX *_mem_save_form_name_0;
14852 if (ndr_flags & NDR_SCALARS) {
14853 NDR_CHECK(ndr_pull_align(ndr, 4));
14854 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
14856 uint32_t _flags_save_string = ndr->flags;
14857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
14859 if (_ptr_form_name) {
14860 NDR_PULL_ALLOC(ndr, r->form_name);
14861 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
14863 r->form_name = NULL;
14865 ndr->flags = _flags_save_string;
14867 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14868 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14870 if (ndr_flags & NDR_BUFFERS) {
14872 uint32_t _flags_save_string = ndr->flags;
14873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14874 if (r->form_name) {
14875 uint32_t _relative_save_offset;
14876 _relative_save_offset = ndr->offset;
14877 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
14878 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
14879 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
14880 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
14881 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
14882 ndr->offset = _relative_save_offset;
14884 ndr->flags = _flags_save_string;
14887 return NDR_ERR_SUCCESS;
14890 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
14892 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
14894 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
14895 ndr_print_ptr(ndr, "form_name", r->form_name);
14897 if (r->form_name) {
14898 ndr_print_string(ndr, "form_name", r->form_name);
14901 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
14902 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
14906 _PUBLIC_ size_t ndr_size_spoolss_FormInfo1(const struct spoolss_FormInfo1 *r, struct smb_iconv_convenience *ic, int flags)
14908 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo1, ic);
14911 static enum ndr_err_code ndr_push_spoolss_FormStringType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14914 return NDR_ERR_SUCCESS;
14917 static enum ndr_err_code ndr_pull_spoolss_FormStringType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14922 return NDR_ERR_SUCCESS;
14925 _PUBLIC_ void ndr_print_spoolss_FormStringType(struct ndr_print *ndr, const char *name, uint32_t r)
14927 ndr_print_uint32(ndr, name, r);
14929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_NONE", SPOOLSS_FORM_STRING_TYPE_NONE, r);
14930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_MUI_DLL", SPOOLSS_FORM_STRING_TYPE_MUI_DLL, r);
14931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_FORM_STRING_TYPE_LANG_PAIR", SPOOLSS_FORM_STRING_TYPE_LANG_PAIR, r);
14935 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo2 *r)
14937 if (ndr_flags & NDR_SCALARS) {
14938 NDR_CHECK(ndr_push_align(ndr, 4));
14939 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
14941 uint32_t _flags_save_string = ndr->flags;
14942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14943 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
14944 ndr->flags = _flags_save_string;
14946 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
14947 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
14949 uint32_t _flags_save_string = ndr->flags;
14950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14951 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->keyword));
14952 ndr->flags = _flags_save_string;
14954 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
14956 uint32_t _flags_save_string = ndr->flags;
14957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14958 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->mui_dll));
14959 ndr->flags = _flags_save_string;
14961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
14963 uint32_t _flags_save_string = ndr->flags;
14964 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14965 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->display_name));
14966 ndr->flags = _flags_save_string;
14968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
14970 if (ndr_flags & NDR_BUFFERS) {
14972 uint32_t _flags_save_string = ndr->flags;
14973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14974 if (r->form_name) {
14975 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
14976 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
14978 ndr->flags = _flags_save_string;
14981 uint32_t _flags_save_string = ndr->flags;
14982 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
14984 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->keyword));
14985 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->keyword));
14987 ndr->flags = _flags_save_string;
14990 uint32_t _flags_save_string = ndr->flags;
14991 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14993 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->mui_dll));
14994 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->mui_dll));
14996 ndr->flags = _flags_save_string;
14999 uint32_t _flags_save_string = ndr->flags;
15000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15001 if (r->display_name) {
15002 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->display_name));
15003 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->display_name));
15005 ndr->flags = _flags_save_string;
15008 return NDR_ERR_SUCCESS;
15011 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo2 *r)
15013 uint32_t _ptr_form_name;
15014 TALLOC_CTX *_mem_save_form_name_0;
15015 uint32_t _ptr_keyword;
15016 TALLOC_CTX *_mem_save_keyword_0;
15017 uint32_t _ptr_mui_dll;
15018 TALLOC_CTX *_mem_save_mui_dll_0;
15019 uint32_t _ptr_display_name;
15020 TALLOC_CTX *_mem_save_display_name_0;
15021 if (ndr_flags & NDR_SCALARS) {
15022 NDR_CHECK(ndr_pull_align(ndr, 4));
15023 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15025 uint32_t _flags_save_string = ndr->flags;
15026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15027 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15028 if (_ptr_form_name) {
15029 NDR_PULL_ALLOC(ndr, r->form_name);
15030 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
15032 r->form_name = NULL;
15034 ndr->flags = _flags_save_string;
15036 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15037 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15039 uint32_t _flags_save_string = ndr->flags;
15040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15042 if (_ptr_keyword) {
15043 NDR_PULL_ALLOC(ndr, r->keyword);
15044 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->keyword, _ptr_keyword));
15048 ndr->flags = _flags_save_string;
15050 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15052 uint32_t _flags_save_string = ndr->flags;
15053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15055 if (_ptr_mui_dll) {
15056 NDR_PULL_ALLOC(ndr, r->mui_dll);
15057 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->mui_dll, _ptr_mui_dll));
15061 ndr->flags = _flags_save_string;
15063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15065 uint32_t _flags_save_string = ndr->flags;
15066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15067 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15068 if (_ptr_display_name) {
15069 NDR_PULL_ALLOC(ndr, r->display_name);
15070 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->display_name, _ptr_display_name));
15072 r->display_name = NULL;
15074 ndr->flags = _flags_save_string;
15076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15078 if (ndr_flags & NDR_BUFFERS) {
15080 uint32_t _flags_save_string = ndr->flags;
15081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15082 if (r->form_name) {
15083 uint32_t _relative_save_offset;
15084 _relative_save_offset = ndr->offset;
15085 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
15086 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15087 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15088 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
15089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15090 ndr->offset = _relative_save_offset;
15092 ndr->flags = _flags_save_string;
15095 uint32_t _flags_save_string = ndr->flags;
15096 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_ASCII|LIBNDR_FLAG_STR_NULLTERM);
15098 uint32_t _relative_save_offset;
15099 _relative_save_offset = ndr->offset;
15100 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->keyword));
15101 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15102 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15103 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->keyword));
15104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15105 ndr->offset = _relative_save_offset;
15107 ndr->flags = _flags_save_string;
15110 uint32_t _flags_save_string = ndr->flags;
15111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15113 uint32_t _relative_save_offset;
15114 _relative_save_offset = ndr->offset;
15115 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->mui_dll));
15116 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15117 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15118 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->mui_dll));
15119 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15120 ndr->offset = _relative_save_offset;
15122 ndr->flags = _flags_save_string;
15125 uint32_t _flags_save_string = ndr->flags;
15126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15127 if (r->display_name) {
15128 uint32_t _relative_save_offset;
15129 _relative_save_offset = ndr->offset;
15130 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->display_name));
15131 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15132 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15133 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->display_name));
15134 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15135 ndr->offset = _relative_save_offset;
15137 ndr->flags = _flags_save_string;
15140 return NDR_ERR_SUCCESS;
15143 _PUBLIC_ void ndr_print_spoolss_FormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo2 *r)
15145 ndr_print_struct(ndr, name, "spoolss_FormInfo2");
15147 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15148 ndr_print_ptr(ndr, "form_name", r->form_name);
15150 if (r->form_name) {
15151 ndr_print_string(ndr, "form_name", r->form_name);
15154 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15155 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15156 ndr_print_ptr(ndr, "keyword", r->keyword);
15159 ndr_print_string(ndr, "keyword", r->keyword);
15162 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15163 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15166 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15169 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15170 ndr_print_ptr(ndr, "display_name", r->display_name);
15172 if (r->display_name) {
15173 ndr_print_string(ndr, "display_name", r->display_name);
15176 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15180 _PUBLIC_ size_t ndr_size_spoolss_FormInfo2(const struct spoolss_FormInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15182 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo2, ic);
15185 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
15187 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
15188 if (ndr_flags & NDR_SCALARS) {
15189 int level = ndr_push_get_switch_value(ndr, r);
15192 NDR_CHECK(ndr_push_align(ndr, 4));
15193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15194 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15198 NDR_CHECK(ndr_push_align(ndr, 4));
15199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
15200 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15208 if (ndr_flags & NDR_BUFFERS) {
15209 int level = ndr_push_get_switch_value(ndr, r);
15210 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
15213 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15217 NDR_CHECK(ndr_push_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15225 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
15226 return NDR_ERR_SUCCESS;
15229 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
15231 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
15233 level = ndr_pull_get_switch_value(ndr, r);
15234 if (ndr_flags & NDR_SCALARS) {
15237 NDR_CHECK(ndr_pull_align(ndr, 4));
15238 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15239 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
15243 NDR_CHECK(ndr_pull_align(ndr, 4));
15244 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
15245 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_SCALARS, &r->info2));
15253 if (ndr_flags & NDR_BUFFERS) {
15254 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
15257 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
15261 NDR_CHECK(ndr_pull_spoolss_FormInfo2(ndr, NDR_BUFFERS, &r->info2));
15269 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
15270 return NDR_ERR_SUCCESS;
15273 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
15276 level = ndr_print_get_switch_value(ndr, r);
15277 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
15280 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
15284 ndr_print_spoolss_FormInfo2(ndr, "info2", &r->info2);
15293 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
15295 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
15298 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
15300 if (ndr_flags & NDR_SCALARS) {
15301 NDR_CHECK(ndr_push_align(ndr, 4));
15302 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15303 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15304 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15305 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15307 if (ndr_flags & NDR_BUFFERS) {
15308 if (r->form_name) {
15309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15312 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15315 return NDR_ERR_SUCCESS;
15318 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
15320 uint32_t _ptr_form_name;
15321 TALLOC_CTX *_mem_save_form_name_0;
15322 if (ndr_flags & NDR_SCALARS) {
15323 NDR_CHECK(ndr_pull_align(ndr, 4));
15324 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15325 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15326 if (_ptr_form_name) {
15327 NDR_PULL_ALLOC(ndr, r->form_name);
15329 r->form_name = NULL;
15331 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15332 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15334 if (ndr_flags & NDR_BUFFERS) {
15335 if (r->form_name) {
15336 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15337 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15338 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15339 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15340 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15341 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));
15343 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15344 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15348 return NDR_ERR_SUCCESS;
15351 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
15353 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
15355 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15356 ndr_print_ptr(ndr, "form_name", r->form_name);
15358 if (r->form_name) {
15359 ndr_print_string(ndr, "form_name", r->form_name);
15362 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15363 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15367 static enum ndr_err_code ndr_push_spoolss_AddFormInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo2 *r)
15369 if (ndr_flags & NDR_SCALARS) {
15370 NDR_CHECK(ndr_push_align(ndr, 4));
15371 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
15372 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
15373 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15374 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->keyword));
15376 NDR_CHECK(ndr_push_spoolss_FormStringType(ndr, NDR_SCALARS, r->string_type));
15377 NDR_CHECK(ndr_push_unique_ptr(ndr, r->mui_dll));
15378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ressource_id));
15379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->display_name));
15380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->lang_id));
15382 if (ndr_flags & NDR_BUFFERS) {
15383 if (r->form_name) {
15384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
15387 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->keyword, CH_DOS)));
15393 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->keyword, ndr_charset_length(r->keyword, CH_DOS), sizeof(uint8_t), CH_DOS));
15396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->mui_dll, CH_UTF16)));
15399 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->mui_dll, ndr_charset_length(r->mui_dll, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15401 if (r->display_name) {
15402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->display_name, CH_UTF16)));
15405 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->display_name, ndr_charset_length(r->display_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15408 return NDR_ERR_SUCCESS;
15411 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo2 *r)
15413 uint32_t _ptr_form_name;
15414 TALLOC_CTX *_mem_save_form_name_0;
15415 uint32_t _ptr_keyword;
15416 TALLOC_CTX *_mem_save_keyword_0;
15417 uint32_t _ptr_mui_dll;
15418 TALLOC_CTX *_mem_save_mui_dll_0;
15419 uint32_t _ptr_display_name;
15420 TALLOC_CTX *_mem_save_display_name_0;
15421 if (ndr_flags & NDR_SCALARS) {
15422 NDR_CHECK(ndr_pull_align(ndr, 4));
15423 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
15424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
15425 if (_ptr_form_name) {
15426 NDR_PULL_ALLOC(ndr, r->form_name);
15428 r->form_name = NULL;
15430 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
15431 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
15432 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_keyword));
15433 if (_ptr_keyword) {
15434 NDR_PULL_ALLOC(ndr, r->keyword);
15438 NDR_CHECK(ndr_pull_spoolss_FormStringType(ndr, NDR_SCALARS, &r->string_type));
15439 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_mui_dll));
15440 if (_ptr_mui_dll) {
15441 NDR_PULL_ALLOC(ndr, r->mui_dll);
15445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ressource_id));
15446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_display_name));
15447 if (_ptr_display_name) {
15448 NDR_PULL_ALLOC(ndr, r->display_name);
15450 r->display_name = NULL;
15452 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->lang_id));
15454 if (ndr_flags & NDR_BUFFERS) {
15455 if (r->form_name) {
15456 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15457 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
15458 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
15459 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
15460 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
15461 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));
15463 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
15464 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
15465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
15468 _mem_save_keyword_0 = NDR_PULL_GET_MEM_CTX(ndr);
15469 NDR_PULL_SET_MEM_CTX(ndr, r->keyword, 0);
15470 NDR_CHECK(ndr_pull_array_size(ndr, &r->keyword));
15471 NDR_CHECK(ndr_pull_array_length(ndr, &r->keyword));
15472 if (ndr_get_array_length(ndr, &r->keyword) > ndr_get_array_size(ndr, &r->keyword)) {
15473 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));
15475 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t)));
15476 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->keyword, ndr_get_array_length(ndr, &r->keyword), sizeof(uint8_t), CH_DOS));
15477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_keyword_0, 0);
15480 _mem_save_mui_dll_0 = NDR_PULL_GET_MEM_CTX(ndr);
15481 NDR_PULL_SET_MEM_CTX(ndr, r->mui_dll, 0);
15482 NDR_CHECK(ndr_pull_array_size(ndr, &r->mui_dll));
15483 NDR_CHECK(ndr_pull_array_length(ndr, &r->mui_dll));
15484 if (ndr_get_array_length(ndr, &r->mui_dll) > ndr_get_array_size(ndr, &r->mui_dll)) {
15485 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));
15487 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t)));
15488 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->mui_dll, ndr_get_array_length(ndr, &r->mui_dll), sizeof(uint16_t), CH_UTF16));
15489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_mui_dll_0, 0);
15491 if (r->display_name) {
15492 _mem_save_display_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15493 NDR_PULL_SET_MEM_CTX(ndr, r->display_name, 0);
15494 NDR_CHECK(ndr_pull_array_size(ndr, &r->display_name));
15495 NDR_CHECK(ndr_pull_array_length(ndr, &r->display_name));
15496 if (ndr_get_array_length(ndr, &r->display_name) > ndr_get_array_size(ndr, &r->display_name)) {
15497 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));
15499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t)));
15500 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->display_name, ndr_get_array_length(ndr, &r->display_name), sizeof(uint16_t), CH_UTF16));
15501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_display_name_0, 0);
15504 return NDR_ERR_SUCCESS;
15507 _PUBLIC_ void ndr_print_spoolss_AddFormInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo2 *r)
15509 ndr_print_struct(ndr, name, "spoolss_AddFormInfo2");
15511 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
15512 ndr_print_ptr(ndr, "form_name", r->form_name);
15514 if (r->form_name) {
15515 ndr_print_string(ndr, "form_name", r->form_name);
15518 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
15519 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
15520 ndr_print_ptr(ndr, "keyword", r->keyword);
15523 ndr_print_string(ndr, "keyword", r->keyword);
15526 ndr_print_spoolss_FormStringType(ndr, "string_type", r->string_type);
15527 ndr_print_ptr(ndr, "mui_dll", r->mui_dll);
15530 ndr_print_string(ndr, "mui_dll", r->mui_dll);
15533 ndr_print_uint32(ndr, "ressource_id", r->ressource_id);
15534 ndr_print_ptr(ndr, "display_name", r->display_name);
15536 if (r->display_name) {
15537 ndr_print_string(ndr, "display_name", r->display_name);
15540 ndr_print_uint32(ndr, "lang_id", r->lang_id);
15544 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
15546 if (ndr_flags & NDR_SCALARS) {
15547 int level = ndr_push_get_switch_value(ndr, r);
15548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
15551 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
15555 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
15559 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15562 if (ndr_flags & NDR_BUFFERS) {
15563 int level = ndr_push_get_switch_value(ndr, r);
15567 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15573 NDR_CHECK(ndr_push_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15578 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15581 return NDR_ERR_SUCCESS;
15584 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
15588 TALLOC_CTX *_mem_save_info1_0;
15589 TALLOC_CTX *_mem_save_info2_0;
15590 level = ndr_pull_get_switch_value(ndr, r);
15591 if (ndr_flags & NDR_SCALARS) {
15592 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
15593 if (_level != level) {
15594 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
15598 uint32_t _ptr_info1;
15599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
15601 NDR_PULL_ALLOC(ndr, r->info1);
15608 uint32_t _ptr_info2;
15609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
15611 NDR_PULL_ALLOC(ndr, r->info2);
15618 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15621 if (ndr_flags & NDR_BUFFERS) {
15625 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
15626 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
15627 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
15628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
15634 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
15635 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
15636 NDR_CHECK(ndr_pull_spoolss_AddFormInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
15637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
15642 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
15645 return NDR_ERR_SUCCESS;
15648 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
15651 level = ndr_print_get_switch_value(ndr, r);
15652 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
15655 ndr_print_ptr(ndr, "info1", r->info1);
15658 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
15664 ndr_print_ptr(ndr, "info2", r->info2);
15667 ndr_print_spoolss_AddFormInfo2(ndr, "info2", r->info2);
15673 ndr_print_bad_level(ndr, name, level);
15677 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
15679 if (ndr_flags & NDR_SCALARS) {
15680 NDR_CHECK(ndr_push_align(ndr, 4));
15682 uint32_t _flags_save_string = ndr->flags;
15683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15684 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15685 ndr->flags = _flags_save_string;
15688 if (ndr_flags & NDR_BUFFERS) {
15690 uint32_t _flags_save_string = ndr->flags;
15691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15692 if (r->port_name) {
15693 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15694 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15696 ndr->flags = _flags_save_string;
15699 return NDR_ERR_SUCCESS;
15702 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
15704 uint32_t _ptr_port_name;
15705 TALLOC_CTX *_mem_save_port_name_0;
15706 if (ndr_flags & NDR_SCALARS) {
15707 NDR_CHECK(ndr_pull_align(ndr, 4));
15709 uint32_t _flags_save_string = ndr->flags;
15710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15711 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15712 if (_ptr_port_name) {
15713 NDR_PULL_ALLOC(ndr, r->port_name);
15714 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15716 r->port_name = NULL;
15718 ndr->flags = _flags_save_string;
15721 if (ndr_flags & NDR_BUFFERS) {
15723 uint32_t _flags_save_string = ndr->flags;
15724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15725 if (r->port_name) {
15726 uint32_t _relative_save_offset;
15727 _relative_save_offset = ndr->offset;
15728 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15729 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15730 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15731 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15733 ndr->offset = _relative_save_offset;
15735 ndr->flags = _flags_save_string;
15738 return NDR_ERR_SUCCESS;
15741 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
15743 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
15745 ndr_print_ptr(ndr, "port_name", r->port_name);
15747 if (r->port_name) {
15748 ndr_print_string(ndr, "port_name", r->port_name);
15754 _PUBLIC_ size_t ndr_size_spoolss_PortInfo1(const struct spoolss_PortInfo1 *r, struct smb_iconv_convenience *ic, int flags)
15756 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo1, ic);
15759 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
15761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15762 return NDR_ERR_SUCCESS;
15765 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
15768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15770 return NDR_ERR_SUCCESS;
15773 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
15775 ndr_print_uint32(ndr, name, r);
15777 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
15778 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
15779 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
15780 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
15784 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
15786 if (ndr_flags & NDR_SCALARS) {
15787 NDR_CHECK(ndr_push_align(ndr, 4));
15789 uint32_t _flags_save_string = ndr->flags;
15790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15791 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
15792 ndr->flags = _flags_save_string;
15795 uint32_t _flags_save_string = ndr->flags;
15796 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15797 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
15798 ndr->flags = _flags_save_string;
15801 uint32_t _flags_save_string = ndr->flags;
15802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15803 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
15804 ndr->flags = _flags_save_string;
15806 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
15807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
15809 if (ndr_flags & NDR_BUFFERS) {
15811 uint32_t _flags_save_string = ndr->flags;
15812 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15813 if (r->port_name) {
15814 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
15815 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
15817 ndr->flags = _flags_save_string;
15820 uint32_t _flags_save_string = ndr->flags;
15821 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15822 if (r->monitor_name) {
15823 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
15824 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
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 if (r->description) {
15832 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
15833 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
15835 ndr->flags = _flags_save_string;
15838 return NDR_ERR_SUCCESS;
15841 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
15843 uint32_t _ptr_port_name;
15844 TALLOC_CTX *_mem_save_port_name_0;
15845 uint32_t _ptr_monitor_name;
15846 TALLOC_CTX *_mem_save_monitor_name_0;
15847 uint32_t _ptr_description;
15848 TALLOC_CTX *_mem_save_description_0;
15849 if (ndr_flags & NDR_SCALARS) {
15850 NDR_CHECK(ndr_pull_align(ndr, 4));
15852 uint32_t _flags_save_string = ndr->flags;
15853 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
15855 if (_ptr_port_name) {
15856 NDR_PULL_ALLOC(ndr, r->port_name);
15857 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
15859 r->port_name = NULL;
15861 ndr->flags = _flags_save_string;
15864 uint32_t _flags_save_string = ndr->flags;
15865 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
15867 if (_ptr_monitor_name) {
15868 NDR_PULL_ALLOC(ndr, r->monitor_name);
15869 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
15871 r->monitor_name = NULL;
15873 ndr->flags = _flags_save_string;
15876 uint32_t _flags_save_string = ndr->flags;
15877 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15878 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
15879 if (_ptr_description) {
15880 NDR_PULL_ALLOC(ndr, r->description);
15881 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
15883 r->description = NULL;
15885 ndr->flags = _flags_save_string;
15887 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
15888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
15890 if (ndr_flags & NDR_BUFFERS) {
15892 uint32_t _flags_save_string = ndr->flags;
15893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15894 if (r->port_name) {
15895 uint32_t _relative_save_offset;
15896 _relative_save_offset = ndr->offset;
15897 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
15898 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15899 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
15900 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
15901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
15902 ndr->offset = _relative_save_offset;
15904 ndr->flags = _flags_save_string;
15907 uint32_t _flags_save_string = ndr->flags;
15908 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15909 if (r->monitor_name) {
15910 uint32_t _relative_save_offset;
15911 _relative_save_offset = ndr->offset;
15912 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
15913 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
15914 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
15915 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
15916 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
15917 ndr->offset = _relative_save_offset;
15919 ndr->flags = _flags_save_string;
15922 uint32_t _flags_save_string = ndr->flags;
15923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
15924 if (r->description) {
15925 uint32_t _relative_save_offset;
15926 _relative_save_offset = ndr->offset;
15927 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
15928 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
15929 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
15930 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
15931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
15932 ndr->offset = _relative_save_offset;
15934 ndr->flags = _flags_save_string;
15937 return NDR_ERR_SUCCESS;
15940 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
15942 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
15944 ndr_print_ptr(ndr, "port_name", r->port_name);
15946 if (r->port_name) {
15947 ndr_print_string(ndr, "port_name", r->port_name);
15950 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
15952 if (r->monitor_name) {
15953 ndr_print_string(ndr, "monitor_name", r->monitor_name);
15956 ndr_print_ptr(ndr, "description", r->description);
15958 if (r->description) {
15959 ndr_print_string(ndr, "description", r->description);
15962 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
15963 ndr_print_uint32(ndr, "reserved", r->reserved);
15967 _PUBLIC_ size_t ndr_size_spoolss_PortInfo2(const struct spoolss_PortInfo2 *r, struct smb_iconv_convenience *ic, int flags)
15969 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo2, ic);
15972 static enum ndr_err_code ndr_push_spoolss_PortStatus(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortStatus r)
15974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
15975 return NDR_ERR_SUCCESS;
15978 static enum ndr_err_code ndr_pull_spoolss_PortStatus(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortStatus *r)
15981 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
15983 return NDR_ERR_SUCCESS;
15986 _PUBLIC_ void ndr_print_spoolss_PortStatus(struct ndr_print *ndr, const char *name, enum spoolss_PortStatus r)
15988 const char *val = NULL;
15991 case PORT_STATUS_CLEAR: val = "PORT_STATUS_CLEAR"; break;
15992 case PORT_STATUS_OFFLINE: val = "PORT_STATUS_OFFLINE"; break;
15993 case PORT_STATUS_PAPER_JAM: val = "PORT_STATUS_PAPER_JAM"; break;
15994 case PORT_STATUS_PAPER_OUT: val = "PORT_STATUS_PAPER_OUT"; break;
15995 case PORT_STATUS_OUTPUT_BIN_FULL: val = "PORT_STATUS_OUTPUT_BIN_FULL"; break;
15996 case PORT_STATUS_PAPER_PROBLEM: val = "PORT_STATUS_PAPER_PROBLEM"; break;
15997 case PORT_STATUS_NO_TONER: val = "PORT_STATUS_NO_TONER"; break;
15998 case PORT_STATUS_DOOR_OPEN: val = "PORT_STATUS_DOOR_OPEN"; break;
15999 case PORT_STATUS_USER_INTERVENTION: val = "PORT_STATUS_USER_INTERVENTION"; break;
16000 case PORT_STATUS_OUT_OF_MEMORY: val = "PORT_STATUS_OUT_OF_MEMORY"; break;
16001 case PORT_STATUS_TONER_LOW: val = "PORT_STATUS_TONER_LOW"; break;
16002 case PORT_STATUS_WARMING_UP: val = "PORT_STATUS_WARMING_UP"; break;
16003 case PORT_STATUS_POWER_SAVE: val = "PORT_STATUS_POWER_SAVE"; break;
16005 ndr_print_enum(ndr, name, "ENUM", val, r);
16008 static enum ndr_err_code ndr_push_spoolss_PortSeverity(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortSeverity r)
16010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16011 return NDR_ERR_SUCCESS;
16014 static enum ndr_err_code ndr_pull_spoolss_PortSeverity(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortSeverity *r)
16017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16019 return NDR_ERR_SUCCESS;
16022 _PUBLIC_ void ndr_print_spoolss_PortSeverity(struct ndr_print *ndr, const char *name, enum spoolss_PortSeverity r)
16024 const char *val = NULL;
16027 case PORT_STATUS_TYPE_ERROR: val = "PORT_STATUS_TYPE_ERROR"; break;
16028 case PORT_STATUS_TYPE_WARNING: val = "PORT_STATUS_TYPE_WARNING"; break;
16029 case PORT_STATUS_TYPE_INFO: val = "PORT_STATUS_TYPE_INFO"; break;
16031 ndr_print_enum(ndr, name, "ENUM", val, r);
16034 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo3 *r)
16036 if (ndr_flags & NDR_SCALARS) {
16037 NDR_CHECK(ndr_push_align(ndr, 4));
16038 NDR_CHECK(ndr_push_spoolss_PortStatus(ndr, NDR_SCALARS, r->status));
16040 uint32_t _flags_save_string = ndr->flags;
16041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16042 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->status_string));
16043 ndr->flags = _flags_save_string;
16045 NDR_CHECK(ndr_push_spoolss_PortSeverity(ndr, NDR_SCALARS, r->severity));
16047 if (ndr_flags & NDR_BUFFERS) {
16049 uint32_t _flags_save_string = ndr->flags;
16050 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16051 if (r->status_string) {
16052 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->status_string));
16053 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->status_string));
16055 ndr->flags = _flags_save_string;
16058 return NDR_ERR_SUCCESS;
16061 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo3 *r)
16063 uint32_t _ptr_status_string;
16064 TALLOC_CTX *_mem_save_status_string_0;
16065 if (ndr_flags & NDR_SCALARS) {
16066 NDR_CHECK(ndr_pull_align(ndr, 4));
16067 NDR_CHECK(ndr_pull_spoolss_PortStatus(ndr, NDR_SCALARS, &r->status));
16069 uint32_t _flags_save_string = ndr->flags;
16070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_status_string));
16072 if (_ptr_status_string) {
16073 NDR_PULL_ALLOC(ndr, r->status_string);
16074 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->status_string, _ptr_status_string));
16076 r->status_string = NULL;
16078 ndr->flags = _flags_save_string;
16080 NDR_CHECK(ndr_pull_spoolss_PortSeverity(ndr, NDR_SCALARS, &r->severity));
16082 if (ndr_flags & NDR_BUFFERS) {
16084 uint32_t _flags_save_string = ndr->flags;
16085 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16086 if (r->status_string) {
16087 uint32_t _relative_save_offset;
16088 _relative_save_offset = ndr->offset;
16089 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->status_string));
16090 _mem_save_status_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
16091 NDR_PULL_SET_MEM_CTX(ndr, r->status_string, 0);
16092 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->status_string));
16093 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_string_0, 0);
16094 ndr->offset = _relative_save_offset;
16096 ndr->flags = _flags_save_string;
16099 return NDR_ERR_SUCCESS;
16102 _PUBLIC_ void ndr_print_spoolss_PortInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo3 *r)
16104 ndr_print_struct(ndr, name, "spoolss_PortInfo3");
16106 ndr_print_spoolss_PortStatus(ndr, "status", r->status);
16107 ndr_print_ptr(ndr, "status_string", r->status_string);
16109 if (r->status_string) {
16110 ndr_print_string(ndr, "status_string", r->status_string);
16113 ndr_print_spoolss_PortSeverity(ndr, "severity", r->severity);
16117 _PUBLIC_ size_t ndr_size_spoolss_PortInfo3(const struct spoolss_PortInfo3 *r, struct smb_iconv_convenience *ic, int flags)
16119 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfo3, ic);
16122 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfoFF(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfoFF *r)
16124 if (ndr_flags & NDR_SCALARS) {
16125 NDR_CHECK(ndr_push_align(ndr, 4));
16127 uint32_t _flags_save_string = ndr->flags;
16128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16129 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
16130 ndr->flags = _flags_save_string;
16132 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->monitor_data));
16134 if (ndr_flags & NDR_BUFFERS) {
16136 uint32_t _flags_save_string = ndr->flags;
16137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16138 if (r->port_name) {
16139 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
16140 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
16142 ndr->flags = _flags_save_string;
16145 return NDR_ERR_SUCCESS;
16148 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfoFF(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfoFF *r)
16150 uint32_t _ptr_port_name;
16151 TALLOC_CTX *_mem_save_port_name_0;
16152 if (ndr_flags & NDR_SCALARS) {
16153 NDR_CHECK(ndr_pull_align(ndr, 4));
16155 uint32_t _flags_save_string = ndr->flags;
16156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
16158 if (_ptr_port_name) {
16159 NDR_PULL_ALLOC(ndr, r->port_name);
16160 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
16162 r->port_name = NULL;
16164 ndr->flags = _flags_save_string;
16166 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->monitor_data));
16168 if (ndr_flags & NDR_BUFFERS) {
16170 uint32_t _flags_save_string = ndr->flags;
16171 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16172 if (r->port_name) {
16173 uint32_t _relative_save_offset;
16174 _relative_save_offset = ndr->offset;
16175 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
16176 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16177 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
16178 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
16179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
16180 ndr->offset = _relative_save_offset;
16182 ndr->flags = _flags_save_string;
16185 return NDR_ERR_SUCCESS;
16188 _PUBLIC_ void ndr_print_spoolss_PortInfoFF(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfoFF *r)
16190 ndr_print_struct(ndr, name, "spoolss_PortInfoFF");
16192 ndr_print_ptr(ndr, "port_name", r->port_name);
16194 if (r->port_name) {
16195 ndr_print_string(ndr, "port_name", r->port_name);
16198 ndr_print_DATA_BLOB(ndr, "monitor_data", r->monitor_data);
16202 _PUBLIC_ size_t ndr_size_spoolss_PortInfoFF(const struct spoolss_PortInfoFF *r, struct smb_iconv_convenience *ic, int flags)
16204 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PortInfoFF, ic);
16207 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
16209 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16210 if (ndr_flags & NDR_SCALARS) {
16211 int level = ndr_push_get_switch_value(ndr, r);
16214 NDR_CHECK(ndr_push_align(ndr, 4));
16215 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16216 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16220 NDR_CHECK(ndr_push_align(ndr, 4));
16221 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16222 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16226 NDR_CHECK(ndr_push_align(ndr, 4));
16227 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16228 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16232 NDR_CHECK(ndr_push_align(ndr, 4));
16233 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16234 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16242 if (ndr_flags & NDR_BUFFERS) {
16243 int level = ndr_push_get_switch_value(ndr, r);
16244 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16247 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16251 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16255 NDR_CHECK(ndr_push_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16259 NDR_CHECK(ndr_push_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16267 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16268 return NDR_ERR_SUCCESS;
16271 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
16273 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16275 level = ndr_pull_get_switch_value(ndr, r);
16276 if (ndr_flags & NDR_SCALARS) {
16279 NDR_CHECK(ndr_pull_align(ndr, 4));
16280 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16281 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
16285 NDR_CHECK(ndr_pull_align(ndr, 4));
16286 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16287 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
16291 NDR_CHECK(ndr_pull_align(ndr, 4));
16292 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16293 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_SCALARS, &r->info3));
16297 NDR_CHECK(ndr_pull_align(ndr, 4));
16298 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16299 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_SCALARS, &r->infoFF));
16307 if (ndr_flags & NDR_BUFFERS) {
16308 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16311 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
16315 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
16319 NDR_CHECK(ndr_pull_spoolss_PortInfo3(ndr, NDR_BUFFERS, &r->info3));
16323 NDR_CHECK(ndr_pull_spoolss_PortInfoFF(ndr, NDR_BUFFERS, &r->infoFF));
16331 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16332 return NDR_ERR_SUCCESS;
16335 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
16338 level = ndr_print_get_switch_value(ndr, r);
16339 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
16342 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
16346 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
16350 ndr_print_spoolss_PortInfo3(ndr, "info3", &r->info3);
16354 ndr_print_spoolss_PortInfoFF(ndr, "infoFF", &r->infoFF);
16363 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
16365 if (ndr_flags & NDR_SCALARS) {
16366 NDR_CHECK(ndr_push_align(ndr, 4));
16368 uint32_t _flags_save_string = ndr->flags;
16369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16370 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16371 ndr->flags = _flags_save_string;
16374 if (ndr_flags & NDR_BUFFERS) {
16376 uint32_t _flags_save_string = ndr->flags;
16377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16378 if (r->monitor_name) {
16379 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16380 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16382 ndr->flags = _flags_save_string;
16385 return NDR_ERR_SUCCESS;
16388 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
16390 uint32_t _ptr_monitor_name;
16391 TALLOC_CTX *_mem_save_monitor_name_0;
16392 if (ndr_flags & NDR_SCALARS) {
16393 NDR_CHECK(ndr_pull_align(ndr, 4));
16395 uint32_t _flags_save_string = ndr->flags;
16396 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16397 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16398 if (_ptr_monitor_name) {
16399 NDR_PULL_ALLOC(ndr, r->monitor_name);
16400 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16402 r->monitor_name = NULL;
16404 ndr->flags = _flags_save_string;
16407 if (ndr_flags & NDR_BUFFERS) {
16409 uint32_t _flags_save_string = ndr->flags;
16410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16411 if (r->monitor_name) {
16412 uint32_t _relative_save_offset;
16413 _relative_save_offset = ndr->offset;
16414 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16415 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16416 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16417 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16419 ndr->offset = _relative_save_offset;
16421 ndr->flags = _flags_save_string;
16424 return NDR_ERR_SUCCESS;
16427 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
16429 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
16431 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16433 if (r->monitor_name) {
16434 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16440 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo1(const struct spoolss_MonitorInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16442 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo1, ic);
16445 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
16447 if (ndr_flags & NDR_SCALARS) {
16448 NDR_CHECK(ndr_push_align(ndr, 4));
16450 uint32_t _flags_save_string = ndr->flags;
16451 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16452 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
16453 ndr->flags = _flags_save_string;
16456 uint32_t _flags_save_string = ndr->flags;
16457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16458 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
16459 ndr->flags = _flags_save_string;
16462 uint32_t _flags_save_string = ndr->flags;
16463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16464 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
16465 ndr->flags = _flags_save_string;
16468 if (ndr_flags & NDR_BUFFERS) {
16470 uint32_t _flags_save_string = ndr->flags;
16471 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16472 if (r->monitor_name) {
16473 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
16474 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
16476 ndr->flags = _flags_save_string;
16479 uint32_t _flags_save_string = ndr->flags;
16480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16481 if (r->environment) {
16482 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
16483 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
16485 ndr->flags = _flags_save_string;
16488 uint32_t _flags_save_string = ndr->flags;
16489 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16491 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
16492 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
16494 ndr->flags = _flags_save_string;
16497 return NDR_ERR_SUCCESS;
16500 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
16502 uint32_t _ptr_monitor_name;
16503 TALLOC_CTX *_mem_save_monitor_name_0;
16504 uint32_t _ptr_environment;
16505 TALLOC_CTX *_mem_save_environment_0;
16506 uint32_t _ptr_dll_name;
16507 TALLOC_CTX *_mem_save_dll_name_0;
16508 if (ndr_flags & NDR_SCALARS) {
16509 NDR_CHECK(ndr_pull_align(ndr, 4));
16511 uint32_t _flags_save_string = ndr->flags;
16512 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
16514 if (_ptr_monitor_name) {
16515 NDR_PULL_ALLOC(ndr, r->monitor_name);
16516 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
16518 r->monitor_name = NULL;
16520 ndr->flags = _flags_save_string;
16523 uint32_t _flags_save_string = ndr->flags;
16524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16525 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16526 if (_ptr_environment) {
16527 NDR_PULL_ALLOC(ndr, r->environment);
16528 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
16530 r->environment = NULL;
16532 ndr->flags = _flags_save_string;
16535 uint32_t _flags_save_string = ndr->flags;
16536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
16538 if (_ptr_dll_name) {
16539 NDR_PULL_ALLOC(ndr, r->dll_name);
16540 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
16542 r->dll_name = NULL;
16544 ndr->flags = _flags_save_string;
16547 if (ndr_flags & NDR_BUFFERS) {
16549 uint32_t _flags_save_string = ndr->flags;
16550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16551 if (r->monitor_name) {
16552 uint32_t _relative_save_offset;
16553 _relative_save_offset = ndr->offset;
16554 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
16555 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16556 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
16557 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
16558 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
16559 ndr->offset = _relative_save_offset;
16561 ndr->flags = _flags_save_string;
16564 uint32_t _flags_save_string = ndr->flags;
16565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16566 if (r->environment) {
16567 uint32_t _relative_save_offset;
16568 _relative_save_offset = ndr->offset;
16569 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
16570 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16571 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
16572 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
16573 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16574 ndr->offset = _relative_save_offset;
16576 ndr->flags = _flags_save_string;
16579 uint32_t _flags_save_string = ndr->flags;
16580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16582 uint32_t _relative_save_offset;
16583 _relative_save_offset = ndr->offset;
16584 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
16585 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16586 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
16587 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
16588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
16589 ndr->offset = _relative_save_offset;
16591 ndr->flags = _flags_save_string;
16594 return NDR_ERR_SUCCESS;
16597 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
16599 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
16601 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
16603 if (r->monitor_name) {
16604 ndr_print_string(ndr, "monitor_name", r->monitor_name);
16607 ndr_print_ptr(ndr, "environment", r->environment);
16609 if (r->environment) {
16610 ndr_print_string(ndr, "environment", r->environment);
16613 ndr_print_ptr(ndr, "dll_name", r->dll_name);
16616 ndr_print_string(ndr, "dll_name", r->dll_name);
16622 _PUBLIC_ size_t ndr_size_spoolss_MonitorInfo2(const struct spoolss_MonitorInfo2 *r, struct smb_iconv_convenience *ic, int flags)
16624 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_MonitorInfo2, ic);
16627 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
16629 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16630 if (ndr_flags & NDR_SCALARS) {
16631 int level = ndr_push_get_switch_value(ndr, r);
16634 NDR_CHECK(ndr_push_align(ndr, 4));
16635 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16636 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16640 NDR_CHECK(ndr_push_align(ndr, 4));
16641 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16642 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16650 if (ndr_flags & NDR_BUFFERS) {
16651 int level = ndr_push_get_switch_value(ndr, r);
16652 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16655 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16659 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16667 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16668 return NDR_ERR_SUCCESS;
16671 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
16673 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16675 level = ndr_pull_get_switch_value(ndr, r);
16676 if (ndr_flags & NDR_SCALARS) {
16679 NDR_CHECK(ndr_pull_align(ndr, 4));
16680 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16681 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
16685 NDR_CHECK(ndr_pull_align(ndr, 4));
16686 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16687 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
16695 if (ndr_flags & NDR_BUFFERS) {
16696 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16699 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
16703 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
16711 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16712 return NDR_ERR_SUCCESS;
16715 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
16718 level = ndr_print_get_switch_value(ndr, r);
16719 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
16722 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
16726 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
16735 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcDataTypesInfo1 *r)
16737 if (ndr_flags & NDR_SCALARS) {
16738 NDR_CHECK(ndr_push_align(ndr, 4));
16740 uint32_t _flags_save_string = ndr->flags;
16741 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16742 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name_array));
16743 ndr->flags = _flags_save_string;
16746 if (ndr_flags & NDR_BUFFERS) {
16748 uint32_t _flags_save_string = ndr->flags;
16749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16750 if (r->name_array) {
16751 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name_array));
16752 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name_array));
16754 ndr->flags = _flags_save_string;
16757 return NDR_ERR_SUCCESS;
16760 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcDataTypesInfo1 *r)
16762 uint32_t _ptr_name_array;
16763 TALLOC_CTX *_mem_save_name_array_0;
16764 if (ndr_flags & NDR_SCALARS) {
16765 NDR_CHECK(ndr_pull_align(ndr, 4));
16767 uint32_t _flags_save_string = ndr->flags;
16768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name_array));
16770 if (_ptr_name_array) {
16771 NDR_PULL_ALLOC(ndr, r->name_array);
16772 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name_array, _ptr_name_array));
16774 r->name_array = NULL;
16776 ndr->flags = _flags_save_string;
16779 if (ndr_flags & NDR_BUFFERS) {
16781 uint32_t _flags_save_string = ndr->flags;
16782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
16783 if (r->name_array) {
16784 uint32_t _relative_save_offset;
16785 _relative_save_offset = ndr->offset;
16786 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name_array));
16787 _mem_save_name_array_0 = NDR_PULL_GET_MEM_CTX(ndr);
16788 NDR_PULL_SET_MEM_CTX(ndr, r->name_array, 0);
16789 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name_array));
16790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_array_0, 0);
16791 ndr->offset = _relative_save_offset;
16793 ndr->flags = _flags_save_string;
16796 return NDR_ERR_SUCCESS;
16799 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcDataTypesInfo1 *r)
16801 ndr_print_struct(ndr, name, "spoolss_PrintProcDataTypesInfo1");
16803 ndr_print_ptr(ndr, "name_array", r->name_array);
16805 if (r->name_array) {
16806 ndr_print_string(ndr, "name_array", r->name_array);
16812 _PUBLIC_ size_t ndr_size_spoolss_PrintProcDataTypesInfo1(const struct spoolss_PrintProcDataTypesInfo1 *r, struct smb_iconv_convenience *ic, int flags)
16814 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcDataTypesInfo1, ic);
16817 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcDataTypesInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcDataTypesInfo *r)
16819 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
16820 if (ndr_flags & NDR_SCALARS) {
16821 int level = ndr_push_get_switch_value(ndr, r);
16824 NDR_CHECK(ndr_push_align(ndr, 4));
16825 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
16826 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16834 if (ndr_flags & NDR_BUFFERS) {
16835 int level = ndr_push_get_switch_value(ndr, r);
16836 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
16839 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16847 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
16848 return NDR_ERR_SUCCESS;
16851 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcDataTypesInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcDataTypesInfo *r)
16853 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
16855 level = ndr_pull_get_switch_value(ndr, r);
16856 if (ndr_flags & NDR_SCALARS) {
16859 NDR_CHECK(ndr_pull_align(ndr, 4));
16860 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
16861 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_SCALARS, &r->info1));
16869 if (ndr_flags & NDR_BUFFERS) {
16870 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
16873 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo1(ndr, NDR_BUFFERS, &r->info1));
16881 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
16882 return NDR_ERR_SUCCESS;
16885 _PUBLIC_ void ndr_print_spoolss_PrintProcDataTypesInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcDataTypesInfo *r)
16888 level = ndr_print_get_switch_value(ndr, r);
16889 ndr_print_union(ndr, name, level, "spoolss_PrintProcDataTypesInfo");
16892 ndr_print_spoolss_PrintProcDataTypesInfo1(ndr, "info1", &r->info1);
16901 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
16903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
16904 return NDR_ERR_SUCCESS;
16907 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
16910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
16912 return NDR_ERR_SUCCESS;
16915 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
16917 ndr_print_uint32(ndr, name, r);
16919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
16920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
16921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
16922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
16923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
16924 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
16925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
16926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
16927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
16928 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
16929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
16930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
16931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
16932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
16933 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
16934 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
16935 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
16936 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
16937 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
16938 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
16939 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
16943 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
16945 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16946 return NDR_ERR_SUCCESS;
16949 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
16952 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
16954 return NDR_ERR_SUCCESS;
16957 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
16959 const char *val = NULL;
16962 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
16963 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
16964 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
16965 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
16966 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
16967 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
16968 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
16969 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
16970 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
16971 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
16972 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
16973 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
16974 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
16975 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
16976 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
16977 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
16978 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
16979 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
16980 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
16981 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
16982 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
16983 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
16984 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
16985 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
16986 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
16987 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
16989 ndr_print_enum(ndr, name, "ENUM", val, r);
16992 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
16994 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
16995 return NDR_ERR_SUCCESS;
16998 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
17001 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
17003 return NDR_ERR_SUCCESS;
17006 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
17008 const char *val = NULL;
17011 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
17012 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
17014 ndr_print_enum(ndr, name, "ENUM", val, r);
17017 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
17019 uint32_t cntr_fields_1;
17020 if (ndr_flags & NDR_SCALARS) {
17021 NDR_CHECK(ndr_push_align(ndr, 4));
17022 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17023 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
17024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
17025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
17026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
17029 if (ndr_flags & NDR_BUFFERS) {
17031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17032 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17033 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
17037 return NDR_ERR_SUCCESS;
17040 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
17042 uint32_t _ptr_fields;
17043 uint32_t cntr_fields_1;
17044 TALLOC_CTX *_mem_save_fields_0;
17045 TALLOC_CTX *_mem_save_fields_1;
17046 if (ndr_flags & NDR_SCALARS) {
17047 NDR_CHECK(ndr_pull_align(ndr, 4));
17048 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17049 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
17050 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
17051 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
17052 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17053 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
17055 NDR_PULL_ALLOC(ndr, r->fields);
17060 if (ndr_flags & NDR_BUFFERS) {
17062 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
17063 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17064 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
17065 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
17066 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
17067 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
17068 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
17069 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
17071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
17072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
17075 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
17078 return NDR_ERR_SUCCESS;
17081 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
17083 uint32_t cntr_fields_1;
17084 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
17086 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17087 ndr_print_uint16(ndr, "u1", r->u1);
17088 ndr_print_uint32(ndr, "u2", r->u2);
17089 ndr_print_uint32(ndr, "u3", r->u3);
17090 ndr_print_uint32(ndr, "count", r->count);
17091 ndr_print_ptr(ndr, "fields", r->fields);
17094 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
17096 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
17098 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
17099 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
17109 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17112 return NDR_ERR_SUCCESS;
17115 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17120 return NDR_ERR_SUCCESS;
17123 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17125 ndr_print_uint32(ndr, name, r);
17127 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
17131 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
17133 uint32_t cntr_types_1;
17134 if (ndr_flags & NDR_SCALARS) {
17135 NDR_CHECK(ndr_push_align(ndr, 4));
17136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17137 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
17138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17139 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
17141 if (ndr_flags & NDR_BUFFERS) {
17143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17144 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17145 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17147 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17148 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17152 return NDR_ERR_SUCCESS;
17155 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
17157 uint32_t _ptr_types;
17158 uint32_t cntr_types_1;
17159 TALLOC_CTX *_mem_save_types_0;
17160 TALLOC_CTX *_mem_save_types_1;
17161 if (ndr_flags & NDR_SCALARS) {
17162 NDR_CHECK(ndr_pull_align(ndr, 4));
17163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17164 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
17165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17166 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
17168 NDR_PULL_ALLOC(ndr, r->types);
17173 if (ndr_flags & NDR_BUFFERS) {
17175 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
17176 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17177 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
17178 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
17179 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
17180 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
17181 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17182 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
17184 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
17185 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
17187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
17188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
17191 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
17194 return NDR_ERR_SUCCESS;
17197 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
17199 uint32_t cntr_types_1;
17200 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
17202 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17203 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
17204 ndr_print_uint32(ndr, "count", r->count);
17205 ndr_print_ptr(ndr, "types", r->types);
17208 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
17210 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
17212 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
17213 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
17223 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
17225 if (ndr_flags & NDR_SCALARS) {
17226 NDR_CHECK(ndr_push_align(ndr, 4));
17227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17228 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
17230 if (ndr_flags & NDR_BUFFERS) {
17232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
17233 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
17236 return NDR_ERR_SUCCESS;
17239 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
17241 uint32_t _ptr_string;
17242 TALLOC_CTX *_mem_save_string_0;
17243 if (ndr_flags & NDR_SCALARS) {
17244 NDR_CHECK(ndr_pull_align(ndr, 4));
17245 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17246 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
17248 NDR_PULL_ALLOC(ndr, r->string);
17253 if (ndr_flags & NDR_BUFFERS) {
17255 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
17256 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
17257 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
17258 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
17259 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
17262 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
17265 return NDR_ERR_SUCCESS;
17268 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
17270 ndr_print_struct(ndr, name, "spoolss_NotifyString");
17272 ndr_print_uint32(ndr, "size", r->size);
17273 ndr_print_ptr(ndr, "string", r->string);
17276 ndr_print_string(ndr, "string", r->string);
17282 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
17284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17285 return NDR_ERR_SUCCESS;
17288 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
17291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17293 return NDR_ERR_SUCCESS;
17296 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
17298 const char *val = NULL;
17301 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
17302 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
17303 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
17304 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
17305 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
17307 ndr_print_enum(ndr, name, "ENUM", val, r);
17310 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
17312 if (ndr_flags & NDR_SCALARS) {
17313 int level = ndr_push_get_switch_value(ndr, r);
17314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17317 uint32_t cntr_integer_0;
17318 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
17324 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17328 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17332 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17336 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17340 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17343 if (ndr_flags & NDR_BUFFERS) {
17344 int level = ndr_push_get_switch_value(ndr, r);
17350 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17354 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17358 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17362 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17366 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17369 return NDR_ERR_SUCCESS;
17372 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
17376 level = ndr_pull_get_switch_value(ndr, r);
17377 if (ndr_flags & NDR_SCALARS) {
17378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17379 if (_level != level) {
17380 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17384 uint32_t cntr_integer_0;
17385 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
17386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
17391 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
17395 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
17399 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
17403 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
17407 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17410 if (ndr_flags & NDR_BUFFERS) {
17416 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
17420 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
17424 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
17428 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
17432 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17435 return NDR_ERR_SUCCESS;
17438 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
17441 uint32_t cntr_integer_0;
17442 level = ndr_print_get_switch_value(ndr, r);
17443 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
17446 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
17448 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
17450 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
17451 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
17459 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
17463 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
17467 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
17471 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
17475 ndr_print_bad_level(ndr, name, level);
17479 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
17481 if (ndr_flags & NDR_SCALARS) {
17482 NDR_CHECK(ndr_push_align(ndr, 4));
17483 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
17484 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
17485 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
17486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
17487 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
17488 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17490 if (ndr_flags & NDR_BUFFERS) {
17491 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17493 return NDR_ERR_SUCCESS;
17496 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
17498 if (ndr_flags & NDR_SCALARS) {
17499 NDR_CHECK(ndr_pull_align(ndr, 4));
17500 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
17501 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
17502 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
17503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
17504 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
17505 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
17507 if (ndr_flags & NDR_BUFFERS) {
17508 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
17510 return NDR_ERR_SUCCESS;
17513 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
17515 ndr_print_struct(ndr, name, "spoolss_Notify");
17517 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
17518 ndr_print_spoolss_Field(ndr, "field", r->field);
17519 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
17520 ndr_print_uint32(ndr, "job_id", r->job_id);
17521 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
17522 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
17526 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
17528 uint32_t cntr_notifies_0;
17529 if (ndr_flags & NDR_SCALARS) {
17530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17531 NDR_CHECK(ndr_push_align(ndr, 4));
17532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
17533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
17535 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17536 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17539 if (ndr_flags & NDR_BUFFERS) {
17540 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17541 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17544 return NDR_ERR_SUCCESS;
17547 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
17549 uint32_t cntr_notifies_0;
17550 TALLOC_CTX *_mem_save_notifies_0;
17551 if (ndr_flags & NDR_SCALARS) {
17552 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
17553 NDR_CHECK(ndr_pull_align(ndr, 4));
17554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
17555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
17557 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
17558 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17559 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17560 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17561 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
17563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17565 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
17568 if (ndr_flags & NDR_BUFFERS) {
17569 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
17570 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
17571 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
17572 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
17574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
17576 return NDR_ERR_SUCCESS;
17579 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
17581 uint32_t cntr_notifies_0;
17582 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
17584 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
17585 ndr_print_uint32(ndr, "flags", r->flags);
17586 ndr_print_uint32(ndr, "count", r->count);
17587 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
17589 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
17591 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
17592 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
17600 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
17602 if (ndr_flags & NDR_SCALARS) {
17603 int level = ndr_push_get_switch_value(ndr, r);
17604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
17611 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17614 if (ndr_flags & NDR_BUFFERS) {
17615 int level = ndr_push_get_switch_value(ndr, r);
17619 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17624 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17627 return NDR_ERR_SUCCESS;
17630 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
17634 TALLOC_CTX *_mem_save_info0_0;
17635 level = ndr_pull_get_switch_value(ndr, r);
17636 if (ndr_flags & NDR_SCALARS) {
17637 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
17638 if (_level != level) {
17639 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
17643 uint32_t _ptr_info0;
17644 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
17646 NDR_PULL_ALLOC(ndr, r->info0);
17653 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17656 if (ndr_flags & NDR_BUFFERS) {
17660 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
17661 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
17662 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
17663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
17668 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17671 return NDR_ERR_SUCCESS;
17674 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
17677 level = ndr_print_get_switch_value(ndr, r);
17678 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
17681 ndr_print_ptr(ndr, "info0", r->info0);
17684 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
17690 ndr_print_bad_level(ndr, name, level);
17694 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
17696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
17697 return NDR_ERR_SUCCESS;
17700 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
17703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
17705 return NDR_ERR_SUCCESS;
17708 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
17710 ndr_print_uint32(ndr, name, r);
17712 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
17713 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
17714 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
17718 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
17720 if (ndr_flags & NDR_SCALARS) {
17721 NDR_CHECK(ndr_push_align(ndr, 4));
17722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17723 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17724 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17726 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17727 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17728 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17730 if (ndr_flags & NDR_BUFFERS) {
17732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17735 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17741 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17744 return NDR_ERR_SUCCESS;
17747 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
17749 uint32_t _ptr_client;
17750 TALLOC_CTX *_mem_save_client_0;
17751 uint32_t _ptr_user;
17752 TALLOC_CTX *_mem_save_user_0;
17753 if (ndr_flags & NDR_SCALARS) {
17754 NDR_CHECK(ndr_pull_align(ndr, 4));
17755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17758 NDR_PULL_ALLOC(ndr, r->client);
17762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17764 NDR_PULL_ALLOC(ndr, r->user);
17768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17769 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17770 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17771 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17773 if (ndr_flags & NDR_BUFFERS) {
17775 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17776 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17777 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17778 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17779 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17780 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));
17782 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17783 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17787 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17788 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17789 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17790 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17791 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17792 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));
17794 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17795 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17799 return NDR_ERR_SUCCESS;
17802 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
17804 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
17806 ndr_print_uint32(ndr, "size", r->size);
17807 ndr_print_ptr(ndr, "client", r->client);
17810 ndr_print_string(ndr, "client", r->client);
17813 ndr_print_ptr(ndr, "user", r->user);
17816 ndr_print_string(ndr, "user", r->user);
17819 ndr_print_uint32(ndr, "build", r->build);
17820 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17821 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17822 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17826 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
17828 if (ndr_flags & NDR_SCALARS) {
17829 NDR_CHECK(ndr_push_align(ndr, 4));
17830 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
17832 if (ndr_flags & NDR_BUFFERS) {
17834 return NDR_ERR_SUCCESS;
17837 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
17839 if (ndr_flags & NDR_SCALARS) {
17840 NDR_CHECK(ndr_pull_align(ndr, 4));
17841 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
17843 if (ndr_flags & NDR_BUFFERS) {
17845 return NDR_ERR_SUCCESS;
17848 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
17850 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
17852 ndr_print_uint32(ndr, "not_used", r->not_used);
17856 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
17858 if (ndr_flags & NDR_SCALARS) {
17859 NDR_CHECK(ndr_push_align(ndr, 4));
17860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
17861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
17862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
17863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
17864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
17865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
17866 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
17867 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
17868 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
17869 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
17871 if (ndr_flags & NDR_BUFFERS) {
17873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
17876 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
17882 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17885 return NDR_ERR_SUCCESS;
17888 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
17890 uint32_t _ptr_client;
17891 TALLOC_CTX *_mem_save_client_0;
17892 uint32_t _ptr_user;
17893 TALLOC_CTX *_mem_save_user_0;
17894 if (ndr_flags & NDR_SCALARS) {
17895 NDR_CHECK(ndr_pull_align(ndr, 4));
17896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
17897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
17898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
17899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
17901 NDR_PULL_ALLOC(ndr, r->client);
17905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
17907 NDR_PULL_ALLOC(ndr, r->user);
17911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
17912 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
17913 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
17914 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
17915 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
17917 if (ndr_flags & NDR_BUFFERS) {
17919 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
17920 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
17921 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
17922 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
17923 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
17924 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));
17926 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
17927 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
17928 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
17931 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
17932 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
17933 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
17934 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
17935 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
17936 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));
17938 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
17939 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
17940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
17943 return NDR_ERR_SUCCESS;
17946 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
17948 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
17950 ndr_print_uint32(ndr, "size", r->size);
17951 ndr_print_uint32(ndr, "flags", r->flags);
17952 ndr_print_uint32(ndr, "size2", r->size2);
17953 ndr_print_ptr(ndr, "client", r->client);
17956 ndr_print_string(ndr, "client", r->client);
17959 ndr_print_ptr(ndr, "user", r->user);
17962 ndr_print_string(ndr, "user", r->user);
17965 ndr_print_uint32(ndr, "build", r->build);
17966 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
17967 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
17968 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
17969 ndr_print_udlong(ndr, "reserved", r->reserved);
17973 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
17975 if (ndr_flags & NDR_SCALARS) {
17976 int level = ndr_push_get_switch_value(ndr, r);
17977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
17980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
17984 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
17988 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
17992 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
17995 if (ndr_flags & NDR_BUFFERS) {
17996 int level = ndr_push_get_switch_value(ndr, r);
18000 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18006 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18012 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18017 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18020 return NDR_ERR_SUCCESS;
18023 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
18027 TALLOC_CTX *_mem_save_level1_0;
18028 TALLOC_CTX *_mem_save_level2_0;
18029 TALLOC_CTX *_mem_save_level3_0;
18030 level = ndr_pull_get_switch_value(ndr, r);
18031 if (ndr_flags & NDR_SCALARS) {
18032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
18033 if (_level != level) {
18034 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
18038 uint32_t _ptr_level1;
18039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
18041 NDR_PULL_ALLOC(ndr, r->level1);
18048 uint32_t _ptr_level2;
18049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
18051 NDR_PULL_ALLOC(ndr, r->level2);
18058 uint32_t _ptr_level3;
18059 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
18061 NDR_PULL_ALLOC(ndr, r->level3);
18068 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18071 if (ndr_flags & NDR_BUFFERS) {
18075 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
18076 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
18077 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
18078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
18084 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
18085 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
18086 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
18087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
18093 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
18094 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
18095 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
18096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
18101 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
18104 return NDR_ERR_SUCCESS;
18107 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
18110 level = ndr_print_get_switch_value(ndr, r);
18111 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
18114 ndr_print_ptr(ndr, "level1", r->level1);
18117 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
18123 ndr_print_ptr(ndr, "level2", r->level2);
18126 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
18132 ndr_print_ptr(ndr, "level3", r->level3);
18135 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
18141 ndr_print_bad_level(ndr, name, level);
18145 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
18147 if (ndr_flags & NDR_SCALARS) {
18148 NDR_CHECK(ndr_push_align(ndr, 4));
18149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
18150 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
18151 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18153 if (ndr_flags & NDR_BUFFERS) {
18154 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18156 return NDR_ERR_SUCCESS;
18159 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
18161 if (ndr_flags & NDR_SCALARS) {
18162 NDR_CHECK(ndr_pull_align(ndr, 4));
18163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
18164 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
18165 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
18167 if (ndr_flags & NDR_BUFFERS) {
18168 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
18170 return NDR_ERR_SUCCESS;
18173 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
18175 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
18177 ndr_print_uint32(ndr, "level", r->level);
18178 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
18179 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
18183 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18186 return NDR_ERR_SUCCESS;
18189 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18194 return NDR_ERR_SUCCESS;
18197 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
18199 ndr_print_uint32(ndr, name, r);
18201 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
18202 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
18203 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
18204 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
18205 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
18206 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_READ", JOB_ACCESS_READ, r);
18210 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18213 return NDR_ERR_SUCCESS;
18216 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18219 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18221 return NDR_ERR_SUCCESS;
18224 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18226 ndr_print_uint32(ndr, name, r);
18228 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
18229 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
18230 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
18234 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
18236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18237 return NDR_ERR_SUCCESS;
18240 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
18243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18245 return NDR_ERR_SUCCESS;
18248 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
18250 const char *val = NULL;
18253 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
18254 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
18256 ndr_print_enum(ndr, name, "ENUM", val, r);
18259 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
18261 if (ndr_flags & NDR_SCALARS) {
18262 NDR_CHECK(ndr_push_align(ndr, 4));
18263 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
18265 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18268 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18271 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18272 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18273 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18274 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18279 if (ndr_flags & NDR_BUFFERS) {
18281 return NDR_ERR_SUCCESS;
18284 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
18286 if (ndr_flags & NDR_SCALARS) {
18287 NDR_CHECK(ndr_pull_align(ndr, 4));
18288 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18290 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18292 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18293 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
18294 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18296 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18297 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
18298 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
18299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18300 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18301 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18304 if (ndr_flags & NDR_BUFFERS) {
18306 return NDR_ERR_SUCCESS;
18309 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
18311 ndr_print_struct(ndr, name, "spoolss_PortData1");
18313 ndr_print_string(ndr, "portname", r->portname);
18314 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
18315 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18316 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18317 ndr_print_uint32(ndr, "reserved", r->reserved);
18318 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18319 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18320 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18321 ndr_print_string(ndr, "queue", r->queue);
18322 ndr_print_string(ndr, "ip_address", r->ip_address);
18323 ndr_print_string(ndr, "hardware_address", r->hardware_address);
18324 ndr_print_string(ndr, "device_type", r->device_type);
18325 ndr_print_uint32(ndr, "port_number", r->port_number);
18326 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18327 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18331 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
18333 if (ndr_flags & NDR_SCALARS) {
18334 NDR_CHECK(ndr_push_align(ndr, 4));
18335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
18336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
18337 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
18338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
18339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
18340 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
18343 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
18344 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
18346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
18347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
18348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
18350 if (ndr_flags & NDR_BUFFERS) {
18352 return NDR_ERR_SUCCESS;
18355 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
18357 if (ndr_flags & NDR_SCALARS) {
18358 NDR_CHECK(ndr_pull_align(ndr, 4));
18359 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
18360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
18361 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
18362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
18363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
18364 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
18365 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
18366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
18367 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
18368 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
18369 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
18370 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
18371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
18372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
18374 if (ndr_flags & NDR_BUFFERS) {
18376 return NDR_ERR_SUCCESS;
18379 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
18381 ndr_print_struct(ndr, name, "spoolss_PortData2");
18383 ndr_print_string(ndr, "portname", r->portname);
18384 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
18385 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
18386 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
18387 ndr_print_uint32(ndr, "reserved", r->reserved);
18388 ndr_print_string(ndr, "hostaddress", r->hostaddress);
18389 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
18390 ndr_print_uint32(ndr, "dblspool", r->dblspool);
18391 ndr_print_string(ndr, "queue", r->queue);
18392 ndr_print_string(ndr, "device_type", r->device_type);
18393 ndr_print_uint32(ndr, "port_number", r->port_number);
18394 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
18395 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
18396 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
18400 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
18402 if (ndr_flags & NDR_SCALARS) {
18403 NDR_CHECK(ndr_push_align(ndr, 4));
18405 uint32_t _flags_save_string = ndr->flags;
18406 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18407 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
18408 ndr->flags = _flags_save_string;
18411 if (ndr_flags & NDR_BUFFERS) {
18413 return NDR_ERR_SUCCESS;
18416 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
18418 if (ndr_flags & NDR_SCALARS) {
18419 NDR_CHECK(ndr_pull_align(ndr, 4));
18421 uint32_t _flags_save_string = ndr->flags;
18422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
18423 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
18424 ndr->flags = _flags_save_string;
18427 if (ndr_flags & NDR_BUFFERS) {
18429 return NDR_ERR_SUCCESS;
18432 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
18434 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
18436 ndr_print_string(ndr, "dll_name", r->dll_name);
18440 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
18442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
18443 return NDR_ERR_SUCCESS;
18446 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
18449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
18451 return NDR_ERR_SUCCESS;
18454 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
18456 ndr_print_uint32(ndr, name, r);
18458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
18459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
18460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
18461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
18462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
18463 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
18464 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
18465 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
18469 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
18471 if (flags & NDR_IN) {
18472 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
18473 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18474 if (r->in.server) {
18475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18478 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18482 if (r->in.buffer) {
18483 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18487 if (flags & NDR_OUT) {
18488 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18490 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18492 if (r->out.needed == NULL) {
18493 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18496 if (r->out.count == NULL) {
18497 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18500 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18502 return NDR_ERR_SUCCESS;
18505 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
18507 uint32_t _ptr_server;
18508 uint32_t _ptr_buffer;
18509 uint32_t _ptr_info;
18510 TALLOC_CTX *_mem_save_server_0;
18511 TALLOC_CTX *_mem_save_buffer_0;
18512 TALLOC_CTX *_mem_save_info_0;
18513 TALLOC_CTX *_mem_save_needed_0;
18514 TALLOC_CTX *_mem_save_count_0;
18515 if (flags & NDR_IN) {
18516 ZERO_STRUCT(r->out);
18518 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
18519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18521 NDR_PULL_ALLOC(ndr, r->in.server);
18523 r->in.server = NULL;
18525 if (r->in.server) {
18526 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18527 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18528 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18529 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18530 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18531 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));
18533 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18534 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18537 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18540 NDR_PULL_ALLOC(ndr, r->in.buffer);
18542 r->in.buffer = NULL;
18544 if (r->in.buffer) {
18545 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18546 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18547 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18550 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18551 NDR_PULL_ALLOC(ndr, r->out.needed);
18552 ZERO_STRUCTP(r->out.needed);
18553 NDR_PULL_ALLOC(ndr, r->out.count);
18554 ZERO_STRUCTP(r->out.count);
18556 if (flags & NDR_OUT) {
18557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18559 NDR_PULL_ALLOC(ndr, r->out.info);
18561 r->out.info = NULL;
18564 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18565 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18566 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18569 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18570 NDR_PULL_ALLOC(ndr, r->out.needed);
18572 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18573 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18577 NDR_PULL_ALLOC(ndr, r->out.count);
18579 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18580 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18583 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18585 return NDR_ERR_SUCCESS;
18588 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
18590 uint32_t cntr_info_0;
18591 if (flags & NDR_IN) {
18592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18595 if (flags & NDR_OUT) {
18596 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18597 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18598 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18600 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18601 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18604 return NDR_ERR_SUCCESS;
18607 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
18609 uint32_t cntr_info_0;
18610 TALLOC_CTX *_mem_save_info_0;
18611 if (flags & NDR_IN) {
18612 ZERO_STRUCT(r->out);
18614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18617 if (flags & NDR_OUT) {
18618 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18619 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18620 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18621 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18622 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18623 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18625 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18626 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18630 return NDR_ERR_SUCCESS;
18633 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
18635 uint32_t cntr_info_2;
18636 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
18638 if (flags & NDR_SET_VALUES) {
18639 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18641 if (flags & NDR_IN) {
18642 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
18644 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
18645 ndr_print_ptr(ndr, "server", r->in.server);
18647 if (r->in.server) {
18648 ndr_print_string(ndr, "server", r->in.server);
18651 ndr_print_uint32(ndr, "level", r->in.level);
18652 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18654 if (r->in.buffer) {
18655 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18658 ndr_print_uint32(ndr, "offered", r->in.offered);
18661 if (flags & NDR_OUT) {
18662 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
18664 ndr_print_ptr(ndr, "count", r->out.count);
18666 ndr_print_uint32(ndr, "count", *r->out.count);
18668 ndr_print_ptr(ndr, "info", r->out.info);
18670 ndr_print_ptr(ndr, "info", *r->out.info);
18672 if (*r->out.info) {
18673 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18675 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
18677 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
18678 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
18679 ndr_print_spoolss_PrinterInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
18687 ndr_print_ptr(ndr, "needed", r->out.needed);
18689 ndr_print_uint32(ndr, "needed", *r->out.needed);
18691 ndr_print_WERROR(ndr, "result", r->out.result);
18697 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
18699 if (flags & NDR_IN) {
18700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18701 if (r->in.printername) {
18702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18705 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18707 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
18708 if (r->in.datatype) {
18709 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18711 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18712 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18714 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18715 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
18717 if (flags & NDR_OUT) {
18718 if (r->out.handle == NULL) {
18719 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18721 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18722 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18724 return NDR_ERR_SUCCESS;
18727 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
18729 uint32_t _ptr_printername;
18730 uint32_t _ptr_datatype;
18731 TALLOC_CTX *_mem_save_printername_0;
18732 TALLOC_CTX *_mem_save_datatype_0;
18733 TALLOC_CTX *_mem_save_handle_0;
18734 if (flags & NDR_IN) {
18735 ZERO_STRUCT(r->out);
18737 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
18738 if (_ptr_printername) {
18739 NDR_PULL_ALLOC(ndr, r->in.printername);
18741 r->in.printername = NULL;
18743 if (r->in.printername) {
18744 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18745 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
18746 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
18747 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
18748 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
18749 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));
18751 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
18752 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
18753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
18755 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
18756 if (_ptr_datatype) {
18757 NDR_PULL_ALLOC(ndr, r->in.datatype);
18759 r->in.datatype = NULL;
18761 if (r->in.datatype) {
18762 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
18763 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
18764 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
18765 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
18766 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
18767 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));
18769 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
18770 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
18771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
18773 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18774 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
18775 NDR_PULL_ALLOC(ndr, r->out.handle);
18776 ZERO_STRUCTP(r->out.handle);
18778 if (flags & NDR_OUT) {
18779 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18780 NDR_PULL_ALLOC(ndr, r->out.handle);
18782 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18783 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18784 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18786 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18788 return NDR_ERR_SUCCESS;
18791 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
18793 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
18795 if (flags & NDR_SET_VALUES) {
18796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18798 if (flags & NDR_IN) {
18799 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
18801 ndr_print_ptr(ndr, "printername", r->in.printername);
18803 if (r->in.printername) {
18804 ndr_print_string(ndr, "printername", r->in.printername);
18807 ndr_print_ptr(ndr, "datatype", r->in.datatype);
18809 if (r->in.datatype) {
18810 ndr_print_string(ndr, "datatype", r->in.datatype);
18813 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
18814 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
18817 if (flags & NDR_OUT) {
18818 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
18820 ndr_print_ptr(ndr, "handle", r->out.handle);
18822 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18824 ndr_print_WERROR(ndr, "result", r->out.result);
18830 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
18832 if (flags & NDR_IN) {
18833 if (r->in.handle == NULL) {
18834 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18836 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
18840 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18842 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
18844 if (flags & NDR_OUT) {
18845 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18847 return NDR_ERR_SUCCESS;
18850 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
18853 TALLOC_CTX *_mem_save_handle_0;
18854 TALLOC_CTX *_mem_save_ctr_0;
18855 if (flags & NDR_IN) {
18856 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18857 NDR_PULL_ALLOC(ndr, r->in.handle);
18859 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18860 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18861 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18863 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18864 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
18866 NDR_PULL_ALLOC(ndr, r->in.ctr);
18871 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18872 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
18873 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
18874 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
18876 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
18878 if (flags & NDR_OUT) {
18879 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18881 return NDR_ERR_SUCCESS;
18884 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
18886 ndr_print_struct(ndr, name, "spoolss_SetJob");
18888 if (flags & NDR_SET_VALUES) {
18889 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18891 if (flags & NDR_IN) {
18892 ndr_print_struct(ndr, "in", "spoolss_SetJob");
18894 ndr_print_ptr(ndr, "handle", r->in.handle);
18896 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18898 ndr_print_uint32(ndr, "job_id", r->in.job_id);
18899 ndr_print_ptr(ndr, "ctr", r->in.ctr);
18902 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
18905 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
18908 if (flags & NDR_OUT) {
18909 ndr_print_struct(ndr, "out", "spoolss_SetJob");
18911 ndr_print_WERROR(ndr, "result", r->out.result);
18917 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
18919 if (flags & NDR_IN) {
18920 if (r->in.handle == NULL) {
18921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18923 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
18925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18926 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18927 if (r->in.buffer) {
18928 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18930 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18932 if (flags & NDR_OUT) {
18933 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18936 struct ndr_push *_ndr_info;
18937 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18938 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18939 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18940 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18943 if (r->out.needed == NULL) {
18944 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18947 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18949 return NDR_ERR_SUCCESS;
18952 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
18954 uint32_t _ptr_buffer;
18955 uint32_t _ptr_info;
18956 TALLOC_CTX *_mem_save_handle_0;
18957 TALLOC_CTX *_mem_save_buffer_0;
18958 TALLOC_CTX *_mem_save_info_0;
18959 TALLOC_CTX *_mem_save_needed_0;
18960 if (flags & NDR_IN) {
18961 ZERO_STRUCT(r->out);
18963 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18964 NDR_PULL_ALLOC(ndr, r->in.handle);
18966 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18967 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18968 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
18971 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18974 NDR_PULL_ALLOC(ndr, r->in.buffer);
18976 r->in.buffer = NULL;
18978 if (r->in.buffer) {
18979 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18980 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18981 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18984 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18985 NDR_PULL_ALLOC(ndr, r->out.needed);
18986 ZERO_STRUCTP(r->out.needed);
18988 if (flags & NDR_OUT) {
18989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18991 NDR_PULL_ALLOC(ndr, r->out.info);
18993 r->out.info = NULL;
18996 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18997 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18999 struct ndr_pull *_ndr_info;
19000 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19001 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19002 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19003 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19008 NDR_PULL_ALLOC(ndr, r->out.needed);
19010 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19011 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19012 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19014 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19016 return NDR_ERR_SUCCESS;
19019 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
19021 ndr_print_struct(ndr, name, "spoolss_GetJob");
19023 if (flags & NDR_SET_VALUES) {
19024 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19026 if (flags & NDR_IN) {
19027 ndr_print_struct(ndr, "in", "spoolss_GetJob");
19029 ndr_print_ptr(ndr, "handle", r->in.handle);
19031 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19033 ndr_print_uint32(ndr, "job_id", r->in.job_id);
19034 ndr_print_uint32(ndr, "level", r->in.level);
19035 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19037 if (r->in.buffer) {
19038 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19041 ndr_print_uint32(ndr, "offered", r->in.offered);
19044 if (flags & NDR_OUT) {
19045 ndr_print_struct(ndr, "out", "spoolss_GetJob");
19047 ndr_print_ptr(ndr, "info", r->out.info);
19050 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19051 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
19054 ndr_print_ptr(ndr, "needed", r->out.needed);
19056 ndr_print_uint32(ndr, "needed", *r->out.needed);
19058 ndr_print_WERROR(ndr, "result", r->out.result);
19064 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
19066 if (flags & NDR_IN) {
19067 if (r->in.handle == NULL) {
19068 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19070 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
19072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
19073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19074 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19075 if (r->in.buffer) {
19076 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19080 if (flags & NDR_OUT) {
19081 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19083 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19085 if (r->out.needed == NULL) {
19086 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19089 if (r->out.count == NULL) {
19090 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19093 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19095 return NDR_ERR_SUCCESS;
19098 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
19100 uint32_t _ptr_buffer;
19101 uint32_t _ptr_info;
19102 TALLOC_CTX *_mem_save_handle_0;
19103 TALLOC_CTX *_mem_save_buffer_0;
19104 TALLOC_CTX *_mem_save_info_0;
19105 TALLOC_CTX *_mem_save_needed_0;
19106 TALLOC_CTX *_mem_save_count_0;
19107 if (flags & NDR_IN) {
19108 ZERO_STRUCT(r->out);
19110 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19111 NDR_PULL_ALLOC(ndr, r->in.handle);
19113 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19114 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19115 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
19118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
19119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19122 NDR_PULL_ALLOC(ndr, r->in.buffer);
19124 r->in.buffer = NULL;
19126 if (r->in.buffer) {
19127 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19128 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19129 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19133 NDR_PULL_ALLOC(ndr, r->out.needed);
19134 ZERO_STRUCTP(r->out.needed);
19135 NDR_PULL_ALLOC(ndr, r->out.count);
19136 ZERO_STRUCTP(r->out.count);
19138 if (flags & NDR_OUT) {
19139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19141 NDR_PULL_ALLOC(ndr, r->out.info);
19143 r->out.info = NULL;
19146 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19147 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19148 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19151 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19152 NDR_PULL_ALLOC(ndr, r->out.needed);
19154 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19155 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19158 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19159 NDR_PULL_ALLOC(ndr, r->out.count);
19161 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19162 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19164 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19165 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19167 return NDR_ERR_SUCCESS;
19170 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
19172 uint32_t cntr_info_0;
19173 if (flags & NDR_IN) {
19174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19177 if (flags & NDR_OUT) {
19178 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19179 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19180 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19182 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19183 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19186 return NDR_ERR_SUCCESS;
19189 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
19191 uint32_t cntr_info_0;
19192 TALLOC_CTX *_mem_save_info_0;
19193 if (flags & NDR_IN) {
19194 ZERO_STRUCT(r->out);
19196 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19197 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19199 if (flags & NDR_OUT) {
19200 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19201 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19202 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19203 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19204 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19205 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19207 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19208 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19210 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19212 return NDR_ERR_SUCCESS;
19215 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
19217 uint32_t cntr_info_2;
19218 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
19220 if (flags & NDR_SET_VALUES) {
19221 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19223 if (flags & NDR_IN) {
19224 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
19226 ndr_print_ptr(ndr, "handle", r->in.handle);
19228 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19230 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
19231 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
19232 ndr_print_uint32(ndr, "level", r->in.level);
19233 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19235 if (r->in.buffer) {
19236 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19239 ndr_print_uint32(ndr, "offered", r->in.offered);
19242 if (flags & NDR_OUT) {
19243 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
19245 ndr_print_ptr(ndr, "count", r->out.count);
19247 ndr_print_uint32(ndr, "count", *r->out.count);
19249 ndr_print_ptr(ndr, "info", r->out.info);
19251 ndr_print_ptr(ndr, "info", *r->out.info);
19253 if (*r->out.info) {
19254 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19256 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19258 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19259 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19260 ndr_print_spoolss_JobInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19268 ndr_print_ptr(ndr, "needed", r->out.needed);
19270 ndr_print_uint32(ndr, "needed", *r->out.needed);
19272 ndr_print_WERROR(ndr, "result", r->out.result);
19278 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
19280 if (flags & NDR_IN) {
19282 if (flags & NDR_OUT) {
19283 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19285 return NDR_ERR_SUCCESS;
19288 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
19290 if (flags & NDR_IN) {
19292 if (flags & NDR_OUT) {
19293 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19295 return NDR_ERR_SUCCESS;
19298 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
19300 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
19302 if (flags & NDR_SET_VALUES) {
19303 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19305 if (flags & NDR_IN) {
19306 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
19310 if (flags & NDR_OUT) {
19311 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
19313 ndr_print_WERROR(ndr, "result", r->out.result);
19319 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *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));
19327 if (flags & NDR_OUT) {
19328 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19330 return NDR_ERR_SUCCESS;
19333 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
19335 TALLOC_CTX *_mem_save_handle_0;
19336 if (flags & NDR_IN) {
19337 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19338 NDR_PULL_ALLOC(ndr, r->in.handle);
19340 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19341 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19342 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19345 if (flags & NDR_OUT) {
19346 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19348 return NDR_ERR_SUCCESS;
19351 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
19353 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
19355 if (flags & NDR_SET_VALUES) {
19356 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19358 if (flags & NDR_IN) {
19359 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
19361 ndr_print_ptr(ndr, "handle", r->in.handle);
19363 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19367 if (flags & NDR_OUT) {
19368 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
19370 ndr_print_WERROR(ndr, "result", r->out.result);
19376 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
19378 if (flags & NDR_IN) {
19379 if (r->in.handle == NULL) {
19380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19382 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19383 if (r->in.info_ctr == NULL) {
19384 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19386 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19387 if (r->in.devmode_ctr == NULL) {
19388 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19390 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19391 if (r->in.secdesc_ctr == NULL) {
19392 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19394 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19395 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
19397 if (flags & NDR_OUT) {
19398 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19400 return NDR_ERR_SUCCESS;
19403 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
19405 TALLOC_CTX *_mem_save_handle_0;
19406 TALLOC_CTX *_mem_save_info_ctr_0;
19407 TALLOC_CTX *_mem_save_devmode_ctr_0;
19408 TALLOC_CTX *_mem_save_secdesc_ctr_0;
19409 if (flags & NDR_IN) {
19410 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19411 NDR_PULL_ALLOC(ndr, r->in.handle);
19413 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19414 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19415 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19417 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19418 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19420 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19421 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19422 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19424 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19425 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19427 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19428 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19429 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19431 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19432 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
19434 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19435 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
19436 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
19437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19438 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
19440 if (flags & NDR_OUT) {
19441 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19443 return NDR_ERR_SUCCESS;
19446 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
19448 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
19450 if (flags & NDR_SET_VALUES) {
19451 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19453 if (flags & NDR_IN) {
19454 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
19456 ndr_print_ptr(ndr, "handle", r->in.handle);
19458 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19460 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19462 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19464 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19466 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19468 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19470 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
19472 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
19475 if (flags & NDR_OUT) {
19476 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
19478 ndr_print_WERROR(ndr, "result", r->out.result);
19484 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
19486 if (flags & NDR_IN) {
19487 if (r->in.handle == NULL) {
19488 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19490 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19491 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19492 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19493 if (r->in.buffer) {
19494 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19496 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19498 if (flags & NDR_OUT) {
19499 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19502 struct ndr_push *_ndr_info;
19503 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19504 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
19505 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19506 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19509 if (r->out.needed == NULL) {
19510 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19513 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19515 return NDR_ERR_SUCCESS;
19518 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
19520 uint32_t _ptr_buffer;
19521 uint32_t _ptr_info;
19522 TALLOC_CTX *_mem_save_handle_0;
19523 TALLOC_CTX *_mem_save_buffer_0;
19524 TALLOC_CTX *_mem_save_info_0;
19525 TALLOC_CTX *_mem_save_needed_0;
19526 if (flags & NDR_IN) {
19527 ZERO_STRUCT(r->out);
19529 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19530 NDR_PULL_ALLOC(ndr, r->in.handle);
19532 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19533 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19534 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19539 NDR_PULL_ALLOC(ndr, r->in.buffer);
19541 r->in.buffer = NULL;
19543 if (r->in.buffer) {
19544 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19545 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19546 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19550 NDR_PULL_ALLOC(ndr, r->out.needed);
19551 ZERO_STRUCTP(r->out.needed);
19553 if (flags & NDR_OUT) {
19554 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19556 NDR_PULL_ALLOC(ndr, r->out.info);
19558 r->out.info = NULL;
19561 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19562 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19564 struct ndr_pull *_ndr_info;
19565 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
19566 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
19567 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
19568 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
19570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19572 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19573 NDR_PULL_ALLOC(ndr, r->out.needed);
19575 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19576 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19577 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19579 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19581 return NDR_ERR_SUCCESS;
19584 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
19586 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
19588 if (flags & NDR_SET_VALUES) {
19589 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19591 if (flags & NDR_IN) {
19592 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
19594 ndr_print_ptr(ndr, "handle", r->in.handle);
19596 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19598 ndr_print_uint32(ndr, "level", r->in.level);
19599 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19601 if (r->in.buffer) {
19602 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19605 ndr_print_uint32(ndr, "offered", r->in.offered);
19608 if (flags & NDR_OUT) {
19609 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
19611 ndr_print_ptr(ndr, "info", r->out.info);
19614 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
19615 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
19618 ndr_print_ptr(ndr, "needed", r->out.needed);
19620 ndr_print_uint32(ndr, "needed", *r->out.needed);
19622 ndr_print_WERROR(ndr, "result", r->out.result);
19628 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
19630 if (flags & NDR_IN) {
19631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19632 if (r->in.servername) {
19633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19634 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19635 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19636 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19638 if (r->in.info_ctr == NULL) {
19639 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19641 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19643 if (flags & NDR_OUT) {
19644 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19646 return NDR_ERR_SUCCESS;
19649 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
19651 uint32_t _ptr_servername;
19652 TALLOC_CTX *_mem_save_servername_0;
19653 TALLOC_CTX *_mem_save_info_ctr_0;
19654 if (flags & NDR_IN) {
19655 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19656 if (_ptr_servername) {
19657 NDR_PULL_ALLOC(ndr, r->in.servername);
19659 r->in.servername = NULL;
19661 if (r->in.servername) {
19662 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19663 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19664 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19665 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19666 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19667 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));
19669 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19673 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19674 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
19676 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19677 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
19678 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
19679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19681 if (flags & NDR_OUT) {
19682 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19684 return NDR_ERR_SUCCESS;
19687 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
19689 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
19691 if (flags & NDR_SET_VALUES) {
19692 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19694 if (flags & NDR_IN) {
19695 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
19697 ndr_print_ptr(ndr, "servername", r->in.servername);
19699 if (r->in.servername) {
19700 ndr_print_string(ndr, "servername", r->in.servername);
19703 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
19705 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
19709 if (flags & NDR_OUT) {
19710 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
19712 ndr_print_WERROR(ndr, "result", r->out.result);
19718 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
19720 if (flags & NDR_IN) {
19721 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
19722 if (r->in.server) {
19723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
19726 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19728 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
19729 if (r->in.environment) {
19730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19732 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
19733 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19736 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19737 if (r->in.buffer) {
19738 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19742 if (flags & NDR_OUT) {
19743 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19745 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19747 if (r->out.needed == NULL) {
19748 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19751 if (r->out.count == NULL) {
19752 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19755 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19757 return NDR_ERR_SUCCESS;
19760 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
19762 uint32_t _ptr_server;
19763 uint32_t _ptr_environment;
19764 uint32_t _ptr_buffer;
19765 uint32_t _ptr_info;
19766 TALLOC_CTX *_mem_save_server_0;
19767 TALLOC_CTX *_mem_save_environment_0;
19768 TALLOC_CTX *_mem_save_buffer_0;
19769 TALLOC_CTX *_mem_save_info_0;
19770 TALLOC_CTX *_mem_save_needed_0;
19771 TALLOC_CTX *_mem_save_count_0;
19772 if (flags & NDR_IN) {
19773 ZERO_STRUCT(r->out);
19775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
19777 NDR_PULL_ALLOC(ndr, r->in.server);
19779 r->in.server = NULL;
19781 if (r->in.server) {
19782 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
19783 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
19784 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
19785 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
19786 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
19787 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));
19789 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
19790 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
19791 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
19793 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
19794 if (_ptr_environment) {
19795 NDR_PULL_ALLOC(ndr, r->in.environment);
19797 r->in.environment = NULL;
19799 if (r->in.environment) {
19800 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
19801 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
19802 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
19803 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
19804 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
19805 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));
19807 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
19808 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
19809 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
19811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19814 NDR_PULL_ALLOC(ndr, r->in.buffer);
19816 r->in.buffer = NULL;
19818 if (r->in.buffer) {
19819 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19820 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19821 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19825 NDR_PULL_ALLOC(ndr, r->out.needed);
19826 ZERO_STRUCTP(r->out.needed);
19827 NDR_PULL_ALLOC(ndr, r->out.count);
19828 ZERO_STRUCTP(r->out.count);
19830 if (flags & NDR_OUT) {
19831 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19833 NDR_PULL_ALLOC(ndr, r->out.info);
19835 r->out.info = NULL;
19838 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19839 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19840 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19843 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19844 NDR_PULL_ALLOC(ndr, r->out.needed);
19846 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19847 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19848 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19849 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19850 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19851 NDR_PULL_ALLOC(ndr, r->out.count);
19853 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19854 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19856 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19857 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19859 return NDR_ERR_SUCCESS;
19862 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
19864 uint32_t cntr_info_0;
19865 if (flags & NDR_IN) {
19866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19869 if (flags & NDR_OUT) {
19870 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19871 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19872 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19874 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19875 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19878 return NDR_ERR_SUCCESS;
19881 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
19883 uint32_t cntr_info_0;
19884 TALLOC_CTX *_mem_save_info_0;
19885 if (flags & NDR_IN) {
19886 ZERO_STRUCT(r->out);
19888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19891 if (flags & NDR_OUT) {
19892 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19893 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19894 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19895 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19896 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19897 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19899 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19900 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19904 return NDR_ERR_SUCCESS;
19907 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
19909 uint32_t cntr_info_2;
19910 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
19912 if (flags & NDR_SET_VALUES) {
19913 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19915 if (flags & NDR_IN) {
19916 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
19918 ndr_print_ptr(ndr, "server", r->in.server);
19920 if (r->in.server) {
19921 ndr_print_string(ndr, "server", r->in.server);
19924 ndr_print_ptr(ndr, "environment", r->in.environment);
19926 if (r->in.environment) {
19927 ndr_print_string(ndr, "environment", r->in.environment);
19930 ndr_print_uint32(ndr, "level", r->in.level);
19931 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19933 if (r->in.buffer) {
19934 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19937 ndr_print_uint32(ndr, "offered", r->in.offered);
19940 if (flags & NDR_OUT) {
19941 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
19943 ndr_print_ptr(ndr, "count", r->out.count);
19945 ndr_print_uint32(ndr, "count", *r->out.count);
19947 ndr_print_ptr(ndr, "info", r->out.info);
19949 ndr_print_ptr(ndr, "info", *r->out.info);
19951 if (*r->out.info) {
19952 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19954 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
19956 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
19957 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
19958 ndr_print_spoolss_DriverInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
19966 ndr_print_ptr(ndr, "needed", r->out.needed);
19968 ndr_print_uint32(ndr, "needed", *r->out.needed);
19970 ndr_print_WERROR(ndr, "result", r->out.result);
19976 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
19978 if (flags & NDR_IN) {
19980 if (flags & NDR_OUT) {
19981 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19983 return NDR_ERR_SUCCESS;
19986 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
19988 if (flags & NDR_IN) {
19990 if (flags & NDR_OUT) {
19991 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19993 return NDR_ERR_SUCCESS;
19996 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
19998 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
20000 if (flags & NDR_SET_VALUES) {
20001 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20003 if (flags & NDR_IN) {
20004 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
20008 if (flags & NDR_OUT) {
20009 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
20011 ndr_print_WERROR(ndr, "result", r->out.result);
20017 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20019 if (flags & NDR_IN) {
20020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20021 if (r->in.server) {
20022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20025 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20028 if (r->in.environment) {
20029 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20032 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20036 if (r->in.buffer) {
20037 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20041 if (flags & NDR_OUT) {
20042 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20045 struct ndr_push *_ndr_info;
20046 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20047 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20048 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20049 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20052 if (r->out.needed == NULL) {
20053 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20056 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20058 return NDR_ERR_SUCCESS;
20061 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
20063 uint32_t _ptr_server;
20064 uint32_t _ptr_environment;
20065 uint32_t _ptr_buffer;
20066 uint32_t _ptr_info;
20067 TALLOC_CTX *_mem_save_server_0;
20068 TALLOC_CTX *_mem_save_environment_0;
20069 TALLOC_CTX *_mem_save_buffer_0;
20070 TALLOC_CTX *_mem_save_info_0;
20071 TALLOC_CTX *_mem_save_needed_0;
20072 if (flags & NDR_IN) {
20073 ZERO_STRUCT(r->out);
20075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20077 NDR_PULL_ALLOC(ndr, r->in.server);
20079 r->in.server = NULL;
20081 if (r->in.server) {
20082 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20083 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20084 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20085 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20086 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20087 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));
20089 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20090 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20094 if (_ptr_environment) {
20095 NDR_PULL_ALLOC(ndr, r->in.environment);
20097 r->in.environment = NULL;
20099 if (r->in.environment) {
20100 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20101 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20102 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20103 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20104 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20105 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));
20107 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20108 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20111 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20112 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20114 NDR_PULL_ALLOC(ndr, r->in.buffer);
20116 r->in.buffer = NULL;
20118 if (r->in.buffer) {
20119 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20120 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20121 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20124 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20125 NDR_PULL_ALLOC(ndr, r->out.needed);
20126 ZERO_STRUCTP(r->out.needed);
20128 if (flags & NDR_OUT) {
20129 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20131 NDR_PULL_ALLOC(ndr, r->out.info);
20133 r->out.info = NULL;
20136 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20137 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20139 struct ndr_pull *_ndr_info;
20140 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20141 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20142 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20143 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20145 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20147 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20148 NDR_PULL_ALLOC(ndr, r->out.needed);
20150 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20151 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20154 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20156 return NDR_ERR_SUCCESS;
20159 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
20161 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
20163 if (flags & NDR_SET_VALUES) {
20164 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20166 if (flags & NDR_IN) {
20167 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
20169 ndr_print_ptr(ndr, "server", r->in.server);
20171 if (r->in.server) {
20172 ndr_print_string(ndr, "server", r->in.server);
20175 ndr_print_ptr(ndr, "environment", r->in.environment);
20177 if (r->in.environment) {
20178 ndr_print_string(ndr, "environment", r->in.environment);
20181 ndr_print_uint32(ndr, "level", r->in.level);
20182 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20184 if (r->in.buffer) {
20185 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20188 ndr_print_uint32(ndr, "offered", r->in.offered);
20191 if (flags & NDR_OUT) {
20192 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
20194 ndr_print_ptr(ndr, "info", r->out.info);
20197 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20198 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
20201 ndr_print_ptr(ndr, "needed", r->out.needed);
20203 ndr_print_uint32(ndr, "needed", *r->out.needed);
20205 ndr_print_WERROR(ndr, "result", r->out.result);
20211 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
20213 if (flags & NDR_IN) {
20214 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20215 if (r->in.server) {
20216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20219 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20224 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20228 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20230 if (flags & NDR_OUT) {
20231 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20233 return NDR_ERR_SUCCESS;
20236 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
20238 uint32_t _ptr_server;
20239 TALLOC_CTX *_mem_save_server_0;
20240 if (flags & NDR_IN) {
20241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20243 NDR_PULL_ALLOC(ndr, r->in.server);
20245 r->in.server = NULL;
20247 if (r->in.server) {
20248 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20249 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20250 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20251 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20252 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20253 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));
20255 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20256 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20259 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20260 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20261 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20262 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));
20264 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20265 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20266 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20267 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20268 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20269 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));
20271 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20272 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20274 if (flags & NDR_OUT) {
20275 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20277 return NDR_ERR_SUCCESS;
20280 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
20282 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
20284 if (flags & NDR_SET_VALUES) {
20285 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20287 if (flags & NDR_IN) {
20288 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
20290 ndr_print_ptr(ndr, "server", r->in.server);
20292 if (r->in.server) {
20293 ndr_print_string(ndr, "server", r->in.server);
20296 ndr_print_string(ndr, "architecture", r->in.architecture);
20297 ndr_print_string(ndr, "driver", r->in.driver);
20300 if (flags & NDR_OUT) {
20301 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
20303 ndr_print_WERROR(ndr, "result", r->out.result);
20309 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
20311 if (flags & NDR_IN) {
20312 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20313 if (r->in.server) {
20314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20317 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20320 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20322 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20323 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
20326 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));
20327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
20330 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));
20332 if (flags & NDR_OUT) {
20333 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20335 return NDR_ERR_SUCCESS;
20338 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
20340 uint32_t _ptr_server;
20341 TALLOC_CTX *_mem_save_server_0;
20342 if (flags & NDR_IN) {
20343 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20345 NDR_PULL_ALLOC(ndr, r->in.server);
20347 r->in.server = NULL;
20349 if (r->in.server) {
20350 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20351 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20352 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20353 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20354 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20355 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));
20357 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20358 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20361 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20362 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20363 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20364 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));
20366 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20367 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20368 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
20369 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
20370 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
20371 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));
20373 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
20374 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));
20375 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
20376 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
20377 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
20378 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));
20380 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
20381 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));
20383 if (flags & NDR_OUT) {
20384 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20386 return NDR_ERR_SUCCESS;
20389 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
20391 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
20393 if (flags & NDR_SET_VALUES) {
20394 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20396 if (flags & NDR_IN) {
20397 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
20399 ndr_print_ptr(ndr, "server", r->in.server);
20401 if (r->in.server) {
20402 ndr_print_string(ndr, "server", r->in.server);
20405 ndr_print_string(ndr, "architecture", r->in.architecture);
20406 ndr_print_string(ndr, "path_name", r->in.path_name);
20407 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
20410 if (flags & NDR_OUT) {
20411 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
20413 ndr_print_WERROR(ndr, "result", r->out.result);
20419 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
20421 if (flags & NDR_IN) {
20422 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
20423 if (r->in.servername) {
20424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20429 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20430 if (r->in.environment) {
20431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20433 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20434 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20437 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20438 if (r->in.buffer) {
20439 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20443 if (flags & NDR_OUT) {
20444 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20446 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20448 if (r->out.needed == NULL) {
20449 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20452 if (r->out.count == NULL) {
20453 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
20456 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20458 return NDR_ERR_SUCCESS;
20461 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
20463 uint32_t _ptr_servername;
20464 uint32_t _ptr_environment;
20465 uint32_t _ptr_buffer;
20466 uint32_t _ptr_info;
20467 TALLOC_CTX *_mem_save_servername_0;
20468 TALLOC_CTX *_mem_save_environment_0;
20469 TALLOC_CTX *_mem_save_buffer_0;
20470 TALLOC_CTX *_mem_save_info_0;
20471 TALLOC_CTX *_mem_save_needed_0;
20472 TALLOC_CTX *_mem_save_count_0;
20473 if (flags & NDR_IN) {
20474 ZERO_STRUCT(r->out);
20476 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
20477 if (_ptr_servername) {
20478 NDR_PULL_ALLOC(ndr, r->in.servername);
20480 r->in.servername = NULL;
20482 if (r->in.servername) {
20483 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20484 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
20485 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20486 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20487 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20488 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));
20490 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20491 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20492 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
20494 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20495 if (_ptr_environment) {
20496 NDR_PULL_ALLOC(ndr, r->in.environment);
20498 r->in.environment = NULL;
20500 if (r->in.environment) {
20501 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20502 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20503 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20504 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20505 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20506 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));
20508 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20509 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20510 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20513 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20515 NDR_PULL_ALLOC(ndr, r->in.buffer);
20517 r->in.buffer = NULL;
20519 if (r->in.buffer) {
20520 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20521 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20522 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20526 NDR_PULL_ALLOC(ndr, r->out.needed);
20527 ZERO_STRUCTP(r->out.needed);
20528 NDR_PULL_ALLOC(ndr, r->out.count);
20529 ZERO_STRUCTP(r->out.count);
20531 if (flags & NDR_OUT) {
20532 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20534 NDR_PULL_ALLOC(ndr, r->out.info);
20536 r->out.info = NULL;
20539 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20540 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20541 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20544 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20545 NDR_PULL_ALLOC(ndr, r->out.needed);
20547 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20548 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20551 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20552 NDR_PULL_ALLOC(ndr, r->out.count);
20554 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
20555 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
20556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
20557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
20558 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20560 return NDR_ERR_SUCCESS;
20563 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
20565 uint32_t cntr_info_0;
20566 if (flags & NDR_IN) {
20567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
20570 if (flags & NDR_OUT) {
20571 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20572 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20573 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20575 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20576 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20579 return NDR_ERR_SUCCESS;
20582 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
20584 uint32_t cntr_info_0;
20585 TALLOC_CTX *_mem_save_info_0;
20586 if (flags & NDR_IN) {
20587 ZERO_STRUCT(r->out);
20589 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20590 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
20592 if (flags & NDR_OUT) {
20593 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
20594 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20595 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20596 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20597 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
20598 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
20600 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
20601 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
20603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20605 return NDR_ERR_SUCCESS;
20608 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
20610 uint32_t cntr_info_2;
20611 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
20613 if (flags & NDR_SET_VALUES) {
20614 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20616 if (flags & NDR_IN) {
20617 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
20619 ndr_print_ptr(ndr, "servername", r->in.servername);
20621 if (r->in.servername) {
20622 ndr_print_string(ndr, "servername", r->in.servername);
20625 ndr_print_ptr(ndr, "environment", r->in.environment);
20627 if (r->in.environment) {
20628 ndr_print_string(ndr, "environment", r->in.environment);
20631 ndr_print_uint32(ndr, "level", r->in.level);
20632 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20634 if (r->in.buffer) {
20635 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20638 ndr_print_uint32(ndr, "offered", r->in.offered);
20641 if (flags & NDR_OUT) {
20642 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
20644 ndr_print_ptr(ndr, "count", r->out.count);
20646 ndr_print_uint32(ndr, "count", *r->out.count);
20648 ndr_print_ptr(ndr, "info", r->out.info);
20650 ndr_print_ptr(ndr, "info", *r->out.info);
20652 if (*r->out.info) {
20653 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
20655 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
20657 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
20658 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
20659 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
20667 ndr_print_ptr(ndr, "needed", r->out.needed);
20669 ndr_print_uint32(ndr, "needed", *r->out.needed);
20671 ndr_print_WERROR(ndr, "result", r->out.result);
20677 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20679 if (flags & NDR_IN) {
20680 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20681 if (r->in.server) {
20682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20685 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20687 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
20688 if (r->in.environment) {
20689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
20692 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20695 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20696 if (r->in.buffer) {
20697 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20701 if (flags & NDR_OUT) {
20702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20705 struct ndr_push *_ndr_info;
20706 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20707 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
20708 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20709 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20712 if (r->out.needed == NULL) {
20713 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20716 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20718 return NDR_ERR_SUCCESS;
20721 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
20723 uint32_t _ptr_server;
20724 uint32_t _ptr_environment;
20725 uint32_t _ptr_buffer;
20726 uint32_t _ptr_info;
20727 TALLOC_CTX *_mem_save_server_0;
20728 TALLOC_CTX *_mem_save_environment_0;
20729 TALLOC_CTX *_mem_save_buffer_0;
20730 TALLOC_CTX *_mem_save_info_0;
20731 TALLOC_CTX *_mem_save_needed_0;
20732 if (flags & NDR_IN) {
20733 ZERO_STRUCT(r->out);
20735 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20737 NDR_PULL_ALLOC(ndr, r->in.server);
20739 r->in.server = NULL;
20741 if (r->in.server) {
20742 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20743 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20744 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20745 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20746 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20747 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));
20749 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20750 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20753 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
20754 if (_ptr_environment) {
20755 NDR_PULL_ALLOC(ndr, r->in.environment);
20757 r->in.environment = NULL;
20759 if (r->in.environment) {
20760 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
20761 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
20762 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
20763 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
20764 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
20765 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));
20767 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
20768 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
20769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
20771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20772 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20774 NDR_PULL_ALLOC(ndr, r->in.buffer);
20776 r->in.buffer = NULL;
20778 if (r->in.buffer) {
20779 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20780 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20781 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20785 NDR_PULL_ALLOC(ndr, r->out.needed);
20786 ZERO_STRUCTP(r->out.needed);
20788 if (flags & NDR_OUT) {
20789 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20791 NDR_PULL_ALLOC(ndr, r->out.info);
20793 r->out.info = NULL;
20796 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20797 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20799 struct ndr_pull *_ndr_info;
20800 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
20801 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
20802 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
20803 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
20805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20807 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20808 NDR_PULL_ALLOC(ndr, r->out.needed);
20810 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20811 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20814 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20816 return NDR_ERR_SUCCESS;
20819 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
20821 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
20823 if (flags & NDR_SET_VALUES) {
20824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20826 if (flags & NDR_IN) {
20827 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
20829 ndr_print_ptr(ndr, "server", r->in.server);
20831 if (r->in.server) {
20832 ndr_print_string(ndr, "server", r->in.server);
20835 ndr_print_ptr(ndr, "environment", r->in.environment);
20837 if (r->in.environment) {
20838 ndr_print_string(ndr, "environment", r->in.environment);
20841 ndr_print_uint32(ndr, "level", r->in.level);
20842 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20844 if (r->in.buffer) {
20845 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20848 ndr_print_uint32(ndr, "offered", r->in.offered);
20851 if (flags & NDR_OUT) {
20852 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
20854 ndr_print_ptr(ndr, "info", r->out.info);
20857 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
20858 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
20861 ndr_print_ptr(ndr, "needed", r->out.needed);
20863 ndr_print_uint32(ndr, "needed", *r->out.needed);
20865 ndr_print_WERROR(ndr, "result", r->out.result);
20871 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
20873 if (flags & NDR_IN) {
20874 if (r->in.handle == NULL) {
20875 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20877 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20879 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
20880 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20882 if (flags & NDR_OUT) {
20883 if (r->out.job_id == NULL) {
20884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
20887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20889 return NDR_ERR_SUCCESS;
20892 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
20894 TALLOC_CTX *_mem_save_handle_0;
20895 TALLOC_CTX *_mem_save_job_id_0;
20896 if (flags & NDR_IN) {
20897 ZERO_STRUCT(r->out);
20899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20900 NDR_PULL_ALLOC(ndr, r->in.handle);
20902 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20903 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20904 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20907 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
20908 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20909 NDR_PULL_ALLOC(ndr, r->out.job_id);
20910 ZERO_STRUCTP(r->out.job_id);
20912 if (flags & NDR_OUT) {
20913 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20914 NDR_PULL_ALLOC(ndr, r->out.job_id);
20916 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
20917 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
20918 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
20919 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
20920 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20922 return NDR_ERR_SUCCESS;
20925 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
20927 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
20929 if (flags & NDR_SET_VALUES) {
20930 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20932 if (flags & NDR_IN) {
20933 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
20935 ndr_print_ptr(ndr, "handle", r->in.handle);
20937 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20939 ndr_print_uint32(ndr, "level", r->in.level);
20940 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
20941 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
20944 if (flags & NDR_OUT) {
20945 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
20947 ndr_print_ptr(ndr, "job_id", r->out.job_id);
20949 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
20951 ndr_print_WERROR(ndr, "result", r->out.result);
20957 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *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));
20965 if (flags & NDR_OUT) {
20966 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20968 return NDR_ERR_SUCCESS;
20971 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
20973 TALLOC_CTX *_mem_save_handle_0;
20974 if (flags & NDR_IN) {
20975 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20976 NDR_PULL_ALLOC(ndr, r->in.handle);
20978 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20979 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20980 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20983 if (flags & NDR_OUT) {
20984 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20986 return NDR_ERR_SUCCESS;
20989 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
20991 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
20993 if (flags & NDR_SET_VALUES) {
20994 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20996 if (flags & NDR_IN) {
20997 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
20999 ndr_print_ptr(ndr, "handle", r->in.handle);
21001 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21005 if (flags & NDR_OUT) {
21006 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
21008 ndr_print_WERROR(ndr, "result", r->out.result);
21014 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
21016 if (flags & NDR_IN) {
21017 if (r->in.handle == NULL) {
21018 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21020 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21021 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
21024 if (flags & NDR_OUT) {
21025 if (r->out.num_written == NULL) {
21026 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21028 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
21029 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21031 return NDR_ERR_SUCCESS;
21034 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
21036 TALLOC_CTX *_mem_save_handle_0;
21037 TALLOC_CTX *_mem_save_num_written_0;
21038 if (flags & NDR_IN) {
21039 ZERO_STRUCT(r->out);
21041 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21042 NDR_PULL_ALLOC(ndr, r->in.handle);
21044 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21045 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21046 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21047 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21048 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
21049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
21050 NDR_PULL_ALLOC(ndr, r->out.num_written);
21051 ZERO_STRUCTP(r->out.num_written);
21053 if (flags & NDR_OUT) {
21054 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21055 NDR_PULL_ALLOC(ndr, r->out.num_written);
21057 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
21058 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
21059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
21060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
21061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21063 return NDR_ERR_SUCCESS;
21066 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
21068 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
21070 if (flags & NDR_SET_VALUES) {
21071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21073 if (flags & NDR_IN) {
21074 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
21076 ndr_print_ptr(ndr, "handle", r->in.handle);
21078 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21080 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
21081 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
21084 if (flags & NDR_OUT) {
21085 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
21087 ndr_print_ptr(ndr, "num_written", r->out.num_written);
21089 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
21091 ndr_print_WERROR(ndr, "result", r->out.result);
21097 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *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_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *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_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
21131 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
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_EndPagePrinter");
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_EndPagePrinter");
21148 ndr_print_WERROR(ndr, "result", r->out.result);
21154 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *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));
21162 if (flags & NDR_OUT) {
21163 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21165 return NDR_ERR_SUCCESS;
21168 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
21170 TALLOC_CTX *_mem_save_handle_0;
21171 if (flags & NDR_IN) {
21172 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21173 NDR_PULL_ALLOC(ndr, r->in.handle);
21175 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21176 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21177 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21180 if (flags & NDR_OUT) {
21181 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21183 return NDR_ERR_SUCCESS;
21186 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
21188 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
21190 if (flags & NDR_SET_VALUES) {
21191 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21193 if (flags & NDR_IN) {
21194 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
21196 ndr_print_ptr(ndr, "handle", r->in.handle);
21198 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21202 if (flags & NDR_OUT) {
21203 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
21205 ndr_print_WERROR(ndr, "result", r->out.result);
21211 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
21213 if (flags & NDR_IN) {
21214 if (r->in.handle == NULL) {
21215 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21217 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21220 if (flags & NDR_OUT) {
21221 if (r->out.data == NULL) {
21222 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
21225 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
21226 if (r->out._data_size == NULL) {
21227 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
21230 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21232 return NDR_ERR_SUCCESS;
21235 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
21237 TALLOC_CTX *_mem_save_handle_0;
21238 TALLOC_CTX *_mem_save__data_size_0;
21239 if (flags & NDR_IN) {
21240 ZERO_STRUCT(r->out);
21242 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21243 NDR_PULL_ALLOC(ndr, r->in.handle);
21245 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21246 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21247 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21249 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
21250 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
21251 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
21252 NDR_PULL_ALLOC(ndr, r->out._data_size);
21253 ZERO_STRUCTP(r->out._data_size);
21255 if (flags & NDR_OUT) {
21256 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
21257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21258 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
21260 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
21261 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21262 NDR_PULL_ALLOC(ndr, r->out._data_size);
21264 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
21265 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
21266 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
21267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
21268 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21270 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
21273 return NDR_ERR_SUCCESS;
21276 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
21278 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
21280 if (flags & NDR_SET_VALUES) {
21281 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21283 if (flags & NDR_IN) {
21284 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
21286 ndr_print_ptr(ndr, "handle", r->in.handle);
21288 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21290 ndr_print_uint32(ndr, "data_size", r->in.data_size);
21293 if (flags & NDR_OUT) {
21294 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
21296 ndr_print_ptr(ndr, "data", r->out.data);
21298 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
21300 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
21302 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
21304 ndr_print_WERROR(ndr, "result", r->out.result);
21310 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *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));
21318 if (flags & NDR_OUT) {
21319 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21321 return NDR_ERR_SUCCESS;
21324 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
21326 TALLOC_CTX *_mem_save_handle_0;
21327 if (flags & NDR_IN) {
21328 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21329 NDR_PULL_ALLOC(ndr, r->in.handle);
21331 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21332 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21333 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21336 if (flags & NDR_OUT) {
21337 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21339 return NDR_ERR_SUCCESS;
21342 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
21344 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
21346 if (flags & NDR_SET_VALUES) {
21347 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21349 if (flags & NDR_IN) {
21350 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
21352 ndr_print_ptr(ndr, "handle", r->in.handle);
21354 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21358 if (flags & NDR_OUT) {
21359 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
21361 ndr_print_WERROR(ndr, "result", r->out.result);
21367 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
21369 if (flags & NDR_IN) {
21370 if (r->in.handle == NULL) {
21371 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21373 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
21376 if (r->in.buffer) {
21377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21378 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21382 if (flags & NDR_OUT) {
21383 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
21384 if (r->out.buffer) {
21385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21386 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21388 if (r->out.needed == NULL) {
21389 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21392 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21394 return NDR_ERR_SUCCESS;
21397 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
21399 uint32_t _ptr_buffer;
21400 TALLOC_CTX *_mem_save_handle_0;
21401 TALLOC_CTX *_mem_save_buffer_0;
21402 TALLOC_CTX *_mem_save_needed_0;
21403 if (flags & NDR_IN) {
21404 ZERO_STRUCT(r->out);
21406 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21407 NDR_PULL_ALLOC(ndr, r->in.handle);
21409 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21410 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21411 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21416 NDR_PULL_ALLOC(ndr, r->in.buffer);
21418 r->in.buffer = NULL;
21420 if (r->in.buffer) {
21421 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21422 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
21423 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21424 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21425 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21429 NDR_PULL_ALLOC(ndr, r->out.needed);
21430 ZERO_STRUCTP(r->out.needed);
21431 if (r->in.buffer) {
21432 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21435 if (flags & NDR_OUT) {
21436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
21438 NDR_PULL_ALLOC(ndr, r->out.buffer);
21440 r->out.buffer = NULL;
21442 if (r->out.buffer) {
21443 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21444 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
21445 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21446 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21447 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21448 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
21450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21451 NDR_PULL_ALLOC(ndr, r->out.needed);
21453 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21454 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21457 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21458 if (r->out.buffer) {
21459 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21462 return NDR_ERR_SUCCESS;
21465 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
21467 ndr_print_struct(ndr, name, "spoolss_AddJob");
21469 if (flags & NDR_SET_VALUES) {
21470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21472 if (flags & NDR_IN) {
21473 ndr_print_struct(ndr, "in", "spoolss_AddJob");
21475 ndr_print_ptr(ndr, "handle", r->in.handle);
21477 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21479 ndr_print_uint32(ndr, "level", r->in.level);
21480 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21482 if (r->in.buffer) {
21483 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21486 ndr_print_uint32(ndr, "offered", r->in.offered);
21489 if (flags & NDR_OUT) {
21490 ndr_print_struct(ndr, "out", "spoolss_AddJob");
21492 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21494 if (r->out.buffer) {
21495 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21498 ndr_print_ptr(ndr, "needed", r->out.needed);
21500 ndr_print_uint32(ndr, "needed", *r->out.needed);
21502 ndr_print_WERROR(ndr, "result", r->out.result);
21508 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
21510 if (flags & NDR_IN) {
21511 if (r->in.handle == NULL) {
21512 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21514 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
21517 if (flags & NDR_OUT) {
21518 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21520 return NDR_ERR_SUCCESS;
21523 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
21525 TALLOC_CTX *_mem_save_handle_0;
21526 if (flags & NDR_IN) {
21527 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21528 NDR_PULL_ALLOC(ndr, r->in.handle);
21530 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21531 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21532 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21534 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
21536 if (flags & NDR_OUT) {
21537 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21539 return NDR_ERR_SUCCESS;
21542 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
21544 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
21546 if (flags & NDR_SET_VALUES) {
21547 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21549 if (flags & NDR_IN) {
21550 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
21552 ndr_print_ptr(ndr, "handle", r->in.handle);
21554 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21556 ndr_print_uint32(ndr, "jobid", r->in.jobid);
21559 if (flags & NDR_OUT) {
21560 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
21562 ndr_print_WERROR(ndr, "result", r->out.result);
21568 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
21570 if (flags & NDR_IN) {
21571 if (r->in.handle == NULL) {
21572 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21574 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21578 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));
21579 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21581 if (flags & NDR_OUT) {
21582 if (r->out.type == NULL) {
21583 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21585 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
21586 if (r->out.data == NULL) {
21587 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21589 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.data));
21590 if (r->out.needed == NULL) {
21591 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21594 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21596 return NDR_ERR_SUCCESS;
21599 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
21601 TALLOC_CTX *_mem_save_handle_0;
21602 TALLOC_CTX *_mem_save_type_0;
21603 TALLOC_CTX *_mem_save_data_0;
21604 TALLOC_CTX *_mem_save_needed_0;
21605 if (flags & NDR_IN) {
21606 ZERO_STRUCT(r->out);
21608 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21609 NDR_PULL_ALLOC(ndr, r->in.handle);
21611 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21612 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21613 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21615 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21616 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21617 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21618 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));
21620 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21621 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));
21622 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21623 NDR_PULL_ALLOC(ndr, r->out.type);
21624 ZERO_STRUCTP(r->out.type);
21625 NDR_PULL_ALLOC(ndr, r->out.data);
21626 ZERO_STRUCTP(r->out.data);
21627 NDR_PULL_ALLOC(ndr, r->out.needed);
21628 ZERO_STRUCTP(r->out.needed);
21630 if (flags & NDR_OUT) {
21631 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21632 NDR_PULL_ALLOC(ndr, r->out.type);
21634 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21635 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21636 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
21637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21638 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21639 NDR_PULL_ALLOC(ndr, r->out.data);
21641 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
21642 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
21643 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
21644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
21645 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21646 NDR_PULL_ALLOC(ndr, r->out.needed);
21648 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21649 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21652 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21654 return NDR_ERR_SUCCESS;
21657 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
21659 if (flags & NDR_IN) {
21660 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
21662 if (flags & NDR_OUT) {
21663 if (r->out.data == NULL) {
21664 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21666 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
21667 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
21669 return NDR_ERR_SUCCESS;
21672 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
21674 TALLOC_CTX *_mem_save_data_0;
21675 if (flags & NDR_IN) {
21676 ZERO_STRUCT(r->out);
21678 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
21679 NDR_PULL_ALLOC(ndr, r->out.data);
21680 ZERO_STRUCTP(r->out.data);
21682 if (flags & NDR_OUT) {
21683 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21684 NDR_PULL_ALLOC(ndr, r->out.data);
21686 _mem_save_data_0 = NDR_PULL_GET_MEM_CTX(ndr);
21687 NDR_PULL_SET_MEM_CTX(ndr, r->out.data, LIBNDR_FLAG_REF_ALLOC);
21688 NDR_CHECK(ndr_pull_set_switch_value(ndr, r->out.data, r->in.type));
21689 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
21690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_0, LIBNDR_FLAG_REF_ALLOC);
21692 return NDR_ERR_SUCCESS;
21695 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
21697 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
21699 if (flags & NDR_SET_VALUES) {
21700 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21702 if (flags & NDR_IN) {
21703 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
21705 ndr_print_ptr(ndr, "handle", r->in.handle);
21707 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21709 ndr_print_string(ndr, "value_name", r->in.value_name);
21710 ndr_print_uint32(ndr, "offered", r->in.offered);
21713 if (flags & NDR_OUT) {
21714 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
21716 ndr_print_ptr(ndr, "type", r->out.type);
21718 ndr_print_winreg_Type(ndr, "type", *r->out.type);
21720 ndr_print_ptr(ndr, "data", r->out.data);
21722 ndr_print_set_switch_value(ndr, r->out.data, *r->out.type);
21723 ndr_print_spoolss_PrinterData(ndr, "data", r->out.data);
21725 ndr_print_ptr(ndr, "needed", r->out.needed);
21727 ndr_print_uint32(ndr, "needed", *r->out.needed);
21729 ndr_print_WERROR(ndr, "result", r->out.result);
21735 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
21737 if (flags & NDR_IN) {
21738 if (r->in.handle == NULL) {
21739 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21741 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21745 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));
21746 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
21747 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
21748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
21750 if (flags & NDR_OUT) {
21751 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21753 return NDR_ERR_SUCCESS;
21756 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
21758 if (flags & NDR_IN) {
21759 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
21761 if (flags & NDR_OUT) {
21762 if (r->out.data == NULL) {
21763 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21765 NDR_CHECK(ndr_push_set_switch_value(ndr, r->out.data, r->in.type));
21766 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, r->out.data));
21768 return NDR_ERR_SUCCESS;
21771 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
21773 TALLOC_CTX *_mem_save_handle_0;
21774 if (flags & NDR_IN) {
21775 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21776 NDR_PULL_ALLOC(ndr, r->in.handle);
21778 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21779 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21780 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21782 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21783 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21784 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21785 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));
21787 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21788 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));
21789 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
21791 struct ndr_pull *_ndr_data;
21792 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
21793 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
21794 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
21795 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
21797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
21799 if (flags & NDR_OUT) {
21800 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21802 return NDR_ERR_SUCCESS;
21805 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
21807 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
21809 if (flags & NDR_SET_VALUES) {
21810 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21812 if (flags & NDR_IN) {
21813 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
21815 ndr_print_ptr(ndr, "handle", r->in.handle);
21817 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21819 ndr_print_string(ndr, "value_name", r->in.value_name);
21820 ndr_print_winreg_Type(ndr, "type", r->in.type);
21821 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
21822 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
21823 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);
21826 if (flags & NDR_OUT) {
21827 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
21829 ndr_print_WERROR(ndr, "result", r->out.result);
21835 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
21837 if (flags & NDR_IN) {
21839 if (flags & NDR_OUT) {
21840 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21842 return NDR_ERR_SUCCESS;
21845 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
21847 if (flags & NDR_IN) {
21849 if (flags & NDR_OUT) {
21850 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21852 return NDR_ERR_SUCCESS;
21855 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
21857 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
21859 if (flags & NDR_SET_VALUES) {
21860 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21862 if (flags & NDR_IN) {
21863 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
21867 if (flags & NDR_OUT) {
21868 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
21870 ndr_print_WERROR(ndr, "result", r->out.result);
21876 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
21878 if (flags & NDR_IN) {
21879 if (r->in.handle == NULL) {
21880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21882 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21884 if (flags & NDR_OUT) {
21885 if (r->out.handle == NULL) {
21886 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21888 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21889 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21891 return NDR_ERR_SUCCESS;
21894 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
21896 TALLOC_CTX *_mem_save_handle_0;
21897 if (flags & NDR_IN) {
21898 ZERO_STRUCT(r->out);
21900 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21901 NDR_PULL_ALLOC(ndr, r->in.handle);
21903 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21904 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21905 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21907 NDR_PULL_ALLOC(ndr, r->out.handle);
21908 *r->out.handle = *r->in.handle;
21910 if (flags & NDR_OUT) {
21911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21912 NDR_PULL_ALLOC(ndr, r->out.handle);
21914 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21915 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21916 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21918 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21920 return NDR_ERR_SUCCESS;
21923 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
21925 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
21927 if (flags & NDR_SET_VALUES) {
21928 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21930 if (flags & NDR_IN) {
21931 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
21933 ndr_print_ptr(ndr, "handle", r->in.handle);
21935 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21939 if (flags & NDR_OUT) {
21940 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
21942 ndr_print_ptr(ndr, "handle", r->out.handle);
21944 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21946 ndr_print_WERROR(ndr, "result", r->out.result);
21952 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
21954 if (flags & NDR_IN) {
21955 if (r->in.handle == NULL) {
21956 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21958 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21960 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
21961 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21963 if (flags & NDR_OUT) {
21964 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21966 return NDR_ERR_SUCCESS;
21969 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
21971 TALLOC_CTX *_mem_save_handle_0;
21972 if (flags & NDR_IN) {
21973 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21974 NDR_PULL_ALLOC(ndr, r->in.handle);
21976 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21977 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21978 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21981 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
21982 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21984 if (flags & NDR_OUT) {
21985 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21987 return NDR_ERR_SUCCESS;
21990 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
21992 ndr_print_struct(ndr, name, "spoolss_AddForm");
21994 if (flags & NDR_SET_VALUES) {
21995 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21997 if (flags & NDR_IN) {
21998 ndr_print_struct(ndr, "in", "spoolss_AddForm");
22000 ndr_print_ptr(ndr, "handle", r->in.handle);
22002 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22004 ndr_print_uint32(ndr, "level", r->in.level);
22005 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22006 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22009 if (flags & NDR_OUT) {
22010 ndr_print_struct(ndr, "out", "spoolss_AddForm");
22012 ndr_print_WERROR(ndr, "result", r->out.result);
22018 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
22020 if (flags & NDR_IN) {
22021 if (r->in.handle == NULL) {
22022 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22024 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22028 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));
22030 if (flags & NDR_OUT) {
22031 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22033 return NDR_ERR_SUCCESS;
22036 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
22038 TALLOC_CTX *_mem_save_handle_0;
22039 if (flags & NDR_IN) {
22040 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22041 NDR_PULL_ALLOC(ndr, r->in.handle);
22043 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22044 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22045 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22047 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22048 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22049 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22050 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));
22052 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22053 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));
22055 if (flags & NDR_OUT) {
22056 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22058 return NDR_ERR_SUCCESS;
22061 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
22063 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
22065 if (flags & NDR_SET_VALUES) {
22066 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22068 if (flags & NDR_IN) {
22069 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
22071 ndr_print_ptr(ndr, "handle", r->in.handle);
22073 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22075 ndr_print_string(ndr, "form_name", r->in.form_name);
22078 if (flags & NDR_OUT) {
22079 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
22081 ndr_print_WERROR(ndr, "result", r->out.result);
22087 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
22089 if (flags & NDR_IN) {
22090 if (r->in.handle == NULL) {
22091 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22093 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22097 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));
22098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22100 if (r->in.buffer) {
22101 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22105 if (flags & NDR_OUT) {
22106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22109 struct ndr_push *_ndr_info;
22110 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22111 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
22112 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22113 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22116 if (r->out.needed == NULL) {
22117 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22120 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22122 return NDR_ERR_SUCCESS;
22125 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
22127 uint32_t _ptr_buffer;
22128 uint32_t _ptr_info;
22129 TALLOC_CTX *_mem_save_handle_0;
22130 TALLOC_CTX *_mem_save_buffer_0;
22131 TALLOC_CTX *_mem_save_info_0;
22132 TALLOC_CTX *_mem_save_needed_0;
22133 if (flags & NDR_IN) {
22134 ZERO_STRUCT(r->out);
22136 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22137 NDR_PULL_ALLOC(ndr, r->in.handle);
22139 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22140 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22141 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22143 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22144 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22145 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22146 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));
22148 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22149 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));
22150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22153 NDR_PULL_ALLOC(ndr, r->in.buffer);
22155 r->in.buffer = NULL;
22157 if (r->in.buffer) {
22158 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22159 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22160 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22164 NDR_PULL_ALLOC(ndr, r->out.needed);
22165 ZERO_STRUCTP(r->out.needed);
22167 if (flags & NDR_OUT) {
22168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22170 NDR_PULL_ALLOC(ndr, r->out.info);
22172 r->out.info = NULL;
22175 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22176 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22178 struct ndr_pull *_ndr_info;
22179 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
22180 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
22181 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
22182 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
22184 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22186 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22187 NDR_PULL_ALLOC(ndr, r->out.needed);
22189 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22190 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22191 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22193 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22195 return NDR_ERR_SUCCESS;
22198 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
22200 ndr_print_struct(ndr, name, "spoolss_GetForm");
22202 if (flags & NDR_SET_VALUES) {
22203 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22205 if (flags & NDR_IN) {
22206 ndr_print_struct(ndr, "in", "spoolss_GetForm");
22208 ndr_print_ptr(ndr, "handle", r->in.handle);
22210 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22212 ndr_print_string(ndr, "form_name", r->in.form_name);
22213 ndr_print_uint32(ndr, "level", r->in.level);
22214 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22216 if (r->in.buffer) {
22217 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22220 ndr_print_uint32(ndr, "offered", r->in.offered);
22223 if (flags & NDR_OUT) {
22224 ndr_print_struct(ndr, "out", "spoolss_GetForm");
22226 ndr_print_ptr(ndr, "info", r->out.info);
22229 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
22230 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
22233 ndr_print_ptr(ndr, "needed", r->out.needed);
22235 ndr_print_uint32(ndr, "needed", *r->out.needed);
22237 ndr_print_WERROR(ndr, "result", r->out.result);
22243 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
22245 if (flags & NDR_IN) {
22246 if (r->in.handle == NULL) {
22247 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22249 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
22253 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));
22254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22255 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
22256 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22258 if (flags & NDR_OUT) {
22259 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22261 return NDR_ERR_SUCCESS;
22264 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
22266 TALLOC_CTX *_mem_save_handle_0;
22267 if (flags & NDR_IN) {
22268 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22269 NDR_PULL_ALLOC(ndr, r->in.handle);
22271 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22272 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22273 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22275 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
22276 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
22277 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
22278 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));
22280 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
22281 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));
22282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22283 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
22284 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
22286 if (flags & NDR_OUT) {
22287 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22289 return NDR_ERR_SUCCESS;
22292 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
22294 ndr_print_struct(ndr, name, "spoolss_SetForm");
22296 if (flags & NDR_SET_VALUES) {
22297 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22299 if (flags & NDR_IN) {
22300 ndr_print_struct(ndr, "in", "spoolss_SetForm");
22302 ndr_print_ptr(ndr, "handle", r->in.handle);
22304 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22306 ndr_print_string(ndr, "form_name", r->in.form_name);
22307 ndr_print_uint32(ndr, "level", r->in.level);
22308 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
22309 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
22312 if (flags & NDR_OUT) {
22313 ndr_print_struct(ndr, "out", "spoolss_SetForm");
22315 ndr_print_WERROR(ndr, "result", r->out.result);
22321 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
22323 if (flags & NDR_IN) {
22324 if (r->in.handle == NULL) {
22325 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22327 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22329 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22330 if (r->in.buffer) {
22331 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22335 if (flags & NDR_OUT) {
22336 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22338 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22340 if (r->out.needed == NULL) {
22341 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22344 if (r->out.count == NULL) {
22345 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22348 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22350 return NDR_ERR_SUCCESS;
22353 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
22355 uint32_t _ptr_buffer;
22356 uint32_t _ptr_info;
22357 TALLOC_CTX *_mem_save_handle_0;
22358 TALLOC_CTX *_mem_save_buffer_0;
22359 TALLOC_CTX *_mem_save_info_0;
22360 TALLOC_CTX *_mem_save_needed_0;
22361 TALLOC_CTX *_mem_save_count_0;
22362 if (flags & NDR_IN) {
22363 ZERO_STRUCT(r->out);
22365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22366 NDR_PULL_ALLOC(ndr, r->in.handle);
22368 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22369 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22370 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22375 NDR_PULL_ALLOC(ndr, r->in.buffer);
22377 r->in.buffer = NULL;
22379 if (r->in.buffer) {
22380 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22381 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22382 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22383 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22386 NDR_PULL_ALLOC(ndr, r->out.needed);
22387 ZERO_STRUCTP(r->out.needed);
22388 NDR_PULL_ALLOC(ndr, r->out.count);
22389 ZERO_STRUCTP(r->out.count);
22391 if (flags & NDR_OUT) {
22392 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22394 NDR_PULL_ALLOC(ndr, r->out.info);
22396 r->out.info = NULL;
22399 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22400 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22401 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22404 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22405 NDR_PULL_ALLOC(ndr, r->out.needed);
22407 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22408 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22411 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22412 NDR_PULL_ALLOC(ndr, r->out.count);
22414 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22415 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22418 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22420 return NDR_ERR_SUCCESS;
22423 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
22425 uint32_t cntr_info_0;
22426 if (flags & NDR_IN) {
22427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22430 if (flags & NDR_OUT) {
22431 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22432 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22433 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22435 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22436 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22439 return NDR_ERR_SUCCESS;
22442 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
22444 uint32_t cntr_info_0;
22445 TALLOC_CTX *_mem_save_info_0;
22446 if (flags & NDR_IN) {
22447 ZERO_STRUCT(r->out);
22449 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22452 if (flags & NDR_OUT) {
22453 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22454 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22455 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22456 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22457 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22458 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22460 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22461 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22465 return NDR_ERR_SUCCESS;
22468 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
22470 uint32_t cntr_info_2;
22471 ndr_print_struct(ndr, name, "spoolss_EnumForms");
22473 if (flags & NDR_SET_VALUES) {
22474 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22476 if (flags & NDR_IN) {
22477 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
22479 ndr_print_ptr(ndr, "handle", r->in.handle);
22481 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22483 ndr_print_uint32(ndr, "level", r->in.level);
22484 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22486 if (r->in.buffer) {
22487 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22490 ndr_print_uint32(ndr, "offered", r->in.offered);
22493 if (flags & NDR_OUT) {
22494 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
22496 ndr_print_ptr(ndr, "count", r->out.count);
22498 ndr_print_uint32(ndr, "count", *r->out.count);
22500 ndr_print_ptr(ndr, "info", r->out.info);
22502 ndr_print_ptr(ndr, "info", *r->out.info);
22504 if (*r->out.info) {
22505 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22507 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22509 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22510 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22511 ndr_print_spoolss_FormInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22519 ndr_print_ptr(ndr, "needed", r->out.needed);
22521 ndr_print_uint32(ndr, "needed", *r->out.needed);
22523 ndr_print_WERROR(ndr, "result", r->out.result);
22529 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
22531 if (flags & NDR_IN) {
22532 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22533 if (r->in.servername) {
22534 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22537 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22540 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22541 if (r->in.buffer) {
22542 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22546 if (flags & NDR_OUT) {
22547 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22549 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22551 if (r->out.needed == NULL) {
22552 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22555 if (r->out.count == NULL) {
22556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22559 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22561 return NDR_ERR_SUCCESS;
22564 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
22566 uint32_t _ptr_servername;
22567 uint32_t _ptr_buffer;
22568 uint32_t _ptr_info;
22569 TALLOC_CTX *_mem_save_servername_0;
22570 TALLOC_CTX *_mem_save_buffer_0;
22571 TALLOC_CTX *_mem_save_info_0;
22572 TALLOC_CTX *_mem_save_needed_0;
22573 TALLOC_CTX *_mem_save_count_0;
22574 if (flags & NDR_IN) {
22575 ZERO_STRUCT(r->out);
22577 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22578 if (_ptr_servername) {
22579 NDR_PULL_ALLOC(ndr, r->in.servername);
22581 r->in.servername = NULL;
22583 if (r->in.servername) {
22584 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22585 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22586 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22587 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22588 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22589 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));
22591 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22592 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22596 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22598 NDR_PULL_ALLOC(ndr, r->in.buffer);
22600 r->in.buffer = NULL;
22602 if (r->in.buffer) {
22603 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22604 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22605 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22609 NDR_PULL_ALLOC(ndr, r->out.needed);
22610 ZERO_STRUCTP(r->out.needed);
22611 NDR_PULL_ALLOC(ndr, r->out.count);
22612 ZERO_STRUCTP(r->out.count);
22614 if (flags & NDR_OUT) {
22615 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22617 NDR_PULL_ALLOC(ndr, r->out.info);
22619 r->out.info = NULL;
22622 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22623 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22624 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22627 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22628 NDR_PULL_ALLOC(ndr, r->out.needed);
22630 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22631 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22633 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22634 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22635 NDR_PULL_ALLOC(ndr, r->out.count);
22637 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22638 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22639 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22641 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22643 return NDR_ERR_SUCCESS;
22646 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
22648 uint32_t cntr_info_0;
22649 if (flags & NDR_IN) {
22650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22653 if (flags & NDR_OUT) {
22654 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22655 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22656 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22658 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22659 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22662 return NDR_ERR_SUCCESS;
22665 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
22667 uint32_t cntr_info_0;
22668 TALLOC_CTX *_mem_save_info_0;
22669 if (flags & NDR_IN) {
22670 ZERO_STRUCT(r->out);
22672 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22675 if (flags & NDR_OUT) {
22676 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22677 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22678 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22679 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22680 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22681 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22683 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22684 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22688 return NDR_ERR_SUCCESS;
22691 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
22693 uint32_t cntr_info_2;
22694 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
22696 if (flags & NDR_SET_VALUES) {
22697 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22699 if (flags & NDR_IN) {
22700 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
22702 ndr_print_ptr(ndr, "servername", r->in.servername);
22704 if (r->in.servername) {
22705 ndr_print_string(ndr, "servername", r->in.servername);
22708 ndr_print_uint32(ndr, "level", r->in.level);
22709 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22711 if (r->in.buffer) {
22712 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22715 ndr_print_uint32(ndr, "offered", r->in.offered);
22718 if (flags & NDR_OUT) {
22719 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
22721 ndr_print_ptr(ndr, "count", r->out.count);
22723 ndr_print_uint32(ndr, "count", *r->out.count);
22725 ndr_print_ptr(ndr, "info", r->out.info);
22727 ndr_print_ptr(ndr, "info", *r->out.info);
22729 if (*r->out.info) {
22730 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22732 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22734 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22735 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22736 ndr_print_spoolss_PortInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22744 ndr_print_ptr(ndr, "needed", r->out.needed);
22746 ndr_print_uint32(ndr, "needed", *r->out.needed);
22748 ndr_print_WERROR(ndr, "result", r->out.result);
22754 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
22756 if (flags & NDR_IN) {
22757 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22758 if (r->in.servername) {
22759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22762 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22765 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
22766 if (r->in.buffer) {
22767 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
22769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22771 if (flags & NDR_OUT) {
22772 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
22774 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
22776 if (r->out.needed == NULL) {
22777 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22779 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22780 if (r->out.count == NULL) {
22781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22784 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22786 return NDR_ERR_SUCCESS;
22789 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
22791 uint32_t _ptr_servername;
22792 uint32_t _ptr_buffer;
22793 uint32_t _ptr_info;
22794 TALLOC_CTX *_mem_save_servername_0;
22795 TALLOC_CTX *_mem_save_buffer_0;
22796 TALLOC_CTX *_mem_save_info_0;
22797 TALLOC_CTX *_mem_save_needed_0;
22798 TALLOC_CTX *_mem_save_count_0;
22799 if (flags & NDR_IN) {
22800 ZERO_STRUCT(r->out);
22802 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22803 if (_ptr_servername) {
22804 NDR_PULL_ALLOC(ndr, r->in.servername);
22806 r->in.servername = NULL;
22808 if (r->in.servername) {
22809 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22810 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22811 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22812 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22813 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22814 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));
22816 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22817 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22818 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22821 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
22823 NDR_PULL_ALLOC(ndr, r->in.buffer);
22825 r->in.buffer = NULL;
22827 if (r->in.buffer) {
22828 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
22829 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
22830 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
22831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
22833 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22834 NDR_PULL_ALLOC(ndr, r->out.needed);
22835 ZERO_STRUCTP(r->out.needed);
22836 NDR_PULL_ALLOC(ndr, r->out.count);
22837 ZERO_STRUCTP(r->out.count);
22839 if (flags & NDR_OUT) {
22840 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
22842 NDR_PULL_ALLOC(ndr, r->out.info);
22844 r->out.info = NULL;
22847 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22848 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22849 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
22850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22852 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22853 NDR_PULL_ALLOC(ndr, r->out.needed);
22855 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22856 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22859 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22860 NDR_PULL_ALLOC(ndr, r->out.count);
22862 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22863 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22866 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22868 return NDR_ERR_SUCCESS;
22871 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
22873 uint32_t cntr_info_0;
22874 if (flags & NDR_IN) {
22875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
22876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
22878 if (flags & NDR_OUT) {
22879 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22880 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22881 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22883 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22884 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22887 return NDR_ERR_SUCCESS;
22890 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
22892 uint32_t cntr_info_0;
22893 TALLOC_CTX *_mem_save_info_0;
22894 if (flags & NDR_IN) {
22895 ZERO_STRUCT(r->out);
22897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
22898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
22900 if (flags & NDR_OUT) {
22901 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
22902 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
22903 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
22904 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22905 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
22906 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
22908 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
22909 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
22911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
22913 return NDR_ERR_SUCCESS;
22916 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
22918 uint32_t cntr_info_2;
22919 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
22921 if (flags & NDR_SET_VALUES) {
22922 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22924 if (flags & NDR_IN) {
22925 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
22927 ndr_print_ptr(ndr, "servername", r->in.servername);
22929 if (r->in.servername) {
22930 ndr_print_string(ndr, "servername", r->in.servername);
22933 ndr_print_uint32(ndr, "level", r->in.level);
22934 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22936 if (r->in.buffer) {
22937 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
22940 ndr_print_uint32(ndr, "offered", r->in.offered);
22943 if (flags & NDR_OUT) {
22944 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
22946 ndr_print_ptr(ndr, "count", r->out.count);
22948 ndr_print_uint32(ndr, "count", *r->out.count);
22950 ndr_print_ptr(ndr, "info", r->out.info);
22952 ndr_print_ptr(ndr, "info", *r->out.info);
22954 if (*r->out.info) {
22955 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
22957 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
22959 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
22960 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
22961 ndr_print_spoolss_MonitorInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
22969 ndr_print_ptr(ndr, "needed", r->out.needed);
22971 ndr_print_uint32(ndr, "needed", *r->out.needed);
22973 ndr_print_WERROR(ndr, "result", r->out.result);
22979 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
22981 if (flags & NDR_IN) {
22982 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
22983 if (r->in.server_name) {
22984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
22987 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));
22989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
22990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
22993 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));
22995 if (flags & NDR_OUT) {
22996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22998 return NDR_ERR_SUCCESS;
23001 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
23003 uint32_t _ptr_server_name;
23004 TALLOC_CTX *_mem_save_server_name_0;
23005 if (flags & NDR_IN) {
23006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
23007 if (_ptr_server_name) {
23008 NDR_PULL_ALLOC(ndr, r->in.server_name);
23010 r->in.server_name = NULL;
23012 if (r->in.server_name) {
23013 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23014 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
23015 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
23016 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
23017 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
23018 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));
23020 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
23021 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));
23022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
23024 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
23025 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
23026 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
23027 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
23028 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));
23030 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
23031 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));
23033 if (flags & NDR_OUT) {
23034 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23036 return NDR_ERR_SUCCESS;
23039 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
23041 ndr_print_struct(ndr, name, "spoolss_AddPort");
23043 if (flags & NDR_SET_VALUES) {
23044 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23046 if (flags & NDR_IN) {
23047 ndr_print_struct(ndr, "in", "spoolss_AddPort");
23049 ndr_print_ptr(ndr, "server_name", r->in.server_name);
23051 if (r->in.server_name) {
23052 ndr_print_string(ndr, "server_name", r->in.server_name);
23055 ndr_print_uint32(ndr, "unknown", r->in.unknown);
23056 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
23059 if (flags & NDR_OUT) {
23060 ndr_print_struct(ndr, "out", "spoolss_AddPort");
23062 ndr_print_WERROR(ndr, "result", r->out.result);
23068 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
23070 if (flags & NDR_IN) {
23072 if (flags & NDR_OUT) {
23073 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23075 return NDR_ERR_SUCCESS;
23078 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
23080 if (flags & NDR_IN) {
23082 if (flags & NDR_OUT) {
23083 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23085 return NDR_ERR_SUCCESS;
23088 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
23090 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
23092 if (flags & NDR_SET_VALUES) {
23093 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23095 if (flags & NDR_IN) {
23096 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
23100 if (flags & NDR_OUT) {
23101 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
23103 ndr_print_WERROR(ndr, "result", r->out.result);
23109 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
23111 if (flags & NDR_IN) {
23113 if (flags & NDR_OUT) {
23114 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23116 return NDR_ERR_SUCCESS;
23119 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
23121 if (flags & NDR_IN) {
23123 if (flags & NDR_OUT) {
23124 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23126 return NDR_ERR_SUCCESS;
23129 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
23131 ndr_print_struct(ndr, name, "spoolss_DeletePort");
23133 if (flags & NDR_SET_VALUES) {
23134 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23136 if (flags & NDR_IN) {
23137 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
23141 if (flags & NDR_OUT) {
23142 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
23144 ndr_print_WERROR(ndr, "result", r->out.result);
23150 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
23152 if (flags & NDR_IN) {
23154 if (flags & NDR_OUT) {
23155 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23157 return NDR_ERR_SUCCESS;
23160 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
23162 if (flags & NDR_IN) {
23164 if (flags & NDR_OUT) {
23165 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23167 return NDR_ERR_SUCCESS;
23170 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
23172 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
23174 if (flags & NDR_SET_VALUES) {
23175 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23177 if (flags & NDR_IN) {
23178 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
23182 if (flags & NDR_OUT) {
23183 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
23185 ndr_print_WERROR(ndr, "result", r->out.result);
23191 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23193 if (flags & NDR_IN) {
23195 if (flags & NDR_OUT) {
23196 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23198 return NDR_ERR_SUCCESS;
23201 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
23203 if (flags & NDR_IN) {
23205 if (flags & NDR_OUT) {
23206 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23208 return NDR_ERR_SUCCESS;
23211 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
23213 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
23215 if (flags & NDR_SET_VALUES) {
23216 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23218 if (flags & NDR_IN) {
23219 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
23223 if (flags & NDR_OUT) {
23224 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
23226 ndr_print_WERROR(ndr, "result", r->out.result);
23232 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
23234 if (flags & NDR_IN) {
23236 if (flags & NDR_OUT) {
23237 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23239 return NDR_ERR_SUCCESS;
23242 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
23244 if (flags & NDR_IN) {
23246 if (flags & NDR_OUT) {
23247 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23249 return NDR_ERR_SUCCESS;
23252 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
23254 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
23256 if (flags & NDR_SET_VALUES) {
23257 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23259 if (flags & NDR_IN) {
23260 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
23264 if (flags & NDR_OUT) {
23265 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
23267 ndr_print_WERROR(ndr, "result", r->out.result);
23273 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
23275 if (flags & NDR_IN) {
23277 if (flags & NDR_OUT) {
23278 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23280 return NDR_ERR_SUCCESS;
23283 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
23285 if (flags & NDR_IN) {
23287 if (flags & NDR_OUT) {
23288 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23290 return NDR_ERR_SUCCESS;
23293 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
23295 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
23297 if (flags & NDR_SET_VALUES) {
23298 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23300 if (flags & NDR_IN) {
23301 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
23305 if (flags & NDR_OUT) {
23306 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
23308 ndr_print_WERROR(ndr, "result", r->out.result);
23314 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
23316 if (flags & NDR_IN) {
23318 if (flags & NDR_OUT) {
23319 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23321 return NDR_ERR_SUCCESS;
23324 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
23326 if (flags & NDR_IN) {
23328 if (flags & NDR_OUT) {
23329 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23331 return NDR_ERR_SUCCESS;
23334 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
23336 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
23338 if (flags & NDR_SET_VALUES) {
23339 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23341 if (flags & NDR_IN) {
23342 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
23346 if (flags & NDR_OUT) {
23347 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
23349 ndr_print_WERROR(ndr, "result", r->out.result);
23355 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
23357 if (flags & NDR_IN) {
23359 if (flags & NDR_OUT) {
23360 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23362 return NDR_ERR_SUCCESS;
23365 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
23367 if (flags & NDR_IN) {
23369 if (flags & NDR_OUT) {
23370 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23372 return NDR_ERR_SUCCESS;
23375 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
23377 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
23379 if (flags & NDR_SET_VALUES) {
23380 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23382 if (flags & NDR_IN) {
23383 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
23387 if (flags & NDR_OUT) {
23388 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
23390 ndr_print_WERROR(ndr, "result", r->out.result);
23396 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
23398 if (flags & NDR_IN) {
23400 if (flags & NDR_OUT) {
23401 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23403 return NDR_ERR_SUCCESS;
23406 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
23408 if (flags & NDR_IN) {
23410 if (flags & NDR_OUT) {
23411 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23413 return NDR_ERR_SUCCESS;
23416 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
23418 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
23420 if (flags & NDR_SET_VALUES) {
23421 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23423 if (flags & NDR_IN) {
23424 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
23428 if (flags & NDR_OUT) {
23429 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
23431 ndr_print_WERROR(ndr, "result", r->out.result);
23437 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
23439 if (flags & NDR_IN) {
23441 if (flags & NDR_OUT) {
23442 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23444 return NDR_ERR_SUCCESS;
23447 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
23449 if (flags & NDR_IN) {
23451 if (flags & NDR_OUT) {
23452 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23454 return NDR_ERR_SUCCESS;
23457 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
23459 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
23461 if (flags & NDR_SET_VALUES) {
23462 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23464 if (flags & NDR_IN) {
23465 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
23469 if (flags & NDR_OUT) {
23470 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
23472 ndr_print_WERROR(ndr, "result", r->out.result);
23478 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
23480 if (flags & NDR_IN) {
23482 if (flags & NDR_OUT) {
23483 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23485 return NDR_ERR_SUCCESS;
23488 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
23490 if (flags & NDR_IN) {
23492 if (flags & NDR_OUT) {
23493 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23495 return NDR_ERR_SUCCESS;
23498 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
23500 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
23502 if (flags & NDR_SET_VALUES) {
23503 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23505 if (flags & NDR_IN) {
23506 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
23510 if (flags & NDR_OUT) {
23511 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
23513 ndr_print_WERROR(ndr, "result", r->out.result);
23519 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
23521 if (flags & NDR_IN) {
23523 if (flags & NDR_OUT) {
23524 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23526 return NDR_ERR_SUCCESS;
23529 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
23531 if (flags & NDR_IN) {
23533 if (flags & NDR_OUT) {
23534 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23536 return NDR_ERR_SUCCESS;
23539 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
23541 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
23543 if (flags & NDR_SET_VALUES) {
23544 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23546 if (flags & NDR_IN) {
23547 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
23551 if (flags & NDR_OUT) {
23552 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
23554 ndr_print_WERROR(ndr, "result", r->out.result);
23560 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
23562 if (flags & NDR_IN) {
23564 if (flags & NDR_OUT) {
23565 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23567 return NDR_ERR_SUCCESS;
23570 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
23572 if (flags & NDR_IN) {
23574 if (flags & NDR_OUT) {
23575 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23577 return NDR_ERR_SUCCESS;
23580 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
23582 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
23584 if (flags & NDR_SET_VALUES) {
23585 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23587 if (flags & NDR_IN) {
23588 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
23592 if (flags & NDR_OUT) {
23593 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
23595 ndr_print_WERROR(ndr, "result", r->out.result);
23601 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcDataTypes *r)
23603 if (flags & NDR_IN) {
23604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23605 if (r->in.servername) {
23606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23609 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.print_processor_name));
23612 if (r->in.print_processor_name) {
23613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
23616 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));
23618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23620 if (r->in.buffer) {
23621 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23625 if (flags & NDR_OUT) {
23626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23628 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
23630 if (r->out.needed == NULL) {
23631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
23634 if (r->out.count == NULL) {
23635 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
23638 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23640 return NDR_ERR_SUCCESS;
23643 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcDataTypes *r)
23645 uint32_t _ptr_servername;
23646 uint32_t _ptr_print_processor_name;
23647 uint32_t _ptr_buffer;
23648 uint32_t _ptr_info;
23649 TALLOC_CTX *_mem_save_servername_0;
23650 TALLOC_CTX *_mem_save_print_processor_name_0;
23651 TALLOC_CTX *_mem_save_buffer_0;
23652 TALLOC_CTX *_mem_save_info_0;
23653 TALLOC_CTX *_mem_save_needed_0;
23654 TALLOC_CTX *_mem_save_count_0;
23655 if (flags & NDR_IN) {
23656 ZERO_STRUCT(r->out);
23658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23659 if (_ptr_servername) {
23660 NDR_PULL_ALLOC(ndr, r->in.servername);
23662 r->in.servername = NULL;
23664 if (r->in.servername) {
23665 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23666 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23667 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23668 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23669 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23670 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));
23672 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23673 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
23677 if (_ptr_print_processor_name) {
23678 NDR_PULL_ALLOC(ndr, r->in.print_processor_name);
23680 r->in.print_processor_name = NULL;
23682 if (r->in.print_processor_name) {
23683 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
23684 NDR_PULL_SET_MEM_CTX(ndr, r->in.print_processor_name, 0);
23685 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
23686 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
23687 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
23688 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));
23690 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
23691 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));
23692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
23694 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
23697 NDR_PULL_ALLOC(ndr, r->in.buffer);
23699 r->in.buffer = NULL;
23701 if (r->in.buffer) {
23702 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
23703 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
23704 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
23705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
23707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
23708 NDR_PULL_ALLOC(ndr, r->out.needed);
23709 ZERO_STRUCTP(r->out.needed);
23710 NDR_PULL_ALLOC(ndr, r->out.count);
23711 ZERO_STRUCTP(r->out.count);
23713 if (flags & NDR_OUT) {
23714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
23716 NDR_PULL_ALLOC(ndr, r->out.info);
23718 r->out.info = NULL;
23721 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23722 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23723 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
23724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23726 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23727 NDR_PULL_ALLOC(ndr, r->out.needed);
23729 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
23730 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
23731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
23732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
23733 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23734 NDR_PULL_ALLOC(ndr, r->out.count);
23736 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
23737 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
23738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
23739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
23740 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23742 return NDR_ERR_SUCCESS;
23745 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcDataTypes *r)
23747 uint32_t cntr_info_0;
23748 if (flags & NDR_IN) {
23749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
23752 if (flags & NDR_OUT) {
23753 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23754 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23755 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23757 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23758 NDR_CHECK(ndr_push_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23761 return NDR_ERR_SUCCESS;
23764 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcDataTypes *r)
23766 uint32_t cntr_info_0;
23767 TALLOC_CTX *_mem_save_info_0;
23768 if (flags & NDR_IN) {
23769 ZERO_STRUCT(r->out);
23771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
23772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
23774 if (flags & NDR_OUT) {
23775 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
23776 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
23777 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
23778 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23779 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
23780 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
23782 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
23783 NDR_CHECK(ndr_pull_spoolss_PrintProcDataTypesInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
23785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
23787 return NDR_ERR_SUCCESS;
23790 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
23792 uint32_t cntr_info_2;
23793 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
23795 if (flags & NDR_SET_VALUES) {
23796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23798 if (flags & NDR_IN) {
23799 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
23801 ndr_print_ptr(ndr, "servername", r->in.servername);
23803 if (r->in.servername) {
23804 ndr_print_string(ndr, "servername", r->in.servername);
23807 ndr_print_ptr(ndr, "print_processor_name", r->in.print_processor_name);
23809 if (r->in.print_processor_name) {
23810 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
23813 ndr_print_uint32(ndr, "level", r->in.level);
23814 ndr_print_ptr(ndr, "buffer", r->in.buffer);
23816 if (r->in.buffer) {
23817 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
23820 ndr_print_uint32(ndr, "offered", r->in.offered);
23823 if (flags & NDR_OUT) {
23824 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
23826 ndr_print_ptr(ndr, "count", r->out.count);
23828 ndr_print_uint32(ndr, "count", *r->out.count);
23830 ndr_print_ptr(ndr, "info", r->out.info);
23832 ndr_print_ptr(ndr, "info", *r->out.info);
23834 if (*r->out.info) {
23835 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
23837 for (cntr_info_2=0;cntr_info_2<*r->out.count;cntr_info_2++) {
23839 if (asprintf(&idx_2, "[%d]", cntr_info_2) != -1) {
23840 ndr_print_set_switch_value(ndr, &(*r->out.info)[cntr_info_2], r->in.level);
23841 ndr_print_spoolss_PrintProcDataTypesInfo(ndr, "info", &(*r->out.info)[cntr_info_2]);
23849 ndr_print_ptr(ndr, "needed", r->out.needed);
23851 ndr_print_uint32(ndr, "needed", *r->out.needed);
23853 ndr_print_WERROR(ndr, "result", r->out.result);
23859 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
23861 if (flags & NDR_IN) {
23862 if (r->in.handle == NULL) {
23863 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23865 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23866 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
23867 if (r->in.data_type) {
23868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
23871 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));
23873 if (r->in.devmode_ctr == NULL) {
23874 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23876 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23878 if (flags & NDR_OUT) {
23879 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23881 return NDR_ERR_SUCCESS;
23884 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
23886 uint32_t _ptr_data_type;
23887 TALLOC_CTX *_mem_save_handle_0;
23888 TALLOC_CTX *_mem_save_data_type_0;
23889 TALLOC_CTX *_mem_save_devmode_ctr_0;
23890 if (flags & NDR_IN) {
23891 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23892 NDR_PULL_ALLOC(ndr, r->in.handle);
23894 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
23895 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
23896 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
23898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
23899 if (_ptr_data_type) {
23900 NDR_PULL_ALLOC(ndr, r->in.data_type);
23902 r->in.data_type = NULL;
23904 if (r->in.data_type) {
23905 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
23906 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
23907 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
23908 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
23909 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
23910 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));
23912 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
23913 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));
23914 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
23916 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23917 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
23919 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
23920 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
23921 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
23922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
23924 if (flags & NDR_OUT) {
23925 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23927 return NDR_ERR_SUCCESS;
23930 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
23932 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
23934 if (flags & NDR_SET_VALUES) {
23935 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23937 if (flags & NDR_IN) {
23938 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
23940 ndr_print_ptr(ndr, "handle", r->in.handle);
23942 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23944 ndr_print_ptr(ndr, "data_type", r->in.data_type);
23946 if (r->in.data_type) {
23947 ndr_print_string(ndr, "data_type", r->in.data_type);
23950 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
23952 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
23956 if (flags & NDR_OUT) {
23957 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
23959 ndr_print_WERROR(ndr, "result", r->out.result);
23965 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
23967 if (flags & NDR_IN) {
23968 if (r->in.handle == NULL) {
23969 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23971 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
23972 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
23973 if (r->in.architecture) {
23974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
23977 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
23980 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
23981 if (r->in.buffer) {
23982 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
23984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
23985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
23986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
23988 if (flags & NDR_OUT) {
23989 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
23992 struct ndr_push *_ndr_info;
23993 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
23994 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
23995 NDR_CHECK(ndr_push_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
23996 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
23999 if (r->out.needed == NULL) {
24000 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
24003 if (r->out.server_major_version == NULL) {
24004 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
24007 if (r->out.server_minor_version == NULL) {
24008 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
24011 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24013 return NDR_ERR_SUCCESS;
24016 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
24018 uint32_t _ptr_architecture;
24019 uint32_t _ptr_buffer;
24020 uint32_t _ptr_info;
24021 TALLOC_CTX *_mem_save_handle_0;
24022 TALLOC_CTX *_mem_save_architecture_0;
24023 TALLOC_CTX *_mem_save_buffer_0;
24024 TALLOC_CTX *_mem_save_info_0;
24025 TALLOC_CTX *_mem_save_needed_0;
24026 TALLOC_CTX *_mem_save_server_major_version_0;
24027 TALLOC_CTX *_mem_save_server_minor_version_0;
24028 if (flags & NDR_IN) {
24029 ZERO_STRUCT(r->out);
24031 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24032 NDR_PULL_ALLOC(ndr, r->in.handle);
24034 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24035 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24036 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
24039 if (_ptr_architecture) {
24040 NDR_PULL_ALLOC(ndr, r->in.architecture);
24042 r->in.architecture = NULL;
24044 if (r->in.architecture) {
24045 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
24046 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
24047 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
24048 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
24049 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
24050 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));
24052 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
24053 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
24054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
24056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
24057 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24059 NDR_PULL_ALLOC(ndr, r->in.buffer);
24061 r->in.buffer = NULL;
24063 if (r->in.buffer) {
24064 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24065 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24066 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
24067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
24070 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
24071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
24072 NDR_PULL_ALLOC(ndr, r->out.needed);
24073 ZERO_STRUCTP(r->out.needed);
24074 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24075 ZERO_STRUCTP(r->out.server_major_version);
24076 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24077 ZERO_STRUCTP(r->out.server_minor_version);
24079 if (flags & NDR_OUT) {
24080 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
24082 NDR_PULL_ALLOC(ndr, r->out.info);
24084 r->out.info = NULL;
24087 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
24088 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
24090 struct ndr_pull *_ndr_info;
24091 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
24092 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
24093 NDR_CHECK(ndr_pull_spoolss_DriverInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
24094 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
24096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
24098 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24099 NDR_PULL_ALLOC(ndr, r->out.needed);
24101 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
24102 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
24103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
24104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
24105 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24106 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
24108 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24109 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
24110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
24111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
24112 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24113 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
24115 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
24116 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
24117 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
24118 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
24119 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24121 return NDR_ERR_SUCCESS;
24124 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
24126 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
24128 if (flags & NDR_SET_VALUES) {
24129 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24131 if (flags & NDR_IN) {
24132 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
24134 ndr_print_ptr(ndr, "handle", r->in.handle);
24136 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24138 ndr_print_ptr(ndr, "architecture", r->in.architecture);
24140 if (r->in.architecture) {
24141 ndr_print_string(ndr, "architecture", r->in.architecture);
24144 ndr_print_uint32(ndr, "level", r->in.level);
24145 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24147 if (r->in.buffer) {
24148 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
24151 ndr_print_uint32(ndr, "offered", r->in.offered);
24152 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
24153 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
24156 if (flags & NDR_OUT) {
24157 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
24159 ndr_print_ptr(ndr, "info", r->out.info);
24162 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
24163 ndr_print_spoolss_DriverInfo(ndr, "info", r->out.info);
24166 ndr_print_ptr(ndr, "needed", r->out.needed);
24168 ndr_print_uint32(ndr, "needed", *r->out.needed);
24170 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
24172 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
24174 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
24176 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
24178 ndr_print_WERROR(ndr, "result", r->out.result);
24184 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24186 if (flags & NDR_IN) {
24188 if (flags & NDR_OUT) {
24189 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24191 return NDR_ERR_SUCCESS;
24194 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
24196 if (flags & NDR_IN) {
24198 if (flags & NDR_OUT) {
24199 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24201 return NDR_ERR_SUCCESS;
24204 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
24206 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
24208 if (flags & NDR_SET_VALUES) {
24209 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24211 if (flags & NDR_IN) {
24212 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
24216 if (flags & NDR_OUT) {
24217 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
24219 ndr_print_WERROR(ndr, "result", r->out.result);
24225 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24227 if (flags & NDR_IN) {
24229 if (flags & NDR_OUT) {
24230 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24232 return NDR_ERR_SUCCESS;
24235 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
24237 if (flags & NDR_IN) {
24239 if (flags & NDR_OUT) {
24240 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24242 return NDR_ERR_SUCCESS;
24245 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
24247 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
24249 if (flags & NDR_SET_VALUES) {
24250 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24252 if (flags & NDR_IN) {
24253 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
24257 if (flags & NDR_OUT) {
24258 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
24260 ndr_print_WERROR(ndr, "result", r->out.result);
24266 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
24268 if (flags & NDR_IN) {
24269 if (r->in.handle == NULL) {
24270 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24272 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24274 if (flags & NDR_OUT) {
24275 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24277 return NDR_ERR_SUCCESS;
24280 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
24282 TALLOC_CTX *_mem_save_handle_0;
24283 if (flags & NDR_IN) {
24284 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24285 NDR_PULL_ALLOC(ndr, r->in.handle);
24287 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24288 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24289 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24292 if (flags & NDR_OUT) {
24293 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24295 return NDR_ERR_SUCCESS;
24298 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
24300 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
24302 if (flags & NDR_SET_VALUES) {
24303 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24305 if (flags & NDR_IN) {
24306 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
24308 ndr_print_ptr(ndr, "handle", r->in.handle);
24310 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24314 if (flags & NDR_OUT) {
24315 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
24317 ndr_print_WERROR(ndr, "result", r->out.result);
24323 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24325 if (flags & NDR_IN) {
24327 if (flags & NDR_OUT) {
24328 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24330 return NDR_ERR_SUCCESS;
24333 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24335 if (flags & NDR_IN) {
24337 if (flags & NDR_OUT) {
24338 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24340 return NDR_ERR_SUCCESS;
24343 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
24345 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24347 if (flags & NDR_SET_VALUES) {
24348 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24350 if (flags & NDR_IN) {
24351 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24355 if (flags & NDR_OUT) {
24356 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
24358 ndr_print_WERROR(ndr, "result", r->out.result);
24364 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
24366 if (flags & NDR_IN) {
24367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
24370 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));
24371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24372 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
24373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24374 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24375 if (r->in.buffer) {
24376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24377 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24380 if (flags & NDR_OUT) {
24381 if (r->out.handle == NULL) {
24382 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24384 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24385 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24387 return NDR_ERR_SUCCESS;
24390 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
24392 uint32_t _ptr_buffer;
24393 TALLOC_CTX *_mem_save_buffer_0;
24394 TALLOC_CTX *_mem_save_handle_0;
24395 if (flags & NDR_IN) {
24396 ZERO_STRUCT(r->out);
24398 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
24399 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
24400 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
24401 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));
24403 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
24404 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));
24405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24406 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
24407 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24408 if (r->in.bufsize > 512) {
24409 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24411 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24413 NDR_PULL_ALLOC(ndr, r->in.buffer);
24415 r->in.buffer = NULL;
24417 if (r->in.buffer) {
24418 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24419 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24420 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24421 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24422 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24425 NDR_PULL_ALLOC(ndr, r->out.handle);
24426 ZERO_STRUCTP(r->out.handle);
24427 if (r->in.buffer) {
24428 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24431 if (flags & NDR_OUT) {
24432 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24433 NDR_PULL_ALLOC(ndr, r->out.handle);
24435 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24436 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24437 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24439 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24441 return NDR_ERR_SUCCESS;
24444 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
24446 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
24448 if (flags & NDR_SET_VALUES) {
24449 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24451 if (flags & NDR_IN) {
24452 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
24454 ndr_print_string(ndr, "server_name", r->in.server_name);
24455 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24456 ndr_print_winreg_Type(ndr, "type", r->in.type);
24457 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24458 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24460 if (r->in.buffer) {
24461 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24466 if (flags & NDR_OUT) {
24467 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
24469 ndr_print_ptr(ndr, "handle", r->out.handle);
24471 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24473 ndr_print_WERROR(ndr, "result", r->out.result);
24479 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
24481 if (flags & NDR_IN) {
24482 if (r->in.handle == NULL) {
24483 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24485 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24486 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24488 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
24489 if (r->in.buffer) {
24490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
24491 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
24494 if (flags & NDR_OUT) {
24495 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24497 return NDR_ERR_SUCCESS;
24500 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
24502 uint32_t _ptr_buffer;
24503 TALLOC_CTX *_mem_save_handle_0;
24504 TALLOC_CTX *_mem_save_buffer_0;
24505 if (flags & NDR_IN) {
24506 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24507 NDR_PULL_ALLOC(ndr, r->in.handle);
24509 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24510 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24511 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24513 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24514 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
24515 if (r->in.bufsize > 512) {
24516 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
24518 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
24520 NDR_PULL_ALLOC(ndr, r->in.buffer);
24522 r->in.buffer = NULL;
24524 if (r->in.buffer) {
24525 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
24526 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
24527 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
24528 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
24529 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
24530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
24532 if (r->in.buffer) {
24533 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
24536 if (flags & NDR_OUT) {
24537 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24539 return NDR_ERR_SUCCESS;
24542 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
24544 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
24546 if (flags & NDR_SET_VALUES) {
24547 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24549 if (flags & NDR_IN) {
24550 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
24552 ndr_print_ptr(ndr, "handle", r->in.handle);
24554 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24556 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24557 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
24558 ndr_print_ptr(ndr, "buffer", r->in.buffer);
24560 if (r->in.buffer) {
24561 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
24566 if (flags & NDR_OUT) {
24567 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
24569 ndr_print_WERROR(ndr, "result", r->out.result);
24575 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
24577 if (flags & NDR_IN) {
24578 if (r->in.handle == NULL) {
24579 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24581 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24583 if (flags & NDR_OUT) {
24584 if (r->out.handle == NULL) {
24585 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24587 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24588 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24590 return NDR_ERR_SUCCESS;
24593 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
24595 TALLOC_CTX *_mem_save_handle_0;
24596 if (flags & NDR_IN) {
24597 ZERO_STRUCT(r->out);
24599 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24600 NDR_PULL_ALLOC(ndr, r->in.handle);
24602 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24603 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24604 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24605 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24606 NDR_PULL_ALLOC(ndr, r->out.handle);
24607 *r->out.handle = *r->in.handle;
24609 if (flags & NDR_OUT) {
24610 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24611 NDR_PULL_ALLOC(ndr, r->out.handle);
24613 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24614 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
24615 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
24616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24617 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24619 return NDR_ERR_SUCCESS;
24622 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
24624 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
24626 if (flags & NDR_SET_VALUES) {
24627 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24629 if (flags & NDR_IN) {
24630 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
24632 ndr_print_ptr(ndr, "handle", r->in.handle);
24634 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24638 if (flags & NDR_OUT) {
24639 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
24641 ndr_print_ptr(ndr, "handle", r->out.handle);
24643 ndr_print_policy_handle(ndr, "handle", r->out.handle);
24645 ndr_print_WERROR(ndr, "result", r->out.result);
24651 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
24653 if (flags & NDR_IN) {
24655 if (flags & NDR_OUT) {
24656 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24658 return NDR_ERR_SUCCESS;
24661 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
24663 if (flags & NDR_IN) {
24665 if (flags & NDR_OUT) {
24666 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24668 return NDR_ERR_SUCCESS;
24671 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
24673 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
24675 if (flags & NDR_SET_VALUES) {
24676 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24678 if (flags & NDR_IN) {
24679 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
24683 if (flags & NDR_OUT) {
24684 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
24686 ndr_print_WERROR(ndr, "result", r->out.result);
24692 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24694 if (flags & NDR_IN) {
24696 if (flags & NDR_OUT) {
24697 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24699 return NDR_ERR_SUCCESS;
24702 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24704 if (flags & NDR_IN) {
24706 if (flags & NDR_OUT) {
24707 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24709 return NDR_ERR_SUCCESS;
24712 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
24714 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
24716 if (flags & NDR_SET_VALUES) {
24717 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24719 if (flags & NDR_IN) {
24720 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
24724 if (flags & NDR_OUT) {
24725 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
24727 ndr_print_WERROR(ndr, "result", r->out.result);
24733 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
24735 if (flags & NDR_IN) {
24737 if (flags & NDR_OUT) {
24738 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24740 return NDR_ERR_SUCCESS;
24743 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
24745 if (flags & NDR_IN) {
24747 if (flags & NDR_OUT) {
24748 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24750 return NDR_ERR_SUCCESS;
24753 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
24755 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
24757 if (flags & NDR_SET_VALUES) {
24758 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24760 if (flags & NDR_IN) {
24761 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
24765 if (flags & NDR_OUT) {
24766 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
24768 ndr_print_WERROR(ndr, "result", r->out.result);
24774 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
24776 if (flags & NDR_IN) {
24778 if (flags & NDR_OUT) {
24779 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24781 return NDR_ERR_SUCCESS;
24784 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
24786 if (flags & NDR_IN) {
24788 if (flags & NDR_OUT) {
24789 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24791 return NDR_ERR_SUCCESS;
24794 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
24796 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
24798 if (flags & NDR_SET_VALUES) {
24799 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24801 if (flags & NDR_IN) {
24802 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
24806 if (flags & NDR_OUT) {
24807 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
24809 ndr_print_WERROR(ndr, "result", r->out.result);
24815 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24817 if (flags & NDR_IN) {
24818 if (r->in.handle == NULL) {
24819 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24821 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24822 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
24824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
24825 if (r->in.local_machine) {
24826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
24828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
24829 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));
24831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
24832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
24833 if (r->in.notify_options) {
24834 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24837 if (flags & NDR_OUT) {
24838 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24840 return NDR_ERR_SUCCESS;
24843 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24845 uint32_t _ptr_local_machine;
24846 uint32_t _ptr_notify_options;
24847 TALLOC_CTX *_mem_save_handle_0;
24848 TALLOC_CTX *_mem_save_local_machine_0;
24849 TALLOC_CTX *_mem_save_notify_options_0;
24850 if (flags & NDR_IN) {
24851 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24852 NDR_PULL_ALLOC(ndr, r->in.handle);
24854 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24855 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24856 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24858 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
24860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
24861 if (_ptr_local_machine) {
24862 NDR_PULL_ALLOC(ndr, r->in.local_machine);
24864 r->in.local_machine = NULL;
24866 if (r->in.local_machine) {
24867 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
24868 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
24869 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
24870 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
24871 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
24872 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));
24874 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
24875 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));
24876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
24878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
24879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
24880 if (_ptr_notify_options) {
24881 NDR_PULL_ALLOC(ndr, r->in.notify_options);
24883 r->in.notify_options = NULL;
24885 if (r->in.notify_options) {
24886 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
24887 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
24888 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
24889 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
24892 if (flags & NDR_OUT) {
24893 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24895 return NDR_ERR_SUCCESS;
24898 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
24900 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24902 if (flags & NDR_SET_VALUES) {
24903 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
24905 if (flags & NDR_IN) {
24906 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24908 ndr_print_ptr(ndr, "handle", r->in.handle);
24910 ndr_print_policy_handle(ndr, "handle", r->in.handle);
24912 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
24913 ndr_print_uint32(ndr, "options", r->in.options);
24914 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
24916 if (r->in.local_machine) {
24917 ndr_print_string(ndr, "local_machine", r->in.local_machine);
24920 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
24921 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
24923 if (r->in.notify_options) {
24924 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
24929 if (flags & NDR_OUT) {
24930 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
24932 ndr_print_WERROR(ndr, "result", r->out.result);
24938 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24940 if (flags & NDR_IN) {
24941 if (r->in.handle == NULL) {
24942 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24944 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
24946 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
24947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
24948 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24949 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24951 if (flags & NDR_OUT) {
24952 if (r->out.reply_result == NULL) {
24953 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
24955 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
24956 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
24958 return NDR_ERR_SUCCESS;
24961 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
24963 TALLOC_CTX *_mem_save_handle_0;
24964 TALLOC_CTX *_mem_save_reply_result_0;
24965 if (flags & NDR_IN) {
24966 ZERO_STRUCT(r->out);
24968 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24969 NDR_PULL_ALLOC(ndr, r->in.handle);
24971 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
24972 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
24973 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
24974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
24975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
24976 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
24977 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
24978 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
24979 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
24980 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24981 ZERO_STRUCTP(r->out.reply_result);
24983 if (flags & NDR_OUT) {
24984 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
24985 NDR_PULL_ALLOC(ndr, r->out.reply_result);
24987 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
24988 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
24989 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
24990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
24991 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
24993 return NDR_ERR_SUCCESS;
24996 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
24998 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
25000 if (flags & NDR_SET_VALUES) {
25001 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25003 if (flags & NDR_IN) {
25004 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
25006 ndr_print_ptr(ndr, "handle", r->in.handle);
25008 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25010 ndr_print_uint32(ndr, "color", r->in.color);
25011 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
25012 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
25013 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
25014 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
25017 if (flags & NDR_OUT) {
25018 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
25020 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
25022 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
25024 ndr_print_WERROR(ndr, "result", r->out.result);
25030 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25032 if (flags & NDR_IN) {
25033 if (r->in.handle == NULL) {
25034 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25036 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
25038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
25039 if (r->in.options) {
25040 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25043 if (flags & NDR_OUT) {
25044 if (r->out.info == NULL) {
25045 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25047 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
25048 if (*r->out.info) {
25049 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25053 return NDR_ERR_SUCCESS;
25056 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
25058 uint32_t _ptr_options;
25059 uint32_t _ptr_info;
25060 TALLOC_CTX *_mem_save_handle_0;
25061 TALLOC_CTX *_mem_save_options_0;
25062 TALLOC_CTX *_mem_save_info_0;
25063 TALLOC_CTX *_mem_save_info_1;
25064 if (flags & NDR_IN) {
25065 ZERO_STRUCT(r->out);
25067 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25068 NDR_PULL_ALLOC(ndr, r->in.handle);
25070 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25071 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25072 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25073 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25074 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
25075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
25076 if (_ptr_options) {
25077 NDR_PULL_ALLOC(ndr, r->in.options);
25079 r->in.options = NULL;
25081 if (r->in.options) {
25082 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
25083 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
25084 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
25085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
25087 NDR_PULL_ALLOC(ndr, r->out.info);
25088 ZERO_STRUCTP(r->out.info);
25090 if (flags & NDR_OUT) {
25091 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25092 NDR_PULL_ALLOC(ndr, r->out.info);
25094 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
25095 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
25096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
25098 NDR_PULL_ALLOC(ndr, *r->out.info);
25100 *r->out.info = NULL;
25102 if (*r->out.info) {
25103 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
25104 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
25105 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
25106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
25108 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
25109 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25111 return NDR_ERR_SUCCESS;
25114 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
25116 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
25118 if (flags & NDR_SET_VALUES) {
25119 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25121 if (flags & NDR_IN) {
25122 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
25124 ndr_print_ptr(ndr, "handle", r->in.handle);
25126 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25128 ndr_print_uint32(ndr, "change_low", r->in.change_low);
25129 ndr_print_ptr(ndr, "options", r->in.options);
25131 if (r->in.options) {
25132 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
25137 if (flags & NDR_OUT) {
25138 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
25140 ndr_print_ptr(ndr, "info", r->out.info);
25142 ndr_print_ptr(ndr, "info", *r->out.info);
25144 if (*r->out.info) {
25145 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
25149 ndr_print_WERROR(ndr, "result", r->out.result);
25155 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
25157 if (flags & NDR_IN) {
25159 if (flags & NDR_OUT) {
25160 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25162 return NDR_ERR_SUCCESS;
25165 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
25167 if (flags & NDR_IN) {
25169 if (flags & NDR_OUT) {
25170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25172 return NDR_ERR_SUCCESS;
25175 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
25177 ndr_print_struct(ndr, name, "spoolss_44");
25179 if (flags & NDR_SET_VALUES) {
25180 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25182 if (flags & NDR_IN) {
25183 ndr_print_struct(ndr, "in", "spoolss_44");
25187 if (flags & NDR_OUT) {
25188 ndr_print_struct(ndr, "out", "spoolss_44");
25190 ndr_print_WERROR(ndr, "result", r->out.result);
25196 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
25198 if (flags & NDR_IN) {
25199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
25200 if (r->in.printername) {
25201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
25204 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
25207 if (r->in.datatype) {
25208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
25211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25213 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25214 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
25215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
25216 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25217 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25219 if (flags & NDR_OUT) {
25220 if (r->out.handle == NULL) {
25221 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25223 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25224 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25226 return NDR_ERR_SUCCESS;
25229 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
25231 uint32_t _ptr_printername;
25232 uint32_t _ptr_datatype;
25233 TALLOC_CTX *_mem_save_printername_0;
25234 TALLOC_CTX *_mem_save_datatype_0;
25235 TALLOC_CTX *_mem_save_handle_0;
25236 if (flags & NDR_IN) {
25237 ZERO_STRUCT(r->out);
25239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
25240 if (_ptr_printername) {
25241 NDR_PULL_ALLOC(ndr, r->in.printername);
25243 r->in.printername = NULL;
25245 if (r->in.printername) {
25246 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
25247 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
25248 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
25249 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
25250 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
25251 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));
25253 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
25254 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
25255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
25257 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
25258 if (_ptr_datatype) {
25259 NDR_PULL_ALLOC(ndr, r->in.datatype);
25261 r->in.datatype = NULL;
25263 if (r->in.datatype) {
25264 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
25265 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
25266 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
25267 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
25268 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
25269 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));
25271 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
25272 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
25273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
25275 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
25276 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
25277 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
25278 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
25279 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
25280 NDR_PULL_ALLOC(ndr, r->out.handle);
25281 ZERO_STRUCTP(r->out.handle);
25283 if (flags & NDR_OUT) {
25284 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25285 NDR_PULL_ALLOC(ndr, r->out.handle);
25287 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25288 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25289 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25291 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25293 return NDR_ERR_SUCCESS;
25296 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
25298 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
25300 if (flags & NDR_SET_VALUES) {
25301 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25303 if (flags & NDR_IN) {
25304 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
25306 ndr_print_ptr(ndr, "printername", r->in.printername);
25308 if (r->in.printername) {
25309 ndr_print_string(ndr, "printername", r->in.printername);
25312 ndr_print_ptr(ndr, "datatype", r->in.datatype);
25314 if (r->in.datatype) {
25315 ndr_print_string(ndr, "datatype", r->in.datatype);
25318 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
25319 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
25320 ndr_print_uint32(ndr, "level", r->in.level);
25321 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
25322 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
25325 if (flags & NDR_OUT) {
25326 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
25328 ndr_print_ptr(ndr, "handle", r->out.handle);
25330 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25332 ndr_print_WERROR(ndr, "result", r->out.result);
25338 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
25340 if (flags & NDR_IN) {
25341 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
25342 if (r->in.server) {
25343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
25346 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
25348 if (r->in.info_ctr == NULL) {
25349 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25351 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25352 if (r->in.devmode_ctr == NULL) {
25353 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25355 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25356 if (r->in.secdesc_ctr == NULL) {
25357 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25359 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25360 if (r->in.userlevel_ctr == NULL) {
25361 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25363 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25365 if (flags & NDR_OUT) {
25366 if (r->out.handle == NULL) {
25367 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25369 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25370 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25372 return NDR_ERR_SUCCESS;
25375 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
25377 uint32_t _ptr_server;
25378 TALLOC_CTX *_mem_save_server_0;
25379 TALLOC_CTX *_mem_save_info_ctr_0;
25380 TALLOC_CTX *_mem_save_devmode_ctr_0;
25381 TALLOC_CTX *_mem_save_secdesc_ctr_0;
25382 TALLOC_CTX *_mem_save_userlevel_ctr_0;
25383 TALLOC_CTX *_mem_save_handle_0;
25384 if (flags & NDR_IN) {
25385 ZERO_STRUCT(r->out);
25387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
25389 NDR_PULL_ALLOC(ndr, r->in.server);
25391 r->in.server = NULL;
25393 if (r->in.server) {
25394 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
25395 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
25396 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
25397 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
25398 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
25399 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));
25401 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
25402 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
25403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
25405 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25406 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
25408 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25409 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
25410 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
25411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25413 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
25415 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25416 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
25417 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
25418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25419 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25420 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
25422 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25423 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
25424 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
25425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25426 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25427 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
25429 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
25430 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
25431 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
25432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
25433 NDR_PULL_ALLOC(ndr, r->out.handle);
25434 ZERO_STRUCTP(r->out.handle);
25436 if (flags & NDR_OUT) {
25437 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25438 NDR_PULL_ALLOC(ndr, r->out.handle);
25440 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25441 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
25442 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
25443 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25444 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25446 return NDR_ERR_SUCCESS;
25449 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
25451 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
25453 if (flags & NDR_SET_VALUES) {
25454 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25456 if (flags & NDR_IN) {
25457 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
25459 ndr_print_ptr(ndr, "server", r->in.server);
25461 if (r->in.server) {
25462 ndr_print_string(ndr, "server", r->in.server);
25465 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
25467 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
25469 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
25471 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
25473 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25475 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
25477 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25479 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
25483 if (flags & NDR_OUT) {
25484 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
25486 ndr_print_ptr(ndr, "handle", r->out.handle);
25488 ndr_print_policy_handle(ndr, "handle", r->out.handle);
25490 ndr_print_WERROR(ndr, "result", r->out.result);
25496 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
25498 if (flags & NDR_IN) {
25500 if (flags & NDR_OUT) {
25501 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25503 return NDR_ERR_SUCCESS;
25506 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
25508 if (flags & NDR_IN) {
25510 if (flags & NDR_OUT) {
25511 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25513 return NDR_ERR_SUCCESS;
25516 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
25518 ndr_print_struct(ndr, name, "spoolss_47");
25520 if (flags & NDR_SET_VALUES) {
25521 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25523 if (flags & NDR_IN) {
25524 ndr_print_struct(ndr, "in", "spoolss_47");
25528 if (flags & NDR_OUT) {
25529 ndr_print_struct(ndr, "out", "spoolss_47");
25531 ndr_print_WERROR(ndr, "result", r->out.result);
25537 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
25539 if (flags & NDR_IN) {
25540 if (r->in.handle == NULL) {
25541 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25543 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
25545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
25546 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25548 if (flags & NDR_OUT) {
25549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
25550 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
25551 if (r->out.value_needed == NULL) {
25552 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
25555 if (r->out.type == NULL) {
25556 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25558 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
25560 uint32_t _flags_save_uint8 = ndr->flags;
25561 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
25562 if (r->out.data == NULL) {
25563 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
25566 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_offered));
25567 ndr->flags = _flags_save_uint8;
25569 if (r->out.data_needed == NULL) {
25570 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
25573 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25575 return NDR_ERR_SUCCESS;
25578 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
25580 TALLOC_CTX *_mem_save_handle_0;
25581 TALLOC_CTX *_mem_save_value_needed_0;
25582 TALLOC_CTX *_mem_save_type_0;
25583 TALLOC_CTX *_mem_save_data_needed_0;
25584 if (flags & NDR_IN) {
25585 ZERO_STRUCT(r->out);
25587 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25588 NDR_PULL_ALLOC(ndr, r->in.handle);
25590 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25591 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25592 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25593 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
25595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
25596 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
25597 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25598 ZERO_STRUCTP(r->out.value_needed);
25599 NDR_PULL_ALLOC(ndr, r->out.type);
25600 ZERO_STRUCTP(r->out.type);
25601 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_offered);
25602 memset(r->out.data, 0, (r->in.data_offered) * sizeof(*r->out.data));
25603 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25604 ZERO_STRUCTP(r->out.data_needed);
25606 if (flags & NDR_OUT) {
25607 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
25608 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));
25609 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25610 NDR_PULL_ALLOC(ndr, r->out.value_needed);
25612 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25613 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
25614 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
25615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
25616 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25617 NDR_PULL_ALLOC(ndr, r->out.type);
25619 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
25620 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
25621 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
25622 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
25624 uint32_t _flags_save_uint8 = ndr->flags;
25625 ndr_set_flags(&ndr->flags, LIBNDR_PRINT_ARRAY_HEX);
25626 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
25627 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25628 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
25630 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
25631 ndr->flags = _flags_save_uint8;
25633 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25634 NDR_PULL_ALLOC(ndr, r->out.data_needed);
25636 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
25637 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
25638 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
25639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
25640 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25641 if (r->out.value_name) {
25642 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
25645 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_offered));
25648 return NDR_ERR_SUCCESS;
25651 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
25653 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
25655 if (flags & NDR_SET_VALUES) {
25656 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25658 if (flags & NDR_IN) {
25659 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
25661 ndr_print_ptr(ndr, "handle", r->in.handle);
25663 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25665 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
25666 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
25667 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
25670 if (flags & NDR_OUT) {
25671 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
25673 ndr_print_string(ndr, "value_name", r->out.value_name);
25674 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
25676 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
25678 ndr_print_ptr(ndr, "type", r->out.type);
25680 ndr_print_winreg_Type(ndr, "type", *r->out.type);
25682 ndr_print_ptr(ndr, "data", r->out.data);
25684 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_offered);
25686 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
25688 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
25690 ndr_print_WERROR(ndr, "result", r->out.result);
25696 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
25698 if (flags & NDR_IN) {
25699 if (r->in.handle == NULL) {
25700 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25702 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25704 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25706 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));
25708 if (flags & NDR_OUT) {
25709 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25711 return NDR_ERR_SUCCESS;
25714 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
25716 TALLOC_CTX *_mem_save_handle_0;
25717 if (flags & NDR_IN) {
25718 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25719 NDR_PULL_ALLOC(ndr, r->in.handle);
25721 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25722 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25723 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25725 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25726 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25727 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25728 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));
25730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25731 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));
25733 if (flags & NDR_OUT) {
25734 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25736 return NDR_ERR_SUCCESS;
25739 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
25741 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
25743 if (flags & NDR_SET_VALUES) {
25744 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25746 if (flags & NDR_IN) {
25747 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
25749 ndr_print_ptr(ndr, "handle", r->in.handle);
25751 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25753 ndr_print_string(ndr, "value_name", r->in.value_name);
25756 if (flags & NDR_OUT) {
25757 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
25759 ndr_print_WERROR(ndr, "result", r->out.result);
25765 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
25767 if (flags & NDR_IN) {
25769 if (flags & NDR_OUT) {
25770 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25772 return NDR_ERR_SUCCESS;
25775 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
25777 if (flags & NDR_IN) {
25779 if (flags & NDR_OUT) {
25780 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25782 return NDR_ERR_SUCCESS;
25785 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
25787 ndr_print_struct(ndr, name, "spoolss_4a");
25789 if (flags & NDR_SET_VALUES) {
25790 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25792 if (flags & NDR_IN) {
25793 ndr_print_struct(ndr, "in", "spoolss_4a");
25797 if (flags & NDR_OUT) {
25798 ndr_print_struct(ndr, "out", "spoolss_4a");
25800 ndr_print_WERROR(ndr, "result", r->out.result);
25806 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
25808 if (flags & NDR_IN) {
25810 if (flags & NDR_OUT) {
25811 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25813 return NDR_ERR_SUCCESS;
25816 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
25818 if (flags & NDR_IN) {
25820 if (flags & NDR_OUT) {
25821 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25823 return NDR_ERR_SUCCESS;
25826 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
25828 ndr_print_struct(ndr, name, "spoolss_4b");
25830 if (flags & NDR_SET_VALUES) {
25831 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25833 if (flags & NDR_IN) {
25834 ndr_print_struct(ndr, "in", "spoolss_4b");
25838 if (flags & NDR_OUT) {
25839 ndr_print_struct(ndr, "out", "spoolss_4b");
25841 ndr_print_WERROR(ndr, "result", r->out.result);
25847 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
25849 if (flags & NDR_IN) {
25851 if (flags & NDR_OUT) {
25852 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25854 return NDR_ERR_SUCCESS;
25857 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
25859 if (flags & NDR_IN) {
25861 if (flags & NDR_OUT) {
25862 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25864 return NDR_ERR_SUCCESS;
25867 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
25869 ndr_print_struct(ndr, name, "spoolss_4c");
25871 if (flags & NDR_SET_VALUES) {
25872 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25874 if (flags & NDR_IN) {
25875 ndr_print_struct(ndr, "in", "spoolss_4c");
25879 if (flags & NDR_OUT) {
25880 ndr_print_struct(ndr, "out", "spoolss_4c");
25882 ndr_print_WERROR(ndr, "result", r->out.result);
25888 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
25890 if (flags & NDR_IN) {
25891 if (r->in.handle == NULL) {
25892 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25894 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25895 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25896 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
25898 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));
25899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
25901 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
25902 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));
25903 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
25904 if (r->in.buffer == NULL) {
25905 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25908 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
25909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
25911 if (flags & NDR_OUT) {
25912 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
25914 return NDR_ERR_SUCCESS;
25917 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
25919 TALLOC_CTX *_mem_save_handle_0;
25920 if (flags & NDR_IN) {
25921 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25922 NDR_PULL_ALLOC(ndr, r->in.handle);
25924 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
25925 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
25926 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
25928 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
25929 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
25930 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
25931 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));
25933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
25934 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));
25935 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
25936 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
25937 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
25938 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));
25940 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
25941 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));
25942 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
25943 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
25944 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
25945 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
25947 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
25948 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
25949 if (r->in.buffer) {
25950 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
25953 if (flags & NDR_OUT) {
25954 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
25956 return NDR_ERR_SUCCESS;
25959 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
25961 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
25963 if (flags & NDR_SET_VALUES) {
25964 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
25966 if (flags & NDR_IN) {
25967 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
25969 ndr_print_ptr(ndr, "handle", r->in.handle);
25971 ndr_print_policy_handle(ndr, "handle", r->in.handle);
25973 ndr_print_string(ndr, "key_name", r->in.key_name);
25974 ndr_print_string(ndr, "value_name", r->in.value_name);
25975 ndr_print_winreg_Type(ndr, "type", r->in.type);
25976 ndr_print_ptr(ndr, "buffer", r->in.buffer);
25978 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
25980 ndr_print_uint32(ndr, "offered", r->in.offered);
25983 if (flags & NDR_OUT) {
25984 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
25986 ndr_print_WERROR(ndr, "result", r->out.result);
25992 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
25994 if (flags & NDR_IN) {
25995 if (r->in.handle == NULL) {
25996 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
25998 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
25999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26002 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));
26003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26006 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));
26007 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26009 if (flags & NDR_OUT) {
26010 if (r->out.type == NULL) {
26011 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26013 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, *r->out.type));
26014 if (r->out.buffer == NULL) {
26015 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26018 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26019 if (r->out.needed == NULL) {
26020 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26023 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26025 return NDR_ERR_SUCCESS;
26028 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
26030 TALLOC_CTX *_mem_save_handle_0;
26031 TALLOC_CTX *_mem_save_type_0;
26032 TALLOC_CTX *_mem_save_needed_0;
26033 if (flags & NDR_IN) {
26034 ZERO_STRUCT(r->out);
26036 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26037 NDR_PULL_ALLOC(ndr, r->in.handle);
26039 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26040 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26041 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26043 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26044 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26045 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26046 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));
26048 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26049 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));
26050 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26051 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26052 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26053 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));
26055 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26056 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));
26057 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26058 NDR_PULL_ALLOC(ndr, r->out.type);
26059 ZERO_STRUCTP(r->out.type);
26060 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26061 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26062 NDR_PULL_ALLOC(ndr, r->out.needed);
26063 ZERO_STRUCTP(r->out.needed);
26065 if (flags & NDR_OUT) {
26066 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26067 NDR_PULL_ALLOC(ndr, r->out.type);
26069 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
26070 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
26071 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, r->out.type));
26072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
26073 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26074 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26075 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26077 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26078 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26079 NDR_PULL_ALLOC(ndr, r->out.needed);
26081 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26082 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26084 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26085 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26086 if (r->out.buffer) {
26087 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26090 return NDR_ERR_SUCCESS;
26093 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
26095 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
26097 if (flags & NDR_SET_VALUES) {
26098 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26100 if (flags & NDR_IN) {
26101 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
26103 ndr_print_ptr(ndr, "handle", r->in.handle);
26105 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26107 ndr_print_string(ndr, "key_name", r->in.key_name);
26108 ndr_print_string(ndr, "value_name", r->in.value_name);
26109 ndr_print_uint32(ndr, "offered", r->in.offered);
26112 if (flags & NDR_OUT) {
26113 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
26115 ndr_print_ptr(ndr, "type", r->out.type);
26117 ndr_print_winreg_Type(ndr, "type", *r->out.type);
26119 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26121 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26123 ndr_print_ptr(ndr, "needed", r->out.needed);
26125 ndr_print_uint32(ndr, "needed", *r->out.needed);
26127 ndr_print_WERROR(ndr, "result", r->out.result);
26133 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
26135 if (flags & NDR_IN) {
26136 if (r->in.handle == NULL) {
26137 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26139 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26143 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));
26144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26146 if (flags & NDR_OUT) {
26147 if (r->out.buffer == NULL) {
26148 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26151 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
26152 if (r->out.needed == NULL) {
26153 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26156 if (r->out.count == NULL) {
26157 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
26160 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26162 return NDR_ERR_SUCCESS;
26165 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
26167 TALLOC_CTX *_mem_save_handle_0;
26168 TALLOC_CTX *_mem_save_needed_0;
26169 TALLOC_CTX *_mem_save_count_0;
26170 if (flags & NDR_IN) {
26171 ZERO_STRUCT(r->out);
26173 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26174 NDR_PULL_ALLOC(ndr, r->in.handle);
26176 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26177 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26178 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26180 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26181 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26182 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26183 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));
26185 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26186 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));
26187 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26188 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
26189 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
26190 NDR_PULL_ALLOC(ndr, r->out.needed);
26191 ZERO_STRUCTP(r->out.needed);
26192 NDR_PULL_ALLOC(ndr, r->out.count);
26193 ZERO_STRUCTP(r->out.count);
26195 if (flags & NDR_OUT) {
26196 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
26197 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26198 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
26200 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
26201 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26202 NDR_PULL_ALLOC(ndr, r->out.needed);
26204 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26205 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26208 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26209 NDR_PULL_ALLOC(ndr, r->out.count);
26211 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
26212 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
26213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
26214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
26215 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26216 if (r->out.buffer) {
26217 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
26220 return NDR_ERR_SUCCESS;
26223 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
26225 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
26227 if (flags & NDR_SET_VALUES) {
26228 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26230 if (flags & NDR_IN) {
26231 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
26233 ndr_print_ptr(ndr, "handle", r->in.handle);
26235 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26237 ndr_print_string(ndr, "key_name", r->in.key_name);
26238 ndr_print_uint32(ndr, "offered", r->in.offered);
26241 if (flags & NDR_OUT) {
26242 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
26244 ndr_print_ptr(ndr, "buffer", r->out.buffer);
26246 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
26248 ndr_print_ptr(ndr, "needed", r->out.needed);
26250 ndr_print_uint32(ndr, "needed", *r->out.needed);
26252 ndr_print_ptr(ndr, "count", r->out.count);
26254 ndr_print_uint32(ndr, "count", *r->out.count);
26256 ndr_print_WERROR(ndr, "result", r->out.result);
26262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
26264 if (flags & NDR_IN) {
26265 if (r->in.handle == NULL) {
26266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26268 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26271 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26272 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));
26273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
26275 if (flags & NDR_OUT) {
26277 uint32_t _flags_save_string_array = ndr->flags;
26278 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
26279 if (r->out.key_buffer == NULL) {
26280 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26282 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.key_buffer));
26283 if (*r->out.key_buffer) {
26285 struct ndr_push *_ndr_key_buffer;
26286 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
26287 NDR_CHECK(ndr_push_string_array(_ndr_key_buffer, NDR_SCALARS, *r->out.key_buffer));
26288 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
26291 ndr->flags = _flags_save_string_array;
26293 if (r->out.needed == NULL) {
26294 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26297 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26299 return NDR_ERR_SUCCESS;
26302 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
26304 uint32_t _ptr_key_buffer;
26305 TALLOC_CTX *_mem_save_handle_0;
26306 TALLOC_CTX *_mem_save_key_buffer_0;
26307 TALLOC_CTX *_mem_save_key_buffer_1;
26308 TALLOC_CTX *_mem_save_needed_0;
26309 if (flags & NDR_IN) {
26310 ZERO_STRUCT(r->out);
26312 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26313 NDR_PULL_ALLOC(ndr, r->in.handle);
26315 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26316 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26317 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26318 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26319 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26320 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26321 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26322 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));
26324 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26325 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));
26326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
26327 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26328 ZERO_STRUCTP(r->out.key_buffer);
26329 NDR_PULL_ALLOC(ndr, r->out.needed);
26330 ZERO_STRUCTP(r->out.needed);
26332 if (flags & NDR_OUT) {
26334 uint32_t _flags_save_string_array = ndr->flags;
26335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
26336 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26337 NDR_PULL_ALLOC(ndr, r->out.key_buffer);
26339 _mem_save_key_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
26340 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, LIBNDR_FLAG_REF_ALLOC);
26341 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_key_buffer));
26342 if (_ptr_key_buffer) {
26343 NDR_PULL_ALLOC(ndr, *r->out.key_buffer);
26345 *r->out.key_buffer = NULL;
26347 if (*r->out.key_buffer) {
26348 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
26349 NDR_PULL_SET_MEM_CTX(ndr, *r->out.key_buffer, 0);
26351 struct ndr_pull *_ndr_key_buffer;
26352 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_key_buffer, 0, r->in.offered));
26353 NDR_CHECK(ndr_pull_string_array(_ndr_key_buffer, NDR_SCALARS, r->out.key_buffer));
26354 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_key_buffer, 0, r->in.offered));
26356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
26358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_0, LIBNDR_FLAG_REF_ALLOC);
26359 ndr->flags = _flags_save_string_array;
26361 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26362 NDR_PULL_ALLOC(ndr, r->out.needed);
26364 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26365 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26367 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26368 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26370 return NDR_ERR_SUCCESS;
26373 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
26375 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
26377 if (flags & NDR_SET_VALUES) {
26378 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26380 if (flags & NDR_IN) {
26381 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
26383 ndr_print_ptr(ndr, "handle", r->in.handle);
26385 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26387 ndr_print_string(ndr, "key_name", r->in.key_name);
26388 ndr_print_uint32(ndr, "offered", r->in.offered);
26391 if (flags & NDR_OUT) {
26392 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
26394 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
26396 ndr_print_ptr(ndr, "key_buffer", *r->out.key_buffer);
26398 if (*r->out.key_buffer) {
26399 ndr_print_string_array(ndr, "key_buffer", *r->out.key_buffer);
26403 ndr_print_ptr(ndr, "needed", r->out.needed);
26405 ndr_print_uint32(ndr, "needed", *r->out.needed);
26407 ndr_print_WERROR(ndr, "result", r->out.result);
26413 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
26415 if (flags & NDR_IN) {
26416 if (r->in.handle == NULL) {
26417 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26419 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26423 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));
26424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
26427 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));
26429 if (flags & NDR_OUT) {
26430 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26432 return NDR_ERR_SUCCESS;
26435 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
26437 TALLOC_CTX *_mem_save_handle_0;
26438 if (flags & NDR_IN) {
26439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26440 NDR_PULL_ALLOC(ndr, r->in.handle);
26442 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26443 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26444 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26446 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26447 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26448 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26449 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));
26451 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26452 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));
26453 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
26454 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
26455 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
26456 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));
26458 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
26459 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));
26461 if (flags & NDR_OUT) {
26462 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26464 return NDR_ERR_SUCCESS;
26467 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
26469 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
26471 if (flags & NDR_SET_VALUES) {
26472 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26474 if (flags & NDR_IN) {
26475 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
26477 ndr_print_ptr(ndr, "handle", r->in.handle);
26479 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26481 ndr_print_string(ndr, "key_name", r->in.key_name);
26482 ndr_print_string(ndr, "value_name", r->in.value_name);
26485 if (flags & NDR_OUT) {
26486 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
26488 ndr_print_WERROR(ndr, "result", r->out.result);
26494 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
26496 if (flags & NDR_IN) {
26497 if (r->in.handle == NULL) {
26498 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26500 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
26504 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));
26506 if (flags & NDR_OUT) {
26507 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26509 return NDR_ERR_SUCCESS;
26512 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
26514 TALLOC_CTX *_mem_save_handle_0;
26515 if (flags & NDR_IN) {
26516 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26517 NDR_PULL_ALLOC(ndr, r->in.handle);
26519 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26520 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26521 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26523 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
26524 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
26525 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
26526 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));
26528 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
26529 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));
26531 if (flags & NDR_OUT) {
26532 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26534 return NDR_ERR_SUCCESS;
26537 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
26539 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
26541 if (flags & NDR_SET_VALUES) {
26542 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26544 if (flags & NDR_IN) {
26545 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
26547 ndr_print_ptr(ndr, "handle", r->in.handle);
26549 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26551 ndr_print_string(ndr, "key_name", r->in.key_name);
26554 if (flags & NDR_OUT) {
26555 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
26557 ndr_print_WERROR(ndr, "result", r->out.result);
26563 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
26565 if (flags & NDR_IN) {
26567 if (flags & NDR_OUT) {
26568 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26570 return NDR_ERR_SUCCESS;
26573 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
26575 if (flags & NDR_IN) {
26577 if (flags & NDR_OUT) {
26578 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26580 return NDR_ERR_SUCCESS;
26583 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
26585 ndr_print_struct(ndr, name, "spoolss_53");
26587 if (flags & NDR_SET_VALUES) {
26588 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26590 if (flags & NDR_IN) {
26591 ndr_print_struct(ndr, "in", "spoolss_53");
26595 if (flags & NDR_OUT) {
26596 ndr_print_struct(ndr, "out", "spoolss_53");
26598 ndr_print_WERROR(ndr, "result", r->out.result);
26604 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26606 if (flags & NDR_IN) {
26607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
26608 if (r->in.server) {
26609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
26612 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
26617 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26620 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
26621 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26622 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
26623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
26625 if (flags & NDR_OUT) {
26626 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26628 return NDR_ERR_SUCCESS;
26631 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
26633 uint32_t _ptr_server;
26634 TALLOC_CTX *_mem_save_server_0;
26635 if (flags & NDR_IN) {
26636 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
26638 NDR_PULL_ALLOC(ndr, r->in.server);
26640 r->in.server = NULL;
26642 if (r->in.server) {
26643 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
26644 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
26645 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
26646 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
26647 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
26648 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));
26650 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
26651 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
26652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
26654 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
26655 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
26656 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
26657 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));
26659 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
26660 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
26661 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
26662 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
26663 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
26664 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));
26666 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
26667 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
26668 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
26669 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
26671 if (flags & NDR_OUT) {
26672 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26674 return NDR_ERR_SUCCESS;
26677 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
26679 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
26681 if (flags & NDR_SET_VALUES) {
26682 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26684 if (flags & NDR_IN) {
26685 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
26687 ndr_print_ptr(ndr, "server", r->in.server);
26689 if (r->in.server) {
26690 ndr_print_string(ndr, "server", r->in.server);
26693 ndr_print_string(ndr, "architecture", r->in.architecture);
26694 ndr_print_string(ndr, "driver", r->in.driver);
26695 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
26696 ndr_print_uint32(ndr, "version", r->in.version);
26699 if (flags & NDR_OUT) {
26700 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
26702 ndr_print_WERROR(ndr, "result", r->out.result);
26708 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
26710 if (flags & NDR_IN) {
26712 if (flags & NDR_OUT) {
26713 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26715 return NDR_ERR_SUCCESS;
26718 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
26720 if (flags & NDR_IN) {
26722 if (flags & NDR_OUT) {
26723 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26725 return NDR_ERR_SUCCESS;
26728 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
26730 ndr_print_struct(ndr, name, "spoolss_55");
26732 if (flags & NDR_SET_VALUES) {
26733 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26735 if (flags & NDR_IN) {
26736 ndr_print_struct(ndr, "in", "spoolss_55");
26740 if (flags & NDR_OUT) {
26741 ndr_print_struct(ndr, "out", "spoolss_55");
26743 ndr_print_WERROR(ndr, "result", r->out.result);
26749 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
26751 if (flags & NDR_IN) {
26753 if (flags & NDR_OUT) {
26754 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26756 return NDR_ERR_SUCCESS;
26759 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
26761 if (flags & NDR_IN) {
26763 if (flags & NDR_OUT) {
26764 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26766 return NDR_ERR_SUCCESS;
26769 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
26771 ndr_print_struct(ndr, name, "spoolss_56");
26773 if (flags & NDR_SET_VALUES) {
26774 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26776 if (flags & NDR_IN) {
26777 ndr_print_struct(ndr, "in", "spoolss_56");
26781 if (flags & NDR_OUT) {
26782 ndr_print_struct(ndr, "out", "spoolss_56");
26784 ndr_print_WERROR(ndr, "result", r->out.result);
26790 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
26792 if (flags & NDR_IN) {
26794 if (flags & NDR_OUT) {
26795 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26797 return NDR_ERR_SUCCESS;
26800 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
26802 if (flags & NDR_IN) {
26804 if (flags & NDR_OUT) {
26805 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26807 return NDR_ERR_SUCCESS;
26810 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
26812 ndr_print_struct(ndr, name, "spoolss_57");
26814 if (flags & NDR_SET_VALUES) {
26815 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26817 if (flags & NDR_IN) {
26818 ndr_print_struct(ndr, "in", "spoolss_57");
26822 if (flags & NDR_OUT) {
26823 ndr_print_struct(ndr, "out", "spoolss_57");
26825 ndr_print_WERROR(ndr, "result", r->out.result);
26831 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
26833 if (flags & NDR_IN) {
26834 if (r->in.handle == NULL) {
26835 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26837 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
26841 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));
26842 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
26843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
26844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26845 if (r->in.status_code == NULL) {
26846 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
26850 if (flags & NDR_OUT) {
26851 if (r->out.out_data == NULL) {
26852 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
26855 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
26856 if (r->out.needed == NULL) {
26857 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
26860 if (r->out.status_code == NULL) {
26861 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
26864 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
26866 return NDR_ERR_SUCCESS;
26869 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
26871 TALLOC_CTX *_mem_save_handle_0;
26872 TALLOC_CTX *_mem_save_needed_0;
26873 TALLOC_CTX *_mem_save_status_code_0;
26874 if (flags & NDR_IN) {
26875 ZERO_STRUCT(r->out);
26877 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26878 NDR_PULL_ALLOC(ndr, r->in.handle);
26880 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
26881 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
26882 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
26883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
26884 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
26885 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
26886 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
26887 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));
26889 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
26890 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));
26891 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
26892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
26893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
26894 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26895 NDR_PULL_ALLOC(ndr, r->in.status_code);
26897 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26898 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
26899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
26900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26901 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
26902 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
26903 NDR_PULL_ALLOC(ndr, r->out.needed);
26904 ZERO_STRUCTP(r->out.needed);
26905 NDR_PULL_ALLOC(ndr, r->out.status_code);
26906 *r->out.status_code = *r->in.status_code;
26908 if (flags & NDR_OUT) {
26909 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
26910 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26911 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
26913 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
26914 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26915 NDR_PULL_ALLOC(ndr, r->out.needed);
26917 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
26918 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
26919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
26920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
26921 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
26922 NDR_PULL_ALLOC(ndr, r->out.status_code);
26924 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
26925 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
26926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
26927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
26928 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
26929 if (r->out.out_data) {
26930 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
26933 return NDR_ERR_SUCCESS;
26936 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
26938 ndr_print_struct(ndr, name, "spoolss_XcvData");
26940 if (flags & NDR_SET_VALUES) {
26941 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
26943 if (flags & NDR_IN) {
26944 ndr_print_struct(ndr, "in", "spoolss_XcvData");
26946 ndr_print_ptr(ndr, "handle", r->in.handle);
26948 ndr_print_policy_handle(ndr, "handle", r->in.handle);
26950 ndr_print_string(ndr, "function_name", r->in.function_name);
26951 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
26952 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
26953 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
26954 ndr_print_ptr(ndr, "status_code", r->in.status_code);
26956 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
26960 if (flags & NDR_OUT) {
26961 ndr_print_struct(ndr, "out", "spoolss_XcvData");
26963 ndr_print_ptr(ndr, "out_data", r->out.out_data);
26965 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
26967 ndr_print_ptr(ndr, "needed", r->out.needed);
26969 ndr_print_uint32(ndr, "needed", *r->out.needed);
26971 ndr_print_ptr(ndr, "status_code", r->out.status_code);
26973 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
26975 ndr_print_WERROR(ndr, "result", r->out.result);
26981 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
26983 if (flags & NDR_IN) {
26984 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
26985 if (r->in.servername) {
26986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
26988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
26989 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
26991 if (r->in.info_ctr == NULL) {
26992 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
26994 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
26995 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
26997 if (flags & NDR_OUT) {
26998 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27000 return NDR_ERR_SUCCESS;
27003 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
27005 uint32_t _ptr_servername;
27006 TALLOC_CTX *_mem_save_servername_0;
27007 TALLOC_CTX *_mem_save_info_ctr_0;
27008 if (flags & NDR_IN) {
27009 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
27010 if (_ptr_servername) {
27011 NDR_PULL_ALLOC(ndr, r->in.servername);
27013 r->in.servername = NULL;
27015 if (r->in.servername) {
27016 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
27017 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
27018 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
27019 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
27020 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
27021 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));
27023 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
27024 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
27025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
27027 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
27028 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
27030 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
27031 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
27032 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
27033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
27034 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
27036 if (flags & NDR_OUT) {
27037 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27039 return NDR_ERR_SUCCESS;
27042 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
27044 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
27046 if (flags & NDR_SET_VALUES) {
27047 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27049 if (flags & NDR_IN) {
27050 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
27052 ndr_print_ptr(ndr, "servername", r->in.servername);
27054 if (r->in.servername) {
27055 ndr_print_string(ndr, "servername", r->in.servername);
27058 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
27060 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
27062 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
27065 if (flags & NDR_OUT) {
27066 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
27068 ndr_print_WERROR(ndr, "result", r->out.result);
27074 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
27076 if (flags & NDR_IN) {
27078 if (flags & NDR_OUT) {
27079 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27081 return NDR_ERR_SUCCESS;
27084 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
27086 if (flags & NDR_IN) {
27088 if (flags & NDR_OUT) {
27089 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27091 return NDR_ERR_SUCCESS;
27094 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
27096 ndr_print_struct(ndr, name, "spoolss_5a");
27098 if (flags & NDR_SET_VALUES) {
27099 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27101 if (flags & NDR_IN) {
27102 ndr_print_struct(ndr, "in", "spoolss_5a");
27106 if (flags & NDR_OUT) {
27107 ndr_print_struct(ndr, "out", "spoolss_5a");
27109 ndr_print_WERROR(ndr, "result", r->out.result);
27115 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
27117 if (flags & NDR_IN) {
27119 if (flags & NDR_OUT) {
27120 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27122 return NDR_ERR_SUCCESS;
27125 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
27127 if (flags & NDR_IN) {
27129 if (flags & NDR_OUT) {
27130 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27132 return NDR_ERR_SUCCESS;
27135 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
27137 ndr_print_struct(ndr, name, "spoolss_5b");
27139 if (flags & NDR_SET_VALUES) {
27140 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27142 if (flags & NDR_IN) {
27143 ndr_print_struct(ndr, "in", "spoolss_5b");
27147 if (flags & NDR_OUT) {
27148 ndr_print_struct(ndr, "out", "spoolss_5b");
27150 ndr_print_WERROR(ndr, "result", r->out.result);
27156 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
27158 if (flags & NDR_IN) {
27160 if (flags & NDR_OUT) {
27161 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27163 return NDR_ERR_SUCCESS;
27166 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
27168 if (flags & NDR_IN) {
27170 if (flags & NDR_OUT) {
27171 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27173 return NDR_ERR_SUCCESS;
27176 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
27178 ndr_print_struct(ndr, name, "spoolss_5c");
27180 if (flags & NDR_SET_VALUES) {
27181 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27183 if (flags & NDR_IN) {
27184 ndr_print_struct(ndr, "in", "spoolss_5c");
27188 if (flags & NDR_OUT) {
27189 ndr_print_struct(ndr, "out", "spoolss_5c");
27191 ndr_print_WERROR(ndr, "result", r->out.result);
27197 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
27199 if (flags & NDR_IN) {
27201 if (flags & NDR_OUT) {
27202 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27204 return NDR_ERR_SUCCESS;
27207 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
27209 if (flags & NDR_IN) {
27211 if (flags & NDR_OUT) {
27212 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27214 return NDR_ERR_SUCCESS;
27217 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
27219 ndr_print_struct(ndr, name, "spoolss_5d");
27221 if (flags & NDR_SET_VALUES) {
27222 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27224 if (flags & NDR_IN) {
27225 ndr_print_struct(ndr, "in", "spoolss_5d");
27229 if (flags & NDR_OUT) {
27230 ndr_print_struct(ndr, "out", "spoolss_5d");
27232 ndr_print_WERROR(ndr, "result", r->out.result);
27238 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
27240 if (flags & NDR_IN) {
27242 if (flags & NDR_OUT) {
27243 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27245 return NDR_ERR_SUCCESS;
27248 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
27250 if (flags & NDR_IN) {
27252 if (flags & NDR_OUT) {
27253 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27255 return NDR_ERR_SUCCESS;
27258 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
27260 ndr_print_struct(ndr, name, "spoolss_5e");
27262 if (flags & NDR_SET_VALUES) {
27263 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27265 if (flags & NDR_IN) {
27266 ndr_print_struct(ndr, "in", "spoolss_5e");
27270 if (flags & NDR_OUT) {
27271 ndr_print_struct(ndr, "out", "spoolss_5e");
27273 ndr_print_WERROR(ndr, "result", r->out.result);
27279 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
27281 if (flags & NDR_IN) {
27283 if (flags & NDR_OUT) {
27284 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
27286 return NDR_ERR_SUCCESS;
27289 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
27291 if (flags & NDR_IN) {
27293 if (flags & NDR_OUT) {
27294 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
27296 return NDR_ERR_SUCCESS;
27299 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
27301 ndr_print_struct(ndr, name, "spoolss_5f");
27303 if (flags & NDR_SET_VALUES) {
27304 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
27306 if (flags & NDR_IN) {
27307 ndr_print_struct(ndr, "in", "spoolss_5f");
27311 if (flags & NDR_OUT) {
27312 ndr_print_struct(ndr, "out", "spoolss_5f");
27314 ndr_print_WERROR(ndr, "result", r->out.result);
27320 static const struct ndr_interface_call spoolss_calls[] = {
27322 "spoolss_EnumPrinters",
27323 sizeof(struct spoolss_EnumPrinters),
27324 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
27325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
27326 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
27330 "spoolss_OpenPrinter",
27331 sizeof(struct spoolss_OpenPrinter),
27332 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
27333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
27334 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
27339 sizeof(struct spoolss_SetJob),
27340 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
27341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
27342 (ndr_print_function_t) ndr_print_spoolss_SetJob,
27347 sizeof(struct spoolss_GetJob),
27348 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
27349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
27350 (ndr_print_function_t) ndr_print_spoolss_GetJob,
27354 "spoolss_EnumJobs",
27355 sizeof(struct spoolss_EnumJobs),
27356 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
27357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
27358 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
27362 "spoolss_AddPrinter",
27363 sizeof(struct spoolss_AddPrinter),
27364 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
27365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
27366 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
27370 "spoolss_DeletePrinter",
27371 sizeof(struct spoolss_DeletePrinter),
27372 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
27373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
27374 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
27378 "spoolss_SetPrinter",
27379 sizeof(struct spoolss_SetPrinter),
27380 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
27381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
27382 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
27386 "spoolss_GetPrinter",
27387 sizeof(struct spoolss_GetPrinter),
27388 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
27389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
27390 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
27394 "spoolss_AddPrinterDriver",
27395 sizeof(struct spoolss_AddPrinterDriver),
27396 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
27397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
27398 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
27402 "spoolss_EnumPrinterDrivers",
27403 sizeof(struct spoolss_EnumPrinterDrivers),
27404 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
27405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
27406 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
27410 "spoolss_GetPrinterDriver",
27411 sizeof(struct spoolss_GetPrinterDriver),
27412 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
27413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
27414 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
27418 "spoolss_GetPrinterDriverDirectory",
27419 sizeof(struct spoolss_GetPrinterDriverDirectory),
27420 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
27421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
27422 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
27426 "spoolss_DeletePrinterDriver",
27427 sizeof(struct spoolss_DeletePrinterDriver),
27428 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
27429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
27430 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
27434 "spoolss_AddPrintProcessor",
27435 sizeof(struct spoolss_AddPrintProcessor),
27436 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
27437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
27438 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
27442 "spoolss_EnumPrintProcessors",
27443 sizeof(struct spoolss_EnumPrintProcessors),
27444 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
27445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
27446 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
27450 "spoolss_GetPrintProcessorDirectory",
27451 sizeof(struct spoolss_GetPrintProcessorDirectory),
27452 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
27453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
27454 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
27458 "spoolss_StartDocPrinter",
27459 sizeof(struct spoolss_StartDocPrinter),
27460 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
27461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
27462 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
27466 "spoolss_StartPagePrinter",
27467 sizeof(struct spoolss_StartPagePrinter),
27468 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
27469 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
27470 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
27474 "spoolss_WritePrinter",
27475 sizeof(struct spoolss_WritePrinter),
27476 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
27477 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
27478 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
27482 "spoolss_EndPagePrinter",
27483 sizeof(struct spoolss_EndPagePrinter),
27484 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
27485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
27486 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
27490 "spoolss_AbortPrinter",
27491 sizeof(struct spoolss_AbortPrinter),
27492 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
27493 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
27494 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
27498 "spoolss_ReadPrinter",
27499 sizeof(struct spoolss_ReadPrinter),
27500 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
27501 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
27502 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
27506 "spoolss_EndDocPrinter",
27507 sizeof(struct spoolss_EndDocPrinter),
27508 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
27509 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
27510 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
27515 sizeof(struct spoolss_AddJob),
27516 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
27517 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
27518 (ndr_print_function_t) ndr_print_spoolss_AddJob,
27522 "spoolss_ScheduleJob",
27523 sizeof(struct spoolss_ScheduleJob),
27524 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
27525 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
27526 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
27530 "spoolss_GetPrinterData",
27531 sizeof(struct spoolss_GetPrinterData),
27532 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
27533 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
27534 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
27538 "spoolss_SetPrinterData",
27539 sizeof(struct spoolss_SetPrinterData),
27540 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
27541 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
27542 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
27546 "spoolss_WaitForPrinterChange",
27547 sizeof(struct spoolss_WaitForPrinterChange),
27548 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
27549 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
27550 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
27554 "spoolss_ClosePrinter",
27555 sizeof(struct spoolss_ClosePrinter),
27556 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
27557 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
27558 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
27563 sizeof(struct spoolss_AddForm),
27564 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
27565 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
27566 (ndr_print_function_t) ndr_print_spoolss_AddForm,
27570 "spoolss_DeleteForm",
27571 sizeof(struct spoolss_DeleteForm),
27572 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
27573 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
27574 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
27579 sizeof(struct spoolss_GetForm),
27580 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
27581 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
27582 (ndr_print_function_t) ndr_print_spoolss_GetForm,
27587 sizeof(struct spoolss_SetForm),
27588 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
27589 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
27590 (ndr_print_function_t) ndr_print_spoolss_SetForm,
27594 "spoolss_EnumForms",
27595 sizeof(struct spoolss_EnumForms),
27596 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
27597 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
27598 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
27602 "spoolss_EnumPorts",
27603 sizeof(struct spoolss_EnumPorts),
27604 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
27605 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
27606 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
27610 "spoolss_EnumMonitors",
27611 sizeof(struct spoolss_EnumMonitors),
27612 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
27613 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
27614 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
27619 sizeof(struct spoolss_AddPort),
27620 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
27621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
27622 (ndr_print_function_t) ndr_print_spoolss_AddPort,
27626 "spoolss_ConfigurePort",
27627 sizeof(struct spoolss_ConfigurePort),
27628 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
27629 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
27630 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
27634 "spoolss_DeletePort",
27635 sizeof(struct spoolss_DeletePort),
27636 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
27637 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
27638 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
27642 "spoolss_CreatePrinterIC",
27643 sizeof(struct spoolss_CreatePrinterIC),
27644 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
27645 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
27646 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
27650 "spoolss_PlayGDIScriptOnPrinterIC",
27651 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
27652 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
27653 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
27654 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
27658 "spoolss_DeletePrinterIC",
27659 sizeof(struct spoolss_DeletePrinterIC),
27660 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
27661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
27662 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
27666 "spoolss_AddPrinterConnection",
27667 sizeof(struct spoolss_AddPrinterConnection),
27668 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
27669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
27670 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
27674 "spoolss_DeletePrinterConnection",
27675 sizeof(struct spoolss_DeletePrinterConnection),
27676 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
27677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
27678 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
27682 "spoolss_PrinterMessageBox",
27683 sizeof(struct spoolss_PrinterMessageBox),
27684 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
27685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
27686 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
27690 "spoolss_AddMonitor",
27691 sizeof(struct spoolss_AddMonitor),
27692 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
27693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
27694 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
27698 "spoolss_DeleteMonitor",
27699 sizeof(struct spoolss_DeleteMonitor),
27700 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
27701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
27702 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
27706 "spoolss_DeletePrintProcessor",
27707 sizeof(struct spoolss_DeletePrintProcessor),
27708 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
27709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
27710 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
27714 "spoolss_AddPrintProvidor",
27715 sizeof(struct spoolss_AddPrintProvidor),
27716 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
27717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
27718 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
27722 "spoolss_DeletePrintProvidor",
27723 sizeof(struct spoolss_DeletePrintProvidor),
27724 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
27725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
27726 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
27730 "spoolss_EnumPrintProcDataTypes",
27731 sizeof(struct spoolss_EnumPrintProcDataTypes),
27732 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
27733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
27734 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
27738 "spoolss_ResetPrinter",
27739 sizeof(struct spoolss_ResetPrinter),
27740 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
27741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
27742 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
27746 "spoolss_GetPrinterDriver2",
27747 sizeof(struct spoolss_GetPrinterDriver2),
27748 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
27749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
27750 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
27754 "spoolss_FindFirstPrinterChangeNotification",
27755 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
27756 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
27757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
27758 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
27762 "spoolss_FindNextPrinterChangeNotification",
27763 sizeof(struct spoolss_FindNextPrinterChangeNotification),
27764 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
27765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
27766 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
27770 "spoolss_FindClosePrinterNotify",
27771 sizeof(struct spoolss_FindClosePrinterNotify),
27772 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
27773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
27774 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
27778 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
27779 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
27780 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27782 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
27786 "spoolss_ReplyOpenPrinter",
27787 sizeof(struct spoolss_ReplyOpenPrinter),
27788 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
27789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
27790 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
27794 "spoolss_RouterReplyPrinter",
27795 sizeof(struct spoolss_RouterReplyPrinter),
27796 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
27797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
27798 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
27802 "spoolss_ReplyClosePrinter",
27803 sizeof(struct spoolss_ReplyClosePrinter),
27804 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
27805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
27806 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
27810 "spoolss_AddPortEx",
27811 sizeof(struct spoolss_AddPortEx),
27812 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
27813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
27814 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
27818 "spoolss_RouterFindFirstPrinterChangeNotification",
27819 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
27820 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
27821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
27822 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
27826 "spoolss_SpoolerInit",
27827 sizeof(struct spoolss_SpoolerInit),
27828 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
27829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
27830 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
27834 "spoolss_ResetPrinterEx",
27835 sizeof(struct spoolss_ResetPrinterEx),
27836 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
27837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
27838 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
27842 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
27843 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
27844 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27846 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
27850 "spoolss_RouterReplyPrinterEx",
27851 sizeof(struct spoolss_RouterReplyPrinterEx),
27852 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
27853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
27854 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
27858 "spoolss_RouterRefreshPrinterChangeNotify",
27859 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
27860 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
27861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
27862 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
27867 sizeof(struct spoolss_44),
27868 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
27869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
27870 (ndr_print_function_t) ndr_print_spoolss_44,
27874 "spoolss_OpenPrinterEx",
27875 sizeof(struct spoolss_OpenPrinterEx),
27876 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
27877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
27878 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
27882 "spoolss_AddPrinterEx",
27883 sizeof(struct spoolss_AddPrinterEx),
27884 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
27885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
27886 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
27891 sizeof(struct spoolss_47),
27892 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
27893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
27894 (ndr_print_function_t) ndr_print_spoolss_47,
27898 "spoolss_EnumPrinterData",
27899 sizeof(struct spoolss_EnumPrinterData),
27900 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
27901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
27902 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
27906 "spoolss_DeletePrinterData",
27907 sizeof(struct spoolss_DeletePrinterData),
27908 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
27909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
27910 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
27915 sizeof(struct spoolss_4a),
27916 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
27917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
27918 (ndr_print_function_t) ndr_print_spoolss_4a,
27923 sizeof(struct spoolss_4b),
27924 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
27925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
27926 (ndr_print_function_t) ndr_print_spoolss_4b,
27931 sizeof(struct spoolss_4c),
27932 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
27933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
27934 (ndr_print_function_t) ndr_print_spoolss_4c,
27938 "spoolss_SetPrinterDataEx",
27939 sizeof(struct spoolss_SetPrinterDataEx),
27940 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
27941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
27942 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
27946 "spoolss_GetPrinterDataEx",
27947 sizeof(struct spoolss_GetPrinterDataEx),
27948 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
27949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
27950 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
27954 "spoolss_EnumPrinterDataEx",
27955 sizeof(struct spoolss_EnumPrinterDataEx),
27956 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
27957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
27958 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
27962 "spoolss_EnumPrinterKey",
27963 sizeof(struct spoolss_EnumPrinterKey),
27964 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
27965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
27966 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
27970 "spoolss_DeletePrinterDataEx",
27971 sizeof(struct spoolss_DeletePrinterDataEx),
27972 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
27973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
27974 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
27978 "spoolss_DeletePrinterKey",
27979 sizeof(struct spoolss_DeletePrinterKey),
27980 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
27981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
27982 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
27987 sizeof(struct spoolss_53),
27988 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
27989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
27990 (ndr_print_function_t) ndr_print_spoolss_53,
27994 "spoolss_DeletePrinterDriverEx",
27995 sizeof(struct spoolss_DeletePrinterDriverEx),
27996 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
27997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
27998 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
28003 sizeof(struct spoolss_55),
28004 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
28005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
28006 (ndr_print_function_t) ndr_print_spoolss_55,
28011 sizeof(struct spoolss_56),
28012 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
28013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
28014 (ndr_print_function_t) ndr_print_spoolss_56,
28019 sizeof(struct spoolss_57),
28020 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
28021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
28022 (ndr_print_function_t) ndr_print_spoolss_57,
28027 sizeof(struct spoolss_XcvData),
28028 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
28029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
28030 (ndr_print_function_t) ndr_print_spoolss_XcvData,
28034 "spoolss_AddPrinterDriverEx",
28035 sizeof(struct spoolss_AddPrinterDriverEx),
28036 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
28037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
28038 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
28043 sizeof(struct spoolss_5a),
28044 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
28045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
28046 (ndr_print_function_t) ndr_print_spoolss_5a,
28051 sizeof(struct spoolss_5b),
28052 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
28053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
28054 (ndr_print_function_t) ndr_print_spoolss_5b,
28059 sizeof(struct spoolss_5c),
28060 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
28061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
28062 (ndr_print_function_t) ndr_print_spoolss_5c,
28067 sizeof(struct spoolss_5d),
28068 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
28069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
28070 (ndr_print_function_t) ndr_print_spoolss_5d,
28075 sizeof(struct spoolss_5e),
28076 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
28077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
28078 (ndr_print_function_t) ndr_print_spoolss_5e,
28083 sizeof(struct spoolss_5f),
28084 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
28085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
28086 (ndr_print_function_t) ndr_print_spoolss_5f,
28089 { NULL, 0, NULL, NULL, NULL, false }
28092 static const char * const spoolss_endpoint_strings[] = {
28093 "ncacn_np:[\\pipe\\spoolss]",
28096 static const struct ndr_interface_string_array spoolss_endpoints = {
28098 .names = spoolss_endpoint_strings
28101 static const char * const spoolss_authservice_strings[] = {
28105 static const struct ndr_interface_string_array spoolss_authservices = {
28107 .names = spoolss_authservice_strings
28111 const struct ndr_interface_table ndr_table_spoolss = {
28114 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
28115 NDR_SPOOLSS_VERSION
28117 .helpstring = NDR_SPOOLSS_HELPSTRING,
28119 .calls = spoolss_calls,
28120 .endpoints = &spoolss_endpoints,
28121 .authservices = &spoolss_authservices