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_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
229 if (ndr_flags & NDR_SCALARS) {
230 NDR_CHECK(ndr_push_align(ndr, 4));
232 uint32_t _flags_save_string = ndr->flags;
233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
235 ndr->flags = _flags_save_string;
238 uint32_t _flags_save_string = ndr->flags;
239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
241 ndr->flags = _flags_save_string;
243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
246 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
258 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
265 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
266 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
271 if (ndr_flags & NDR_BUFFERS) {
273 uint32_t _flags_save_string = ndr->flags;
274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
275 if (r->printername) {
276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
279 ndr->flags = _flags_save_string;
282 uint32_t _flags_save_string = ndr->flags;
283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
285 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
286 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
288 ndr->flags = _flags_save_string;
291 return NDR_ERR_SUCCESS;
294 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
296 uint32_t _ptr_printername;
297 TALLOC_CTX *_mem_save_printername_0;
298 uint32_t _ptr_servername;
299 TALLOC_CTX *_mem_save_servername_0;
300 if (ndr_flags & NDR_SCALARS) {
301 NDR_CHECK(ndr_pull_align(ndr, 4));
303 uint32_t _flags_save_string = ndr->flags;
304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
306 if (_ptr_printername) {
307 NDR_PULL_ALLOC(ndr, r->printername);
308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
310 r->printername = NULL;
312 ndr->flags = _flags_save_string;
315 uint32_t _flags_save_string = ndr->flags;
316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
318 if (_ptr_servername) {
319 NDR_PULL_ALLOC(ndr, r->servername);
320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
322 r->servername = NULL;
324 ndr->flags = _flags_save_string;
326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
329 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
341 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
344 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
348 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
349 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
354 if (ndr_flags & NDR_BUFFERS) {
356 uint32_t _flags_save_string = ndr->flags;
357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
358 if (r->printername) {
359 uint32_t _relative_save_offset;
360 _relative_save_offset = ndr->offset;
361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
362 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
363 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
366 ndr->offset = _relative_save_offset;
368 ndr->flags = _flags_save_string;
371 uint32_t _flags_save_string = ndr->flags;
372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
374 uint32_t _relative_save_offset;
375 _relative_save_offset = ndr->offset;
376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
377 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
378 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
379 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
381 ndr->offset = _relative_save_offset;
383 ndr->flags = _flags_save_string;
386 return NDR_ERR_SUCCESS;
389 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
391 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
393 ndr_print_ptr(ndr, "printername", r->printername);
395 if (r->printername) {
396 ndr_print_string(ndr, "printername", r->printername);
399 ndr_print_ptr(ndr, "servername", r->servername);
402 ndr_print_string(ndr, "servername", r->servername);
405 ndr_print_uint32(ndr, "cjobs", r->cjobs);
406 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
407 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
408 ndr_print_spoolss_Time(ndr, "time", &r->time);
409 ndr_print_uint32(ndr, "global_counter", r->global_counter);
410 ndr_print_uint32(ndr, "total_pages", r->total_pages);
411 ndr_print_uint32(ndr, "version", r->version);
412 ndr_print_uint32(ndr, "free_build", r->free_build);
413 ndr_print_uint32(ndr, "spooling", r->spooling);
414 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
415 ndr_print_uint32(ndr, "session_counter", r->session_counter);
416 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
417 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
418 ndr_print_uint32(ndr, "job_error", r->job_error);
419 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
420 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
421 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
422 ndr_print_uint32(ndr, "change_id", r->change_id);
423 ndr_print_WERROR(ndr, "last_error", r->last_error);
424 ndr_print_uint32(ndr, "status", r->status);
425 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
426 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
427 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
428 ndr_print_uint16(ndr, "processor_level", r->processor_level);
429 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
430 ndr_print_uint32(ndr, "reserved2", r->reserved2);
431 ndr_print_uint32(ndr, "reserved3", r->reserved3);
435 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
438 return NDR_ERR_SUCCESS;
441 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
446 return NDR_ERR_SUCCESS;
449 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
451 ndr_print_uint32(ndr, name, r);
453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
463 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
464 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
465 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
466 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
467 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
468 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
469 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
470 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
471 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
472 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
473 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
474 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
475 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
476 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
477 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
478 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
479 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
480 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
484 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
486 if (ndr_flags & NDR_SCALARS) {
487 NDR_CHECK(ndr_push_align(ndr, 4));
488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
489 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
490 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
491 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
492 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
493 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
494 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
495 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
496 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
497 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
498 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
499 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
500 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
501 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
502 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
503 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
504 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
505 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
506 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
507 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
508 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
523 uint32_t _flags_save_DATA_BLOB = ndr->flags;
524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
526 struct ndr_push *_ndr_driverextra_data;
527 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
528 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
529 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
531 ndr->flags = _flags_save_DATA_BLOB;
534 if (ndr_flags & NDR_BUFFERS) {
536 return NDR_ERR_SUCCESS;
539 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
541 if (ndr_flags & NDR_SCALARS) {
542 NDR_CHECK(ndr_pull_align(ndr, 4));
543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
544 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
545 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
546 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
547 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
548 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
549 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
550 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
551 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
552 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
553 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
554 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
555 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
556 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
557 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
558 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
559 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
560 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
562 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
563 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
578 uint32_t _flags_save_DATA_BLOB = ndr->flags;
579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
581 struct ndr_pull *_ndr_driverextra_data;
582 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
583 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
584 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
586 ndr->flags = _flags_save_DATA_BLOB;
589 if (ndr_flags & NDR_BUFFERS) {
591 return NDR_ERR_SUCCESS;
594 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
596 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
598 ndr_print_string(ndr, "devicename", r->devicename);
599 ndr_print_uint16(ndr, "specversion", r->specversion);
600 ndr_print_uint16(ndr, "driverversion", r->driverversion);
601 ndr_print_uint16(ndr, "size", r->size);
602 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
603 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
604 ndr_print_uint16(ndr, "orientation", r->orientation);
605 ndr_print_uint16(ndr, "papersize", r->papersize);
606 ndr_print_uint16(ndr, "paperlength", r->paperlength);
607 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
608 ndr_print_uint16(ndr, "scale", r->scale);
609 ndr_print_uint16(ndr, "copies", r->copies);
610 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
611 ndr_print_uint16(ndr, "printquality", r->printquality);
612 ndr_print_uint16(ndr, "color", r->color);
613 ndr_print_uint16(ndr, "duplex", r->duplex);
614 ndr_print_uint16(ndr, "yresolution", r->yresolution);
615 ndr_print_uint16(ndr, "ttoption", r->ttoption);
616 ndr_print_uint16(ndr, "collate", r->collate);
617 ndr_print_string(ndr, "formname", r->formname);
618 ndr_print_uint16(ndr, "logpixels", r->logpixels);
619 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
620 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
621 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
622 ndr_print_uint32(ndr, "displayflags", r->displayflags);
623 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
624 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
625 ndr_print_uint32(ndr, "icmintent", r->icmintent);
626 ndr_print_uint32(ndr, "mediatype", r->mediatype);
627 ndr_print_uint32(ndr, "dithertype", r->dithertype);
628 ndr_print_uint32(ndr, "reserved1", r->reserved1);
629 ndr_print_uint32(ndr, "reserved2", r->reserved2);
630 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
631 ndr_print_uint32(ndr, "panningheight", r->panningheight);
632 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
636 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
638 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
641 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
644 return NDR_ERR_SUCCESS;
647 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
652 return NDR_ERR_SUCCESS;
655 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
657 ndr_print_uint32(ndr, name, r);
659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
660 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
661 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
662 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
663 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
664 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
675 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
676 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
677 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
681 static enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
683 if (ndr_flags & NDR_SCALARS) {
684 NDR_CHECK(ndr_push_align(ndr, 4));
685 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
687 uint32_t _flags_save_string = ndr->flags;
688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
689 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
690 ndr->flags = _flags_save_string;
693 uint32_t _flags_save_string = ndr->flags;
694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
695 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
696 ndr->flags = _flags_save_string;
699 uint32_t _flags_save_string = ndr->flags;
700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
701 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
702 ndr->flags = _flags_save_string;
705 if (ndr_flags & NDR_BUFFERS) {
707 uint32_t _flags_save_string = ndr->flags;
708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
710 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
711 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
713 ndr->flags = _flags_save_string;
716 uint32_t _flags_save_string = ndr->flags;
717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
718 if (r->description) {
719 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
720 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
722 ndr->flags = _flags_save_string;
725 uint32_t _flags_save_string = ndr->flags;
726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
731 ndr->flags = _flags_save_string;
734 return NDR_ERR_SUCCESS;
737 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
740 TALLOC_CTX *_mem_save_name_0;
741 uint32_t _ptr_description;
742 TALLOC_CTX *_mem_save_description_0;
743 uint32_t _ptr_comment;
744 TALLOC_CTX *_mem_save_comment_0;
745 if (ndr_flags & NDR_SCALARS) {
746 NDR_CHECK(ndr_pull_align(ndr, 4));
747 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
749 uint32_t _flags_save_string = ndr->flags;
750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
753 NDR_PULL_ALLOC(ndr, r->name);
754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
758 ndr->flags = _flags_save_string;
761 uint32_t _flags_save_string = ndr->flags;
762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
764 if (_ptr_description) {
765 NDR_PULL_ALLOC(ndr, r->description);
766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
768 r->description = NULL;
770 ndr->flags = _flags_save_string;
773 uint32_t _flags_save_string = ndr->flags;
774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
777 NDR_PULL_ALLOC(ndr, r->comment);
778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
782 ndr->flags = _flags_save_string;
785 if (ndr_flags & NDR_BUFFERS) {
787 uint32_t _flags_save_string = ndr->flags;
788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
790 uint32_t _relative_save_offset;
791 _relative_save_offset = ndr->offset;
792 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
793 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
794 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
795 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
797 ndr->offset = _relative_save_offset;
799 ndr->flags = _flags_save_string;
802 uint32_t _flags_save_string = ndr->flags;
803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
804 if (r->description) {
805 uint32_t _relative_save_offset;
806 _relative_save_offset = ndr->offset;
807 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
808 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
809 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
810 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
812 ndr->offset = _relative_save_offset;
814 ndr->flags = _flags_save_string;
817 uint32_t _flags_save_string = ndr->flags;
818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
820 uint32_t _relative_save_offset;
821 _relative_save_offset = ndr->offset;
822 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
823 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
824 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
827 ndr->offset = _relative_save_offset;
829 ndr->flags = _flags_save_string;
832 return NDR_ERR_SUCCESS;
835 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
837 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
839 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
840 ndr_print_ptr(ndr, "name", r->name);
843 ndr_print_string(ndr, "name", r->name);
846 ndr_print_ptr(ndr, "description", r->description);
848 if (r->description) {
849 ndr_print_string(ndr, "description", r->description);
852 ndr_print_ptr(ndr, "comment", r->comment);
855 ndr_print_string(ndr, "comment", r->comment);
861 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
864 return NDR_ERR_SUCCESS;
867 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
872 return NDR_ERR_SUCCESS;
875 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
877 ndr_print_uint32(ndr, name, r);
879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
885 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
886 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
887 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
888 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
889 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
890 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
891 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
892 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
893 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
894 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
898 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
901 return NDR_ERR_SUCCESS;
904 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
909 return NDR_ERR_SUCCESS;
912 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
914 ndr_print_uint32(ndr, name, r);
916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
924 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
928 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
933 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
934 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
935 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
936 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
937 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
938 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
939 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
940 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
944 static enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
946 if (ndr_flags & NDR_SCALARS) {
947 NDR_CHECK(ndr_push_align(ndr, 4));
949 uint32_t _flags_save_string = ndr->flags;
950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
951 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
952 ndr->flags = _flags_save_string;
955 uint32_t _flags_save_string = ndr->flags;
956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
957 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
958 ndr->flags = _flags_save_string;
961 uint32_t _flags_save_string = ndr->flags;
962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
963 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
964 ndr->flags = _flags_save_string;
967 uint32_t _flags_save_string = ndr->flags;
968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
970 ndr->flags = _flags_save_string;
973 uint32_t _flags_save_string = ndr->flags;
974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
976 ndr->flags = _flags_save_string;
979 uint32_t _flags_save_string = ndr->flags;
980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
982 ndr->flags = _flags_save_string;
985 uint32_t _flags_save_string = ndr->flags;
986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
988 ndr->flags = _flags_save_string;
990 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
992 uint32_t _flags_save_string = ndr->flags;
993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
994 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
995 ndr->flags = _flags_save_string;
998 uint32_t _flags_save_string = ndr->flags;
999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1000 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1001 ndr->flags = _flags_save_string;
1004 uint32_t _flags_save_string = ndr->flags;
1005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1006 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1007 ndr->flags = _flags_save_string;
1010 uint32_t _flags_save_string = ndr->flags;
1011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1012 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1013 ndr->flags = _flags_save_string;
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1016 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1021 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1025 if (ndr_flags & NDR_BUFFERS) {
1027 uint32_t _flags_save_string = ndr->flags;
1028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1029 if (r->servername) {
1030 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1031 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1033 ndr->flags = _flags_save_string;
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 if (r->printername) {
1039 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1040 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1042 ndr->flags = _flags_save_string;
1045 uint32_t _flags_save_string = ndr->flags;
1046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1048 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1049 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1051 ndr->flags = _flags_save_string;
1054 uint32_t _flags_save_string = ndr->flags;
1055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1057 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1058 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1060 ndr->flags = _flags_save_string;
1063 uint32_t _flags_save_string = ndr->flags;
1064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1065 if (r->drivername) {
1066 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1067 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1069 ndr->flags = _flags_save_string;
1072 uint32_t _flags_save_string = ndr->flags;
1073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1075 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1076 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1078 ndr->flags = _flags_save_string;
1081 uint32_t _flags_save_string = ndr->flags;
1082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1084 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1085 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1087 ndr->flags = _flags_save_string;
1090 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1092 struct ndr_push *_ndr_devmode;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1094 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1099 uint32_t _flags_save_string = ndr->flags;
1100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1105 ndr->flags = _flags_save_string;
1108 uint32_t _flags_save_string = ndr->flags;
1109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1110 if (r->printprocessor) {
1111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1114 ndr->flags = _flags_save_string;
1117 uint32_t _flags_save_string = ndr->flags;
1118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1123 ndr->flags = _flags_save_string;
1126 uint32_t _flags_save_string = ndr->flags;
1127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1128 if (r->parameters) {
1129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1132 ndr->flags = _flags_save_string;
1135 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1137 struct ndr_push *_ndr_secdesc;
1138 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1139 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1140 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1144 return NDR_ERR_SUCCESS;
1147 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1149 uint32_t _ptr_servername;
1150 TALLOC_CTX *_mem_save_servername_0;
1151 uint32_t _ptr_printername;
1152 TALLOC_CTX *_mem_save_printername_0;
1153 uint32_t _ptr_sharename;
1154 TALLOC_CTX *_mem_save_sharename_0;
1155 uint32_t _ptr_portname;
1156 TALLOC_CTX *_mem_save_portname_0;
1157 uint32_t _ptr_drivername;
1158 TALLOC_CTX *_mem_save_drivername_0;
1159 uint32_t _ptr_comment;
1160 TALLOC_CTX *_mem_save_comment_0;
1161 uint32_t _ptr_location;
1162 TALLOC_CTX *_mem_save_location_0;
1163 uint32_t _ptr_devmode;
1164 TALLOC_CTX *_mem_save_devmode_0;
1165 uint32_t _ptr_sepfile;
1166 TALLOC_CTX *_mem_save_sepfile_0;
1167 uint32_t _ptr_printprocessor;
1168 TALLOC_CTX *_mem_save_printprocessor_0;
1169 uint32_t _ptr_datatype;
1170 TALLOC_CTX *_mem_save_datatype_0;
1171 uint32_t _ptr_parameters;
1172 TALLOC_CTX *_mem_save_parameters_0;
1173 uint32_t _ptr_secdesc;
1174 TALLOC_CTX *_mem_save_secdesc_0;
1175 if (ndr_flags & NDR_SCALARS) {
1176 NDR_CHECK(ndr_pull_align(ndr, 4));
1178 uint32_t _flags_save_string = ndr->flags;
1179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1181 if (_ptr_servername) {
1182 NDR_PULL_ALLOC(ndr, r->servername);
1183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1185 r->servername = NULL;
1187 ndr->flags = _flags_save_string;
1190 uint32_t _flags_save_string = ndr->flags;
1191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1193 if (_ptr_printername) {
1194 NDR_PULL_ALLOC(ndr, r->printername);
1195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1197 r->printername = NULL;
1199 ndr->flags = _flags_save_string;
1202 uint32_t _flags_save_string = ndr->flags;
1203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1205 if (_ptr_sharename) {
1206 NDR_PULL_ALLOC(ndr, r->sharename);
1207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1209 r->sharename = NULL;
1211 ndr->flags = _flags_save_string;
1214 uint32_t _flags_save_string = ndr->flags;
1215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1217 if (_ptr_portname) {
1218 NDR_PULL_ALLOC(ndr, r->portname);
1219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1223 ndr->flags = _flags_save_string;
1226 uint32_t _flags_save_string = ndr->flags;
1227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1229 if (_ptr_drivername) {
1230 NDR_PULL_ALLOC(ndr, r->drivername);
1231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1233 r->drivername = NULL;
1235 ndr->flags = _flags_save_string;
1238 uint32_t _flags_save_string = ndr->flags;
1239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1242 NDR_PULL_ALLOC(ndr, r->comment);
1243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1247 ndr->flags = _flags_save_string;
1250 uint32_t _flags_save_string = ndr->flags;
1251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1253 if (_ptr_location) {
1254 NDR_PULL_ALLOC(ndr, r->location);
1255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1259 ndr->flags = _flags_save_string;
1261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1263 NDR_PULL_ALLOC(ndr, r->devmode);
1264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1269 uint32_t _flags_save_string = ndr->flags;
1270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1273 NDR_PULL_ALLOC(ndr, r->sepfile);
1274 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1278 ndr->flags = _flags_save_string;
1281 uint32_t _flags_save_string = ndr->flags;
1282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1284 if (_ptr_printprocessor) {
1285 NDR_PULL_ALLOC(ndr, r->printprocessor);
1286 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1288 r->printprocessor = NULL;
1290 ndr->flags = _flags_save_string;
1293 uint32_t _flags_save_string = ndr->flags;
1294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1296 if (_ptr_datatype) {
1297 NDR_PULL_ALLOC(ndr, r->datatype);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1302 ndr->flags = _flags_save_string;
1305 uint32_t _flags_save_string = ndr->flags;
1306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1308 if (_ptr_parameters) {
1309 NDR_PULL_ALLOC(ndr, r->parameters);
1310 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1312 r->parameters = NULL;
1314 ndr->flags = _flags_save_string;
1316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1318 NDR_PULL_ALLOC(ndr, r->secdesc);
1319 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1323 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1328 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1332 if (ndr_flags & NDR_BUFFERS) {
1334 uint32_t _flags_save_string = ndr->flags;
1335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1336 if (r->servername) {
1337 uint32_t _relative_save_offset;
1338 _relative_save_offset = ndr->offset;
1339 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1340 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1341 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1342 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1344 ndr->offset = _relative_save_offset;
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 if (r->printername) {
1352 uint32_t _relative_save_offset;
1353 _relative_save_offset = ndr->offset;
1354 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1355 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1356 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1357 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1359 ndr->offset = _relative_save_offset;
1361 ndr->flags = _flags_save_string;
1364 uint32_t _flags_save_string = ndr->flags;
1365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1367 uint32_t _relative_save_offset;
1368 _relative_save_offset = ndr->offset;
1369 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1370 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1371 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1372 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1374 ndr->offset = _relative_save_offset;
1376 ndr->flags = _flags_save_string;
1379 uint32_t _flags_save_string = ndr->flags;
1380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1382 uint32_t _relative_save_offset;
1383 _relative_save_offset = ndr->offset;
1384 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1385 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1386 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1387 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1389 ndr->offset = _relative_save_offset;
1391 ndr->flags = _flags_save_string;
1394 uint32_t _flags_save_string = ndr->flags;
1395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 if (r->drivername) {
1397 uint32_t _relative_save_offset;
1398 _relative_save_offset = ndr->offset;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1400 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1404 ndr->offset = _relative_save_offset;
1406 ndr->flags = _flags_save_string;
1409 uint32_t _flags_save_string = ndr->flags;
1410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1412 uint32_t _relative_save_offset;
1413 _relative_save_offset = ndr->offset;
1414 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1415 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1416 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1417 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1419 ndr->offset = _relative_save_offset;
1421 ndr->flags = _flags_save_string;
1424 uint32_t _flags_save_string = ndr->flags;
1425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1427 uint32_t _relative_save_offset;
1428 _relative_save_offset = ndr->offset;
1429 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1430 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1431 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1432 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1434 ndr->offset = _relative_save_offset;
1436 ndr->flags = _flags_save_string;
1439 uint32_t _relative_save_offset;
1440 _relative_save_offset = ndr->offset;
1441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1442 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1443 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1445 struct ndr_pull *_ndr_devmode;
1446 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1448 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1451 ndr->offset = _relative_save_offset;
1454 uint32_t _flags_save_string = ndr->flags;
1455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1457 uint32_t _relative_save_offset;
1458 _relative_save_offset = ndr->offset;
1459 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1460 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1461 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1462 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1464 ndr->offset = _relative_save_offset;
1466 ndr->flags = _flags_save_string;
1469 uint32_t _flags_save_string = ndr->flags;
1470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1471 if (r->printprocessor) {
1472 uint32_t _relative_save_offset;
1473 _relative_save_offset = ndr->offset;
1474 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1475 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1476 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1477 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1479 ndr->offset = _relative_save_offset;
1481 ndr->flags = _flags_save_string;
1484 uint32_t _flags_save_string = ndr->flags;
1485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1487 uint32_t _relative_save_offset;
1488 _relative_save_offset = ndr->offset;
1489 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1490 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1491 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1492 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1494 ndr->offset = _relative_save_offset;
1496 ndr->flags = _flags_save_string;
1499 uint32_t _flags_save_string = ndr->flags;
1500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 if (r->parameters) {
1502 uint32_t _relative_save_offset;
1503 _relative_save_offset = ndr->offset;
1504 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1505 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1506 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1507 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1509 ndr->offset = _relative_save_offset;
1511 ndr->flags = _flags_save_string;
1514 uint32_t _relative_save_offset;
1515 _relative_save_offset = ndr->offset;
1516 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1517 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1518 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1520 struct ndr_pull *_ndr_secdesc;
1521 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1522 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1523 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1526 ndr->offset = _relative_save_offset;
1529 return NDR_ERR_SUCCESS;
1532 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1534 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1536 ndr_print_ptr(ndr, "servername", r->servername);
1538 if (r->servername) {
1539 ndr_print_string(ndr, "servername", r->servername);
1542 ndr_print_ptr(ndr, "printername", r->printername);
1544 if (r->printername) {
1545 ndr_print_string(ndr, "printername", r->printername);
1548 ndr_print_ptr(ndr, "sharename", r->sharename);
1551 ndr_print_string(ndr, "sharename", r->sharename);
1554 ndr_print_ptr(ndr, "portname", r->portname);
1557 ndr_print_string(ndr, "portname", r->portname);
1560 ndr_print_ptr(ndr, "drivername", r->drivername);
1562 if (r->drivername) {
1563 ndr_print_string(ndr, "drivername", r->drivername);
1566 ndr_print_ptr(ndr, "comment", r->comment);
1569 ndr_print_string(ndr, "comment", r->comment);
1572 ndr_print_ptr(ndr, "location", r->location);
1575 ndr_print_string(ndr, "location", r->location);
1578 ndr_print_ptr(ndr, "devmode", r->devmode);
1581 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1584 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1587 ndr_print_string(ndr, "sepfile", r->sepfile);
1590 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1592 if (r->printprocessor) {
1593 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1596 ndr_print_ptr(ndr, "datatype", r->datatype);
1599 ndr_print_string(ndr, "datatype", r->datatype);
1602 ndr_print_ptr(ndr, "parameters", r->parameters);
1604 if (r->parameters) {
1605 ndr_print_string(ndr, "parameters", r->parameters);
1608 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1611 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1614 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1615 ndr_print_uint32(ndr, "priority", r->priority);
1616 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1617 ndr_print_uint32(ndr, "starttime", r->starttime);
1618 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1619 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1620 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1621 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1625 static enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1627 if (ndr_flags & NDR_SCALARS) {
1628 NDR_CHECK(ndr_push_align(ndr, 4));
1629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1631 if (ndr_flags & NDR_BUFFERS) {
1633 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1635 struct ndr_push *_ndr_secdesc;
1636 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1637 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1638 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1642 return NDR_ERR_SUCCESS;
1645 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1647 uint32_t _ptr_secdesc;
1648 TALLOC_CTX *_mem_save_secdesc_0;
1649 if (ndr_flags & NDR_SCALARS) {
1650 NDR_CHECK(ndr_pull_align(ndr, 4));
1651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1653 NDR_PULL_ALLOC(ndr, r->secdesc);
1654 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1659 if (ndr_flags & NDR_BUFFERS) {
1661 uint32_t _relative_save_offset;
1662 _relative_save_offset = ndr->offset;
1663 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1664 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1665 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1667 struct ndr_pull *_ndr_secdesc;
1668 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1669 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1670 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1673 ndr->offset = _relative_save_offset;
1676 return NDR_ERR_SUCCESS;
1679 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1681 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1683 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1686 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1692 static enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1694 if (ndr_flags & NDR_SCALARS) {
1695 NDR_CHECK(ndr_push_align(ndr, 4));
1697 uint32_t _flags_save_string = ndr->flags;
1698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1699 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1700 ndr->flags = _flags_save_string;
1703 uint32_t _flags_save_string = ndr->flags;
1704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1705 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1706 ndr->flags = _flags_save_string;
1708 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1710 if (ndr_flags & NDR_BUFFERS) {
1712 uint32_t _flags_save_string = ndr->flags;
1713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1714 if (r->printername) {
1715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1718 ndr->flags = _flags_save_string;
1721 uint32_t _flags_save_string = ndr->flags;
1722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1723 if (r->servername) {
1724 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1725 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1727 ndr->flags = _flags_save_string;
1730 return NDR_ERR_SUCCESS;
1733 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1735 uint32_t _ptr_printername;
1736 TALLOC_CTX *_mem_save_printername_0;
1737 uint32_t _ptr_servername;
1738 TALLOC_CTX *_mem_save_servername_0;
1739 if (ndr_flags & NDR_SCALARS) {
1740 NDR_CHECK(ndr_pull_align(ndr, 4));
1742 uint32_t _flags_save_string = ndr->flags;
1743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1745 if (_ptr_printername) {
1746 NDR_PULL_ALLOC(ndr, r->printername);
1747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1749 r->printername = NULL;
1751 ndr->flags = _flags_save_string;
1754 uint32_t _flags_save_string = ndr->flags;
1755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1757 if (_ptr_servername) {
1758 NDR_PULL_ALLOC(ndr, r->servername);
1759 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1761 r->servername = NULL;
1763 ndr->flags = _flags_save_string;
1765 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1767 if (ndr_flags & NDR_BUFFERS) {
1769 uint32_t _flags_save_string = ndr->flags;
1770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1771 if (r->printername) {
1772 uint32_t _relative_save_offset;
1773 _relative_save_offset = ndr->offset;
1774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1775 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1776 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1777 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1779 ndr->offset = _relative_save_offset;
1781 ndr->flags = _flags_save_string;
1784 uint32_t _flags_save_string = ndr->flags;
1785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1786 if (r->servername) {
1787 uint32_t _relative_save_offset;
1788 _relative_save_offset = ndr->offset;
1789 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1790 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1791 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1792 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1794 ndr->offset = _relative_save_offset;
1796 ndr->flags = _flags_save_string;
1799 return NDR_ERR_SUCCESS;
1802 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1804 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1806 ndr_print_ptr(ndr, "printername", r->printername);
1808 if (r->printername) {
1809 ndr_print_string(ndr, "printername", r->printername);
1812 ndr_print_ptr(ndr, "servername", r->servername);
1814 if (r->servername) {
1815 ndr_print_string(ndr, "servername", r->servername);
1818 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1822 static enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1824 if (ndr_flags & NDR_SCALARS) {
1825 NDR_CHECK(ndr_push_align(ndr, 4));
1827 uint32_t _flags_save_string = ndr->flags;
1828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1829 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1830 ndr->flags = _flags_save_string;
1833 uint32_t _flags_save_string = ndr->flags;
1834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1835 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1836 ndr->flags = _flags_save_string;
1838 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1842 if (ndr_flags & NDR_BUFFERS) {
1844 uint32_t _flags_save_string = ndr->flags;
1845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1846 if (r->printername) {
1847 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1850 ndr->flags = _flags_save_string;
1853 uint32_t _flags_save_string = ndr->flags;
1854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1856 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1859 ndr->flags = _flags_save_string;
1862 return NDR_ERR_SUCCESS;
1865 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1867 uint32_t _ptr_printername;
1868 TALLOC_CTX *_mem_save_printername_0;
1869 uint32_t _ptr_portname;
1870 TALLOC_CTX *_mem_save_portname_0;
1871 if (ndr_flags & NDR_SCALARS) {
1872 NDR_CHECK(ndr_pull_align(ndr, 4));
1874 uint32_t _flags_save_string = ndr->flags;
1875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1877 if (_ptr_printername) {
1878 NDR_PULL_ALLOC(ndr, r->printername);
1879 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1881 r->printername = NULL;
1883 ndr->flags = _flags_save_string;
1886 uint32_t _flags_save_string = ndr->flags;
1887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1889 if (_ptr_portname) {
1890 NDR_PULL_ALLOC(ndr, r->portname);
1891 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1895 ndr->flags = _flags_save_string;
1897 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1899 NDR_CHECK(ndr_pull_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 uint32_t _relative_save_offset;
1907 _relative_save_offset = ndr->offset;
1908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1909 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1910 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1913 ndr->offset = _relative_save_offset;
1915 ndr->flags = _flags_save_string;
1918 uint32_t _flags_save_string = ndr->flags;
1919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1921 uint32_t _relative_save_offset;
1922 _relative_save_offset = ndr->offset;
1923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1924 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1925 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1928 ndr->offset = _relative_save_offset;
1930 ndr->flags = _flags_save_string;
1933 return NDR_ERR_SUCCESS;
1936 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1938 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1940 ndr_print_ptr(ndr, "printername", r->printername);
1942 if (r->printername) {
1943 ndr_print_string(ndr, "printername", r->printername);
1946 ndr_print_ptr(ndr, "portname", r->portname);
1949 ndr_print_string(ndr, "portname", r->portname);
1952 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1953 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1954 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1958 static enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1960 if (ndr_flags & NDR_SCALARS) {
1961 NDR_CHECK(ndr_push_align(ndr, 4));
1962 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1964 if (ndr_flags & NDR_BUFFERS) {
1966 return NDR_ERR_SUCCESS;
1969 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
1971 if (ndr_flags & NDR_SCALARS) {
1972 NDR_CHECK(ndr_pull_align(ndr, 4));
1973 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1975 if (ndr_flags & NDR_BUFFERS) {
1977 return NDR_ERR_SUCCESS;
1980 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
1982 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
1984 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1988 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1991 return NDR_ERR_SUCCESS;
1994 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1999 return NDR_ERR_SUCCESS;
2002 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2004 ndr_print_uint32(ndr, name, r);
2006 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2007 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2008 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2009 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2010 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2014 static enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2016 if (ndr_flags & NDR_SCALARS) {
2017 NDR_CHECK(ndr_push_align(ndr, 4));
2019 uint32_t _flags_save_string = ndr->flags;
2020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2022 ndr->flags = _flags_save_string;
2024 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2026 if (ndr_flags & NDR_BUFFERS) {
2028 uint32_t _flags_save_string = ndr->flags;
2029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2031 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2032 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2034 ndr->flags = _flags_save_string;
2037 return NDR_ERR_SUCCESS;
2040 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2043 TALLOC_CTX *_mem_save_guid_0;
2044 if (ndr_flags & NDR_SCALARS) {
2045 NDR_CHECK(ndr_pull_align(ndr, 4));
2047 uint32_t _flags_save_string = ndr->flags;
2048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2051 NDR_PULL_ALLOC(ndr, r->guid);
2052 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2056 ndr->flags = _flags_save_string;
2058 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2060 if (ndr_flags & NDR_BUFFERS) {
2062 uint32_t _flags_save_string = ndr->flags;
2063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2065 uint32_t _relative_save_offset;
2066 _relative_save_offset = ndr->offset;
2067 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2068 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2069 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2070 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2072 ndr->offset = _relative_save_offset;
2074 ndr->flags = _flags_save_string;
2077 return NDR_ERR_SUCCESS;
2080 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2082 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2084 ndr_print_ptr(ndr, "guid", r->guid);
2087 ndr_print_string(ndr, "guid", r->guid);
2090 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2094 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2096 if (ndr_flags & NDR_SCALARS) {
2097 NDR_CHECK(ndr_push_align(ndr, 4));
2098 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2100 if (ndr_flags & NDR_BUFFERS) {
2102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2104 struct ndr_push *_ndr_devmode;
2105 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2106 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2107 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2111 return NDR_ERR_SUCCESS;
2114 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2116 uint32_t _ptr_devmode;
2117 TALLOC_CTX *_mem_save_devmode_0;
2118 if (ndr_flags & NDR_SCALARS) {
2119 NDR_CHECK(ndr_pull_align(ndr, 4));
2120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2122 NDR_PULL_ALLOC(ndr, r->devmode);
2123 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2128 if (ndr_flags & NDR_BUFFERS) {
2130 uint32_t _relative_save_offset;
2131 _relative_save_offset = ndr->offset;
2132 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2133 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2134 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2136 struct ndr_pull *_ndr_devmode;
2137 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2138 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2139 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2142 ndr->offset = _relative_save_offset;
2145 return NDR_ERR_SUCCESS;
2148 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2150 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2152 ndr_print_ptr(ndr, "devmode", r->devmode);
2155 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2161 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2163 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2164 if (ndr_flags & NDR_SCALARS) {
2165 int level = ndr_push_get_switch_value(ndr, r);
2168 NDR_CHECK(ndr_push_align(ndr, 4));
2169 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2170 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2174 NDR_CHECK(ndr_push_align(ndr, 4));
2175 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2176 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2180 NDR_CHECK(ndr_push_align(ndr, 4));
2181 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2182 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2186 NDR_CHECK(ndr_push_align(ndr, 4));
2187 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2188 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2192 NDR_CHECK(ndr_push_align(ndr, 4));
2193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2198 NDR_CHECK(ndr_push_align(ndr, 4));
2199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2200 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2204 NDR_CHECK(ndr_push_align(ndr, 4));
2205 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2210 NDR_CHECK(ndr_push_align(ndr, 4));
2211 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2212 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2216 NDR_CHECK(ndr_push_align(ndr, 4));
2217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2218 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2222 NDR_CHECK(ndr_push_align(ndr, 4));
2223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2224 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2232 if (ndr_flags & NDR_BUFFERS) {
2233 int level = ndr_push_get_switch_value(ndr, r);
2234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2237 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2241 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2245 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2249 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2257 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2264 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2268 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2272 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2280 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2281 return NDR_ERR_SUCCESS;
2284 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2286 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2288 level = ndr_pull_get_switch_value(ndr, r);
2289 if (ndr_flags & NDR_SCALARS) {
2292 NDR_CHECK(ndr_pull_align(ndr, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2298 NDR_CHECK(ndr_pull_align(ndr, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2300 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2304 NDR_CHECK(ndr_pull_align(ndr, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2306 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2310 NDR_CHECK(ndr_pull_align(ndr, 4));
2311 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2312 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2316 NDR_CHECK(ndr_pull_align(ndr, 4));
2317 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2322 NDR_CHECK(ndr_pull_align(ndr, 4));
2323 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2324 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2328 NDR_CHECK(ndr_pull_align(ndr, 4));
2329 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2334 NDR_CHECK(ndr_pull_align(ndr, 4));
2335 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2336 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2340 NDR_CHECK(ndr_pull_align(ndr, 4));
2341 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2342 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2346 NDR_CHECK(ndr_pull_align(ndr, 4));
2347 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2348 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2356 if (ndr_flags & NDR_BUFFERS) {
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2360 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2372 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2376 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2391 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2395 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2403 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2404 return NDR_ERR_SUCCESS;
2407 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2410 level = ndr_print_get_switch_value(ndr, r);
2411 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2414 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2418 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2422 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2426 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2430 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2434 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2438 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2442 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2446 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2450 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2459 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2461 if (ndr_flags & NDR_SCALARS) {
2462 NDR_CHECK(ndr_push_align(ndr, 4));
2463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2466 if (ndr_flags & NDR_BUFFERS) {
2469 struct ndr_push *_ndr_devmode;
2470 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2471 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2472 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2476 return NDR_ERR_SUCCESS;
2479 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2481 uint32_t _ptr_devmode;
2482 TALLOC_CTX *_mem_save_devmode_0;
2483 if (ndr_flags & NDR_SCALARS) {
2484 NDR_CHECK(ndr_pull_align(ndr, 4));
2485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2488 NDR_PULL_ALLOC(ndr, r->devmode);
2493 if (ndr_flags & NDR_BUFFERS) {
2495 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2496 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2498 struct ndr_pull *_ndr_devmode;
2499 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2500 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2501 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2506 return NDR_ERR_SUCCESS;
2509 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2511 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2513 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);
2514 ndr_print_ptr(ndr, "devmode", r->devmode);
2517 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2523 static enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2525 if (ndr_flags & NDR_SCALARS) {
2526 NDR_CHECK(ndr_push_align(ndr, 4));
2527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2529 uint32_t _flags_save_string = ndr->flags;
2530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2532 ndr->flags = _flags_save_string;
2535 uint32_t _flags_save_string = ndr->flags;
2536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2538 ndr->flags = _flags_save_string;
2541 uint32_t _flags_save_string = ndr->flags;
2542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2544 ndr->flags = _flags_save_string;
2547 uint32_t _flags_save_string = ndr->flags;
2548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2550 ndr->flags = _flags_save_string;
2553 uint32_t _flags_save_string = ndr->flags;
2554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2556 ndr->flags = _flags_save_string;
2559 uint32_t _flags_save_string = ndr->flags;
2560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2562 ndr->flags = _flags_save_string;
2564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
2565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2569 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2571 if (ndr_flags & NDR_BUFFERS) {
2573 uint32_t _flags_save_string = ndr->flags;
2574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2575 if (r->printer_name) {
2576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2579 ndr->flags = _flags_save_string;
2582 uint32_t _flags_save_string = ndr->flags;
2583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2584 if (r->server_name) {
2585 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2588 ndr->flags = _flags_save_string;
2591 uint32_t _flags_save_string = ndr->flags;
2592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2594 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2597 ndr->flags = _flags_save_string;
2600 uint32_t _flags_save_string = ndr->flags;
2601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2602 if (r->document_name) {
2603 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2606 ndr->flags = _flags_save_string;
2609 uint32_t _flags_save_string = ndr->flags;
2610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2612 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2613 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2615 ndr->flags = _flags_save_string;
2618 uint32_t _flags_save_string = ndr->flags;
2619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2620 if (r->text_status) {
2621 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2622 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2624 ndr->flags = _flags_save_string;
2627 return NDR_ERR_SUCCESS;
2630 static enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2632 uint32_t _ptr_printer_name;
2633 TALLOC_CTX *_mem_save_printer_name_0;
2634 uint32_t _ptr_server_name;
2635 TALLOC_CTX *_mem_save_server_name_0;
2636 uint32_t _ptr_user_name;
2637 TALLOC_CTX *_mem_save_user_name_0;
2638 uint32_t _ptr_document_name;
2639 TALLOC_CTX *_mem_save_document_name_0;
2640 uint32_t _ptr_data_type;
2641 TALLOC_CTX *_mem_save_data_type_0;
2642 uint32_t _ptr_text_status;
2643 TALLOC_CTX *_mem_save_text_status_0;
2644 if (ndr_flags & NDR_SCALARS) {
2645 NDR_CHECK(ndr_pull_align(ndr, 4));
2646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2648 uint32_t _flags_save_string = ndr->flags;
2649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2651 if (_ptr_printer_name) {
2652 NDR_PULL_ALLOC(ndr, r->printer_name);
2653 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2655 r->printer_name = NULL;
2657 ndr->flags = _flags_save_string;
2660 uint32_t _flags_save_string = ndr->flags;
2661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2663 if (_ptr_server_name) {
2664 NDR_PULL_ALLOC(ndr, r->server_name);
2665 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2667 r->server_name = NULL;
2669 ndr->flags = _flags_save_string;
2672 uint32_t _flags_save_string = ndr->flags;
2673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2675 if (_ptr_user_name) {
2676 NDR_PULL_ALLOC(ndr, r->user_name);
2677 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2679 r->user_name = NULL;
2681 ndr->flags = _flags_save_string;
2684 uint32_t _flags_save_string = ndr->flags;
2685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2687 if (_ptr_document_name) {
2688 NDR_PULL_ALLOC(ndr, r->document_name);
2689 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2691 r->document_name = NULL;
2693 ndr->flags = _flags_save_string;
2696 uint32_t _flags_save_string = ndr->flags;
2697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2699 if (_ptr_data_type) {
2700 NDR_PULL_ALLOC(ndr, r->data_type);
2701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2703 r->data_type = NULL;
2705 ndr->flags = _flags_save_string;
2708 uint32_t _flags_save_string = ndr->flags;
2709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2711 if (_ptr_text_status) {
2712 NDR_PULL_ALLOC(ndr, r->text_status);
2713 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2715 r->text_status = NULL;
2717 ndr->flags = _flags_save_string;
2719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
2720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2724 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2726 if (ndr_flags & NDR_BUFFERS) {
2728 uint32_t _flags_save_string = ndr->flags;
2729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2730 if (r->printer_name) {
2731 uint32_t _relative_save_offset;
2732 _relative_save_offset = ndr->offset;
2733 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2734 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2735 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2736 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2738 ndr->offset = _relative_save_offset;
2740 ndr->flags = _flags_save_string;
2743 uint32_t _flags_save_string = ndr->flags;
2744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2745 if (r->server_name) {
2746 uint32_t _relative_save_offset;
2747 _relative_save_offset = ndr->offset;
2748 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2749 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2750 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2751 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2753 ndr->offset = _relative_save_offset;
2755 ndr->flags = _flags_save_string;
2758 uint32_t _flags_save_string = ndr->flags;
2759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2761 uint32_t _relative_save_offset;
2762 _relative_save_offset = ndr->offset;
2763 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2764 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2765 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2766 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2768 ndr->offset = _relative_save_offset;
2770 ndr->flags = _flags_save_string;
2773 uint32_t _flags_save_string = ndr->flags;
2774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2775 if (r->document_name) {
2776 uint32_t _relative_save_offset;
2777 _relative_save_offset = ndr->offset;
2778 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2779 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2780 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2781 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2783 ndr->offset = _relative_save_offset;
2785 ndr->flags = _flags_save_string;
2788 uint32_t _flags_save_string = ndr->flags;
2789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2791 uint32_t _relative_save_offset;
2792 _relative_save_offset = ndr->offset;
2793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2794 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2795 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2798 ndr->offset = _relative_save_offset;
2800 ndr->flags = _flags_save_string;
2803 uint32_t _flags_save_string = ndr->flags;
2804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2805 if (r->text_status) {
2806 uint32_t _relative_save_offset;
2807 _relative_save_offset = ndr->offset;
2808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2809 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2810 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2813 ndr->offset = _relative_save_offset;
2815 ndr->flags = _flags_save_string;
2818 return NDR_ERR_SUCCESS;
2821 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2823 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2825 ndr_print_uint32(ndr, "job_id", r->job_id);
2826 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2828 if (r->printer_name) {
2829 ndr_print_string(ndr, "printer_name", r->printer_name);
2832 ndr_print_ptr(ndr, "server_name", r->server_name);
2834 if (r->server_name) {
2835 ndr_print_string(ndr, "server_name", r->server_name);
2838 ndr_print_ptr(ndr, "user_name", r->user_name);
2841 ndr_print_string(ndr, "user_name", r->user_name);
2844 ndr_print_ptr(ndr, "document_name", r->document_name);
2846 if (r->document_name) {
2847 ndr_print_string(ndr, "document_name", r->document_name);
2850 ndr_print_ptr(ndr, "data_type", r->data_type);
2853 ndr_print_string(ndr, "data_type", r->data_type);
2856 ndr_print_ptr(ndr, "text_status", r->text_status);
2858 if (r->text_status) {
2859 ndr_print_string(ndr, "text_status", r->text_status);
2862 ndr_print_uint32(ndr, "status", r->status);
2863 ndr_print_uint32(ndr, "priority", r->priority);
2864 ndr_print_uint32(ndr, "position", r->position);
2865 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2866 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2867 ndr_print_spoolss_Time(ndr, "time", &r->time);
2871 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
2873 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2874 if (ndr_flags & NDR_SCALARS) {
2875 int level = ndr_push_get_switch_value(ndr, r);
2878 NDR_CHECK(ndr_push_align(ndr, 4));
2879 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2880 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2894 if (ndr_flags & NDR_BUFFERS) {
2895 int level = ndr_push_get_switch_value(ndr, r);
2896 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2899 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2913 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2914 return NDR_ERR_SUCCESS;
2917 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
2919 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2921 level = ndr_pull_get_switch_value(ndr, r);
2922 if (ndr_flags & NDR_SCALARS) {
2925 NDR_CHECK(ndr_pull_align(ndr, 4));
2926 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2927 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2941 if (ndr_flags & NDR_BUFFERS) {
2942 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2945 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2959 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2960 return NDR_ERR_SUCCESS;
2963 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
2966 level = ndr_print_get_switch_value(ndr, r);
2967 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
2970 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
2985 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
2987 if (ndr_flags & NDR_SCALARS) {
2988 NDR_CHECK(ndr_push_align(ndr, 4));
2989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
2990 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
2991 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
2993 if (ndr_flags & NDR_BUFFERS) {
2994 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
2996 return NDR_ERR_SUCCESS;
2999 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
3001 if (ndr_flags & NDR_SCALARS) {
3002 NDR_CHECK(ndr_pull_align(ndr, 4));
3003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
3004 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
3005 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
3007 if (ndr_flags & NDR_BUFFERS) {
3008 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
3010 return NDR_ERR_SUCCESS;
3013 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
3015 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
3017 ndr_print_uint32(ndr, "level", r->level);
3018 ndr_print_set_switch_value(ndr, &r->info, r->level);
3019 ndr_print_spoolss_JobInfo(ndr, "info", &r->info);
3023 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
3025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3026 return NDR_ERR_SUCCESS;
3029 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
3032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3034 return NDR_ERR_SUCCESS;
3037 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
3039 const char *val = NULL;
3042 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
3043 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
3044 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
3045 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
3046 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
3047 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
3048 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
3050 ndr_print_enum(ndr, name, "ENUM", val, r);
3053 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
3055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3056 return NDR_ERR_SUCCESS;
3059 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
3062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3064 return NDR_ERR_SUCCESS;
3067 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
3069 const char *val = NULL;
3072 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
3073 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
3074 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
3075 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
3076 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
3078 ndr_print_enum(ndr, name, "ENUM", val, r);
3081 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
3083 if (ndr_flags & NDR_SCALARS) {
3084 NDR_CHECK(ndr_push_align(ndr, 4));
3085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3086 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
3088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
3089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
3090 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
3091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
3092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
3094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
3095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
3096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
3097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
3098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
3099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
3100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
3101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
3102 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
3103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
3104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
3105 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
3106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
3107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
3108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
3109 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
3110 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
3111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
3112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
3113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
3115 if (ndr_flags & NDR_BUFFERS) {
3116 if (r->servername) {
3117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3122 if (r->printername) {
3123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3129 return NDR_ERR_SUCCESS;
3132 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
3134 uint32_t _ptr_servername;
3135 TALLOC_CTX *_mem_save_servername_0;
3136 uint32_t _ptr_printername;
3137 TALLOC_CTX *_mem_save_printername_0;
3138 if (ndr_flags & NDR_SCALARS) {
3139 NDR_CHECK(ndr_pull_align(ndr, 4));
3140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3141 if (_ptr_servername) {
3142 NDR_PULL_ALLOC(ndr, r->servername);
3144 r->servername = NULL;
3146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3147 if (_ptr_printername) {
3148 NDR_PULL_ALLOC(ndr, r->printername);
3150 r->printername = NULL;
3152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
3153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
3154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
3155 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
3156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
3157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
3159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
3160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
3161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
3162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
3163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
3164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
3165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
3166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
3167 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
3168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
3169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
3170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
3171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
3172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
3173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
3174 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
3175 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
3176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
3177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
3178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
3180 if (ndr_flags & NDR_BUFFERS) {
3181 if (r->servername) {
3182 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3183 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3184 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3185 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3186 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3187 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));
3189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3193 if (r->printername) {
3194 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3195 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3196 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3197 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3198 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3199 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));
3201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3206 return NDR_ERR_SUCCESS;
3209 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
3211 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
3213 ndr_print_ptr(ndr, "servername", r->servername);
3215 if (r->servername) {
3216 ndr_print_string(ndr, "servername", r->servername);
3219 ndr_print_ptr(ndr, "printername", r->printername);
3221 if (r->printername) {
3222 ndr_print_string(ndr, "printername", r->printername);
3225 ndr_print_uint32(ndr, "cjobs", r->cjobs);
3226 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
3227 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
3228 ndr_print_spoolss_Time(ndr, "time", &r->time);
3229 ndr_print_uint32(ndr, "global_counter", r->global_counter);
3230 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3231 ndr_print_uint32(ndr, "version", r->version);
3232 ndr_print_uint32(ndr, "free_build", r->free_build);
3233 ndr_print_uint32(ndr, "spooling", r->spooling);
3234 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
3235 ndr_print_uint32(ndr, "session_counter", r->session_counter);
3236 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
3237 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
3238 ndr_print_uint32(ndr, "job_error", r->job_error);
3239 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
3240 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
3241 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
3242 ndr_print_uint32(ndr, "change_id", r->change_id);
3243 ndr_print_WERROR(ndr, "last_error", r->last_error);
3244 ndr_print_uint32(ndr, "status", r->status);
3245 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
3246 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
3247 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
3248 ndr_print_uint16(ndr, "processor_level", r->processor_level);
3249 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
3250 ndr_print_uint32(ndr, "reserved2", r->reserved2);
3251 ndr_print_uint32(ndr, "reserved3", r->reserved3);
3255 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
3257 if (ndr_flags & NDR_SCALARS) {
3258 NDR_CHECK(ndr_push_align(ndr, 4));
3259 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
3260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
3261 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
3262 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
3264 if (ndr_flags & NDR_BUFFERS) {
3266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
3267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
3269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3271 if (r->description) {
3272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
3273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
3275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3281 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3284 return NDR_ERR_SUCCESS;
3287 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
3290 TALLOC_CTX *_mem_save_name_0;
3291 uint32_t _ptr_description;
3292 TALLOC_CTX *_mem_save_description_0;
3293 uint32_t _ptr_comment;
3294 TALLOC_CTX *_mem_save_comment_0;
3295 if (ndr_flags & NDR_SCALARS) {
3296 NDR_CHECK(ndr_pull_align(ndr, 4));
3297 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
3298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
3300 NDR_PULL_ALLOC(ndr, r->name);
3304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
3305 if (_ptr_description) {
3306 NDR_PULL_ALLOC(ndr, r->description);
3308 r->description = NULL;
3310 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
3312 NDR_PULL_ALLOC(ndr, r->comment);
3317 if (ndr_flags & NDR_BUFFERS) {
3319 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3320 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
3321 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
3322 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
3323 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
3324 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));
3326 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
3327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
3328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
3330 if (r->description) {
3331 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
3332 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
3333 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
3334 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
3335 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
3336 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));
3338 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
3339 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
3340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
3343 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
3344 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
3345 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
3346 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
3347 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
3348 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));
3350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
3351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
3352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
3355 return NDR_ERR_SUCCESS;
3358 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
3360 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
3362 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
3363 ndr_print_ptr(ndr, "name", r->name);
3366 ndr_print_string(ndr, "name", r->name);
3369 ndr_print_ptr(ndr, "description", r->description);
3371 if (r->description) {
3372 ndr_print_string(ndr, "description", r->description);
3375 ndr_print_ptr(ndr, "comment", r->comment);
3378 ndr_print_string(ndr, "comment", r->comment);
3384 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
3386 if (ndr_flags & NDR_SCALARS) {
3387 NDR_CHECK(ndr_push_align(ndr, 4));
3388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
3391 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
3392 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
3393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
3394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
3395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
3397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
3398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
3399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
3400 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
3401 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
3404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
3405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
3406 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
3407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
3408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
3410 if (ndr_flags & NDR_BUFFERS) {
3411 if (r->servername) {
3412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3417 if (r->printername) {
3418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
3425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
3427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
3431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
3433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3435 if (r->drivername) {
3436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
3437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
3439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
3449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
3451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3455 struct ndr_push *_ndr_devmode;
3456 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3457 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3458 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
3463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
3465 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3467 if (r->printprocessor) {
3468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
3469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
3471 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
3475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
3477 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3479 if (r->parameters) {
3480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
3481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
3483 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3487 struct ndr_push *_ndr_secdesc;
3488 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3489 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3490 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3494 return NDR_ERR_SUCCESS;
3497 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
3499 uint32_t _ptr_servername;
3500 TALLOC_CTX *_mem_save_servername_0;
3501 uint32_t _ptr_printername;
3502 TALLOC_CTX *_mem_save_printername_0;
3503 uint32_t _ptr_sharename;
3504 TALLOC_CTX *_mem_save_sharename_0;
3505 uint32_t _ptr_portname;
3506 TALLOC_CTX *_mem_save_portname_0;
3507 uint32_t _ptr_drivername;
3508 TALLOC_CTX *_mem_save_drivername_0;
3509 uint32_t _ptr_comment;
3510 TALLOC_CTX *_mem_save_comment_0;
3511 uint32_t _ptr_location;
3512 TALLOC_CTX *_mem_save_location_0;
3513 uint32_t _ptr_devmode;
3514 TALLOC_CTX *_mem_save_devmode_0;
3515 uint32_t _ptr_sepfile;
3516 TALLOC_CTX *_mem_save_sepfile_0;
3517 uint32_t _ptr_printprocessor;
3518 TALLOC_CTX *_mem_save_printprocessor_0;
3519 uint32_t _ptr_datatype;
3520 TALLOC_CTX *_mem_save_datatype_0;
3521 uint32_t _ptr_parameters;
3522 TALLOC_CTX *_mem_save_parameters_0;
3523 uint32_t _ptr_secdesc;
3524 TALLOC_CTX *_mem_save_secdesc_0;
3525 if (ndr_flags & NDR_SCALARS) {
3526 NDR_CHECK(ndr_pull_align(ndr, 4));
3527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3528 if (_ptr_servername) {
3529 NDR_PULL_ALLOC(ndr, r->servername);
3531 r->servername = NULL;
3533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3534 if (_ptr_printername) {
3535 NDR_PULL_ALLOC(ndr, r->printername);
3537 r->printername = NULL;
3539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
3540 if (_ptr_sharename) {
3541 NDR_PULL_ALLOC(ndr, r->sharename);
3543 r->sharename = NULL;
3545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
3546 if (_ptr_portname) {
3547 NDR_PULL_ALLOC(ndr, r->portname);
3551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
3552 if (_ptr_drivername) {
3553 NDR_PULL_ALLOC(ndr, r->drivername);
3555 r->drivername = NULL;
3557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
3559 NDR_PULL_ALLOC(ndr, r->comment);
3563 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
3564 if (_ptr_location) {
3565 NDR_PULL_ALLOC(ndr, r->location);
3569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3571 NDR_PULL_ALLOC(ndr, r->devmode);
3575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
3577 NDR_PULL_ALLOC(ndr, r->sepfile);
3581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
3582 if (_ptr_printprocessor) {
3583 NDR_PULL_ALLOC(ndr, r->printprocessor);
3585 r->printprocessor = NULL;
3587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
3588 if (_ptr_datatype) {
3589 NDR_PULL_ALLOC(ndr, r->datatype);
3593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3594 if (_ptr_parameters) {
3595 NDR_PULL_ALLOC(ndr, r->parameters);
3597 r->parameters = NULL;
3599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3601 NDR_PULL_ALLOC(ndr, r->secdesc);
3605 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
3608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
3609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
3610 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
3611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
3612 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
3614 if (ndr_flags & NDR_BUFFERS) {
3615 if (r->servername) {
3616 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3617 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3618 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3619 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3620 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3621 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));
3623 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3624 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3627 if (r->printername) {
3628 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3629 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3630 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3631 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3632 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3633 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));
3635 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3636 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3640 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
3641 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
3642 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
3643 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
3644 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
3645 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));
3647 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
3648 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
3649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
3652 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3653 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
3654 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
3655 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
3656 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
3657 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));
3659 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
3660 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
3661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
3663 if (r->drivername) {
3664 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3665 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
3666 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
3667 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
3668 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
3669 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));
3671 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
3672 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
3673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
3676 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
3677 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
3678 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
3679 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
3680 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
3681 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));
3683 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
3684 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
3685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
3688 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
3689 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
3690 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
3691 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
3692 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
3693 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));
3695 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
3696 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
3697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
3700 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3701 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3703 struct ndr_pull *_ndr_devmode;
3704 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3705 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3706 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
3708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3711 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
3712 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
3713 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
3714 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
3715 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
3716 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));
3718 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
3719 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
3720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
3722 if (r->printprocessor) {
3723 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3724 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
3725 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
3726 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
3727 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
3728 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));
3730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
3731 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
3732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
3735 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
3736 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
3737 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
3738 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
3739 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
3740 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));
3742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
3743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
3744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
3746 if (r->parameters) {
3747 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3748 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3749 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
3750 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
3751 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
3752 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));
3754 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
3755 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
3756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3759 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3760 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3762 struct ndr_pull *_ndr_secdesc;
3763 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3764 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3765 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3770 return NDR_ERR_SUCCESS;
3773 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
3775 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
3777 ndr_print_ptr(ndr, "servername", r->servername);
3779 if (r->servername) {
3780 ndr_print_string(ndr, "servername", r->servername);
3783 ndr_print_ptr(ndr, "printername", r->printername);
3785 if (r->printername) {
3786 ndr_print_string(ndr, "printername", r->printername);
3789 ndr_print_ptr(ndr, "sharename", r->sharename);
3792 ndr_print_string(ndr, "sharename", r->sharename);
3795 ndr_print_ptr(ndr, "portname", r->portname);
3798 ndr_print_string(ndr, "portname", r->portname);
3801 ndr_print_ptr(ndr, "drivername", r->drivername);
3803 if (r->drivername) {
3804 ndr_print_string(ndr, "drivername", r->drivername);
3807 ndr_print_ptr(ndr, "comment", r->comment);
3810 ndr_print_string(ndr, "comment", r->comment);
3813 ndr_print_ptr(ndr, "location", r->location);
3816 ndr_print_string(ndr, "location", r->location);
3819 ndr_print_ptr(ndr, "devmode", r->devmode);
3822 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3825 ndr_print_ptr(ndr, "sepfile", r->sepfile);
3828 ndr_print_string(ndr, "sepfile", r->sepfile);
3831 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
3833 if (r->printprocessor) {
3834 ndr_print_string(ndr, "printprocessor", r->printprocessor);
3837 ndr_print_ptr(ndr, "datatype", r->datatype);
3840 ndr_print_string(ndr, "datatype", r->datatype);
3843 ndr_print_ptr(ndr, "parameters", r->parameters);
3845 if (r->parameters) {
3846 ndr_print_string(ndr, "parameters", r->parameters);
3849 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3852 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3855 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
3856 ndr_print_uint32(ndr, "priority", r->priority);
3857 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
3858 ndr_print_uint32(ndr, "starttime", r->starttime);
3859 ndr_print_uint32(ndr, "untiltime", r->untiltime);
3860 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
3861 ndr_print_uint32(ndr, "cjobs", r->cjobs);
3862 ndr_print_uint32(ndr, "averageppm", r->averageppm);
3866 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
3868 if (ndr_flags & NDR_SCALARS) {
3869 NDR_CHECK(ndr_push_align(ndr, 4));
3870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
3872 if (ndr_flags & NDR_BUFFERS) {
3874 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3877 return NDR_ERR_SUCCESS;
3880 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
3882 uint32_t _ptr_secdesc;
3883 TALLOC_CTX *_mem_save_secdesc_0;
3884 if (ndr_flags & NDR_SCALARS) {
3885 NDR_CHECK(ndr_pull_align(ndr, 4));
3886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3888 NDR_PULL_ALLOC(ndr, r->secdesc);
3893 if (ndr_flags & NDR_BUFFERS) {
3895 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3896 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3897 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3901 return NDR_ERR_SUCCESS;
3904 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
3906 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
3908 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3911 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3917 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
3919 if (ndr_flags & NDR_SCALARS) {
3920 NDR_CHECK(ndr_push_align(ndr, 4));
3921 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3922 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3923 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3925 if (ndr_flags & NDR_BUFFERS) {
3926 if (r->printername) {
3927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3932 if (r->servername) {
3933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3939 return NDR_ERR_SUCCESS;
3942 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
3944 uint32_t _ptr_printername;
3945 TALLOC_CTX *_mem_save_printername_0;
3946 uint32_t _ptr_servername;
3947 TALLOC_CTX *_mem_save_servername_0;
3948 if (ndr_flags & NDR_SCALARS) {
3949 NDR_CHECK(ndr_pull_align(ndr, 4));
3950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3951 if (_ptr_printername) {
3952 NDR_PULL_ALLOC(ndr, r->printername);
3954 r->printername = NULL;
3956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3957 if (_ptr_servername) {
3958 NDR_PULL_ALLOC(ndr, r->servername);
3960 r->servername = NULL;
3962 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3964 if (ndr_flags & NDR_BUFFERS) {
3965 if (r->printername) {
3966 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3967 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3968 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3969 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3970 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3971 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));
3973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3977 if (r->servername) {
3978 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3979 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3980 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3981 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3982 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3983 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));
3985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3990 return NDR_ERR_SUCCESS;
3993 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
3995 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
3997 ndr_print_ptr(ndr, "printername", r->printername);
3999 if (r->printername) {
4000 ndr_print_string(ndr, "printername", r->printername);
4003 ndr_print_ptr(ndr, "servername", r->servername);
4005 if (r->servername) {
4006 ndr_print_string(ndr, "servername", r->servername);
4009 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4013 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
4015 if (ndr_flags & NDR_SCALARS) {
4016 NDR_CHECK(ndr_push_align(ndr, 4));
4017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
4018 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
4019 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
4020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
4021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
4023 if (ndr_flags & NDR_BUFFERS) {
4024 if (r->printername) {
4025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4034 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4037 return NDR_ERR_SUCCESS;
4040 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
4042 uint32_t _ptr_printername;
4043 TALLOC_CTX *_mem_save_printername_0;
4044 uint32_t _ptr_portname;
4045 TALLOC_CTX *_mem_save_portname_0;
4046 if (ndr_flags & NDR_SCALARS) {
4047 NDR_CHECK(ndr_pull_align(ndr, 4));
4048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
4049 if (_ptr_printername) {
4050 NDR_PULL_ALLOC(ndr, r->printername);
4052 r->printername = NULL;
4054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
4055 if (_ptr_portname) {
4056 NDR_PULL_ALLOC(ndr, r->portname);
4060 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
4061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
4062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
4064 if (ndr_flags & NDR_BUFFERS) {
4065 if (r->printername) {
4066 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
4067 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
4068 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
4069 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
4070 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
4071 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));
4073 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
4074 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
4075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
4078 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
4079 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
4080 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
4081 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
4082 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
4083 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));
4085 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
4086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
4087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
4090 return NDR_ERR_SUCCESS;
4093 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
4095 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
4097 ndr_print_ptr(ndr, "printername", r->printername);
4099 if (r->printername) {
4100 ndr_print_string(ndr, "printername", r->printername);
4103 ndr_print_ptr(ndr, "portname", r->portname);
4106 ndr_print_string(ndr, "portname", r->portname);
4109 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4110 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
4111 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
4115 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
4117 if (ndr_flags & NDR_SCALARS) {
4118 NDR_CHECK(ndr_push_align(ndr, 4));
4119 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
4121 if (ndr_flags & NDR_BUFFERS) {
4123 return NDR_ERR_SUCCESS;
4126 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
4128 if (ndr_flags & NDR_SCALARS) {
4129 NDR_CHECK(ndr_pull_align(ndr, 4));
4130 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
4132 if (ndr_flags & NDR_BUFFERS) {
4134 return NDR_ERR_SUCCESS;
4137 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
4139 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
4141 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
4145 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
4147 if (ndr_flags & NDR_SCALARS) {
4148 NDR_CHECK(ndr_push_align(ndr, 4));
4149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
4150 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
4152 if (ndr_flags & NDR_BUFFERS) {
4154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4160 return NDR_ERR_SUCCESS;
4163 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
4166 TALLOC_CTX *_mem_save_guid_0;
4167 if (ndr_flags & NDR_SCALARS) {
4168 NDR_CHECK(ndr_pull_align(ndr, 4));
4169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
4171 NDR_PULL_ALLOC(ndr, r->guid);
4175 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
4177 if (ndr_flags & NDR_BUFFERS) {
4179 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4180 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
4181 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
4182 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
4183 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
4184 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));
4186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
4187 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
4188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
4191 return NDR_ERR_SUCCESS;
4194 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
4196 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
4198 ndr_print_ptr(ndr, "guid", r->guid);
4201 ndr_print_string(ndr, "guid", r->guid);
4204 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
4208 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
4210 if (ndr_flags & NDR_SCALARS) {
4211 int level = ndr_push_get_switch_value(ndr, r);
4212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
4219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
4223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
4227 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
4231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
4235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
4239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
4243 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
4247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
4251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
4259 if (ndr_flags & NDR_BUFFERS) {
4260 int level = ndr_push_get_switch_value(ndr, r);
4264 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4270 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4276 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4282 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
4288 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4294 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4300 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4306 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4312 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4318 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4327 return NDR_ERR_SUCCESS;
4330 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
4334 TALLOC_CTX *_mem_save_info0_0;
4335 TALLOC_CTX *_mem_save_info1_0;
4336 TALLOC_CTX *_mem_save_info2_0;
4337 TALLOC_CTX *_mem_save_info3_0;
4338 TALLOC_CTX *_mem_save_info4_0;
4339 TALLOC_CTX *_mem_save_info5_0;
4340 TALLOC_CTX *_mem_save_info6_0;
4341 TALLOC_CTX *_mem_save_info7_0;
4342 TALLOC_CTX *_mem_save_info8_0;
4343 TALLOC_CTX *_mem_save_info9_0;
4344 level = ndr_pull_get_switch_value(ndr, r);
4345 if (ndr_flags & NDR_SCALARS) {
4346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4347 if (_level != level) {
4348 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4352 uint32_t _ptr_info0;
4353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
4355 NDR_PULL_ALLOC(ndr, r->info0);
4362 uint32_t _ptr_info1;
4363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
4365 NDR_PULL_ALLOC(ndr, r->info1);
4372 uint32_t _ptr_info2;
4373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
4375 NDR_PULL_ALLOC(ndr, r->info2);
4382 uint32_t _ptr_info3;
4383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
4385 NDR_PULL_ALLOC(ndr, r->info3);
4392 uint32_t _ptr_info4;
4393 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
4395 NDR_PULL_ALLOC(ndr, r->info4);
4402 uint32_t _ptr_info5;
4403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
4405 NDR_PULL_ALLOC(ndr, r->info5);
4412 uint32_t _ptr_info6;
4413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
4415 NDR_PULL_ALLOC(ndr, r->info6);
4422 uint32_t _ptr_info7;
4423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
4425 NDR_PULL_ALLOC(ndr, r->info7);
4432 uint32_t _ptr_info8;
4433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
4435 NDR_PULL_ALLOC(ndr, r->info8);
4442 uint32_t _ptr_info9;
4443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
4445 NDR_PULL_ALLOC(ndr, r->info9);
4456 if (ndr_flags & NDR_BUFFERS) {
4460 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
4461 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
4462 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
4469 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
4470 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
4471 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
4478 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
4479 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
4480 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
4487 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
4488 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
4489 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
4490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
4496 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
4497 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
4498 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
4505 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
4506 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
4507 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
4514 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
4515 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
4516 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
4523 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
4524 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
4525 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
4532 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
4533 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
4534 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
4541 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
4542 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
4543 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
4553 return NDR_ERR_SUCCESS;
4556 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
4559 level = ndr_print_get_switch_value(ndr, r);
4560 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
4563 ndr_print_ptr(ndr, "info0", r->info0);
4566 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
4572 ndr_print_ptr(ndr, "info1", r->info1);
4575 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
4581 ndr_print_ptr(ndr, "info2", r->info2);
4584 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
4590 ndr_print_ptr(ndr, "info3", r->info3);
4593 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
4599 ndr_print_ptr(ndr, "info4", r->info4);
4602 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
4608 ndr_print_ptr(ndr, "info5", r->info5);
4611 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
4617 ndr_print_ptr(ndr, "info6", r->info6);
4620 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
4626 ndr_print_ptr(ndr, "info7", r->info7);
4629 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
4635 ndr_print_ptr(ndr, "info8", r->info8);
4638 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
4644 ndr_print_ptr(ndr, "info9", r->info9);
4647 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
4658 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
4660 if (ndr_flags & NDR_SCALARS) {
4661 NDR_CHECK(ndr_push_align(ndr, 4));
4662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
4663 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
4664 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4666 if (ndr_flags & NDR_BUFFERS) {
4667 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4669 return NDR_ERR_SUCCESS;
4672 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
4674 if (ndr_flags & NDR_SCALARS) {
4675 NDR_CHECK(ndr_pull_align(ndr, 4));
4676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
4677 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
4678 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4680 if (ndr_flags & NDR_BUFFERS) {
4681 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4683 return NDR_ERR_SUCCESS;
4686 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
4688 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
4690 ndr_print_uint32(ndr, "level", r->level);
4691 ndr_print_set_switch_value(ndr, &r->info, r->level);
4692 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
4696 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
4698 if (ndr_flags & NDR_SCALARS) {
4699 NDR_CHECK(ndr_push_align(ndr, 4));
4700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
4702 uint32_t _flags_save_string_array = ndr->flags;
4703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4704 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
4705 ndr->flags = _flags_save_string_array;
4708 if (ndr_flags & NDR_BUFFERS) {
4710 return NDR_ERR_SUCCESS;
4713 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
4715 if (ndr_flags & NDR_SCALARS) {
4716 NDR_CHECK(ndr_pull_align(ndr, 4));
4717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
4719 uint32_t _flags_save_string_array = ndr->flags;
4720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4721 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
4722 ndr->flags = _flags_save_string_array;
4725 if (ndr_flags & NDR_BUFFERS) {
4727 return NDR_ERR_SUCCESS;
4730 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
4732 ndr_print_struct(ndr, name, "spoolss_StringArray");
4734 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);
4735 ndr_print_string_array(ndr, "string", r->string);
4739 _PUBLIC_ size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, struct smb_iconv_convenience *ic, int flags)
4741 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_StringArray, ic);
4744 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
4746 if (ndr_flags & NDR_SCALARS) {
4747 NDR_CHECK(ndr_push_align(ndr, 4));
4748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4750 if (ndr_flags & NDR_BUFFERS) {
4751 if (r->driver_name) {
4752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4758 return NDR_ERR_SUCCESS;
4761 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
4763 uint32_t _ptr_driver_name;
4764 TALLOC_CTX *_mem_save_driver_name_0;
4765 if (ndr_flags & NDR_SCALARS) {
4766 NDR_CHECK(ndr_pull_align(ndr, 4));
4767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4768 if (_ptr_driver_name) {
4769 NDR_PULL_ALLOC(ndr, r->driver_name);
4771 r->driver_name = NULL;
4774 if (ndr_flags & NDR_BUFFERS) {
4775 if (r->driver_name) {
4776 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4777 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4778 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4779 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4780 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4781 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));
4783 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4784 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4788 return NDR_ERR_SUCCESS;
4791 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
4793 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
4795 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4797 if (r->driver_name) {
4798 ndr_print_string(ndr, "driver_name", r->driver_name);
4804 static enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
4806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4807 return NDR_ERR_SUCCESS;
4810 static enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
4813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4815 return NDR_ERR_SUCCESS;
4818 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
4820 const char *val = NULL;
4823 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
4824 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
4825 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
4826 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
4828 ndr_print_enum(ndr, name, "ENUM", val, r);
4831 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
4833 if (ndr_flags & NDR_SCALARS) {
4834 NDR_CHECK(ndr_push_align(ndr, 4));
4835 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
4836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
4838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
4839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
4840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
4842 if (ndr_flags & NDR_BUFFERS) {
4843 if (r->driver_name) {
4844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4847 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4849 if (r->architecture) {
4850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4853 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4855 if (r->driver_path) {
4856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4859 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4865 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4867 if (r->config_file) {
4868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4871 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4874 return NDR_ERR_SUCCESS;
4877 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
4879 uint32_t _ptr_driver_name;
4880 TALLOC_CTX *_mem_save_driver_name_0;
4881 uint32_t _ptr_architecture;
4882 TALLOC_CTX *_mem_save_architecture_0;
4883 uint32_t _ptr_driver_path;
4884 TALLOC_CTX *_mem_save_driver_path_0;
4885 uint32_t _ptr_data_file;
4886 TALLOC_CTX *_mem_save_data_file_0;
4887 uint32_t _ptr_config_file;
4888 TALLOC_CTX *_mem_save_config_file_0;
4889 if (ndr_flags & NDR_SCALARS) {
4890 NDR_CHECK(ndr_pull_align(ndr, 4));
4891 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
4892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4893 if (_ptr_driver_name) {
4894 NDR_PULL_ALLOC(ndr, r->driver_name);
4896 r->driver_name = NULL;
4898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
4899 if (_ptr_architecture) {
4900 NDR_PULL_ALLOC(ndr, r->architecture);
4902 r->architecture = NULL;
4904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
4905 if (_ptr_driver_path) {
4906 NDR_PULL_ALLOC(ndr, r->driver_path);
4908 r->driver_path = NULL;
4910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
4911 if (_ptr_data_file) {
4912 NDR_PULL_ALLOC(ndr, r->data_file);
4914 r->data_file = NULL;
4916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
4917 if (_ptr_config_file) {
4918 NDR_PULL_ALLOC(ndr, r->config_file);
4920 r->config_file = NULL;
4923 if (ndr_flags & NDR_BUFFERS) {
4924 if (r->driver_name) {
4925 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4926 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4927 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4928 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4929 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4930 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));
4932 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4933 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4936 if (r->architecture) {
4937 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4938 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4939 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
4940 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
4941 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
4942 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));
4944 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
4945 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
4946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4948 if (r->driver_path) {
4949 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4950 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4951 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
4952 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
4953 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
4954 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));
4956 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
4957 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
4958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4961 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4962 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4963 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
4964 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
4965 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
4966 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));
4968 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
4969 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
4970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4972 if (r->config_file) {
4973 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4974 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4975 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
4976 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
4977 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
4978 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));
4980 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
4981 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
4982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4985 return NDR_ERR_SUCCESS;
4988 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
4990 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
4992 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4993 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4995 if (r->driver_name) {
4996 ndr_print_string(ndr, "driver_name", r->driver_name);
4999 ndr_print_ptr(ndr, "architecture", r->architecture);
5001 if (r->architecture) {
5002 ndr_print_string(ndr, "architecture", r->architecture);
5005 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5007 if (r->driver_path) {
5008 ndr_print_string(ndr, "driver_path", r->driver_path);
5011 ndr_print_ptr(ndr, "data_file", r->data_file);
5014 ndr_print_string(ndr, "data_file", r->data_file);
5017 ndr_print_ptr(ndr, "config_file", r->config_file);
5019 if (r->config_file) {
5020 ndr_print_string(ndr, "config_file", r->config_file);
5026 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
5028 if (ndr_flags & NDR_SCALARS) {
5029 NDR_CHECK(ndr_push_align(ndr, 4));
5030 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5040 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5042 if (ndr_flags & NDR_BUFFERS) {
5043 if (r->driver_name) {
5044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5047 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5049 if (r->architecture) {
5050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5053 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5055 if (r->driver_path) {
5056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5059 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5065 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5067 if (r->config_file) {
5068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5071 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5077 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5079 if (r->monitor_name) {
5080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5083 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5085 if (r->default_datatype) {
5086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5089 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5091 if (r->dependent_files) {
5092 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5095 return NDR_ERR_SUCCESS;
5098 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
5100 uint32_t _ptr_driver_name;
5101 TALLOC_CTX *_mem_save_driver_name_0;
5102 uint32_t _ptr_architecture;
5103 TALLOC_CTX *_mem_save_architecture_0;
5104 uint32_t _ptr_driver_path;
5105 TALLOC_CTX *_mem_save_driver_path_0;
5106 uint32_t _ptr_data_file;
5107 TALLOC_CTX *_mem_save_data_file_0;
5108 uint32_t _ptr_config_file;
5109 TALLOC_CTX *_mem_save_config_file_0;
5110 uint32_t _ptr_help_file;
5111 TALLOC_CTX *_mem_save_help_file_0;
5112 uint32_t _ptr_monitor_name;
5113 TALLOC_CTX *_mem_save_monitor_name_0;
5114 uint32_t _ptr_default_datatype;
5115 TALLOC_CTX *_mem_save_default_datatype_0;
5116 uint32_t _ptr_dependent_files;
5117 TALLOC_CTX *_mem_save_dependent_files_0;
5118 if (ndr_flags & NDR_SCALARS) {
5119 NDR_CHECK(ndr_pull_align(ndr, 4));
5120 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5122 if (_ptr_driver_name) {
5123 NDR_PULL_ALLOC(ndr, r->driver_name);
5125 r->driver_name = NULL;
5127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5128 if (_ptr_architecture) {
5129 NDR_PULL_ALLOC(ndr, r->architecture);
5131 r->architecture = NULL;
5133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5134 if (_ptr_driver_path) {
5135 NDR_PULL_ALLOC(ndr, r->driver_path);
5137 r->driver_path = NULL;
5139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5140 if (_ptr_data_file) {
5141 NDR_PULL_ALLOC(ndr, r->data_file);
5143 r->data_file = NULL;
5145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5146 if (_ptr_config_file) {
5147 NDR_PULL_ALLOC(ndr, r->config_file);
5149 r->config_file = NULL;
5151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5152 if (_ptr_help_file) {
5153 NDR_PULL_ALLOC(ndr, r->help_file);
5155 r->help_file = NULL;
5157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5158 if (_ptr_monitor_name) {
5159 NDR_PULL_ALLOC(ndr, r->monitor_name);
5161 r->monitor_name = NULL;
5163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5164 if (_ptr_default_datatype) {
5165 NDR_PULL_ALLOC(ndr, r->default_datatype);
5167 r->default_datatype = NULL;
5169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5171 if (_ptr_dependent_files) {
5172 NDR_PULL_ALLOC(ndr, r->dependent_files);
5174 r->dependent_files = NULL;
5177 if (ndr_flags & NDR_BUFFERS) {
5178 if (r->driver_name) {
5179 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5180 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5181 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5182 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5183 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5184 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));
5186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5187 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5190 if (r->architecture) {
5191 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5192 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5193 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5194 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5195 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5196 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));
5198 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5199 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5202 if (r->driver_path) {
5203 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5204 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5205 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5206 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5207 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5208 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));
5210 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5211 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5215 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5216 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5217 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5218 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5219 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5220 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));
5222 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5223 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5226 if (r->config_file) {
5227 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5228 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5229 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5230 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5231 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5232 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));
5234 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5235 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5239 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5240 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5241 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5242 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5243 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5244 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));
5246 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5247 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5250 if (r->monitor_name) {
5251 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5252 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5253 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5254 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5255 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5256 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));
5258 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5259 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5262 if (r->default_datatype) {
5263 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5264 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5265 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5266 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5267 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5268 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));
5270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5274 if (r->dependent_files) {
5275 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5276 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5277 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5281 return NDR_ERR_SUCCESS;
5284 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
5286 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
5288 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5289 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5291 if (r->driver_name) {
5292 ndr_print_string(ndr, "driver_name", r->driver_name);
5295 ndr_print_ptr(ndr, "architecture", r->architecture);
5297 if (r->architecture) {
5298 ndr_print_string(ndr, "architecture", r->architecture);
5301 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5303 if (r->driver_path) {
5304 ndr_print_string(ndr, "driver_path", r->driver_path);
5307 ndr_print_ptr(ndr, "data_file", r->data_file);
5310 ndr_print_string(ndr, "data_file", r->data_file);
5313 ndr_print_ptr(ndr, "config_file", r->config_file);
5315 if (r->config_file) {
5316 ndr_print_string(ndr, "config_file", r->config_file);
5319 ndr_print_ptr(ndr, "help_file", r->help_file);
5322 ndr_print_string(ndr, "help_file", r->help_file);
5325 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5327 if (r->monitor_name) {
5328 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5331 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5333 if (r->default_datatype) {
5334 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5337 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);
5338 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5340 if (r->dependent_files) {
5341 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5347 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
5349 if (ndr_flags & NDR_SCALARS) {
5350 NDR_CHECK(ndr_push_align(ndr, 4));
5351 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5359 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5363 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5365 if (ndr_flags & NDR_BUFFERS) {
5366 if (r->driver_name) {
5367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5372 if (r->architecture) {
5373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5376 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5378 if (r->driver_path) {
5379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5382 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5388 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5390 if (r->config_file) {
5391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5394 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5400 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5402 if (r->monitor_name) {
5403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5408 if (r->default_datatype) {
5409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5414 if (r->dependent_files) {
5415 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5417 if (r->previous_names) {
5418 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5421 return NDR_ERR_SUCCESS;
5424 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
5426 uint32_t _ptr_driver_name;
5427 TALLOC_CTX *_mem_save_driver_name_0;
5428 uint32_t _ptr_architecture;
5429 TALLOC_CTX *_mem_save_architecture_0;
5430 uint32_t _ptr_driver_path;
5431 TALLOC_CTX *_mem_save_driver_path_0;
5432 uint32_t _ptr_data_file;
5433 TALLOC_CTX *_mem_save_data_file_0;
5434 uint32_t _ptr_config_file;
5435 TALLOC_CTX *_mem_save_config_file_0;
5436 uint32_t _ptr_help_file;
5437 TALLOC_CTX *_mem_save_help_file_0;
5438 uint32_t _ptr_monitor_name;
5439 TALLOC_CTX *_mem_save_monitor_name_0;
5440 uint32_t _ptr_default_datatype;
5441 TALLOC_CTX *_mem_save_default_datatype_0;
5442 uint32_t _ptr_dependent_files;
5443 TALLOC_CTX *_mem_save_dependent_files_0;
5444 uint32_t _ptr_previous_names;
5445 TALLOC_CTX *_mem_save_previous_names_0;
5446 if (ndr_flags & NDR_SCALARS) {
5447 NDR_CHECK(ndr_pull_align(ndr, 4));
5448 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5449 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5450 if (_ptr_driver_name) {
5451 NDR_PULL_ALLOC(ndr, r->driver_name);
5453 r->driver_name = NULL;
5455 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5456 if (_ptr_architecture) {
5457 NDR_PULL_ALLOC(ndr, r->architecture);
5459 r->architecture = NULL;
5461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5462 if (_ptr_driver_path) {
5463 NDR_PULL_ALLOC(ndr, r->driver_path);
5465 r->driver_path = NULL;
5467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5468 if (_ptr_data_file) {
5469 NDR_PULL_ALLOC(ndr, r->data_file);
5471 r->data_file = NULL;
5473 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5474 if (_ptr_config_file) {
5475 NDR_PULL_ALLOC(ndr, r->config_file);
5477 r->config_file = NULL;
5479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5480 if (_ptr_help_file) {
5481 NDR_PULL_ALLOC(ndr, r->help_file);
5483 r->help_file = NULL;
5485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5486 if (_ptr_monitor_name) {
5487 NDR_PULL_ALLOC(ndr, r->monitor_name);
5489 r->monitor_name = NULL;
5491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5492 if (_ptr_default_datatype) {
5493 NDR_PULL_ALLOC(ndr, r->default_datatype);
5495 r->default_datatype = NULL;
5497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5499 if (_ptr_dependent_files) {
5500 NDR_PULL_ALLOC(ndr, r->dependent_files);
5502 r->dependent_files = NULL;
5504 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5506 if (_ptr_previous_names) {
5507 NDR_PULL_ALLOC(ndr, r->previous_names);
5509 r->previous_names = NULL;
5512 if (ndr_flags & NDR_BUFFERS) {
5513 if (r->driver_name) {
5514 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5515 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5516 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5517 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5518 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5519 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));
5521 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5522 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5525 if (r->architecture) {
5526 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5527 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5528 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5529 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5530 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5531 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));
5533 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5534 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5537 if (r->driver_path) {
5538 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5539 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5540 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5541 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5542 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5543 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));
5545 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5546 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5550 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5551 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5552 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5553 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5554 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5555 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));
5557 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5558 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5561 if (r->config_file) {
5562 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5563 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5564 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5565 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5566 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5567 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));
5569 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5570 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5574 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5575 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5576 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5577 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5578 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5579 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));
5581 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5582 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5585 if (r->monitor_name) {
5586 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5587 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5588 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5589 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5590 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5591 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));
5593 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5594 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5597 if (r->default_datatype) {
5598 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5599 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5600 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5601 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5602 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5603 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));
5605 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5606 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5609 if (r->dependent_files) {
5610 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5611 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5612 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5615 if (r->previous_names) {
5616 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5617 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
5618 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
5622 return NDR_ERR_SUCCESS;
5625 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
5627 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
5629 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5630 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5632 if (r->driver_name) {
5633 ndr_print_string(ndr, "driver_name", r->driver_name);
5636 ndr_print_ptr(ndr, "architecture", r->architecture);
5638 if (r->architecture) {
5639 ndr_print_string(ndr, "architecture", r->architecture);
5642 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5644 if (r->driver_path) {
5645 ndr_print_string(ndr, "driver_path", r->driver_path);
5648 ndr_print_ptr(ndr, "data_file", r->data_file);
5651 ndr_print_string(ndr, "data_file", r->data_file);
5654 ndr_print_ptr(ndr, "config_file", r->config_file);
5656 if (r->config_file) {
5657 ndr_print_string(ndr, "config_file", r->config_file);
5660 ndr_print_ptr(ndr, "help_file", r->help_file);
5663 ndr_print_string(ndr, "help_file", r->help_file);
5666 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5668 if (r->monitor_name) {
5669 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5672 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5674 if (r->default_datatype) {
5675 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5678 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);
5679 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5681 if (r->dependent_files) {
5682 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5685 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);
5686 ndr_print_ptr(ndr, "previous_names", r->previous_names);
5688 if (r->previous_names) {
5689 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
5695 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
5697 if (ndr_flags & NDR_SCALARS) {
5698 NDR_CHECK(ndr_push_align(ndr, 8));
5699 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5701 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5703 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5707 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5712 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
5713 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
5714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
5715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
5716 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
5717 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
5719 if (ndr_flags & NDR_BUFFERS) {
5720 if (r->driver_name) {
5721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5726 if (r->architecture) {
5727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5732 if (r->driver_path) {
5733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5736 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5742 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5744 if (r->config_file) {
5745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5754 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5756 if (r->monitor_name) {
5757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5760 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5762 if (r->default_datatype) {
5763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5766 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5768 if (r->dependent_files) {
5769 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5771 if (r->previous_names) {
5772 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5774 if (r->manufacturer_name) {
5775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5780 if (r->manufacturer_url) {
5781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5784 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5786 if (r->hardware_id) {
5787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5790 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5796 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5799 return NDR_ERR_SUCCESS;
5802 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
5804 uint32_t _ptr_driver_name;
5805 TALLOC_CTX *_mem_save_driver_name_0;
5806 uint32_t _ptr_architecture;
5807 TALLOC_CTX *_mem_save_architecture_0;
5808 uint32_t _ptr_driver_path;
5809 TALLOC_CTX *_mem_save_driver_path_0;
5810 uint32_t _ptr_data_file;
5811 TALLOC_CTX *_mem_save_data_file_0;
5812 uint32_t _ptr_config_file;
5813 TALLOC_CTX *_mem_save_config_file_0;
5814 uint32_t _ptr_help_file;
5815 TALLOC_CTX *_mem_save_help_file_0;
5816 uint32_t _ptr_monitor_name;
5817 TALLOC_CTX *_mem_save_monitor_name_0;
5818 uint32_t _ptr_default_datatype;
5819 TALLOC_CTX *_mem_save_default_datatype_0;
5820 uint32_t _ptr_dependent_files;
5821 TALLOC_CTX *_mem_save_dependent_files_0;
5822 uint32_t _ptr_previous_names;
5823 TALLOC_CTX *_mem_save_previous_names_0;
5824 uint32_t _ptr_manufacturer_name;
5825 TALLOC_CTX *_mem_save_manufacturer_name_0;
5826 uint32_t _ptr_manufacturer_url;
5827 TALLOC_CTX *_mem_save_manufacturer_url_0;
5828 uint32_t _ptr_hardware_id;
5829 TALLOC_CTX *_mem_save_hardware_id_0;
5830 uint32_t _ptr_provider;
5831 TALLOC_CTX *_mem_save_provider_0;
5832 if (ndr_flags & NDR_SCALARS) {
5833 NDR_CHECK(ndr_pull_align(ndr, 8));
5834 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5836 if (_ptr_driver_name) {
5837 NDR_PULL_ALLOC(ndr, r->driver_name);
5839 r->driver_name = NULL;
5841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5842 if (_ptr_architecture) {
5843 NDR_PULL_ALLOC(ndr, r->architecture);
5845 r->architecture = NULL;
5847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5848 if (_ptr_driver_path) {
5849 NDR_PULL_ALLOC(ndr, r->driver_path);
5851 r->driver_path = NULL;
5853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5854 if (_ptr_data_file) {
5855 NDR_PULL_ALLOC(ndr, r->data_file);
5857 r->data_file = NULL;
5859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5860 if (_ptr_config_file) {
5861 NDR_PULL_ALLOC(ndr, r->config_file);
5863 r->config_file = NULL;
5865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5866 if (_ptr_help_file) {
5867 NDR_PULL_ALLOC(ndr, r->help_file);
5869 r->help_file = NULL;
5871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5872 if (_ptr_monitor_name) {
5873 NDR_PULL_ALLOC(ndr, r->monitor_name);
5875 r->monitor_name = NULL;
5877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5878 if (_ptr_default_datatype) {
5879 NDR_PULL_ALLOC(ndr, r->default_datatype);
5881 r->default_datatype = NULL;
5883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5885 if (_ptr_dependent_files) {
5886 NDR_PULL_ALLOC(ndr, r->dependent_files);
5888 r->dependent_files = NULL;
5890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5892 if (_ptr_previous_names) {
5893 NDR_PULL_ALLOC(ndr, r->previous_names);
5895 r->previous_names = NULL;
5897 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
5898 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
5899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
5900 if (_ptr_manufacturer_name) {
5901 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
5903 r->manufacturer_name = NULL;
5905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
5906 if (_ptr_manufacturer_url) {
5907 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
5909 r->manufacturer_url = NULL;
5911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
5912 if (_ptr_hardware_id) {
5913 NDR_PULL_ALLOC(ndr, r->hardware_id);
5915 r->hardware_id = NULL;
5917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
5918 if (_ptr_provider) {
5919 NDR_PULL_ALLOC(ndr, r->provider);
5924 if (ndr_flags & NDR_BUFFERS) {
5925 if (r->driver_name) {
5926 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5927 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5928 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5929 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5930 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5931 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));
5933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5934 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5937 if (r->architecture) {
5938 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5939 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5940 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5941 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5942 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5943 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));
5945 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5949 if (r->driver_path) {
5950 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5951 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5952 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5953 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5954 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5955 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));
5957 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5958 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5962 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5963 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5964 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5965 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5966 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5967 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));
5969 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5970 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5973 if (r->config_file) {
5974 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5975 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5976 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5977 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5978 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5979 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));
5981 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5982 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5986 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5987 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5988 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5989 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5990 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5991 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));
5993 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5994 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5997 if (r->monitor_name) {
5998 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5999 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
6000 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
6001 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
6002 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
6003 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));
6005 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6006 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6009 if (r->default_datatype) {
6010 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6011 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6012 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6013 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6014 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6015 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));
6017 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6018 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6021 if (r->dependent_files) {
6022 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6023 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6024 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6027 if (r->previous_names) {
6028 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6029 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6030 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6033 if (r->manufacturer_name) {
6034 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6035 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6036 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6037 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6038 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6039 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));
6041 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6042 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6045 if (r->manufacturer_url) {
6046 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6047 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6048 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6049 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6050 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6051 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));
6053 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6054 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6057 if (r->hardware_id) {
6058 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6059 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6060 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6061 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6062 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6063 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));
6065 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6066 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6070 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6071 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6072 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6073 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6074 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6075 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));
6077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6082 return NDR_ERR_SUCCESS;
6085 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
6087 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
6089 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6090 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6092 if (r->driver_name) {
6093 ndr_print_string(ndr, "driver_name", r->driver_name);
6096 ndr_print_ptr(ndr, "architecture", r->architecture);
6098 if (r->architecture) {
6099 ndr_print_string(ndr, "architecture", r->architecture);
6102 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6104 if (r->driver_path) {
6105 ndr_print_string(ndr, "driver_path", r->driver_path);
6108 ndr_print_ptr(ndr, "data_file", r->data_file);
6111 ndr_print_string(ndr, "data_file", r->data_file);
6114 ndr_print_ptr(ndr, "config_file", r->config_file);
6116 if (r->config_file) {
6117 ndr_print_string(ndr, "config_file", r->config_file);
6120 ndr_print_ptr(ndr, "help_file", r->help_file);
6123 ndr_print_string(ndr, "help_file", r->help_file);
6126 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6128 if (r->monitor_name) {
6129 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6132 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6134 if (r->default_datatype) {
6135 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6138 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);
6139 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6141 if (r->dependent_files) {
6142 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6145 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);
6146 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6148 if (r->previous_names) {
6149 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6152 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6153 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6154 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6156 if (r->manufacturer_name) {
6157 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6160 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6162 if (r->manufacturer_url) {
6163 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6166 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6168 if (r->hardware_id) {
6169 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6172 ndr_print_ptr(ndr, "provider", r->provider);
6175 ndr_print_string(ndr, "provider", r->provider);
6181 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
6183 if (ndr_flags & NDR_SCALARS) {
6184 int level = ndr_push_get_switch_value(ndr, r);
6185 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6208 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6211 if (ndr_flags & NDR_BUFFERS) {
6212 int level = ndr_push_get_switch_value(ndr, r);
6216 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6222 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6228 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6234 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6240 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
6245 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6248 return NDR_ERR_SUCCESS;
6251 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
6255 TALLOC_CTX *_mem_save_info1_0;
6256 TALLOC_CTX *_mem_save_info2_0;
6257 TALLOC_CTX *_mem_save_info3_0;
6258 TALLOC_CTX *_mem_save_info4_0;
6259 TALLOC_CTX *_mem_save_info6_0;
6260 level = ndr_pull_get_switch_value(ndr, r);
6261 if (ndr_flags & NDR_SCALARS) {
6262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6263 if (_level != level) {
6264 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6268 uint32_t _ptr_info1;
6269 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6271 NDR_PULL_ALLOC(ndr, r->info1);
6278 uint32_t _ptr_info2;
6279 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6281 NDR_PULL_ALLOC(ndr, r->info2);
6288 uint32_t _ptr_info3;
6289 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6291 NDR_PULL_ALLOC(ndr, r->info3);
6298 uint32_t _ptr_info4;
6299 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6301 NDR_PULL_ALLOC(ndr, r->info4);
6308 uint32_t _ptr_info6;
6309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
6311 NDR_PULL_ALLOC(ndr, r->info6);
6318 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6321 if (ndr_flags & NDR_BUFFERS) {
6325 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6326 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6327 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6334 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6335 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
6336 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
6343 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
6344 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
6345 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6346 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
6352 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
6353 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
6354 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
6361 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
6362 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
6363 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
6364 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
6369 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6372 return NDR_ERR_SUCCESS;
6375 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
6378 level = ndr_print_get_switch_value(ndr, r);
6379 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
6382 ndr_print_ptr(ndr, "info1", r->info1);
6385 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
6391 ndr_print_ptr(ndr, "info2", r->info2);
6394 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
6400 ndr_print_ptr(ndr, "info3", r->info3);
6403 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
6409 ndr_print_ptr(ndr, "info4", r->info4);
6412 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
6418 ndr_print_ptr(ndr, "info6", r->info6);
6421 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
6427 ndr_print_bad_level(ndr, name, level);
6431 static enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
6433 if (ndr_flags & NDR_SCALARS) {
6434 NDR_CHECK(ndr_push_align(ndr, 4));
6436 uint32_t _flags_save_string = ndr->flags;
6437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6438 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
6439 ndr->flags = _flags_save_string;
6442 if (ndr_flags & NDR_BUFFERS) {
6444 uint32_t _flags_save_string = ndr->flags;
6445 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6446 if (r->driver_name) {
6447 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
6448 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
6450 ndr->flags = _flags_save_string;
6453 return NDR_ERR_SUCCESS;
6456 static enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
6458 uint32_t _ptr_driver_name;
6459 TALLOC_CTX *_mem_save_driver_name_0;
6460 if (ndr_flags & NDR_SCALARS) {
6461 NDR_CHECK(ndr_pull_align(ndr, 4));
6463 uint32_t _flags_save_string = ndr->flags;
6464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6465 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6466 if (_ptr_driver_name) {
6467 NDR_PULL_ALLOC(ndr, r->driver_name);
6468 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
6470 r->driver_name = NULL;
6472 ndr->flags = _flags_save_string;
6475 if (ndr_flags & NDR_BUFFERS) {
6477 uint32_t _flags_save_string = ndr->flags;
6478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6479 if (r->driver_name) {
6480 uint32_t _relative_save_offset;
6481 _relative_save_offset = ndr->offset;
6482 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
6483 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6484 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6485 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
6486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6487 ndr->offset = _relative_save_offset;
6489 ndr->flags = _flags_save_string;
6492 return NDR_ERR_SUCCESS;
6495 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
6497 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
6499 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6501 if (r->driver_name) {
6502 ndr_print_string(ndr, "driver_name", r->driver_name);
6508 static enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
6510 if (ndr_flags & NDR_SCALARS) {
6511 NDR_CHECK(ndr_push_align(ndr, 4));
6512 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
6514 uint32_t _flags_save_string = ndr->flags;
6515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
6517 ndr->flags = _flags_save_string;
6520 uint32_t _flags_save_string = ndr->flags;
6521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6522 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
6523 ndr->flags = _flags_save_string;
6526 uint32_t _flags_save_string = ndr->flags;
6527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
6529 ndr->flags = _flags_save_string;
6532 uint32_t _flags_save_string = ndr->flags;
6533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6534 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
6535 ndr->flags = _flags_save_string;
6538 uint32_t _flags_save_string = ndr->flags;
6539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6540 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
6541 ndr->flags = _flags_save_string;
6544 if (ndr_flags & NDR_BUFFERS) {
6546 uint32_t _flags_save_string = ndr->flags;
6547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6548 if (r->driver_name) {
6549 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
6550 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
6552 ndr->flags = _flags_save_string;
6555 uint32_t _flags_save_string = ndr->flags;
6556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6557 if (r->architecture) {
6558 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
6559 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
6561 ndr->flags = _flags_save_string;
6564 uint32_t _flags_save_string = ndr->flags;
6565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6566 if (r->driver_path) {
6567 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
6568 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
6570 ndr->flags = _flags_save_string;
6573 uint32_t _flags_save_string = ndr->flags;
6574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
6577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
6579 ndr->flags = _flags_save_string;
6582 uint32_t _flags_save_string = ndr->flags;
6583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6584 if (r->config_file) {
6585 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
6586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
6588 ndr->flags = _flags_save_string;
6591 return NDR_ERR_SUCCESS;
6594 static enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
6596 uint32_t _ptr_driver_name;
6597 TALLOC_CTX *_mem_save_driver_name_0;
6598 uint32_t _ptr_architecture;
6599 TALLOC_CTX *_mem_save_architecture_0;
6600 uint32_t _ptr_driver_path;
6601 TALLOC_CTX *_mem_save_driver_path_0;
6602 uint32_t _ptr_data_file;
6603 TALLOC_CTX *_mem_save_data_file_0;
6604 uint32_t _ptr_config_file;
6605 TALLOC_CTX *_mem_save_config_file_0;
6606 if (ndr_flags & NDR_SCALARS) {
6607 NDR_CHECK(ndr_pull_align(ndr, 4));
6608 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
6610 uint32_t _flags_save_string = ndr->flags;
6611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6612 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6613 if (_ptr_driver_name) {
6614 NDR_PULL_ALLOC(ndr, r->driver_name);
6615 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
6617 r->driver_name = NULL;
6619 ndr->flags = _flags_save_string;
6622 uint32_t _flags_save_string = ndr->flags;
6623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
6625 if (_ptr_architecture) {
6626 NDR_PULL_ALLOC(ndr, r->architecture);
6627 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
6629 r->architecture = NULL;
6631 ndr->flags = _flags_save_string;
6634 uint32_t _flags_save_string = ndr->flags;
6635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6636 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
6637 if (_ptr_driver_path) {
6638 NDR_PULL_ALLOC(ndr, r->driver_path);
6639 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
6641 r->driver_path = NULL;
6643 ndr->flags = _flags_save_string;
6646 uint32_t _flags_save_string = ndr->flags;
6647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6648 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
6649 if (_ptr_data_file) {
6650 NDR_PULL_ALLOC(ndr, r->data_file);
6651 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
6653 r->data_file = NULL;
6655 ndr->flags = _flags_save_string;
6658 uint32_t _flags_save_string = ndr->flags;
6659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6660 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
6661 if (_ptr_config_file) {
6662 NDR_PULL_ALLOC(ndr, r->config_file);
6663 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
6665 r->config_file = NULL;
6667 ndr->flags = _flags_save_string;
6670 if (ndr_flags & NDR_BUFFERS) {
6672 uint32_t _flags_save_string = ndr->flags;
6673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6674 if (r->driver_name) {
6675 uint32_t _relative_save_offset;
6676 _relative_save_offset = ndr->offset;
6677 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
6678 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6679 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6680 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
6681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6682 ndr->offset = _relative_save_offset;
6684 ndr->flags = _flags_save_string;
6687 uint32_t _flags_save_string = ndr->flags;
6688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6689 if (r->architecture) {
6690 uint32_t _relative_save_offset;
6691 _relative_save_offset = ndr->offset;
6692 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
6693 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
6694 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
6695 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
6696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
6697 ndr->offset = _relative_save_offset;
6699 ndr->flags = _flags_save_string;
6702 uint32_t _flags_save_string = ndr->flags;
6703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6704 if (r->driver_path) {
6705 uint32_t _relative_save_offset;
6706 _relative_save_offset = ndr->offset;
6707 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
6708 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6709 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
6710 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
6711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
6712 ndr->offset = _relative_save_offset;
6714 ndr->flags = _flags_save_string;
6717 uint32_t _flags_save_string = ndr->flags;
6718 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6720 uint32_t _relative_save_offset;
6721 _relative_save_offset = ndr->offset;
6722 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
6723 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6724 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
6725 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
6726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
6727 ndr->offset = _relative_save_offset;
6729 ndr->flags = _flags_save_string;
6732 uint32_t _flags_save_string = ndr->flags;
6733 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6734 if (r->config_file) {
6735 uint32_t _relative_save_offset;
6736 _relative_save_offset = ndr->offset;
6737 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
6738 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6739 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
6740 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
6741 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
6742 ndr->offset = _relative_save_offset;
6744 ndr->flags = _flags_save_string;
6747 return NDR_ERR_SUCCESS;
6750 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
6752 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
6754 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6755 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6757 if (r->driver_name) {
6758 ndr_print_string(ndr, "driver_name", r->driver_name);
6761 ndr_print_ptr(ndr, "architecture", r->architecture);
6763 if (r->architecture) {
6764 ndr_print_string(ndr, "architecture", r->architecture);
6767 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6769 if (r->driver_path) {
6770 ndr_print_string(ndr, "driver_path", r->driver_path);
6773 ndr_print_ptr(ndr, "data_file", r->data_file);
6776 ndr_print_string(ndr, "data_file", r->data_file);
6779 ndr_print_ptr(ndr, "config_file", r->config_file);
6781 if (r->config_file) {
6782 ndr_print_string(ndr, "config_file", r->config_file);
6788 static enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
6790 if (ndr_flags & NDR_SCALARS) {
6791 NDR_CHECK(ndr_push_align(ndr, 4));
6792 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
6794 uint32_t _flags_save_string = ndr->flags;
6795 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6796 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
6797 ndr->flags = _flags_save_string;
6800 uint32_t _flags_save_string = ndr->flags;
6801 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6802 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
6803 ndr->flags = _flags_save_string;
6806 uint32_t _flags_save_string = ndr->flags;
6807 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6808 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
6809 ndr->flags = _flags_save_string;
6812 uint32_t _flags_save_string = ndr->flags;
6813 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6814 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
6815 ndr->flags = _flags_save_string;
6818 uint32_t _flags_save_string = ndr->flags;
6819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6820 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
6821 ndr->flags = _flags_save_string;
6824 uint32_t _flags_save_string = ndr->flags;
6825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6826 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
6827 ndr->flags = _flags_save_string;
6830 uint32_t _flags_save_string_array = ndr->flags;
6831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
6833 ndr->flags = _flags_save_string_array;
6836 uint32_t _flags_save_string = ndr->flags;
6837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
6839 ndr->flags = _flags_save_string;
6842 uint32_t _flags_save_string = ndr->flags;
6843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6844 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
6845 ndr->flags = _flags_save_string;
6848 if (ndr_flags & NDR_BUFFERS) {
6850 uint32_t _flags_save_string = ndr->flags;
6851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6852 if (r->driver_name) {
6853 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
6854 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
6856 ndr->flags = _flags_save_string;
6859 uint32_t _flags_save_string = ndr->flags;
6860 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6861 if (r->architecture) {
6862 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
6863 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
6865 ndr->flags = _flags_save_string;
6868 uint32_t _flags_save_string = ndr->flags;
6869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6870 if (r->driver_path) {
6871 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
6872 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
6874 ndr->flags = _flags_save_string;
6877 uint32_t _flags_save_string = ndr->flags;
6878 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6880 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
6881 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
6883 ndr->flags = _flags_save_string;
6886 uint32_t _flags_save_string = ndr->flags;
6887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6888 if (r->config_file) {
6889 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
6890 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
6892 ndr->flags = _flags_save_string;
6895 uint32_t _flags_save_string = ndr->flags;
6896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6898 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
6899 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
6901 ndr->flags = _flags_save_string;
6904 uint32_t _flags_save_string_array = ndr->flags;
6905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6906 if (r->dependent_files) {
6907 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
6908 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
6910 ndr->flags = _flags_save_string_array;
6913 uint32_t _flags_save_string = ndr->flags;
6914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6915 if (r->monitor_name) {
6916 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
6917 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
6919 ndr->flags = _flags_save_string;
6922 uint32_t _flags_save_string = ndr->flags;
6923 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6924 if (r->default_datatype) {
6925 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
6926 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
6928 ndr->flags = _flags_save_string;
6931 return NDR_ERR_SUCCESS;
6934 static enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
6936 uint32_t _ptr_driver_name;
6937 TALLOC_CTX *_mem_save_driver_name_0;
6938 uint32_t _ptr_architecture;
6939 TALLOC_CTX *_mem_save_architecture_0;
6940 uint32_t _ptr_driver_path;
6941 TALLOC_CTX *_mem_save_driver_path_0;
6942 uint32_t _ptr_data_file;
6943 TALLOC_CTX *_mem_save_data_file_0;
6944 uint32_t _ptr_config_file;
6945 TALLOC_CTX *_mem_save_config_file_0;
6946 uint32_t _ptr_help_file;
6947 TALLOC_CTX *_mem_save_help_file_0;
6948 uint32_t _ptr_dependent_files;
6949 TALLOC_CTX *_mem_save_dependent_files_0;
6950 uint32_t _ptr_monitor_name;
6951 TALLOC_CTX *_mem_save_monitor_name_0;
6952 uint32_t _ptr_default_datatype;
6953 TALLOC_CTX *_mem_save_default_datatype_0;
6954 if (ndr_flags & NDR_SCALARS) {
6955 NDR_CHECK(ndr_pull_align(ndr, 4));
6956 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
6958 uint32_t _flags_save_string = ndr->flags;
6959 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6960 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6961 if (_ptr_driver_name) {
6962 NDR_PULL_ALLOC(ndr, r->driver_name);
6963 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
6965 r->driver_name = NULL;
6967 ndr->flags = _flags_save_string;
6970 uint32_t _flags_save_string = ndr->flags;
6971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6972 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
6973 if (_ptr_architecture) {
6974 NDR_PULL_ALLOC(ndr, r->architecture);
6975 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
6977 r->architecture = NULL;
6979 ndr->flags = _flags_save_string;
6982 uint32_t _flags_save_string = ndr->flags;
6983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
6985 if (_ptr_driver_path) {
6986 NDR_PULL_ALLOC(ndr, r->driver_path);
6987 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
6989 r->driver_path = NULL;
6991 ndr->flags = _flags_save_string;
6994 uint32_t _flags_save_string = ndr->flags;
6995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
6996 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
6997 if (_ptr_data_file) {
6998 NDR_PULL_ALLOC(ndr, r->data_file);
6999 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7001 r->data_file = NULL;
7003 ndr->flags = _flags_save_string;
7006 uint32_t _flags_save_string = ndr->flags;
7007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7008 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7009 if (_ptr_config_file) {
7010 NDR_PULL_ALLOC(ndr, r->config_file);
7011 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7013 r->config_file = NULL;
7015 ndr->flags = _flags_save_string;
7018 uint32_t _flags_save_string = ndr->flags;
7019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7021 if (_ptr_help_file) {
7022 NDR_PULL_ALLOC(ndr, r->help_file);
7023 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7025 r->help_file = NULL;
7027 ndr->flags = _flags_save_string;
7030 uint32_t _flags_save_string_array = ndr->flags;
7031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7032 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7033 if (_ptr_dependent_files) {
7034 NDR_PULL_ALLOC(ndr, r->dependent_files);
7035 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7037 r->dependent_files = NULL;
7039 ndr->flags = _flags_save_string_array;
7042 uint32_t _flags_save_string = ndr->flags;
7043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7045 if (_ptr_monitor_name) {
7046 NDR_PULL_ALLOC(ndr, r->monitor_name);
7047 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7049 r->monitor_name = NULL;
7051 ndr->flags = _flags_save_string;
7054 uint32_t _flags_save_string = ndr->flags;
7055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7056 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7057 if (_ptr_default_datatype) {
7058 NDR_PULL_ALLOC(ndr, r->default_datatype);
7059 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7061 r->default_datatype = NULL;
7063 ndr->flags = _flags_save_string;
7066 if (ndr_flags & NDR_BUFFERS) {
7068 uint32_t _flags_save_string = ndr->flags;
7069 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7070 if (r->driver_name) {
7071 uint32_t _relative_save_offset;
7072 _relative_save_offset = ndr->offset;
7073 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7074 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7075 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7076 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7078 ndr->offset = _relative_save_offset;
7080 ndr->flags = _flags_save_string;
7083 uint32_t _flags_save_string = ndr->flags;
7084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7085 if (r->architecture) {
7086 uint32_t _relative_save_offset;
7087 _relative_save_offset = ndr->offset;
7088 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7089 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7090 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7091 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7092 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7093 ndr->offset = _relative_save_offset;
7095 ndr->flags = _flags_save_string;
7098 uint32_t _flags_save_string = ndr->flags;
7099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7100 if (r->driver_path) {
7101 uint32_t _relative_save_offset;
7102 _relative_save_offset = ndr->offset;
7103 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7104 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7105 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7106 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7108 ndr->offset = _relative_save_offset;
7110 ndr->flags = _flags_save_string;
7113 uint32_t _flags_save_string = ndr->flags;
7114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7116 uint32_t _relative_save_offset;
7117 _relative_save_offset = ndr->offset;
7118 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7119 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7120 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7121 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7123 ndr->offset = _relative_save_offset;
7125 ndr->flags = _flags_save_string;
7128 uint32_t _flags_save_string = ndr->flags;
7129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7130 if (r->config_file) {
7131 uint32_t _relative_save_offset;
7132 _relative_save_offset = ndr->offset;
7133 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7134 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7135 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7136 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7138 ndr->offset = _relative_save_offset;
7140 ndr->flags = _flags_save_string;
7143 uint32_t _flags_save_string = ndr->flags;
7144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7146 uint32_t _relative_save_offset;
7147 _relative_save_offset = ndr->offset;
7148 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7149 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7150 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7151 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7153 ndr->offset = _relative_save_offset;
7155 ndr->flags = _flags_save_string;
7158 uint32_t _flags_save_string_array = ndr->flags;
7159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7160 if (r->dependent_files) {
7161 uint32_t _relative_save_offset;
7162 _relative_save_offset = ndr->offset;
7163 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7164 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7165 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7166 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7168 ndr->offset = _relative_save_offset;
7170 ndr->flags = _flags_save_string_array;
7173 uint32_t _flags_save_string = ndr->flags;
7174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7175 if (r->monitor_name) {
7176 uint32_t _relative_save_offset;
7177 _relative_save_offset = ndr->offset;
7178 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7179 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7180 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7181 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7183 ndr->offset = _relative_save_offset;
7185 ndr->flags = _flags_save_string;
7188 uint32_t _flags_save_string = ndr->flags;
7189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7190 if (r->default_datatype) {
7191 uint32_t _relative_save_offset;
7192 _relative_save_offset = ndr->offset;
7193 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7194 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7195 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7196 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7198 ndr->offset = _relative_save_offset;
7200 ndr->flags = _flags_save_string;
7203 return NDR_ERR_SUCCESS;
7206 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
7208 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
7210 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7211 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7213 if (r->driver_name) {
7214 ndr_print_string(ndr, "driver_name", r->driver_name);
7217 ndr_print_ptr(ndr, "architecture", r->architecture);
7219 if (r->architecture) {
7220 ndr_print_string(ndr, "architecture", r->architecture);
7223 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7225 if (r->driver_path) {
7226 ndr_print_string(ndr, "driver_path", r->driver_path);
7229 ndr_print_ptr(ndr, "data_file", r->data_file);
7232 ndr_print_string(ndr, "data_file", r->data_file);
7235 ndr_print_ptr(ndr, "config_file", r->config_file);
7237 if (r->config_file) {
7238 ndr_print_string(ndr, "config_file", r->config_file);
7241 ndr_print_ptr(ndr, "help_file", r->help_file);
7244 ndr_print_string(ndr, "help_file", r->help_file);
7247 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7249 if (r->dependent_files) {
7250 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7253 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7255 if (r->monitor_name) {
7256 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7259 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7261 if (r->default_datatype) {
7262 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7268 static enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
7270 if (ndr_flags & NDR_SCALARS) {
7271 NDR_CHECK(ndr_push_align(ndr, 4));
7272 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7274 uint32_t _flags_save_string = ndr->flags;
7275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7276 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7277 ndr->flags = _flags_save_string;
7280 uint32_t _flags_save_string = ndr->flags;
7281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7282 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7283 ndr->flags = _flags_save_string;
7286 uint32_t _flags_save_string = ndr->flags;
7287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7288 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7289 ndr->flags = _flags_save_string;
7292 uint32_t _flags_save_string = ndr->flags;
7293 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7294 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7295 ndr->flags = _flags_save_string;
7298 uint32_t _flags_save_string = ndr->flags;
7299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7300 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7301 ndr->flags = _flags_save_string;
7304 uint32_t _flags_save_string = ndr->flags;
7305 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7306 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
7307 ndr->flags = _flags_save_string;
7310 uint32_t _flags_save_string_array = ndr->flags;
7311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7312 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
7313 ndr->flags = _flags_save_string_array;
7316 uint32_t _flags_save_string = ndr->flags;
7317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7318 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7319 ndr->flags = _flags_save_string;
7322 uint32_t _flags_save_string = ndr->flags;
7323 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7324 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
7325 ndr->flags = _flags_save_string;
7328 uint32_t _flags_save_string_array = ndr->flags;
7329 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7330 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
7331 ndr->flags = _flags_save_string_array;
7334 if (ndr_flags & NDR_BUFFERS) {
7336 uint32_t _flags_save_string = ndr->flags;
7337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7338 if (r->driver_name) {
7339 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7340 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7342 ndr->flags = _flags_save_string;
7345 uint32_t _flags_save_string = ndr->flags;
7346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7347 if (r->architecture) {
7348 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7349 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7351 ndr->flags = _flags_save_string;
7354 uint32_t _flags_save_string = ndr->flags;
7355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7356 if (r->driver_path) {
7357 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7358 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7360 ndr->flags = _flags_save_string;
7363 uint32_t _flags_save_string = ndr->flags;
7364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7366 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7367 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7369 ndr->flags = _flags_save_string;
7372 uint32_t _flags_save_string = ndr->flags;
7373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7374 if (r->config_file) {
7375 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7376 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7378 ndr->flags = _flags_save_string;
7381 uint32_t _flags_save_string = ndr->flags;
7382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
7385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
7387 ndr->flags = _flags_save_string;
7390 uint32_t _flags_save_string_array = ndr->flags;
7391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7392 if (r->dependent_files) {
7393 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
7394 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
7396 ndr->flags = _flags_save_string_array;
7399 uint32_t _flags_save_string = ndr->flags;
7400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7401 if (r->monitor_name) {
7402 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7405 ndr->flags = _flags_save_string;
7408 uint32_t _flags_save_string = ndr->flags;
7409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7410 if (r->default_datatype) {
7411 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
7412 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
7414 ndr->flags = _flags_save_string;
7417 uint32_t _flags_save_string_array = ndr->flags;
7418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7419 if (r->previous_names) {
7420 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
7421 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
7423 ndr->flags = _flags_save_string_array;
7426 return NDR_ERR_SUCCESS;
7429 static enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
7431 uint32_t _ptr_driver_name;
7432 TALLOC_CTX *_mem_save_driver_name_0;
7433 uint32_t _ptr_architecture;
7434 TALLOC_CTX *_mem_save_architecture_0;
7435 uint32_t _ptr_driver_path;
7436 TALLOC_CTX *_mem_save_driver_path_0;
7437 uint32_t _ptr_data_file;
7438 TALLOC_CTX *_mem_save_data_file_0;
7439 uint32_t _ptr_config_file;
7440 TALLOC_CTX *_mem_save_config_file_0;
7441 uint32_t _ptr_help_file;
7442 TALLOC_CTX *_mem_save_help_file_0;
7443 uint32_t _ptr_dependent_files;
7444 TALLOC_CTX *_mem_save_dependent_files_0;
7445 uint32_t _ptr_monitor_name;
7446 TALLOC_CTX *_mem_save_monitor_name_0;
7447 uint32_t _ptr_default_datatype;
7448 TALLOC_CTX *_mem_save_default_datatype_0;
7449 uint32_t _ptr_previous_names;
7450 TALLOC_CTX *_mem_save_previous_names_0;
7451 if (ndr_flags & NDR_SCALARS) {
7452 NDR_CHECK(ndr_pull_align(ndr, 4));
7453 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7455 uint32_t _flags_save_string = ndr->flags;
7456 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7457 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7458 if (_ptr_driver_name) {
7459 NDR_PULL_ALLOC(ndr, r->driver_name);
7460 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7462 r->driver_name = NULL;
7464 ndr->flags = _flags_save_string;
7467 uint32_t _flags_save_string = ndr->flags;
7468 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7469 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7470 if (_ptr_architecture) {
7471 NDR_PULL_ALLOC(ndr, r->architecture);
7472 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7474 r->architecture = NULL;
7476 ndr->flags = _flags_save_string;
7479 uint32_t _flags_save_string = ndr->flags;
7480 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7481 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7482 if (_ptr_driver_path) {
7483 NDR_PULL_ALLOC(ndr, r->driver_path);
7484 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7486 r->driver_path = NULL;
7488 ndr->flags = _flags_save_string;
7491 uint32_t _flags_save_string = ndr->flags;
7492 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7494 if (_ptr_data_file) {
7495 NDR_PULL_ALLOC(ndr, r->data_file);
7496 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7498 r->data_file = NULL;
7500 ndr->flags = _flags_save_string;
7503 uint32_t _flags_save_string = ndr->flags;
7504 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7506 if (_ptr_config_file) {
7507 NDR_PULL_ALLOC(ndr, r->config_file);
7508 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7510 r->config_file = NULL;
7512 ndr->flags = _flags_save_string;
7515 uint32_t _flags_save_string = ndr->flags;
7516 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7517 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7518 if (_ptr_help_file) {
7519 NDR_PULL_ALLOC(ndr, r->help_file);
7520 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7522 r->help_file = NULL;
7524 ndr->flags = _flags_save_string;
7527 uint32_t _flags_save_string_array = ndr->flags;
7528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7529 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7530 if (_ptr_dependent_files) {
7531 NDR_PULL_ALLOC(ndr, r->dependent_files);
7532 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7534 r->dependent_files = NULL;
7536 ndr->flags = _flags_save_string_array;
7539 uint32_t _flags_save_string = ndr->flags;
7540 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7541 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7542 if (_ptr_monitor_name) {
7543 NDR_PULL_ALLOC(ndr, r->monitor_name);
7544 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7546 r->monitor_name = NULL;
7548 ndr->flags = _flags_save_string;
7551 uint32_t _flags_save_string = ndr->flags;
7552 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7553 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7554 if (_ptr_default_datatype) {
7555 NDR_PULL_ALLOC(ndr, r->default_datatype);
7556 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7558 r->default_datatype = NULL;
7560 ndr->flags = _flags_save_string;
7563 uint32_t _flags_save_string_array = ndr->flags;
7564 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7565 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
7566 if (_ptr_previous_names) {
7567 NDR_PULL_ALLOC(ndr, r->previous_names);
7568 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
7570 r->previous_names = NULL;
7572 ndr->flags = _flags_save_string_array;
7575 if (ndr_flags & NDR_BUFFERS) {
7577 uint32_t _flags_save_string = ndr->flags;
7578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7579 if (r->driver_name) {
7580 uint32_t _relative_save_offset;
7581 _relative_save_offset = ndr->offset;
7582 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7583 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7584 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7585 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7587 ndr->offset = _relative_save_offset;
7589 ndr->flags = _flags_save_string;
7592 uint32_t _flags_save_string = ndr->flags;
7593 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7594 if (r->architecture) {
7595 uint32_t _relative_save_offset;
7596 _relative_save_offset = ndr->offset;
7597 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7598 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7599 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7600 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7601 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7602 ndr->offset = _relative_save_offset;
7604 ndr->flags = _flags_save_string;
7607 uint32_t _flags_save_string = ndr->flags;
7608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7609 if (r->driver_path) {
7610 uint32_t _relative_save_offset;
7611 _relative_save_offset = ndr->offset;
7612 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7613 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7614 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7615 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7617 ndr->offset = _relative_save_offset;
7619 ndr->flags = _flags_save_string;
7622 uint32_t _flags_save_string = ndr->flags;
7623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7625 uint32_t _relative_save_offset;
7626 _relative_save_offset = ndr->offset;
7627 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7628 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7629 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7630 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7631 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7632 ndr->offset = _relative_save_offset;
7634 ndr->flags = _flags_save_string;
7637 uint32_t _flags_save_string = ndr->flags;
7638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7639 if (r->config_file) {
7640 uint32_t _relative_save_offset;
7641 _relative_save_offset = ndr->offset;
7642 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7643 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7644 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7645 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7647 ndr->offset = _relative_save_offset;
7649 ndr->flags = _flags_save_string;
7652 uint32_t _flags_save_string = ndr->flags;
7653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7655 uint32_t _relative_save_offset;
7656 _relative_save_offset = ndr->offset;
7657 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7658 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7659 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7660 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7662 ndr->offset = _relative_save_offset;
7664 ndr->flags = _flags_save_string;
7667 uint32_t _flags_save_string_array = ndr->flags;
7668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7669 if (r->dependent_files) {
7670 uint32_t _relative_save_offset;
7671 _relative_save_offset = ndr->offset;
7672 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7673 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7674 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7675 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7676 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7677 ndr->offset = _relative_save_offset;
7679 ndr->flags = _flags_save_string_array;
7682 uint32_t _flags_save_string = ndr->flags;
7683 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7684 if (r->monitor_name) {
7685 uint32_t _relative_save_offset;
7686 _relative_save_offset = ndr->offset;
7687 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7688 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7689 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7690 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7692 ndr->offset = _relative_save_offset;
7694 ndr->flags = _flags_save_string;
7697 uint32_t _flags_save_string = ndr->flags;
7698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7699 if (r->default_datatype) {
7700 uint32_t _relative_save_offset;
7701 _relative_save_offset = ndr->offset;
7702 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7703 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7704 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7705 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7706 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7707 ndr->offset = _relative_save_offset;
7709 ndr->flags = _flags_save_string;
7712 uint32_t _flags_save_string_array = ndr->flags;
7713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7714 if (r->previous_names) {
7715 uint32_t _relative_save_offset;
7716 _relative_save_offset = ndr->offset;
7717 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
7718 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
7719 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
7720 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
7721 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
7722 ndr->offset = _relative_save_offset;
7724 ndr->flags = _flags_save_string_array;
7727 return NDR_ERR_SUCCESS;
7730 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
7732 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
7734 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7735 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7737 if (r->driver_name) {
7738 ndr_print_string(ndr, "driver_name", r->driver_name);
7741 ndr_print_ptr(ndr, "architecture", r->architecture);
7743 if (r->architecture) {
7744 ndr_print_string(ndr, "architecture", r->architecture);
7747 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7749 if (r->driver_path) {
7750 ndr_print_string(ndr, "driver_path", r->driver_path);
7753 ndr_print_ptr(ndr, "data_file", r->data_file);
7756 ndr_print_string(ndr, "data_file", r->data_file);
7759 ndr_print_ptr(ndr, "config_file", r->config_file);
7761 if (r->config_file) {
7762 ndr_print_string(ndr, "config_file", r->config_file);
7765 ndr_print_ptr(ndr, "help_file", r->help_file);
7768 ndr_print_string(ndr, "help_file", r->help_file);
7771 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7773 if (r->dependent_files) {
7774 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7777 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7779 if (r->monitor_name) {
7780 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7783 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7785 if (r->default_datatype) {
7786 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7789 ndr_print_ptr(ndr, "previous_names", r->previous_names);
7791 if (r->previous_names) {
7792 ndr_print_string_array(ndr, "previous_names", r->previous_names);
7798 static enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
7800 if (ndr_flags & NDR_SCALARS) {
7801 NDR_CHECK(ndr_push_align(ndr, 4));
7802 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7804 uint32_t _flags_save_string = ndr->flags;
7805 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7806 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7807 ndr->flags = _flags_save_string;
7810 uint32_t _flags_save_string = ndr->flags;
7811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7812 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7813 ndr->flags = _flags_save_string;
7816 uint32_t _flags_save_string = ndr->flags;
7817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7818 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7819 ndr->flags = _flags_save_string;
7822 uint32_t _flags_save_string = ndr->flags;
7823 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7824 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7825 ndr->flags = _flags_save_string;
7828 uint32_t _flags_save_string = ndr->flags;
7829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7830 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7831 ndr->flags = _flags_save_string;
7833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
7834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
7835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
7837 if (ndr_flags & NDR_BUFFERS) {
7839 uint32_t _flags_save_string = ndr->flags;
7840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7841 if (r->driver_name) {
7842 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7843 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7845 ndr->flags = _flags_save_string;
7848 uint32_t _flags_save_string = ndr->flags;
7849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7850 if (r->architecture) {
7851 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7852 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7854 ndr->flags = _flags_save_string;
7857 uint32_t _flags_save_string = ndr->flags;
7858 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7859 if (r->driver_path) {
7860 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7861 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7863 ndr->flags = _flags_save_string;
7866 uint32_t _flags_save_string = ndr->flags;
7867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7869 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7870 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7872 ndr->flags = _flags_save_string;
7875 uint32_t _flags_save_string = ndr->flags;
7876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7877 if (r->config_file) {
7878 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7879 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7881 ndr->flags = _flags_save_string;
7884 return NDR_ERR_SUCCESS;
7887 static enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
7889 uint32_t _ptr_driver_name;
7890 TALLOC_CTX *_mem_save_driver_name_0;
7891 uint32_t _ptr_architecture;
7892 TALLOC_CTX *_mem_save_architecture_0;
7893 uint32_t _ptr_driver_path;
7894 TALLOC_CTX *_mem_save_driver_path_0;
7895 uint32_t _ptr_data_file;
7896 TALLOC_CTX *_mem_save_data_file_0;
7897 uint32_t _ptr_config_file;
7898 TALLOC_CTX *_mem_save_config_file_0;
7899 if (ndr_flags & NDR_SCALARS) {
7900 NDR_CHECK(ndr_pull_align(ndr, 4));
7901 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7903 uint32_t _flags_save_string = ndr->flags;
7904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7906 if (_ptr_driver_name) {
7907 NDR_PULL_ALLOC(ndr, r->driver_name);
7908 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7910 r->driver_name = NULL;
7912 ndr->flags = _flags_save_string;
7915 uint32_t _flags_save_string = ndr->flags;
7916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7918 if (_ptr_architecture) {
7919 NDR_PULL_ALLOC(ndr, r->architecture);
7920 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7922 r->architecture = NULL;
7924 ndr->flags = _flags_save_string;
7927 uint32_t _flags_save_string = ndr->flags;
7928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7930 if (_ptr_driver_path) {
7931 NDR_PULL_ALLOC(ndr, r->driver_path);
7932 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7934 r->driver_path = NULL;
7936 ndr->flags = _flags_save_string;
7939 uint32_t _flags_save_string = ndr->flags;
7940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7942 if (_ptr_data_file) {
7943 NDR_PULL_ALLOC(ndr, r->data_file);
7944 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7946 r->data_file = NULL;
7948 ndr->flags = _flags_save_string;
7951 uint32_t _flags_save_string = ndr->flags;
7952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7954 if (_ptr_config_file) {
7955 NDR_PULL_ALLOC(ndr, r->config_file);
7956 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7958 r->config_file = NULL;
7960 ndr->flags = _flags_save_string;
7962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
7963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
7964 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
7966 if (ndr_flags & NDR_BUFFERS) {
7968 uint32_t _flags_save_string = ndr->flags;
7969 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7970 if (r->driver_name) {
7971 uint32_t _relative_save_offset;
7972 _relative_save_offset = ndr->offset;
7973 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7974 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7975 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7976 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7978 ndr->offset = _relative_save_offset;
7980 ndr->flags = _flags_save_string;
7983 uint32_t _flags_save_string = ndr->flags;
7984 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7985 if (r->architecture) {
7986 uint32_t _relative_save_offset;
7987 _relative_save_offset = ndr->offset;
7988 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7989 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7990 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7991 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7993 ndr->offset = _relative_save_offset;
7995 ndr->flags = _flags_save_string;
7998 uint32_t _flags_save_string = ndr->flags;
7999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8000 if (r->driver_path) {
8001 uint32_t _relative_save_offset;
8002 _relative_save_offset = ndr->offset;
8003 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8004 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8005 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8006 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8008 ndr->offset = _relative_save_offset;
8010 ndr->flags = _flags_save_string;
8013 uint32_t _flags_save_string = ndr->flags;
8014 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8016 uint32_t _relative_save_offset;
8017 _relative_save_offset = ndr->offset;
8018 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8019 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8020 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8021 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8023 ndr->offset = _relative_save_offset;
8025 ndr->flags = _flags_save_string;
8028 uint32_t _flags_save_string = ndr->flags;
8029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8030 if (r->config_file) {
8031 uint32_t _relative_save_offset;
8032 _relative_save_offset = ndr->offset;
8033 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8034 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8035 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8036 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8038 ndr->offset = _relative_save_offset;
8040 ndr->flags = _flags_save_string;
8043 return NDR_ERR_SUCCESS;
8046 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
8048 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
8050 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8051 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8053 if (r->driver_name) {
8054 ndr_print_string(ndr, "driver_name", r->driver_name);
8057 ndr_print_ptr(ndr, "architecture", r->architecture);
8059 if (r->architecture) {
8060 ndr_print_string(ndr, "architecture", r->architecture);
8063 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8065 if (r->driver_path) {
8066 ndr_print_string(ndr, "driver_path", r->driver_path);
8069 ndr_print_ptr(ndr, "data_file", r->data_file);
8072 ndr_print_string(ndr, "data_file", r->data_file);
8075 ndr_print_ptr(ndr, "config_file", r->config_file);
8077 if (r->config_file) {
8078 ndr_print_string(ndr, "config_file", r->config_file);
8081 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
8082 ndr_print_uint32(ndr, "config_version", r->config_version);
8083 ndr_print_uint32(ndr, "driver_version", r->driver_version);
8087 static enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
8089 if (ndr_flags & NDR_SCALARS) {
8090 NDR_CHECK(ndr_push_align(ndr, 8));
8091 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8093 uint32_t _flags_save_string = ndr->flags;
8094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8095 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8096 ndr->flags = _flags_save_string;
8099 uint32_t _flags_save_string = ndr->flags;
8100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8101 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8102 ndr->flags = _flags_save_string;
8105 uint32_t _flags_save_string = ndr->flags;
8106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8107 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8108 ndr->flags = _flags_save_string;
8111 uint32_t _flags_save_string = ndr->flags;
8112 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8113 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8114 ndr->flags = _flags_save_string;
8117 uint32_t _flags_save_string = ndr->flags;
8118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8119 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8120 ndr->flags = _flags_save_string;
8123 uint32_t _flags_save_string = ndr->flags;
8124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8125 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8126 ndr->flags = _flags_save_string;
8129 uint32_t _flags_save_string_array = ndr->flags;
8130 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8131 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8132 ndr->flags = _flags_save_string_array;
8135 uint32_t _flags_save_string = ndr->flags;
8136 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8137 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8138 ndr->flags = _flags_save_string;
8141 uint32_t _flags_save_string = ndr->flags;
8142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8143 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8144 ndr->flags = _flags_save_string;
8147 uint32_t _flags_save_string_array = ndr->flags;
8148 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8149 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8150 ndr->flags = _flags_save_string_array;
8152 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
8153 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8155 uint32_t _flags_save_string = ndr->flags;
8156 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8157 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
8158 ndr->flags = _flags_save_string;
8161 uint32_t _flags_save_string = ndr->flags;
8162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8163 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
8164 ndr->flags = _flags_save_string;
8167 uint32_t _flags_save_string = ndr->flags;
8168 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8169 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
8170 ndr->flags = _flags_save_string;
8173 uint32_t _flags_save_string = ndr->flags;
8174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8175 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
8176 ndr->flags = _flags_save_string;
8179 if (ndr_flags & NDR_BUFFERS) {
8181 uint32_t _flags_save_string = ndr->flags;
8182 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8183 if (r->driver_name) {
8184 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8185 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8187 ndr->flags = _flags_save_string;
8190 uint32_t _flags_save_string = ndr->flags;
8191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8192 if (r->architecture) {
8193 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8194 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8196 ndr->flags = _flags_save_string;
8199 uint32_t _flags_save_string = ndr->flags;
8200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8201 if (r->driver_path) {
8202 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8203 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8205 ndr->flags = _flags_save_string;
8208 uint32_t _flags_save_string = ndr->flags;
8209 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8211 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8212 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8214 ndr->flags = _flags_save_string;
8217 uint32_t _flags_save_string = ndr->flags;
8218 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8219 if (r->config_file) {
8220 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8221 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8223 ndr->flags = _flags_save_string;
8226 uint32_t _flags_save_string = ndr->flags;
8227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8229 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8230 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8232 ndr->flags = _flags_save_string;
8235 uint32_t _flags_save_string_array = ndr->flags;
8236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8237 if (r->dependent_files) {
8238 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8239 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8241 ndr->flags = _flags_save_string_array;
8244 uint32_t _flags_save_string = ndr->flags;
8245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8246 if (r->monitor_name) {
8247 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8248 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8250 ndr->flags = _flags_save_string;
8253 uint32_t _flags_save_string = ndr->flags;
8254 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8255 if (r->default_datatype) {
8256 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8257 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8259 ndr->flags = _flags_save_string;
8262 uint32_t _flags_save_string_array = ndr->flags;
8263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8264 if (r->previous_names) {
8265 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8266 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8268 ndr->flags = _flags_save_string_array;
8271 uint32_t _flags_save_string = ndr->flags;
8272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8273 if (r->manufacturer_name) {
8274 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
8275 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
8277 ndr->flags = _flags_save_string;
8280 uint32_t _flags_save_string = ndr->flags;
8281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8282 if (r->manufacturer_url) {
8283 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
8284 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
8286 ndr->flags = _flags_save_string;
8289 uint32_t _flags_save_string = ndr->flags;
8290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8291 if (r->hardware_id) {
8292 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
8293 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
8295 ndr->flags = _flags_save_string;
8298 uint32_t _flags_save_string = ndr->flags;
8299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8301 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
8302 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
8304 ndr->flags = _flags_save_string;
8307 return NDR_ERR_SUCCESS;
8310 static enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
8312 uint32_t _ptr_driver_name;
8313 TALLOC_CTX *_mem_save_driver_name_0;
8314 uint32_t _ptr_architecture;
8315 TALLOC_CTX *_mem_save_architecture_0;
8316 uint32_t _ptr_driver_path;
8317 TALLOC_CTX *_mem_save_driver_path_0;
8318 uint32_t _ptr_data_file;
8319 TALLOC_CTX *_mem_save_data_file_0;
8320 uint32_t _ptr_config_file;
8321 TALLOC_CTX *_mem_save_config_file_0;
8322 uint32_t _ptr_help_file;
8323 TALLOC_CTX *_mem_save_help_file_0;
8324 uint32_t _ptr_dependent_files;
8325 TALLOC_CTX *_mem_save_dependent_files_0;
8326 uint32_t _ptr_monitor_name;
8327 TALLOC_CTX *_mem_save_monitor_name_0;
8328 uint32_t _ptr_default_datatype;
8329 TALLOC_CTX *_mem_save_default_datatype_0;
8330 uint32_t _ptr_previous_names;
8331 TALLOC_CTX *_mem_save_previous_names_0;
8332 uint32_t _ptr_manufacturer_name;
8333 TALLOC_CTX *_mem_save_manufacturer_name_0;
8334 uint32_t _ptr_manufacturer_url;
8335 TALLOC_CTX *_mem_save_manufacturer_url_0;
8336 uint32_t _ptr_hardware_id;
8337 TALLOC_CTX *_mem_save_hardware_id_0;
8338 uint32_t _ptr_provider;
8339 TALLOC_CTX *_mem_save_provider_0;
8340 if (ndr_flags & NDR_SCALARS) {
8341 NDR_CHECK(ndr_pull_align(ndr, 8));
8342 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8344 uint32_t _flags_save_string = ndr->flags;
8345 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8346 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8347 if (_ptr_driver_name) {
8348 NDR_PULL_ALLOC(ndr, r->driver_name);
8349 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8351 r->driver_name = NULL;
8353 ndr->flags = _flags_save_string;
8356 uint32_t _flags_save_string = ndr->flags;
8357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8359 if (_ptr_architecture) {
8360 NDR_PULL_ALLOC(ndr, r->architecture);
8361 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8363 r->architecture = NULL;
8365 ndr->flags = _flags_save_string;
8368 uint32_t _flags_save_string = ndr->flags;
8369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8371 if (_ptr_driver_path) {
8372 NDR_PULL_ALLOC(ndr, r->driver_path);
8373 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8375 r->driver_path = NULL;
8377 ndr->flags = _flags_save_string;
8380 uint32_t _flags_save_string = ndr->flags;
8381 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8383 if (_ptr_data_file) {
8384 NDR_PULL_ALLOC(ndr, r->data_file);
8385 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8387 r->data_file = NULL;
8389 ndr->flags = _flags_save_string;
8392 uint32_t _flags_save_string = ndr->flags;
8393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8394 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8395 if (_ptr_config_file) {
8396 NDR_PULL_ALLOC(ndr, r->config_file);
8397 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8399 r->config_file = NULL;
8401 ndr->flags = _flags_save_string;
8404 uint32_t _flags_save_string = ndr->flags;
8405 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8406 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8407 if (_ptr_help_file) {
8408 NDR_PULL_ALLOC(ndr, r->help_file);
8409 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
8411 r->help_file = NULL;
8413 ndr->flags = _flags_save_string;
8416 uint32_t _flags_save_string_array = ndr->flags;
8417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8418 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8419 if (_ptr_dependent_files) {
8420 NDR_PULL_ALLOC(ndr, r->dependent_files);
8421 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
8423 r->dependent_files = NULL;
8425 ndr->flags = _flags_save_string_array;
8428 uint32_t _flags_save_string = ndr->flags;
8429 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8431 if (_ptr_monitor_name) {
8432 NDR_PULL_ALLOC(ndr, r->monitor_name);
8433 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
8435 r->monitor_name = NULL;
8437 ndr->flags = _flags_save_string;
8440 uint32_t _flags_save_string = ndr->flags;
8441 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8443 if (_ptr_default_datatype) {
8444 NDR_PULL_ALLOC(ndr, r->default_datatype);
8445 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
8447 r->default_datatype = NULL;
8449 ndr->flags = _flags_save_string;
8452 uint32_t _flags_save_string_array = ndr->flags;
8453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8455 if (_ptr_previous_names) {
8456 NDR_PULL_ALLOC(ndr, r->previous_names);
8457 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
8459 r->previous_names = NULL;
8461 ndr->flags = _flags_save_string_array;
8463 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
8464 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
8466 uint32_t _flags_save_string = ndr->flags;
8467 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
8469 if (_ptr_manufacturer_name) {
8470 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
8471 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
8473 r->manufacturer_name = NULL;
8475 ndr->flags = _flags_save_string;
8478 uint32_t _flags_save_string = ndr->flags;
8479 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
8481 if (_ptr_manufacturer_url) {
8482 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
8483 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
8485 r->manufacturer_url = NULL;
8487 ndr->flags = _flags_save_string;
8490 uint32_t _flags_save_string = ndr->flags;
8491 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
8493 if (_ptr_hardware_id) {
8494 NDR_PULL_ALLOC(ndr, r->hardware_id);
8495 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
8497 r->hardware_id = NULL;
8499 ndr->flags = _flags_save_string;
8502 uint32_t _flags_save_string = ndr->flags;
8503 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8504 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
8505 if (_ptr_provider) {
8506 NDR_PULL_ALLOC(ndr, r->provider);
8507 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
8511 ndr->flags = _flags_save_string;
8514 if (ndr_flags & NDR_BUFFERS) {
8516 uint32_t _flags_save_string = ndr->flags;
8517 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8518 if (r->driver_name) {
8519 uint32_t _relative_save_offset;
8520 _relative_save_offset = ndr->offset;
8521 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8522 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8523 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8524 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8526 ndr->offset = _relative_save_offset;
8528 ndr->flags = _flags_save_string;
8531 uint32_t _flags_save_string = ndr->flags;
8532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8533 if (r->architecture) {
8534 uint32_t _relative_save_offset;
8535 _relative_save_offset = ndr->offset;
8536 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8537 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8538 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8539 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8541 ndr->offset = _relative_save_offset;
8543 ndr->flags = _flags_save_string;
8546 uint32_t _flags_save_string = ndr->flags;
8547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8548 if (r->driver_path) {
8549 uint32_t _relative_save_offset;
8550 _relative_save_offset = ndr->offset;
8551 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8552 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8553 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8554 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8556 ndr->offset = _relative_save_offset;
8558 ndr->flags = _flags_save_string;
8561 uint32_t _flags_save_string = ndr->flags;
8562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8564 uint32_t _relative_save_offset;
8565 _relative_save_offset = ndr->offset;
8566 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8567 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8568 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8569 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8571 ndr->offset = _relative_save_offset;
8573 ndr->flags = _flags_save_string;
8576 uint32_t _flags_save_string = ndr->flags;
8577 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8578 if (r->config_file) {
8579 uint32_t _relative_save_offset;
8580 _relative_save_offset = ndr->offset;
8581 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8582 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8583 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8584 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8586 ndr->offset = _relative_save_offset;
8588 ndr->flags = _flags_save_string;
8591 uint32_t _flags_save_string = ndr->flags;
8592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8594 uint32_t _relative_save_offset;
8595 _relative_save_offset = ndr->offset;
8596 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
8597 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8598 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8599 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
8600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8601 ndr->offset = _relative_save_offset;
8603 ndr->flags = _flags_save_string;
8606 uint32_t _flags_save_string_array = ndr->flags;
8607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8608 if (r->dependent_files) {
8609 uint32_t _relative_save_offset;
8610 _relative_save_offset = ndr->offset;
8611 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
8612 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8613 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8614 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
8615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8616 ndr->offset = _relative_save_offset;
8618 ndr->flags = _flags_save_string_array;
8621 uint32_t _flags_save_string = ndr->flags;
8622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8623 if (r->monitor_name) {
8624 uint32_t _relative_save_offset;
8625 _relative_save_offset = ndr->offset;
8626 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
8627 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8628 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8629 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
8630 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8631 ndr->offset = _relative_save_offset;
8633 ndr->flags = _flags_save_string;
8636 uint32_t _flags_save_string = ndr->flags;
8637 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8638 if (r->default_datatype) {
8639 uint32_t _relative_save_offset;
8640 _relative_save_offset = ndr->offset;
8641 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
8642 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8643 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8644 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
8645 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8646 ndr->offset = _relative_save_offset;
8648 ndr->flags = _flags_save_string;
8651 uint32_t _flags_save_string_array = ndr->flags;
8652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8653 if (r->previous_names) {
8654 uint32_t _relative_save_offset;
8655 _relative_save_offset = ndr->offset;
8656 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
8657 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8658 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8659 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
8660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8661 ndr->offset = _relative_save_offset;
8663 ndr->flags = _flags_save_string_array;
8666 uint32_t _flags_save_string = ndr->flags;
8667 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8668 if (r->manufacturer_name) {
8669 uint32_t _relative_save_offset;
8670 _relative_save_offset = ndr->offset;
8671 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
8672 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8673 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
8674 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
8675 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
8676 ndr->offset = _relative_save_offset;
8678 ndr->flags = _flags_save_string;
8681 uint32_t _flags_save_string = ndr->flags;
8682 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8683 if (r->manufacturer_url) {
8684 uint32_t _relative_save_offset;
8685 _relative_save_offset = ndr->offset;
8686 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
8687 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
8688 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
8689 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
8690 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
8691 ndr->offset = _relative_save_offset;
8693 ndr->flags = _flags_save_string;
8696 uint32_t _flags_save_string = ndr->flags;
8697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8698 if (r->hardware_id) {
8699 uint32_t _relative_save_offset;
8700 _relative_save_offset = ndr->offset;
8701 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
8702 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
8703 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
8704 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
8705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
8706 ndr->offset = _relative_save_offset;
8708 ndr->flags = _flags_save_string;
8711 uint32_t _flags_save_string = ndr->flags;
8712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8714 uint32_t _relative_save_offset;
8715 _relative_save_offset = ndr->offset;
8716 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
8717 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
8718 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
8719 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
8720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
8721 ndr->offset = _relative_save_offset;
8723 ndr->flags = _flags_save_string;
8726 return NDR_ERR_SUCCESS;
8729 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
8731 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
8733 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8734 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8736 if (r->driver_name) {
8737 ndr_print_string(ndr, "driver_name", r->driver_name);
8740 ndr_print_ptr(ndr, "architecture", r->architecture);
8742 if (r->architecture) {
8743 ndr_print_string(ndr, "architecture", r->architecture);
8746 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8748 if (r->driver_path) {
8749 ndr_print_string(ndr, "driver_path", r->driver_path);
8752 ndr_print_ptr(ndr, "data_file", r->data_file);
8755 ndr_print_string(ndr, "data_file", r->data_file);
8758 ndr_print_ptr(ndr, "config_file", r->config_file);
8760 if (r->config_file) {
8761 ndr_print_string(ndr, "config_file", r->config_file);
8764 ndr_print_ptr(ndr, "help_file", r->help_file);
8767 ndr_print_string(ndr, "help_file", r->help_file);
8770 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8772 if (r->dependent_files) {
8773 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
8776 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8778 if (r->monitor_name) {
8779 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8782 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8784 if (r->default_datatype) {
8785 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8788 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8790 if (r->previous_names) {
8791 ndr_print_string_array(ndr, "previous_names", r->previous_names);
8794 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
8795 ndr_print_hyper(ndr, "driver_version", r->driver_version);
8796 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
8798 if (r->manufacturer_name) {
8799 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
8802 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
8804 if (r->manufacturer_url) {
8805 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
8808 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
8810 if (r->hardware_id) {
8811 ndr_print_string(ndr, "hardware_id", r->hardware_id);
8814 ndr_print_ptr(ndr, "provider", r->provider);
8817 ndr_print_string(ndr, "provider", r->provider);
8823 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
8825 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
8826 if (ndr_flags & NDR_SCALARS) {
8827 int level = ndr_push_get_switch_value(ndr, r);
8830 NDR_CHECK(ndr_push_align(ndr, 4));
8831 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
8832 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
8836 NDR_CHECK(ndr_push_align(ndr, 4));
8837 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
8838 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
8842 NDR_CHECK(ndr_push_align(ndr, 4));
8843 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
8844 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
8848 NDR_CHECK(ndr_push_align(ndr, 4));
8849 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
8850 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
8854 NDR_CHECK(ndr_push_align(ndr, 4));
8855 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
8856 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
8860 NDR_CHECK(ndr_push_align(ndr, 8));
8861 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
8862 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
8870 if (ndr_flags & NDR_BUFFERS) {
8871 int level = ndr_push_get_switch_value(ndr, r);
8872 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
8875 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
8879 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
8883 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
8887 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
8891 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
8895 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
8903 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
8904 return NDR_ERR_SUCCESS;
8907 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
8909 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
8911 level = ndr_pull_get_switch_value(ndr, r);
8912 if (ndr_flags & NDR_SCALARS) {
8915 NDR_CHECK(ndr_pull_align(ndr, 4));
8916 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
8917 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
8921 NDR_CHECK(ndr_pull_align(ndr, 4));
8922 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
8923 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
8927 NDR_CHECK(ndr_pull_align(ndr, 4));
8928 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
8929 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
8933 NDR_CHECK(ndr_pull_align(ndr, 4));
8934 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
8935 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
8939 NDR_CHECK(ndr_pull_align(ndr, 4));
8940 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
8941 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
8945 NDR_CHECK(ndr_pull_align(ndr, 8));
8946 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
8947 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
8955 if (ndr_flags & NDR_BUFFERS) {
8956 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
8959 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
8963 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
8967 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
8971 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
8975 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
8979 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
8987 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
8988 return NDR_ERR_SUCCESS;
8991 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
8994 level = ndr_print_get_switch_value(ndr, r);
8995 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
8998 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
9002 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
9006 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
9010 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
9014 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
9018 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
9027 static enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
9029 if (ndr_flags & NDR_SCALARS) {
9030 NDR_CHECK(ndr_push_align(ndr, 4));
9032 uint32_t _flags_save_string = ndr->flags;
9033 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9034 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
9035 ndr->flags = _flags_save_string;
9038 if (ndr_flags & NDR_BUFFERS) {
9040 return NDR_ERR_SUCCESS;
9043 static enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
9045 if (ndr_flags & NDR_SCALARS) {
9046 NDR_CHECK(ndr_pull_align(ndr, 4));
9048 uint32_t _flags_save_string = ndr->flags;
9049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9050 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
9051 ndr->flags = _flags_save_string;
9054 if (ndr_flags & NDR_BUFFERS) {
9056 return NDR_ERR_SUCCESS;
9059 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
9061 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
9063 ndr_print_string(ndr, "directory_name", r->directory_name);
9067 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
9069 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
9070 if (ndr_flags & NDR_SCALARS) {
9071 int level = ndr_push_get_switch_value(ndr, r);
9074 NDR_CHECK(ndr_push_align(ndr, 4));
9075 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
9076 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
9080 NDR_CHECK(ndr_push_align(ndr, 4));
9081 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
9082 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
9087 if (ndr_flags & NDR_BUFFERS) {
9088 int level = ndr_push_get_switch_value(ndr, r);
9089 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
9099 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
9100 return NDR_ERR_SUCCESS;
9103 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
9105 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
9107 level = ndr_pull_get_switch_value(ndr, r);
9108 if (ndr_flags & NDR_SCALARS) {
9111 NDR_CHECK(ndr_pull_align(ndr, 4));
9112 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
9113 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
9117 NDR_CHECK(ndr_pull_align(ndr, 4));
9118 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
9119 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
9124 if (ndr_flags & NDR_BUFFERS) {
9125 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
9135 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
9136 return NDR_ERR_SUCCESS;
9139 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
9142 level = ndr_print_get_switch_value(ndr, r);
9143 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
9146 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
9150 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
9156 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
9158 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
9161 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
9163 if (ndr_flags & NDR_SCALARS) {
9164 NDR_CHECK(ndr_push_align(ndr, 4));
9166 uint32_t _flags_save_string = ndr->flags;
9167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9168 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
9169 ndr->flags = _flags_save_string;
9172 if (ndr_flags & NDR_BUFFERS) {
9174 uint32_t _flags_save_string = ndr->flags;
9175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9176 if (r->print_processor_name) {
9177 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
9178 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
9180 ndr->flags = _flags_save_string;
9183 return NDR_ERR_SUCCESS;
9186 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
9188 uint32_t _ptr_print_processor_name;
9189 TALLOC_CTX *_mem_save_print_processor_name_0;
9190 if (ndr_flags & NDR_SCALARS) {
9191 NDR_CHECK(ndr_pull_align(ndr, 4));
9193 uint32_t _flags_save_string = ndr->flags;
9194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
9196 if (_ptr_print_processor_name) {
9197 NDR_PULL_ALLOC(ndr, r->print_processor_name);
9198 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
9200 r->print_processor_name = NULL;
9202 ndr->flags = _flags_save_string;
9205 if (ndr_flags & NDR_BUFFERS) {
9207 uint32_t _flags_save_string = ndr->flags;
9208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9209 if (r->print_processor_name) {
9210 uint32_t _relative_save_offset;
9211 _relative_save_offset = ndr->offset;
9212 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
9213 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9214 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
9215 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
9216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
9217 ndr->offset = _relative_save_offset;
9219 ndr->flags = _flags_save_string;
9222 return NDR_ERR_SUCCESS;
9225 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
9227 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
9229 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
9231 if (r->print_processor_name) {
9232 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
9238 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
9240 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
9241 if (ndr_flags & NDR_SCALARS) {
9242 int level = ndr_push_get_switch_value(ndr, r);
9245 NDR_CHECK(ndr_push_align(ndr, 4));
9246 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
9247 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
9255 if (ndr_flags & NDR_BUFFERS) {
9256 int level = ndr_push_get_switch_value(ndr, r);
9257 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
9260 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
9268 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
9269 return NDR_ERR_SUCCESS;
9272 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
9274 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
9276 level = ndr_pull_get_switch_value(ndr, r);
9277 if (ndr_flags & NDR_SCALARS) {
9280 NDR_CHECK(ndr_pull_align(ndr, 4));
9281 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
9282 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
9290 if (ndr_flags & NDR_BUFFERS) {
9291 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
9294 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
9302 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
9303 return NDR_ERR_SUCCESS;
9306 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
9309 level = ndr_print_get_switch_value(ndr, r);
9310 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
9313 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
9322 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
9324 if (ndr_flags & NDR_SCALARS) {
9325 NDR_CHECK(ndr_push_align(ndr, 4));
9326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
9327 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
9328 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
9330 if (ndr_flags & NDR_BUFFERS) {
9331 if (r->document_name) {
9332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
9333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
9335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9337 if (r->output_file) {
9338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
9339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
9341 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
9345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
9346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
9347 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
9350 return NDR_ERR_SUCCESS;
9353 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
9355 uint32_t _ptr_document_name;
9356 TALLOC_CTX *_mem_save_document_name_0;
9357 uint32_t _ptr_output_file;
9358 TALLOC_CTX *_mem_save_output_file_0;
9359 uint32_t _ptr_datatype;
9360 TALLOC_CTX *_mem_save_datatype_0;
9361 if (ndr_flags & NDR_SCALARS) {
9362 NDR_CHECK(ndr_pull_align(ndr, 4));
9363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
9364 if (_ptr_document_name) {
9365 NDR_PULL_ALLOC(ndr, r->document_name);
9367 r->document_name = NULL;
9369 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
9370 if (_ptr_output_file) {
9371 NDR_PULL_ALLOC(ndr, r->output_file);
9373 r->output_file = NULL;
9375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
9376 if (_ptr_datatype) {
9377 NDR_PULL_ALLOC(ndr, r->datatype);
9382 if (ndr_flags & NDR_BUFFERS) {
9383 if (r->document_name) {
9384 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9385 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
9386 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
9387 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
9388 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
9389 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));
9391 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
9392 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
9393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
9395 if (r->output_file) {
9396 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9397 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
9398 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
9399 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
9400 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
9401 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));
9403 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
9404 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
9405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
9408 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9409 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
9410 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
9411 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
9412 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
9413 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));
9415 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
9416 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
9417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
9420 return NDR_ERR_SUCCESS;
9423 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
9425 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
9427 ndr_print_ptr(ndr, "document_name", r->document_name);
9429 if (r->document_name) {
9430 ndr_print_string(ndr, "document_name", r->document_name);
9433 ndr_print_ptr(ndr, "output_file", r->output_file);
9435 if (r->output_file) {
9436 ndr_print_string(ndr, "output_file", r->output_file);
9439 ndr_print_ptr(ndr, "datatype", r->datatype);
9442 ndr_print_string(ndr, "datatype", r->datatype);
9448 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
9450 if (ndr_flags & NDR_SCALARS) {
9451 int level = ndr_push_get_switch_value(ndr, r);
9452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
9455 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
9469 if (ndr_flags & NDR_BUFFERS) {
9470 int level = ndr_push_get_switch_value(ndr, r);
9474 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9489 return NDR_ERR_SUCCESS;
9492 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
9496 TALLOC_CTX *_mem_save_info1_0;
9497 level = ndr_pull_get_switch_value(ndr, r);
9498 if (ndr_flags & NDR_SCALARS) {
9499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
9500 if (_level != level) {
9501 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
9505 uint32_t _ptr_info1;
9506 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
9508 NDR_PULL_ALLOC(ndr, r->info1);
9525 if (ndr_flags & NDR_BUFFERS) {
9529 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
9530 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
9531 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
9532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
9547 return NDR_ERR_SUCCESS;
9550 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
9553 level = ndr_print_get_switch_value(ndr, r);
9554 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
9557 ndr_print_ptr(ndr, "info1", r->info1);
9560 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
9577 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
9579 if (ndr_flags & NDR_SCALARS) {
9580 NDR_CHECK(ndr_push_align(ndr, 4));
9581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
9582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
9583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
9584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
9585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
9587 uint32_t _flags_save_string = ndr->flags;
9588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9590 struct ndr_push *_ndr_extra_string;
9591 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
9592 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
9593 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
9595 ndr->flags = _flags_save_string;
9598 if (ndr_flags & NDR_BUFFERS) {
9600 return NDR_ERR_SUCCESS;
9603 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
9605 if (ndr_flags & NDR_SCALARS) {
9606 NDR_CHECK(ndr_pull_align(ndr, 4));
9607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
9608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
9609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
9610 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
9611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
9613 uint32_t _flags_save_string = ndr->flags;
9614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9616 struct ndr_pull *_ndr_extra_string;
9617 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
9618 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
9619 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
9621 ndr->flags = _flags_save_string;
9624 if (ndr_flags & NDR_BUFFERS) {
9626 return NDR_ERR_SUCCESS;
9629 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
9631 ndr_print_struct(ndr, name, "spoolss_OSVersion");
9633 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);
9634 ndr_print_uint32(ndr, "major", r->major);
9635 ndr_print_uint32(ndr, "minor", r->minor);
9636 ndr_print_uint32(ndr, "build", r->build);
9637 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
9638 ndr_print_string(ndr, "extra_string", r->extra_string);
9642 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
9644 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
9647 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
9649 if (ndr_flags & NDR_SCALARS) {
9650 NDR_CHECK(ndr_push_align(ndr, 4));
9651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
9652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
9653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
9654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
9655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
9657 uint32_t _flags_save_string = ndr->flags;
9658 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9660 struct ndr_push *_ndr_extra_string;
9661 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
9662 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
9663 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
9665 ndr->flags = _flags_save_string;
9667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
9668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
9670 if (ndr_flags & NDR_BUFFERS) {
9672 return NDR_ERR_SUCCESS;
9675 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
9677 if (ndr_flags & NDR_SCALARS) {
9678 NDR_CHECK(ndr_pull_align(ndr, 4));
9679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
9680 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
9681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
9682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
9683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
9685 uint32_t _flags_save_string = ndr->flags;
9686 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9688 struct ndr_pull *_ndr_extra_string;
9689 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
9690 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
9691 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
9693 ndr->flags = _flags_save_string;
9695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
9696 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
9698 if (ndr_flags & NDR_BUFFERS) {
9700 return NDR_ERR_SUCCESS;
9703 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
9705 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
9707 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);
9708 ndr_print_uint32(ndr, "major", r->major);
9709 ndr_print_uint32(ndr, "minor", r->minor);
9710 ndr_print_uint32(ndr, "build", r->build);
9711 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
9712 ndr_print_string(ndr, "extra_string", r->extra_string);
9713 ndr_print_uint32(ndr, "unknown2", r->unknown2);
9714 ndr_print_uint32(ndr, "unknown3", r->unknown3);
9718 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
9720 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
9723 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
9725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9726 return NDR_ERR_SUCCESS;
9729 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
9732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9734 return NDR_ERR_SUCCESS;
9737 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
9739 const char *val = NULL;
9742 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
9743 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
9744 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
9745 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
9746 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
9748 ndr_print_enum(ndr, name, "ENUM", val, r);
9751 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
9753 if (ndr_flags & NDR_SCALARS) {
9754 int level = ndr_push_get_switch_value(ndr, r);
9756 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
9759 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
9761 uint32_t _flags_save_string = ndr->flags;
9762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9763 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
9764 ndr->flags = _flags_save_string;
9768 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
9770 uint32_t _flags_save_DATA_BLOB = ndr->flags;
9771 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
9772 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
9773 ndr->flags = _flags_save_DATA_BLOB;
9777 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
9778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
9781 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
9783 uint32_t _flags_save_string_array = ndr->flags;
9784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9785 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
9786 ndr->flags = _flags_save_string_array;
9792 uint32_t _flags_save_DATA_BLOB = ndr->flags;
9793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
9794 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
9795 ndr->flags = _flags_save_DATA_BLOB;
9801 if (ndr_flags & NDR_BUFFERS) {
9802 int level = ndr_push_get_switch_value(ndr, r);
9804 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
9807 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
9810 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
9813 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
9816 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
9824 return NDR_ERR_SUCCESS;
9827 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
9830 level = ndr_pull_get_switch_value(ndr, r);
9831 if (ndr_flags & NDR_SCALARS) {
9833 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
9836 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
9838 uint32_t _flags_save_string = ndr->flags;
9839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9840 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
9841 ndr->flags = _flags_save_string;
9845 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
9847 uint32_t _flags_save_DATA_BLOB = ndr->flags;
9848 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
9849 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
9850 ndr->flags = _flags_save_DATA_BLOB;
9854 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
9855 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
9858 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
9860 uint32_t _flags_save_string_array = ndr->flags;
9861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9862 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
9863 ndr->flags = _flags_save_string_array;
9869 uint32_t _flags_save_DATA_BLOB = ndr->flags;
9870 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
9871 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
9872 ndr->flags = _flags_save_DATA_BLOB;
9878 if (ndr_flags & NDR_BUFFERS) {
9880 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
9883 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
9886 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
9889 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
9892 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
9900 return NDR_ERR_SUCCESS;
9903 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
9906 level = ndr_print_get_switch_value(ndr, r);
9907 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
9909 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
9912 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
9913 ndr_print_string(ndr, "string", r->string);
9916 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
9917 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
9920 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
9921 ndr_print_uint32(ndr, "value", r->value);
9924 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
9925 ndr_print_string_array(ndr, "string_array", r->string_array);
9929 ndr_print_DATA_BLOB(ndr, "data", r->data);
9935 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
9937 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
9940 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
9942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
9943 return NDR_ERR_SUCCESS;
9946 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
9949 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
9951 return NDR_ERR_SUCCESS;
9954 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
9956 const char *val = NULL;
9959 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
9960 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
9961 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
9963 ndr_print_enum(ndr, name, "ENUM", val, r);
9966 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
9968 if (ndr_flags & NDR_SCALARS) {
9969 NDR_CHECK(ndr_push_align(ndr, 4));
9970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
9971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
9973 if (ndr_flags & NDR_BUFFERS) {
9975 return NDR_ERR_SUCCESS;
9978 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
9980 if (ndr_flags & NDR_SCALARS) {
9981 NDR_CHECK(ndr_pull_align(ndr, 4));
9982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
9983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
9985 if (ndr_flags & NDR_BUFFERS) {
9987 return NDR_ERR_SUCCESS;
9990 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
9992 ndr_print_struct(ndr, name, "spoolss_FormSize");
9994 ndr_print_uint32(ndr, "width", r->width);
9995 ndr_print_uint32(ndr, "height", r->height);
9999 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
10001 if (ndr_flags & NDR_SCALARS) {
10002 NDR_CHECK(ndr_push_align(ndr, 4));
10003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
10004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
10005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
10006 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
10008 if (ndr_flags & NDR_BUFFERS) {
10010 return NDR_ERR_SUCCESS;
10013 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
10015 if (ndr_flags & NDR_SCALARS) {
10016 NDR_CHECK(ndr_pull_align(ndr, 4));
10017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
10018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
10019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
10020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
10022 if (ndr_flags & NDR_BUFFERS) {
10024 return NDR_ERR_SUCCESS;
10027 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
10029 ndr_print_struct(ndr, name, "spoolss_FormArea");
10031 ndr_print_uint32(ndr, "left", r->left);
10032 ndr_print_uint32(ndr, "top", r->top);
10033 ndr_print_uint32(ndr, "right", r->right);
10034 ndr_print_uint32(ndr, "bottom", r->bottom);
10038 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
10040 if (ndr_flags & NDR_SCALARS) {
10041 NDR_CHECK(ndr_push_align(ndr, 4));
10042 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
10044 uint32_t _flags_save_string = ndr->flags;
10045 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10046 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
10047 ndr->flags = _flags_save_string;
10049 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
10050 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
10052 if (ndr_flags & NDR_BUFFERS) {
10054 uint32_t _flags_save_string = ndr->flags;
10055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10056 if (r->form_name) {
10057 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
10058 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
10060 ndr->flags = _flags_save_string;
10063 return NDR_ERR_SUCCESS;
10066 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
10068 uint32_t _ptr_form_name;
10069 TALLOC_CTX *_mem_save_form_name_0;
10070 if (ndr_flags & NDR_SCALARS) {
10071 NDR_CHECK(ndr_pull_align(ndr, 4));
10072 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
10074 uint32_t _flags_save_string = ndr->flags;
10075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10076 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
10077 if (_ptr_form_name) {
10078 NDR_PULL_ALLOC(ndr, r->form_name);
10079 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
10081 r->form_name = NULL;
10083 ndr->flags = _flags_save_string;
10085 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
10086 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
10088 if (ndr_flags & NDR_BUFFERS) {
10090 uint32_t _flags_save_string = ndr->flags;
10091 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10092 if (r->form_name) {
10093 uint32_t _relative_save_offset;
10094 _relative_save_offset = ndr->offset;
10095 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
10096 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10097 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
10098 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
10099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
10100 ndr->offset = _relative_save_offset;
10102 ndr->flags = _flags_save_string;
10105 return NDR_ERR_SUCCESS;
10108 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
10110 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
10112 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
10113 ndr_print_ptr(ndr, "form_name", r->form_name);
10115 if (r->form_name) {
10116 ndr_print_string(ndr, "form_name", r->form_name);
10119 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
10120 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
10124 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
10126 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10127 if (ndr_flags & NDR_SCALARS) {
10128 int level = ndr_push_get_switch_value(ndr, r);
10131 NDR_CHECK(ndr_push_align(ndr, 4));
10132 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10133 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
10141 if (ndr_flags & NDR_BUFFERS) {
10142 int level = ndr_push_get_switch_value(ndr, r);
10143 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10146 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
10154 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10155 return NDR_ERR_SUCCESS;
10158 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
10160 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10162 level = ndr_pull_get_switch_value(ndr, r);
10163 if (ndr_flags & NDR_SCALARS) {
10166 NDR_CHECK(ndr_pull_align(ndr, 4));
10167 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10168 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
10176 if (ndr_flags & NDR_BUFFERS) {
10177 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10180 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
10188 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10189 return NDR_ERR_SUCCESS;
10192 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
10195 level = ndr_print_get_switch_value(ndr, r);
10196 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
10199 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
10208 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
10210 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
10213 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
10215 if (ndr_flags & NDR_SCALARS) {
10216 NDR_CHECK(ndr_push_align(ndr, 4));
10217 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
10218 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
10219 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
10220 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
10222 if (ndr_flags & NDR_BUFFERS) {
10223 if (r->form_name) {
10224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
10225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
10226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
10227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
10230 return NDR_ERR_SUCCESS;
10233 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
10235 uint32_t _ptr_form_name;
10236 TALLOC_CTX *_mem_save_form_name_0;
10237 if (ndr_flags & NDR_SCALARS) {
10238 NDR_CHECK(ndr_pull_align(ndr, 4));
10239 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
10240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
10241 if (_ptr_form_name) {
10242 NDR_PULL_ALLOC(ndr, r->form_name);
10244 r->form_name = NULL;
10246 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
10247 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
10249 if (ndr_flags & NDR_BUFFERS) {
10250 if (r->form_name) {
10251 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10252 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
10253 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
10254 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
10255 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
10256 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));
10258 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
10259 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
10260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
10263 return NDR_ERR_SUCCESS;
10266 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
10268 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
10270 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
10271 ndr_print_ptr(ndr, "form_name", r->form_name);
10273 if (r->form_name) {
10274 ndr_print_string(ndr, "form_name", r->form_name);
10277 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
10278 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
10282 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
10284 if (ndr_flags & NDR_SCALARS) {
10285 int level = ndr_push_get_switch_value(ndr, r);
10286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
10289 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
10293 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10296 if (ndr_flags & NDR_BUFFERS) {
10297 int level = ndr_push_get_switch_value(ndr, r);
10301 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10306 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10309 return NDR_ERR_SUCCESS;
10312 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
10316 TALLOC_CTX *_mem_save_info1_0;
10317 level = ndr_pull_get_switch_value(ndr, r);
10318 if (ndr_flags & NDR_SCALARS) {
10319 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
10320 if (_level != level) {
10321 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
10325 uint32_t _ptr_info1;
10326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
10328 NDR_PULL_ALLOC(ndr, r->info1);
10335 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10338 if (ndr_flags & NDR_BUFFERS) {
10342 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
10343 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
10344 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
10345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
10350 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
10353 return NDR_ERR_SUCCESS;
10356 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
10359 level = ndr_print_get_switch_value(ndr, r);
10360 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
10363 ndr_print_ptr(ndr, "info1", r->info1);
10366 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
10372 ndr_print_bad_level(ndr, name, level);
10376 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
10378 if (ndr_flags & NDR_SCALARS) {
10379 NDR_CHECK(ndr_push_align(ndr, 4));
10381 uint32_t _flags_save_string = ndr->flags;
10382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10383 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
10384 ndr->flags = _flags_save_string;
10387 if (ndr_flags & NDR_BUFFERS) {
10389 uint32_t _flags_save_string = ndr->flags;
10390 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10391 if (r->port_name) {
10392 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
10393 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
10395 ndr->flags = _flags_save_string;
10398 return NDR_ERR_SUCCESS;
10401 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
10403 uint32_t _ptr_port_name;
10404 TALLOC_CTX *_mem_save_port_name_0;
10405 if (ndr_flags & NDR_SCALARS) {
10406 NDR_CHECK(ndr_pull_align(ndr, 4));
10408 uint32_t _flags_save_string = ndr->flags;
10409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10410 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
10411 if (_ptr_port_name) {
10412 NDR_PULL_ALLOC(ndr, r->port_name);
10413 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
10415 r->port_name = NULL;
10417 ndr->flags = _flags_save_string;
10420 if (ndr_flags & NDR_BUFFERS) {
10422 uint32_t _flags_save_string = ndr->flags;
10423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10424 if (r->port_name) {
10425 uint32_t _relative_save_offset;
10426 _relative_save_offset = ndr->offset;
10427 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
10428 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10429 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
10430 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
10431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
10432 ndr->offset = _relative_save_offset;
10434 ndr->flags = _flags_save_string;
10437 return NDR_ERR_SUCCESS;
10440 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
10442 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
10444 ndr_print_ptr(ndr, "port_name", r->port_name);
10446 if (r->port_name) {
10447 ndr_print_string(ndr, "port_name", r->port_name);
10453 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
10455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10456 return NDR_ERR_SUCCESS;
10459 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
10462 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
10464 return NDR_ERR_SUCCESS;
10467 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
10469 ndr_print_uint32(ndr, name, r);
10471 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
10472 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
10473 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
10474 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
10478 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
10480 if (ndr_flags & NDR_SCALARS) {
10481 NDR_CHECK(ndr_push_align(ndr, 4));
10483 uint32_t _flags_save_string = ndr->flags;
10484 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10485 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10492 ndr->flags = _flags_save_string;
10495 uint32_t _flags_save_string = ndr->flags;
10496 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10497 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
10498 ndr->flags = _flags_save_string;
10500 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
10501 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
10503 if (ndr_flags & NDR_BUFFERS) {
10505 uint32_t _flags_save_string = ndr->flags;
10506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10507 if (r->port_name) {
10508 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
10509 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
10511 ndr->flags = _flags_save_string;
10514 uint32_t _flags_save_string = ndr->flags;
10515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10516 if (r->monitor_name) {
10517 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10518 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10520 ndr->flags = _flags_save_string;
10523 uint32_t _flags_save_string = ndr->flags;
10524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10525 if (r->description) {
10526 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
10527 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
10529 ndr->flags = _flags_save_string;
10532 return NDR_ERR_SUCCESS;
10535 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
10537 uint32_t _ptr_port_name;
10538 TALLOC_CTX *_mem_save_port_name_0;
10539 uint32_t _ptr_monitor_name;
10540 TALLOC_CTX *_mem_save_monitor_name_0;
10541 uint32_t _ptr_description;
10542 TALLOC_CTX *_mem_save_description_0;
10543 if (ndr_flags & NDR_SCALARS) {
10544 NDR_CHECK(ndr_pull_align(ndr, 4));
10546 uint32_t _flags_save_string = ndr->flags;
10547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10548 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
10549 if (_ptr_port_name) {
10550 NDR_PULL_ALLOC(ndr, r->port_name);
10551 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
10553 r->port_name = NULL;
10555 ndr->flags = _flags_save_string;
10558 uint32_t _flags_save_string = ndr->flags;
10559 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10560 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10561 if (_ptr_monitor_name) {
10562 NDR_PULL_ALLOC(ndr, r->monitor_name);
10563 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10565 r->monitor_name = NULL;
10567 ndr->flags = _flags_save_string;
10570 uint32_t _flags_save_string = ndr->flags;
10571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10572 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
10573 if (_ptr_description) {
10574 NDR_PULL_ALLOC(ndr, r->description);
10575 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
10577 r->description = NULL;
10579 ndr->flags = _flags_save_string;
10581 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
10582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
10584 if (ndr_flags & NDR_BUFFERS) {
10586 uint32_t _flags_save_string = ndr->flags;
10587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10588 if (r->port_name) {
10589 uint32_t _relative_save_offset;
10590 _relative_save_offset = ndr->offset;
10591 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
10592 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10593 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
10594 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
10595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
10596 ndr->offset = _relative_save_offset;
10598 ndr->flags = _flags_save_string;
10601 uint32_t _flags_save_string = ndr->flags;
10602 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10603 if (r->monitor_name) {
10604 uint32_t _relative_save_offset;
10605 _relative_save_offset = ndr->offset;
10606 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10607 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10608 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10609 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10610 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10611 ndr->offset = _relative_save_offset;
10613 ndr->flags = _flags_save_string;
10616 uint32_t _flags_save_string = ndr->flags;
10617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10618 if (r->description) {
10619 uint32_t _relative_save_offset;
10620 _relative_save_offset = ndr->offset;
10621 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
10622 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
10623 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
10624 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
10625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
10626 ndr->offset = _relative_save_offset;
10628 ndr->flags = _flags_save_string;
10631 return NDR_ERR_SUCCESS;
10634 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
10636 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
10638 ndr_print_ptr(ndr, "port_name", r->port_name);
10640 if (r->port_name) {
10641 ndr_print_string(ndr, "port_name", r->port_name);
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, "description", r->description);
10652 if (r->description) {
10653 ndr_print_string(ndr, "description", r->description);
10656 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
10657 ndr_print_uint32(ndr, "reserved", r->reserved);
10661 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
10663 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10664 if (ndr_flags & NDR_SCALARS) {
10665 int level = ndr_push_get_switch_value(ndr, r);
10668 NDR_CHECK(ndr_push_align(ndr, 4));
10669 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10670 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
10674 NDR_CHECK(ndr_push_align(ndr, 4));
10675 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10676 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
10687 if (ndr_flags & NDR_BUFFERS) {
10688 int level = ndr_push_get_switch_value(ndr, r);
10689 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10692 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
10696 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
10707 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10708 return NDR_ERR_SUCCESS;
10711 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
10713 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10715 level = ndr_pull_get_switch_value(ndr, r);
10716 if (ndr_flags & NDR_SCALARS) {
10719 NDR_CHECK(ndr_pull_align(ndr, 4));
10720 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10721 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
10725 NDR_CHECK(ndr_pull_align(ndr, 4));
10726 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10727 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
10738 if (ndr_flags & NDR_BUFFERS) {
10739 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10742 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
10746 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
10757 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10758 return NDR_ERR_SUCCESS;
10761 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
10764 level = ndr_print_get_switch_value(ndr, r);
10765 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
10768 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
10772 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
10784 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
10786 if (ndr_flags & NDR_SCALARS) {
10787 NDR_CHECK(ndr_push_align(ndr, 4));
10789 uint32_t _flags_save_string = ndr->flags;
10790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10791 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10792 ndr->flags = _flags_save_string;
10795 if (ndr_flags & NDR_BUFFERS) {
10797 uint32_t _flags_save_string = ndr->flags;
10798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10799 if (r->monitor_name) {
10800 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10801 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10803 ndr->flags = _flags_save_string;
10806 return NDR_ERR_SUCCESS;
10809 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
10811 uint32_t _ptr_monitor_name;
10812 TALLOC_CTX *_mem_save_monitor_name_0;
10813 if (ndr_flags & NDR_SCALARS) {
10814 NDR_CHECK(ndr_pull_align(ndr, 4));
10816 uint32_t _flags_save_string = ndr->flags;
10817 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10818 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10819 if (_ptr_monitor_name) {
10820 NDR_PULL_ALLOC(ndr, r->monitor_name);
10821 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10823 r->monitor_name = NULL;
10825 ndr->flags = _flags_save_string;
10828 if (ndr_flags & NDR_BUFFERS) {
10830 uint32_t _flags_save_string = ndr->flags;
10831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10832 if (r->monitor_name) {
10833 uint32_t _relative_save_offset;
10834 _relative_save_offset = ndr->offset;
10835 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10836 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10837 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10838 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10840 ndr->offset = _relative_save_offset;
10842 ndr->flags = _flags_save_string;
10845 return NDR_ERR_SUCCESS;
10848 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
10850 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
10852 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10854 if (r->monitor_name) {
10855 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10861 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
10863 if (ndr_flags & NDR_SCALARS) {
10864 NDR_CHECK(ndr_push_align(ndr, 4));
10866 uint32_t _flags_save_string = ndr->flags;
10867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10868 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
10869 ndr->flags = _flags_save_string;
10872 uint32_t _flags_save_string = ndr->flags;
10873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10874 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
10875 ndr->flags = _flags_save_string;
10878 uint32_t _flags_save_string = ndr->flags;
10879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10880 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
10881 ndr->flags = _flags_save_string;
10884 if (ndr_flags & NDR_BUFFERS) {
10886 uint32_t _flags_save_string = ndr->flags;
10887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10888 if (r->monitor_name) {
10889 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
10890 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
10892 ndr->flags = _flags_save_string;
10895 uint32_t _flags_save_string = ndr->flags;
10896 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10897 if (r->environment) {
10898 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
10899 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
10901 ndr->flags = _flags_save_string;
10904 uint32_t _flags_save_string = ndr->flags;
10905 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10907 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
10908 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
10910 ndr->flags = _flags_save_string;
10913 return NDR_ERR_SUCCESS;
10916 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
10918 uint32_t _ptr_monitor_name;
10919 TALLOC_CTX *_mem_save_monitor_name_0;
10920 uint32_t _ptr_environment;
10921 TALLOC_CTX *_mem_save_environment_0;
10922 uint32_t _ptr_dll_name;
10923 TALLOC_CTX *_mem_save_dll_name_0;
10924 if (ndr_flags & NDR_SCALARS) {
10925 NDR_CHECK(ndr_pull_align(ndr, 4));
10927 uint32_t _flags_save_string = ndr->flags;
10928 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10929 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
10930 if (_ptr_monitor_name) {
10931 NDR_PULL_ALLOC(ndr, r->monitor_name);
10932 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
10934 r->monitor_name = NULL;
10936 ndr->flags = _flags_save_string;
10939 uint32_t _flags_save_string = ndr->flags;
10940 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10941 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
10942 if (_ptr_environment) {
10943 NDR_PULL_ALLOC(ndr, r->environment);
10944 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
10946 r->environment = NULL;
10948 ndr->flags = _flags_save_string;
10951 uint32_t _flags_save_string = ndr->flags;
10952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
10954 if (_ptr_dll_name) {
10955 NDR_PULL_ALLOC(ndr, r->dll_name);
10956 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
10958 r->dll_name = NULL;
10960 ndr->flags = _flags_save_string;
10963 if (ndr_flags & NDR_BUFFERS) {
10965 uint32_t _flags_save_string = ndr->flags;
10966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10967 if (r->monitor_name) {
10968 uint32_t _relative_save_offset;
10969 _relative_save_offset = ndr->offset;
10970 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10971 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10972 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10973 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10975 ndr->offset = _relative_save_offset;
10977 ndr->flags = _flags_save_string;
10980 uint32_t _flags_save_string = ndr->flags;
10981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10982 if (r->environment) {
10983 uint32_t _relative_save_offset;
10984 _relative_save_offset = ndr->offset;
10985 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
10986 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
10987 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
10988 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
10989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
10990 ndr->offset = _relative_save_offset;
10992 ndr->flags = _flags_save_string;
10995 uint32_t _flags_save_string = ndr->flags;
10996 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10998 uint32_t _relative_save_offset;
10999 _relative_save_offset = ndr->offset;
11000 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
11001 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11002 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
11003 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
11004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
11005 ndr->offset = _relative_save_offset;
11007 ndr->flags = _flags_save_string;
11010 return NDR_ERR_SUCCESS;
11013 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
11015 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
11017 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
11019 if (r->monitor_name) {
11020 ndr_print_string(ndr, "monitor_name", r->monitor_name);
11023 ndr_print_ptr(ndr, "environment", r->environment);
11025 if (r->environment) {
11026 ndr_print_string(ndr, "environment", r->environment);
11029 ndr_print_ptr(ndr, "dll_name", r->dll_name);
11032 ndr_print_string(ndr, "dll_name", r->dll_name);
11038 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
11040 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11041 if (ndr_flags & NDR_SCALARS) {
11042 int level = ndr_push_get_switch_value(ndr, r);
11045 NDR_CHECK(ndr_push_align(ndr, 4));
11046 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11047 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
11051 NDR_CHECK(ndr_push_align(ndr, 4));
11052 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11053 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
11061 if (ndr_flags & NDR_BUFFERS) {
11062 int level = ndr_push_get_switch_value(ndr, r);
11063 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11066 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
11070 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
11078 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11079 return NDR_ERR_SUCCESS;
11082 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
11084 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11086 level = ndr_pull_get_switch_value(ndr, r);
11087 if (ndr_flags & NDR_SCALARS) {
11090 NDR_CHECK(ndr_pull_align(ndr, 4));
11091 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11092 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
11096 NDR_CHECK(ndr_pull_align(ndr, 4));
11097 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11098 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
11106 if (ndr_flags & NDR_BUFFERS) {
11107 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11110 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
11114 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
11122 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11123 return NDR_ERR_SUCCESS;
11126 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
11129 level = ndr_print_get_switch_value(ndr, r);
11130 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
11133 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
11137 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
11146 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
11148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11149 return NDR_ERR_SUCCESS;
11152 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
11155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11157 return NDR_ERR_SUCCESS;
11160 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
11162 ndr_print_uint32(ndr, name, r);
11164 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
11165 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
11166 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
11167 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
11168 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
11169 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
11170 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
11171 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
11172 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
11173 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
11174 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
11175 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
11176 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
11177 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
11178 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
11179 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
11180 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
11181 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
11182 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
11183 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
11187 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
11189 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
11190 return NDR_ERR_SUCCESS;
11193 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
11196 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
11198 return NDR_ERR_SUCCESS;
11201 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
11203 const char *val = NULL;
11206 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
11207 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
11208 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
11209 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
11210 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
11211 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
11212 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
11213 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
11214 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
11215 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
11216 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
11217 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
11218 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
11219 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
11220 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
11221 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
11222 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
11223 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
11224 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
11225 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
11226 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
11227 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
11228 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
11229 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
11230 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
11231 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
11233 ndr_print_enum(ndr, name, "ENUM", val, r);
11236 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
11238 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
11239 return NDR_ERR_SUCCESS;
11242 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
11245 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
11247 return NDR_ERR_SUCCESS;
11250 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
11252 const char *val = NULL;
11255 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
11256 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
11258 ndr_print_enum(ndr, name, "ENUM", val, r);
11261 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
11263 uint32_t cntr_fields_1;
11264 if (ndr_flags & NDR_SCALARS) {
11265 NDR_CHECK(ndr_push_align(ndr, 4));
11266 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
11267 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
11268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
11269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
11270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11271 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
11273 if (ndr_flags & NDR_BUFFERS) {
11275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11276 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
11277 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
11281 return NDR_ERR_SUCCESS;
11284 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
11286 uint32_t _ptr_fields;
11287 uint32_t cntr_fields_1;
11288 TALLOC_CTX *_mem_save_fields_0;
11289 TALLOC_CTX *_mem_save_fields_1;
11290 if (ndr_flags & NDR_SCALARS) {
11291 NDR_CHECK(ndr_pull_align(ndr, 4));
11292 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
11293 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
11294 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
11295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
11296 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
11299 NDR_PULL_ALLOC(ndr, r->fields);
11304 if (ndr_flags & NDR_BUFFERS) {
11306 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
11307 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
11308 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
11309 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
11310 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
11311 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
11312 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
11313 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
11315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
11316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
11319 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
11322 return NDR_ERR_SUCCESS;
11325 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
11327 uint32_t cntr_fields_1;
11328 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
11330 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
11331 ndr_print_uint16(ndr, "u1", r->u1);
11332 ndr_print_uint32(ndr, "u2", r->u2);
11333 ndr_print_uint32(ndr, "u3", r->u3);
11334 ndr_print_uint32(ndr, "count", r->count);
11335 ndr_print_ptr(ndr, "fields", r->fields);
11338 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
11340 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
11342 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
11343 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
11353 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
11355 uint32_t cntr_types_1;
11356 if (ndr_flags & NDR_SCALARS) {
11357 NDR_CHECK(ndr_push_align(ndr, 4));
11358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
11360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
11363 if (ndr_flags & NDR_BUFFERS) {
11365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11366 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
11367 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
11369 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
11370 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
11374 return NDR_ERR_SUCCESS;
11377 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
11379 uint32_t _ptr_types;
11380 uint32_t cntr_types_1;
11381 TALLOC_CTX *_mem_save_types_0;
11382 TALLOC_CTX *_mem_save_types_1;
11383 if (ndr_flags & NDR_SCALARS) {
11384 NDR_CHECK(ndr_pull_align(ndr, 4));
11385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
11386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
11387 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11388 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
11390 NDR_PULL_ALLOC(ndr, r->types);
11395 if (ndr_flags & NDR_BUFFERS) {
11397 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
11398 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
11399 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
11400 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
11401 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
11402 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
11403 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
11404 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
11406 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
11407 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
11409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
11410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
11413 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
11416 return NDR_ERR_SUCCESS;
11419 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
11421 uint32_t cntr_types_1;
11422 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
11424 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
11425 ndr_print_uint32(ndr, "flags", r->flags);
11426 ndr_print_uint32(ndr, "count", r->count);
11427 ndr_print_ptr(ndr, "types", r->types);
11430 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
11432 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
11434 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
11435 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
11445 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
11447 if (ndr_flags & NDR_SCALARS) {
11448 NDR_CHECK(ndr_push_align(ndr, 4));
11449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
11450 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
11452 if (ndr_flags & NDR_BUFFERS) {
11454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
11455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
11458 return NDR_ERR_SUCCESS;
11461 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
11463 uint32_t _ptr_string;
11464 TALLOC_CTX *_mem_save_string_0;
11465 if (ndr_flags & NDR_SCALARS) {
11466 NDR_CHECK(ndr_pull_align(ndr, 4));
11467 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
11468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
11470 NDR_PULL_ALLOC(ndr, r->string);
11475 if (ndr_flags & NDR_BUFFERS) {
11477 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
11478 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
11479 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
11480 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
11481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
11484 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
11487 return NDR_ERR_SUCCESS;
11490 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
11492 ndr_print_struct(ndr, name, "spoolss_NotifyString");
11494 ndr_print_uint32(ndr, "size", r->size);
11495 ndr_print_ptr(ndr, "string", r->string);
11498 ndr_print_string(ndr, "string", r->string);
11504 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
11506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11507 return NDR_ERR_SUCCESS;
11510 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
11513 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11515 return NDR_ERR_SUCCESS;
11518 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
11520 const char *val = NULL;
11523 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
11524 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
11525 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
11526 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
11527 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
11529 ndr_print_enum(ndr, name, "ENUM", val, r);
11532 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
11534 if (ndr_flags & NDR_SCALARS) {
11535 int level = ndr_push_get_switch_value(ndr, r);
11536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11539 uint32_t cntr_integer_0;
11540 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
11541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
11546 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
11550 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
11554 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
11558 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
11562 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11565 if (ndr_flags & NDR_BUFFERS) {
11566 int level = ndr_push_get_switch_value(ndr, r);
11572 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
11577 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
11582 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
11586 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
11590 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11593 return NDR_ERR_SUCCESS;
11596 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
11600 TALLOC_CTX *_mem_save_devmode_0;
11601 level = ndr_pull_get_switch_value(ndr, r);
11602 if (ndr_flags & NDR_SCALARS) {
11603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11604 if (_level != level) {
11605 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11609 uint32_t cntr_integer_0;
11610 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
11611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
11616 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
11620 uint32_t _ptr_devmode;
11621 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
11622 if (_ptr_devmode) {
11623 NDR_PULL_ALLOC(ndr, r->devmode);
11630 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
11634 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
11638 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11641 if (ndr_flags & NDR_BUFFERS) {
11647 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
11652 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
11653 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
11654 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
11655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
11660 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
11664 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
11668 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11671 return NDR_ERR_SUCCESS;
11674 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
11677 uint32_t cntr_integer_0;
11678 level = ndr_print_get_switch_value(ndr, r);
11679 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
11682 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
11684 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
11686 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
11687 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
11695 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
11699 ndr_print_ptr(ndr, "devmode", r->devmode);
11702 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
11708 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
11712 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
11716 ndr_print_bad_level(ndr, name, level);
11720 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
11722 if (ndr_flags & NDR_SCALARS) {
11723 NDR_CHECK(ndr_push_align(ndr, 4));
11724 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
11725 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
11726 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
11727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
11728 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
11729 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
11731 if (ndr_flags & NDR_BUFFERS) {
11732 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
11734 return NDR_ERR_SUCCESS;
11737 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
11739 if (ndr_flags & NDR_SCALARS) {
11740 NDR_CHECK(ndr_pull_align(ndr, 4));
11741 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
11742 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
11743 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
11744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
11745 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
11746 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
11748 if (ndr_flags & NDR_BUFFERS) {
11749 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
11751 return NDR_ERR_SUCCESS;
11754 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
11756 ndr_print_struct(ndr, name, "spoolss_Notify");
11758 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
11759 ndr_print_spoolss_Field(ndr, "field", r->field);
11760 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
11761 ndr_print_uint32(ndr, "job_id", r->job_id);
11762 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
11763 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
11767 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
11769 uint32_t cntr_notifies_0;
11770 if (ndr_flags & NDR_SCALARS) {
11771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11772 NDR_CHECK(ndr_push_align(ndr, 4));
11773 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
11775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
11776 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
11777 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
11780 if (ndr_flags & NDR_BUFFERS) {
11781 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
11782 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
11785 return NDR_ERR_SUCCESS;
11788 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
11790 uint32_t cntr_notifies_0;
11791 TALLOC_CTX *_mem_save_notifies_0;
11792 if (ndr_flags & NDR_SCALARS) {
11793 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
11794 NDR_CHECK(ndr_pull_align(ndr, 4));
11795 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
11796 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
11797 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
11798 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
11799 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
11800 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
11801 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
11802 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
11804 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
11806 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
11809 if (ndr_flags & NDR_BUFFERS) {
11810 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
11811 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
11812 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
11813 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
11815 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
11817 return NDR_ERR_SUCCESS;
11820 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
11822 uint32_t cntr_notifies_0;
11823 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
11825 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
11826 ndr_print_uint32(ndr, "flags", r->flags);
11827 ndr_print_uint32(ndr, "count", r->count);
11828 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
11830 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
11832 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
11833 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
11841 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
11843 if (ndr_flags & NDR_SCALARS) {
11844 int level = ndr_push_get_switch_value(ndr, r);
11845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
11852 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11855 if (ndr_flags & NDR_BUFFERS) {
11856 int level = ndr_push_get_switch_value(ndr, r);
11860 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
11865 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11868 return NDR_ERR_SUCCESS;
11871 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
11875 TALLOC_CTX *_mem_save_info0_0;
11876 level = ndr_pull_get_switch_value(ndr, r);
11877 if (ndr_flags & NDR_SCALARS) {
11878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11879 if (_level != level) {
11880 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11884 uint32_t _ptr_info0;
11885 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
11887 NDR_PULL_ALLOC(ndr, r->info0);
11894 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11897 if (ndr_flags & NDR_BUFFERS) {
11901 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
11902 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
11903 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
11904 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
11909 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
11912 return NDR_ERR_SUCCESS;
11915 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
11918 level = ndr_print_get_switch_value(ndr, r);
11919 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
11922 ndr_print_ptr(ndr, "info0", r->info0);
11925 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
11931 ndr_print_bad_level(ndr, name, level);
11935 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
11937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11938 return NDR_ERR_SUCCESS;
11941 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
11944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11946 return NDR_ERR_SUCCESS;
11949 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
11951 ndr_print_uint32(ndr, name, r);
11953 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
11954 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
11955 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
11959 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
11961 if (ndr_flags & NDR_SCALARS) {
11962 NDR_CHECK(ndr_push_align(ndr, 4));
11963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
11964 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
11965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
11966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11967 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
11968 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
11969 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
11971 if (ndr_flags & NDR_BUFFERS) {
11973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
11974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11975 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
11976 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
11980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
11982 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11985 return NDR_ERR_SUCCESS;
11988 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
11990 uint32_t _ptr_client;
11991 TALLOC_CTX *_mem_save_client_0;
11992 uint32_t _ptr_user;
11993 TALLOC_CTX *_mem_save_user_0;
11994 if (ndr_flags & NDR_SCALARS) {
11995 NDR_CHECK(ndr_pull_align(ndr, 4));
11996 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
11997 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
11999 NDR_PULL_ALLOC(ndr, r->client);
12003 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
12005 NDR_PULL_ALLOC(ndr, r->user);
12009 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
12010 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
12011 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
12012 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
12014 if (ndr_flags & NDR_BUFFERS) {
12016 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
12017 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
12018 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
12019 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
12020 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
12021 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));
12023 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
12024 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
12025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
12028 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
12029 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
12030 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
12031 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
12032 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
12033 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));
12035 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
12036 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
12037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
12040 return NDR_ERR_SUCCESS;
12043 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
12045 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
12047 ndr_print_uint32(ndr, "size", r->size);
12048 ndr_print_ptr(ndr, "client", r->client);
12051 ndr_print_string(ndr, "client", r->client);
12054 ndr_print_ptr(ndr, "user", r->user);
12057 ndr_print_string(ndr, "user", r->user);
12060 ndr_print_uint32(ndr, "build", r->build);
12061 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
12062 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
12063 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
12067 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
12069 if (ndr_flags & NDR_SCALARS) {
12070 NDR_CHECK(ndr_push_align(ndr, 4));
12071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
12073 if (ndr_flags & NDR_BUFFERS) {
12075 return NDR_ERR_SUCCESS;
12078 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
12080 if (ndr_flags & NDR_SCALARS) {
12081 NDR_CHECK(ndr_pull_align(ndr, 4));
12082 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
12084 if (ndr_flags & NDR_BUFFERS) {
12086 return NDR_ERR_SUCCESS;
12089 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
12091 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
12093 ndr_print_uint32(ndr, "not_used", r->not_used);
12097 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
12099 if (ndr_flags & NDR_SCALARS) {
12100 NDR_CHECK(ndr_push_align(ndr, 4));
12101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
12102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
12103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
12104 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
12105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
12106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
12107 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
12108 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
12109 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
12110 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
12112 if (ndr_flags & NDR_BUFFERS) {
12114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
12115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
12117 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
12121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
12123 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12126 return NDR_ERR_SUCCESS;
12129 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
12131 uint32_t _ptr_client;
12132 TALLOC_CTX *_mem_save_client_0;
12133 uint32_t _ptr_user;
12134 TALLOC_CTX *_mem_save_user_0;
12135 if (ndr_flags & NDR_SCALARS) {
12136 NDR_CHECK(ndr_pull_align(ndr, 4));
12137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
12138 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
12139 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
12140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
12142 NDR_PULL_ALLOC(ndr, r->client);
12146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
12148 NDR_PULL_ALLOC(ndr, r->user);
12152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
12153 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
12154 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
12155 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
12156 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
12158 if (ndr_flags & NDR_BUFFERS) {
12160 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
12161 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
12162 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
12163 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
12164 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
12165 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));
12167 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
12168 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
12169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
12172 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
12173 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
12174 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
12175 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
12176 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
12177 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));
12179 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
12180 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
12181 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
12184 return NDR_ERR_SUCCESS;
12187 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
12189 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
12191 ndr_print_uint32(ndr, "size", r->size);
12192 ndr_print_uint32(ndr, "flags", r->flags);
12193 ndr_print_uint32(ndr, "size2", r->size2);
12194 ndr_print_ptr(ndr, "client", r->client);
12197 ndr_print_string(ndr, "client", r->client);
12200 ndr_print_ptr(ndr, "user", r->user);
12203 ndr_print_string(ndr, "user", r->user);
12206 ndr_print_uint32(ndr, "build", r->build);
12207 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
12208 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
12209 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
12210 ndr_print_udlong(ndr, "reserved", r->reserved);
12214 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
12216 if (ndr_flags & NDR_SCALARS) {
12217 int level = ndr_push_get_switch_value(ndr, r);
12218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
12221 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
12225 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
12229 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
12233 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12236 if (ndr_flags & NDR_BUFFERS) {
12237 int level = ndr_push_get_switch_value(ndr, r);
12241 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
12247 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
12253 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
12258 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12261 return NDR_ERR_SUCCESS;
12264 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
12268 TALLOC_CTX *_mem_save_level1_0;
12269 TALLOC_CTX *_mem_save_level2_0;
12270 TALLOC_CTX *_mem_save_level3_0;
12271 level = ndr_pull_get_switch_value(ndr, r);
12272 if (ndr_flags & NDR_SCALARS) {
12273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12274 if (_level != level) {
12275 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12279 uint32_t _ptr_level1;
12280 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
12282 NDR_PULL_ALLOC(ndr, r->level1);
12289 uint32_t _ptr_level2;
12290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
12292 NDR_PULL_ALLOC(ndr, r->level2);
12299 uint32_t _ptr_level3;
12300 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
12302 NDR_PULL_ALLOC(ndr, r->level3);
12309 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12312 if (ndr_flags & NDR_BUFFERS) {
12316 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12317 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
12318 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
12319 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
12325 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
12326 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
12327 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
12328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
12334 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
12335 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
12336 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
12337 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
12342 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12345 return NDR_ERR_SUCCESS;
12348 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
12351 level = ndr_print_get_switch_value(ndr, r);
12352 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
12355 ndr_print_ptr(ndr, "level1", r->level1);
12358 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
12364 ndr_print_ptr(ndr, "level2", r->level2);
12367 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
12373 ndr_print_ptr(ndr, "level3", r->level3);
12376 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
12382 ndr_print_bad_level(ndr, name, level);
12386 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
12388 if (ndr_flags & NDR_SCALARS) {
12389 NDR_CHECK(ndr_push_align(ndr, 4));
12390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
12391 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
12392 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
12394 if (ndr_flags & NDR_BUFFERS) {
12395 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
12397 return NDR_ERR_SUCCESS;
12400 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
12402 if (ndr_flags & NDR_SCALARS) {
12403 NDR_CHECK(ndr_pull_align(ndr, 4));
12404 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
12405 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
12406 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
12408 if (ndr_flags & NDR_BUFFERS) {
12409 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
12411 return NDR_ERR_SUCCESS;
12414 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
12416 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
12418 ndr_print_uint32(ndr, "level", r->level);
12419 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
12420 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
12424 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12427 return NDR_ERR_SUCCESS;
12430 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12435 return NDR_ERR_SUCCESS;
12438 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
12440 ndr_print_uint32(ndr, name, r);
12442 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
12443 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
12444 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
12448 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12451 return NDR_ERR_SUCCESS;
12454 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12457 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12459 return NDR_ERR_SUCCESS;
12462 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
12464 ndr_print_uint32(ndr, name, r);
12466 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
12467 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
12468 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
12469 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
12470 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
12471 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
12472 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
12473 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
12477 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
12479 if (flags & NDR_IN) {
12480 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
12481 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
12482 if (r->in.server) {
12483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
12484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
12486 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12489 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
12490 if (r->in.buffer) {
12491 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
12493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
12495 if (flags & NDR_OUT) {
12496 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
12498 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
12500 if (r->out.needed == NULL) {
12501 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
12504 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
12505 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12507 return NDR_ERR_SUCCESS;
12510 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
12512 uint32_t _ptr_server;
12513 uint32_t _ptr_buffer;
12514 uint32_t _ptr_info;
12515 TALLOC_CTX *_mem_save_server_0;
12516 TALLOC_CTX *_mem_save_buffer_0;
12517 TALLOC_CTX *_mem_save_info_0;
12518 TALLOC_CTX *_mem_save_needed_0;
12519 if (flags & NDR_IN) {
12520 ZERO_STRUCT(r->out);
12522 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
12523 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
12525 NDR_PULL_ALLOC(ndr, r->in.server);
12527 r->in.server = NULL;
12529 if (r->in.server) {
12530 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
12531 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
12532 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
12533 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
12534 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
12535 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));
12537 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
12538 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
12539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
12541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
12544 NDR_PULL_ALLOC(ndr, r->in.buffer);
12546 r->in.buffer = NULL;
12548 if (r->in.buffer) {
12549 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
12550 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
12551 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
12552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
12554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
12555 NDR_PULL_ALLOC(ndr, r->out.needed);
12556 ZERO_STRUCTP(r->out.needed);
12558 if (flags & NDR_OUT) {
12559 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12561 NDR_PULL_ALLOC(ndr, r->out.info);
12563 r->out.info = NULL;
12566 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12567 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
12568 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
12569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
12571 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12572 NDR_PULL_ALLOC(ndr, r->out.needed);
12574 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
12575 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
12576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
12577 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
12578 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
12579 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12581 return NDR_ERR_SUCCESS;
12584 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
12586 uint32_t cntr_info_0;
12587 if (flags & NDR_IN) {
12588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
12591 if (flags & NDR_OUT) {
12592 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12593 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
12594 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
12596 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12597 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
12600 return NDR_ERR_SUCCESS;
12603 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
12605 uint32_t cntr_info_0;
12606 TALLOC_CTX *_mem_save_info_0;
12607 if (flags & NDR_IN) {
12608 ZERO_STRUCT(r->out);
12610 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
12613 if (flags & NDR_OUT) {
12614 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
12615 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12616 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
12617 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12618 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
12619 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
12621 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
12622 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
12624 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
12626 return NDR_ERR_SUCCESS;
12629 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
12631 uint32_t cntr_info_1;
12632 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
12634 if (flags & NDR_SET_VALUES) {
12635 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12637 if (flags & NDR_IN) {
12638 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
12640 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
12641 ndr_print_ptr(ndr, "server", r->in.server);
12643 if (r->in.server) {
12644 ndr_print_string(ndr, "server", r->in.server);
12647 ndr_print_uint32(ndr, "level", r->in.level);
12648 ndr_print_ptr(ndr, "buffer", r->in.buffer);
12650 if (r->in.buffer) {
12651 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
12654 ndr_print_uint32(ndr, "offered", r->in.offered);
12657 if (flags & NDR_OUT) {
12658 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
12660 ndr_print_ptr(ndr, "info", r->out.info);
12663 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
12665 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
12667 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
12668 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
12669 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
12676 ndr_print_ptr(ndr, "needed", r->out.needed);
12678 ndr_print_uint32(ndr, "needed", *r->out.needed);
12680 ndr_print_uint32(ndr, "count", r->out.count);
12681 ndr_print_WERROR(ndr, "result", r->out.result);
12687 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
12689 if (flags & NDR_IN) {
12690 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
12691 if (r->in.printername) {
12692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
12693 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
12695 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
12698 if (r->in.datatype) {
12699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
12700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
12702 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12704 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
12705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.access_mask));
12707 if (flags & NDR_OUT) {
12708 if (r->out.handle == NULL) {
12709 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12711 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
12712 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12714 return NDR_ERR_SUCCESS;
12717 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
12719 uint32_t _ptr_printername;
12720 uint32_t _ptr_datatype;
12721 TALLOC_CTX *_mem_save_printername_0;
12722 TALLOC_CTX *_mem_save_datatype_0;
12723 TALLOC_CTX *_mem_save_handle_0;
12724 if (flags & NDR_IN) {
12725 ZERO_STRUCT(r->out);
12727 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
12728 if (_ptr_printername) {
12729 NDR_PULL_ALLOC(ndr, r->in.printername);
12731 r->in.printername = NULL;
12733 if (r->in.printername) {
12734 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
12735 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
12736 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
12737 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
12738 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
12739 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));
12741 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
12742 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
12743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
12745 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
12746 if (_ptr_datatype) {
12747 NDR_PULL_ALLOC(ndr, r->in.datatype);
12749 r->in.datatype = NULL;
12751 if (r->in.datatype) {
12752 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
12753 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
12754 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
12755 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
12756 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
12757 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));
12759 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
12760 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
12761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
12763 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
12764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask));
12765 NDR_PULL_ALLOC(ndr, r->out.handle);
12766 ZERO_STRUCTP(r->out.handle);
12768 if (flags & NDR_OUT) {
12769 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12770 NDR_PULL_ALLOC(ndr, r->out.handle);
12772 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12773 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
12774 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
12775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12776 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12778 return NDR_ERR_SUCCESS;
12781 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
12783 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
12785 if (flags & NDR_SET_VALUES) {
12786 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12788 if (flags & NDR_IN) {
12789 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
12791 ndr_print_ptr(ndr, "printername", r->in.printername);
12793 if (r->in.printername) {
12794 ndr_print_string(ndr, "printername", r->in.printername);
12797 ndr_print_ptr(ndr, "datatype", r->in.datatype);
12799 if (r->in.datatype) {
12800 ndr_print_string(ndr, "datatype", r->in.datatype);
12803 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
12804 ndr_print_uint32(ndr, "access_mask", r->in.access_mask);
12807 if (flags & NDR_OUT) {
12808 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
12810 ndr_print_ptr(ndr, "handle", r->out.handle);
12812 ndr_print_policy_handle(ndr, "handle", r->out.handle);
12814 ndr_print_WERROR(ndr, "result", r->out.result);
12820 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
12822 if (flags & NDR_IN) {
12823 if (r->in.handle == NULL) {
12824 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12826 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
12828 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
12830 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
12832 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
12834 if (flags & NDR_OUT) {
12835 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12837 return NDR_ERR_SUCCESS;
12840 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
12843 TALLOC_CTX *_mem_save_handle_0;
12844 TALLOC_CTX *_mem_save_ctr_0;
12845 if (flags & NDR_IN) {
12846 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12847 NDR_PULL_ALLOC(ndr, r->in.handle);
12849 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12850 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12851 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12853 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
12854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
12856 NDR_PULL_ALLOC(ndr, r->in.ctr);
12861 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
12862 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
12863 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
12864 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
12866 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
12868 if (flags & NDR_OUT) {
12869 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
12871 return NDR_ERR_SUCCESS;
12874 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
12876 ndr_print_struct(ndr, name, "spoolss_SetJob");
12878 if (flags & NDR_SET_VALUES) {
12879 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
12881 if (flags & NDR_IN) {
12882 ndr_print_struct(ndr, "in", "spoolss_SetJob");
12884 ndr_print_ptr(ndr, "handle", r->in.handle);
12886 ndr_print_policy_handle(ndr, "handle", r->in.handle);
12888 ndr_print_uint32(ndr, "job_id", r->in.job_id);
12889 ndr_print_ptr(ndr, "ctr", r->in.ctr);
12892 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
12895 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
12898 if (flags & NDR_OUT) {
12899 ndr_print_struct(ndr, "out", "spoolss_SetJob");
12901 ndr_print_WERROR(ndr, "result", r->out.result);
12907 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
12909 if (flags & NDR_IN) {
12910 if (r->in.handle == NULL) {
12911 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12913 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
12915 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
12916 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
12917 if (r->in.buffer) {
12918 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
12920 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
12922 if (flags & NDR_OUT) {
12923 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
12926 struct ndr_push *_ndr_info;
12927 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
12928 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
12929 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12930 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
12933 if (r->out.needed == NULL) {
12934 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
12936 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
12937 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
12939 return NDR_ERR_SUCCESS;
12942 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
12944 uint32_t _ptr_buffer;
12945 uint32_t _ptr_info;
12946 TALLOC_CTX *_mem_save_handle_0;
12947 TALLOC_CTX *_mem_save_buffer_0;
12948 TALLOC_CTX *_mem_save_info_0;
12949 TALLOC_CTX *_mem_save_needed_0;
12950 if (flags & NDR_IN) {
12951 ZERO_STRUCT(r->out);
12953 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12954 NDR_PULL_ALLOC(ndr, r->in.handle);
12956 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
12957 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
12958 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
12959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
12960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
12961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
12962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
12964 NDR_PULL_ALLOC(ndr, r->in.buffer);
12966 r->in.buffer = NULL;
12968 if (r->in.buffer) {
12969 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
12970 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
12971 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
12972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
12974 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
12975 NDR_PULL_ALLOC(ndr, r->out.needed);
12976 ZERO_STRUCTP(r->out.needed);
12978 if (flags & NDR_OUT) {
12979 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
12981 NDR_PULL_ALLOC(ndr, r->out.info);
12983 r->out.info = NULL;
12986 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
12987 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
12989 struct ndr_pull *_ndr_info;
12990 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
12991 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
12992 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
12993 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
12995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
12997 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
12998 NDR_PULL_ALLOC(ndr, r->out.needed);
13000 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
13001 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
13002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
13003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
13004 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13006 return NDR_ERR_SUCCESS;
13009 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
13011 ndr_print_struct(ndr, name, "spoolss_GetJob");
13013 if (flags & NDR_SET_VALUES) {
13014 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13016 if (flags & NDR_IN) {
13017 ndr_print_struct(ndr, "in", "spoolss_GetJob");
13019 ndr_print_ptr(ndr, "handle", r->in.handle);
13021 ndr_print_policy_handle(ndr, "handle", r->in.handle);
13023 ndr_print_uint32(ndr, "job_id", r->in.job_id);
13024 ndr_print_uint32(ndr, "level", r->in.level);
13025 ndr_print_ptr(ndr, "buffer", r->in.buffer);
13027 if (r->in.buffer) {
13028 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
13031 ndr_print_uint32(ndr, "offered", r->in.offered);
13034 if (flags & NDR_OUT) {
13035 ndr_print_struct(ndr, "out", "spoolss_GetJob");
13037 ndr_print_ptr(ndr, "info", r->out.info);
13040 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
13041 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
13044 ndr_print_ptr(ndr, "needed", r->out.needed);
13046 ndr_print_uint32(ndr, "needed", *r->out.needed);
13048 ndr_print_WERROR(ndr, "result", r->out.result);
13054 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
13056 if (flags & NDR_IN) {
13057 if (r->in.handle == NULL) {
13058 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13060 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
13062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
13063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13064 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
13065 if (r->in.buffer) {
13066 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
13068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
13070 if (flags & NDR_OUT) {
13071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
13073 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
13075 if (r->out.needed == NULL) {
13076 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
13079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
13080 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13082 return NDR_ERR_SUCCESS;
13085 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
13087 uint32_t _ptr_buffer;
13088 uint32_t _ptr_info;
13089 TALLOC_CTX *_mem_save_handle_0;
13090 TALLOC_CTX *_mem_save_buffer_0;
13091 TALLOC_CTX *_mem_save_info_0;
13092 TALLOC_CTX *_mem_save_needed_0;
13093 if (flags & NDR_IN) {
13094 ZERO_STRUCT(r->out);
13096 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13097 NDR_PULL_ALLOC(ndr, r->in.handle);
13099 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13100 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
13101 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
13103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
13104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
13105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
13108 NDR_PULL_ALLOC(ndr, r->in.buffer);
13110 r->in.buffer = NULL;
13112 if (r->in.buffer) {
13113 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
13114 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
13115 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
13116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
13118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
13119 NDR_PULL_ALLOC(ndr, r->out.needed);
13120 ZERO_STRUCTP(r->out.needed);
13122 if (flags & NDR_OUT) {
13123 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13125 NDR_PULL_ALLOC(ndr, r->out.info);
13127 r->out.info = NULL;
13130 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13131 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
13132 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
13133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13135 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13136 NDR_PULL_ALLOC(ndr, r->out.needed);
13138 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
13139 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
13140 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
13141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
13142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
13143 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13145 return NDR_ERR_SUCCESS;
13148 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
13150 uint32_t cntr_info_0;
13151 if (flags & NDR_IN) {
13152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13155 if (flags & NDR_OUT) {
13156 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13157 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
13158 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
13160 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13161 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
13164 return NDR_ERR_SUCCESS;
13167 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
13169 uint32_t cntr_info_0;
13170 TALLOC_CTX *_mem_save_info_0;
13171 if (flags & NDR_IN) {
13172 ZERO_STRUCT(r->out);
13174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13177 if (flags & NDR_OUT) {
13178 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
13179 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13180 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
13181 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13182 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
13183 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
13185 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13186 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
13188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13190 return NDR_ERR_SUCCESS;
13193 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
13195 uint32_t cntr_info_1;
13196 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
13198 if (flags & NDR_SET_VALUES) {
13199 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13201 if (flags & NDR_IN) {
13202 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
13204 ndr_print_ptr(ndr, "handle", r->in.handle);
13206 ndr_print_policy_handle(ndr, "handle", r->in.handle);
13208 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
13209 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
13210 ndr_print_uint32(ndr, "level", r->in.level);
13211 ndr_print_ptr(ndr, "buffer", r->in.buffer);
13213 if (r->in.buffer) {
13214 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
13217 ndr_print_uint32(ndr, "offered", r->in.offered);
13220 if (flags & NDR_OUT) {
13221 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
13223 ndr_print_ptr(ndr, "info", r->out.info);
13226 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
13228 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
13230 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
13231 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
13232 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
13239 ndr_print_ptr(ndr, "needed", r->out.needed);
13241 ndr_print_uint32(ndr, "needed", *r->out.needed);
13243 ndr_print_uint32(ndr, "count", r->out.count);
13244 ndr_print_WERROR(ndr, "result", r->out.result);
13250 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
13252 if (flags & NDR_IN) {
13254 if (flags & NDR_OUT) {
13255 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13257 return NDR_ERR_SUCCESS;
13260 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
13262 if (flags & NDR_IN) {
13264 if (flags & NDR_OUT) {
13265 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13267 return NDR_ERR_SUCCESS;
13270 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
13272 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
13274 if (flags & NDR_SET_VALUES) {
13275 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13277 if (flags & NDR_IN) {
13278 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
13282 if (flags & NDR_OUT) {
13283 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
13285 ndr_print_WERROR(ndr, "result", r->out.result);
13291 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
13293 if (flags & NDR_IN) {
13294 if (r->in.handle == NULL) {
13295 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13297 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13299 if (flags & NDR_OUT) {
13300 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13302 return NDR_ERR_SUCCESS;
13305 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
13307 TALLOC_CTX *_mem_save_handle_0;
13308 if (flags & NDR_IN) {
13309 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13310 NDR_PULL_ALLOC(ndr, r->in.handle);
13312 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13313 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
13314 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
13317 if (flags & NDR_OUT) {
13318 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13320 return NDR_ERR_SUCCESS;
13323 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
13325 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
13327 if (flags & NDR_SET_VALUES) {
13328 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13330 if (flags & NDR_IN) {
13331 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
13333 ndr_print_ptr(ndr, "handle", r->in.handle);
13335 ndr_print_policy_handle(ndr, "handle", r->in.handle);
13339 if (flags & NDR_OUT) {
13340 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
13342 ndr_print_WERROR(ndr, "result", r->out.result);
13348 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
13350 if (flags & NDR_IN) {
13351 if (r->in.handle == NULL) {
13352 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13354 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13355 if (r->in.info_ctr == NULL) {
13356 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13358 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
13359 if (r->in.devmode_ctr == NULL) {
13360 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13362 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
13363 if (r->in.secdesc_ctr == NULL) {
13364 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13366 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
13367 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
13369 if (flags & NDR_OUT) {
13370 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13372 return NDR_ERR_SUCCESS;
13375 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
13377 TALLOC_CTX *_mem_save_handle_0;
13378 TALLOC_CTX *_mem_save_info_ctr_0;
13379 TALLOC_CTX *_mem_save_devmode_ctr_0;
13380 TALLOC_CTX *_mem_save_secdesc_ctr_0;
13381 if (flags & NDR_IN) {
13382 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13383 NDR_PULL_ALLOC(ndr, r->in.handle);
13385 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13386 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
13387 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
13389 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13390 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
13392 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13393 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
13394 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
13395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13396 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13397 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
13399 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13400 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
13401 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
13402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13403 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13404 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
13406 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
13407 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
13408 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
13409 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
13410 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
13412 if (flags & NDR_OUT) {
13413 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13415 return NDR_ERR_SUCCESS;
13418 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
13420 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
13422 if (flags & NDR_SET_VALUES) {
13423 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13425 if (flags & NDR_IN) {
13426 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
13428 ndr_print_ptr(ndr, "handle", r->in.handle);
13430 ndr_print_policy_handle(ndr, "handle", r->in.handle);
13432 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
13434 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
13436 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
13438 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
13440 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
13442 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
13444 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
13447 if (flags & NDR_OUT) {
13448 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
13450 ndr_print_WERROR(ndr, "result", r->out.result);
13456 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
13458 if (flags & NDR_IN) {
13459 if (r->in.handle == NULL) {
13460 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13462 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
13465 if (r->in.buffer) {
13466 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
13468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
13470 if (flags & NDR_OUT) {
13471 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
13474 struct ndr_push *_ndr_info;
13475 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
13476 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
13477 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13478 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
13481 if (r->out.needed == NULL) {
13482 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
13485 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13487 return NDR_ERR_SUCCESS;
13490 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
13492 uint32_t _ptr_buffer;
13493 uint32_t _ptr_info;
13494 TALLOC_CTX *_mem_save_handle_0;
13495 TALLOC_CTX *_mem_save_buffer_0;
13496 TALLOC_CTX *_mem_save_info_0;
13497 TALLOC_CTX *_mem_save_needed_0;
13498 if (flags & NDR_IN) {
13499 ZERO_STRUCT(r->out);
13501 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13502 NDR_PULL_ALLOC(ndr, r->in.handle);
13504 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
13505 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
13506 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
13507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
13508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
13511 NDR_PULL_ALLOC(ndr, r->in.buffer);
13513 r->in.buffer = NULL;
13515 if (r->in.buffer) {
13516 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
13517 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
13518 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
13519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
13521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
13522 NDR_PULL_ALLOC(ndr, r->out.needed);
13523 ZERO_STRUCTP(r->out.needed);
13525 if (flags & NDR_OUT) {
13526 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13528 NDR_PULL_ALLOC(ndr, r->out.info);
13530 r->out.info = NULL;
13533 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13534 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
13536 struct ndr_pull *_ndr_info;
13537 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
13538 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
13539 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
13540 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
13542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13544 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13545 NDR_PULL_ALLOC(ndr, r->out.needed);
13547 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
13548 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
13549 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
13550 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
13551 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13553 return NDR_ERR_SUCCESS;
13556 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
13558 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
13560 if (flags & NDR_SET_VALUES) {
13561 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13563 if (flags & NDR_IN) {
13564 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
13566 ndr_print_ptr(ndr, "handle", r->in.handle);
13568 ndr_print_policy_handle(ndr, "handle", r->in.handle);
13570 ndr_print_uint32(ndr, "level", r->in.level);
13571 ndr_print_ptr(ndr, "buffer", r->in.buffer);
13573 if (r->in.buffer) {
13574 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
13577 ndr_print_uint32(ndr, "offered", r->in.offered);
13580 if (flags & NDR_OUT) {
13581 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
13583 ndr_print_ptr(ndr, "info", r->out.info);
13586 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
13587 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
13590 ndr_print_ptr(ndr, "needed", r->out.needed);
13592 ndr_print_uint32(ndr, "needed", *r->out.needed);
13594 ndr_print_WERROR(ndr, "result", r->out.result);
13600 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
13602 if (flags & NDR_IN) {
13603 if (r->in.servername == NULL) {
13604 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
13607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
13609 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13611 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
13612 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
13614 if (flags & NDR_OUT) {
13615 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13617 return NDR_ERR_SUCCESS;
13620 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
13622 if (flags & NDR_IN) {
13623 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
13624 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
13625 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
13626 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));
13628 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
13629 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
13630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13631 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
13632 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
13634 if (flags & NDR_OUT) {
13635 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13637 return NDR_ERR_SUCCESS;
13640 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
13642 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
13644 if (flags & NDR_SET_VALUES) {
13645 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13647 if (flags & NDR_IN) {
13648 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
13650 ndr_print_ptr(ndr, "servername", r->in.servername);
13652 ndr_print_string(ndr, "servername", r->in.servername);
13654 ndr_print_uint32(ndr, "level", r->in.level);
13655 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
13656 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->in.info);
13659 if (flags & NDR_OUT) {
13660 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
13662 ndr_print_WERROR(ndr, "result", r->out.result);
13668 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
13670 if (flags & NDR_IN) {
13671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
13672 if (r->in.server) {
13673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
13674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
13676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13678 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
13679 if (r->in.environment) {
13680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
13681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
13683 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13686 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
13687 if (r->in.buffer) {
13688 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
13690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
13692 if (flags & NDR_OUT) {
13693 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
13695 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
13697 if (r->out.needed == NULL) {
13698 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
13701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
13702 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13704 return NDR_ERR_SUCCESS;
13707 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
13709 uint32_t _ptr_server;
13710 uint32_t _ptr_environment;
13711 uint32_t _ptr_buffer;
13712 uint32_t _ptr_info;
13713 TALLOC_CTX *_mem_save_server_0;
13714 TALLOC_CTX *_mem_save_environment_0;
13715 TALLOC_CTX *_mem_save_buffer_0;
13716 TALLOC_CTX *_mem_save_info_0;
13717 TALLOC_CTX *_mem_save_needed_0;
13718 if (flags & NDR_IN) {
13719 ZERO_STRUCT(r->out);
13721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
13723 NDR_PULL_ALLOC(ndr, r->in.server);
13725 r->in.server = NULL;
13727 if (r->in.server) {
13728 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
13729 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
13730 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
13731 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
13732 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
13733 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));
13735 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
13736 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
13737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
13739 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
13740 if (_ptr_environment) {
13741 NDR_PULL_ALLOC(ndr, r->in.environment);
13743 r->in.environment = NULL;
13745 if (r->in.environment) {
13746 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
13747 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
13748 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
13749 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
13750 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
13751 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));
13753 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
13754 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
13755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
13757 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
13760 NDR_PULL_ALLOC(ndr, r->in.buffer);
13762 r->in.buffer = NULL;
13764 if (r->in.buffer) {
13765 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
13766 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
13767 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
13768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
13770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
13771 NDR_PULL_ALLOC(ndr, r->out.needed);
13772 ZERO_STRUCTP(r->out.needed);
13774 if (flags & NDR_OUT) {
13775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
13777 NDR_PULL_ALLOC(ndr, r->out.info);
13779 r->out.info = NULL;
13782 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13783 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
13784 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
13785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13787 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
13788 NDR_PULL_ALLOC(ndr, r->out.needed);
13790 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
13791 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
13792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
13793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
13794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
13795 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13797 return NDR_ERR_SUCCESS;
13800 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
13802 uint32_t cntr_info_0;
13803 if (flags & NDR_IN) {
13804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13805 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
13807 if (flags & NDR_OUT) {
13808 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13809 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
13810 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
13812 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13813 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
13816 return NDR_ERR_SUCCESS;
13819 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
13821 uint32_t cntr_info_0;
13822 TALLOC_CTX *_mem_save_info_0;
13823 if (flags & NDR_IN) {
13824 ZERO_STRUCT(r->out);
13826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
13827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
13829 if (flags & NDR_OUT) {
13830 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
13831 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
13832 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
13833 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13834 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
13835 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
13837 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
13838 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
13840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
13842 return NDR_ERR_SUCCESS;
13845 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
13847 uint32_t cntr_info_1;
13848 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
13850 if (flags & NDR_SET_VALUES) {
13851 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13853 if (flags & NDR_IN) {
13854 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
13856 ndr_print_ptr(ndr, "server", r->in.server);
13858 if (r->in.server) {
13859 ndr_print_string(ndr, "server", r->in.server);
13862 ndr_print_ptr(ndr, "environment", r->in.environment);
13864 if (r->in.environment) {
13865 ndr_print_string(ndr, "environment", r->in.environment);
13868 ndr_print_uint32(ndr, "level", r->in.level);
13869 ndr_print_ptr(ndr, "buffer", r->in.buffer);
13871 if (r->in.buffer) {
13872 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
13875 ndr_print_uint32(ndr, "offered", r->in.offered);
13878 if (flags & NDR_OUT) {
13879 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
13881 ndr_print_ptr(ndr, "info", r->out.info);
13884 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
13886 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
13888 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
13889 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
13890 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
13897 ndr_print_ptr(ndr, "needed", r->out.needed);
13899 ndr_print_uint32(ndr, "needed", *r->out.needed);
13901 ndr_print_uint32(ndr, "count", r->out.count);
13902 ndr_print_WERROR(ndr, "result", r->out.result);
13908 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
13910 if (flags & NDR_IN) {
13912 if (flags & NDR_OUT) {
13913 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13915 return NDR_ERR_SUCCESS;
13918 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
13920 if (flags & NDR_IN) {
13922 if (flags & NDR_OUT) {
13923 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
13925 return NDR_ERR_SUCCESS;
13928 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
13930 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
13932 if (flags & NDR_SET_VALUES) {
13933 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
13935 if (flags & NDR_IN) {
13936 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
13940 if (flags & NDR_OUT) {
13941 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
13943 ndr_print_WERROR(ndr, "result", r->out.result);
13949 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
13951 if (flags & NDR_IN) {
13952 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
13953 if (r->in.server) {
13954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
13955 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13956 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
13957 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13959 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
13960 if (r->in.environment) {
13961 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
13962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13963 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
13964 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
13967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
13968 if (r->in.buffer) {
13969 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
13971 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
13973 if (flags & NDR_OUT) {
13974 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
13977 struct ndr_push *_ndr_info;
13978 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
13979 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
13980 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
13981 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
13984 if (r->out.needed == NULL) {
13985 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
13987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
13988 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
13990 return NDR_ERR_SUCCESS;
13993 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
13995 uint32_t _ptr_server;
13996 uint32_t _ptr_environment;
13997 uint32_t _ptr_buffer;
13998 uint32_t _ptr_info;
13999 TALLOC_CTX *_mem_save_server_0;
14000 TALLOC_CTX *_mem_save_environment_0;
14001 TALLOC_CTX *_mem_save_buffer_0;
14002 TALLOC_CTX *_mem_save_info_0;
14003 TALLOC_CTX *_mem_save_needed_0;
14004 if (flags & NDR_IN) {
14005 ZERO_STRUCT(r->out);
14007 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14009 NDR_PULL_ALLOC(ndr, r->in.server);
14011 r->in.server = NULL;
14013 if (r->in.server) {
14014 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14015 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14016 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14017 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14018 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14019 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));
14021 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14022 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14023 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14025 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
14026 if (_ptr_environment) {
14027 NDR_PULL_ALLOC(ndr, r->in.environment);
14029 r->in.environment = NULL;
14031 if (r->in.environment) {
14032 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
14033 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
14034 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
14035 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
14036 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
14037 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));
14039 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
14040 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
14041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
14043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14046 NDR_PULL_ALLOC(ndr, r->in.buffer);
14048 r->in.buffer = NULL;
14050 if (r->in.buffer) {
14051 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14052 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14053 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14054 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14057 NDR_PULL_ALLOC(ndr, r->out.needed);
14058 ZERO_STRUCTP(r->out.needed);
14060 if (flags & NDR_OUT) {
14061 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14063 NDR_PULL_ALLOC(ndr, r->out.info);
14065 r->out.info = NULL;
14068 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14069 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14071 struct ndr_pull *_ndr_info;
14072 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
14073 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
14074 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
14075 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
14077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14079 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14080 NDR_PULL_ALLOC(ndr, r->out.needed);
14082 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14083 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14084 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14086 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14088 return NDR_ERR_SUCCESS;
14091 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
14093 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
14095 if (flags & NDR_SET_VALUES) {
14096 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14098 if (flags & NDR_IN) {
14099 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
14101 ndr_print_ptr(ndr, "server", r->in.server);
14103 if (r->in.server) {
14104 ndr_print_string(ndr, "server", r->in.server);
14107 ndr_print_ptr(ndr, "environment", r->in.environment);
14109 if (r->in.environment) {
14110 ndr_print_string(ndr, "environment", r->in.environment);
14113 ndr_print_uint32(ndr, "level", r->in.level);
14114 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14116 if (r->in.buffer) {
14117 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14120 ndr_print_uint32(ndr, "offered", r->in.offered);
14123 if (flags & NDR_OUT) {
14124 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
14126 ndr_print_ptr(ndr, "info", r->out.info);
14129 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
14130 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
14133 ndr_print_ptr(ndr, "needed", r->out.needed);
14135 ndr_print_uint32(ndr, "needed", *r->out.needed);
14137 ndr_print_WERROR(ndr, "result", r->out.result);
14143 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
14145 if (flags & NDR_IN) {
14146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
14147 if (r->in.server) {
14148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, 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->in.server, CH_UTF16)));
14151 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
14154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
14156 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14157 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
14158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
14160 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14162 if (flags & NDR_OUT) {
14163 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14165 return NDR_ERR_SUCCESS;
14168 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
14170 uint32_t _ptr_server;
14171 TALLOC_CTX *_mem_save_server_0;
14172 if (flags & NDR_IN) {
14173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14175 NDR_PULL_ALLOC(ndr, r->in.server);
14177 r->in.server = NULL;
14179 if (r->in.server) {
14180 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14181 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14182 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14183 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14184 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14185 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));
14187 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14188 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14189 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14191 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
14192 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
14193 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
14194 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));
14196 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
14197 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
14198 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
14199 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
14200 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
14201 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));
14203 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
14204 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
14206 if (flags & NDR_OUT) {
14207 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14209 return NDR_ERR_SUCCESS;
14212 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
14214 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
14216 if (flags & NDR_SET_VALUES) {
14217 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14219 if (flags & NDR_IN) {
14220 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
14222 ndr_print_ptr(ndr, "server", r->in.server);
14224 if (r->in.server) {
14225 ndr_print_string(ndr, "server", r->in.server);
14228 ndr_print_string(ndr, "architecture", r->in.architecture);
14229 ndr_print_string(ndr, "driver", r->in.driver);
14232 if (flags & NDR_OUT) {
14233 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
14235 ndr_print_WERROR(ndr, "result", r->out.result);
14241 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
14243 if (flags & NDR_IN) {
14244 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
14245 if (r->in.server) {
14246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14249 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
14252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
14254 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
14256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
14258 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));
14259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
14260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
14262 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));
14264 if (flags & NDR_OUT) {
14265 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14267 return NDR_ERR_SUCCESS;
14270 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
14272 uint32_t _ptr_server;
14273 TALLOC_CTX *_mem_save_server_0;
14274 if (flags & NDR_IN) {
14275 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14277 NDR_PULL_ALLOC(ndr, r->in.server);
14279 r->in.server = NULL;
14281 if (r->in.server) {
14282 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14283 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14284 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14285 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14286 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14287 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));
14289 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14290 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14293 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
14294 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
14295 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
14296 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));
14298 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
14299 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
14300 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
14301 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
14302 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
14303 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));
14305 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
14306 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));
14307 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
14308 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
14309 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
14310 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));
14312 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
14313 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));
14315 if (flags & NDR_OUT) {
14316 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14318 return NDR_ERR_SUCCESS;
14321 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
14323 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
14325 if (flags & NDR_SET_VALUES) {
14326 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14328 if (flags & NDR_IN) {
14329 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
14331 ndr_print_ptr(ndr, "server", r->in.server);
14333 if (r->in.server) {
14334 ndr_print_string(ndr, "server", r->in.server);
14337 ndr_print_string(ndr, "architecture", r->in.architecture);
14338 ndr_print_string(ndr, "path_name", r->in.path_name);
14339 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
14342 if (flags & NDR_OUT) {
14343 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
14345 ndr_print_WERROR(ndr, "result", r->out.result);
14351 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
14353 if (flags & NDR_IN) {
14354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
14355 if (r->in.servername) {
14356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
14357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
14359 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
14362 if (r->in.environment) {
14363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
14364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
14366 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14369 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14370 if (r->in.buffer) {
14371 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14375 if (flags & NDR_OUT) {
14376 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14378 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
14380 if (r->out.needed == NULL) {
14381 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
14385 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14387 return NDR_ERR_SUCCESS;
14390 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
14392 uint32_t _ptr_servername;
14393 uint32_t _ptr_environment;
14394 uint32_t _ptr_buffer;
14395 uint32_t _ptr_info;
14396 TALLOC_CTX *_mem_save_servername_0;
14397 TALLOC_CTX *_mem_save_environment_0;
14398 TALLOC_CTX *_mem_save_buffer_0;
14399 TALLOC_CTX *_mem_save_info_0;
14400 TALLOC_CTX *_mem_save_needed_0;
14401 if (flags & NDR_IN) {
14402 ZERO_STRUCT(r->out);
14404 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
14405 if (_ptr_servername) {
14406 NDR_PULL_ALLOC(ndr, r->in.servername);
14408 r->in.servername = NULL;
14410 if (r->in.servername) {
14411 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
14412 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
14413 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
14414 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
14415 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
14416 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));
14418 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
14419 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
14420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
14422 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
14423 if (_ptr_environment) {
14424 NDR_PULL_ALLOC(ndr, r->in.environment);
14426 r->in.environment = NULL;
14428 if (r->in.environment) {
14429 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
14430 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
14431 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
14432 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
14433 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
14434 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));
14436 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
14437 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
14438 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
14440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14443 NDR_PULL_ALLOC(ndr, r->in.buffer);
14445 r->in.buffer = NULL;
14447 if (r->in.buffer) {
14448 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14449 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14450 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14453 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14454 NDR_PULL_ALLOC(ndr, r->out.needed);
14455 ZERO_STRUCTP(r->out.needed);
14457 if (flags & NDR_OUT) {
14458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14460 NDR_PULL_ALLOC(ndr, r->out.info);
14462 r->out.info = NULL;
14465 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14466 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14467 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
14468 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14470 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14471 NDR_PULL_ALLOC(ndr, r->out.needed);
14473 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14474 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14475 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
14478 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14480 return NDR_ERR_SUCCESS;
14483 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
14485 uint32_t cntr_info_0;
14486 if (flags & NDR_IN) {
14487 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14490 if (flags & NDR_OUT) {
14491 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14492 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14493 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14495 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14496 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14499 return NDR_ERR_SUCCESS;
14502 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
14504 uint32_t cntr_info_0;
14505 TALLOC_CTX *_mem_save_info_0;
14506 if (flags & NDR_IN) {
14507 ZERO_STRUCT(r->out);
14509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14512 if (flags & NDR_OUT) {
14513 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
14514 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14515 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14516 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14517 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14518 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14520 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14521 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14525 return NDR_ERR_SUCCESS;
14528 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
14530 uint32_t cntr_info_1;
14531 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
14533 if (flags & NDR_SET_VALUES) {
14534 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14536 if (flags & NDR_IN) {
14537 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
14539 ndr_print_ptr(ndr, "servername", r->in.servername);
14541 if (r->in.servername) {
14542 ndr_print_string(ndr, "servername", r->in.servername);
14545 ndr_print_ptr(ndr, "environment", r->in.environment);
14547 if (r->in.environment) {
14548 ndr_print_string(ndr, "environment", r->in.environment);
14551 ndr_print_uint32(ndr, "level", r->in.level);
14552 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14554 if (r->in.buffer) {
14555 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14558 ndr_print_uint32(ndr, "offered", r->in.offered);
14561 if (flags & NDR_OUT) {
14562 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
14564 ndr_print_ptr(ndr, "info", r->out.info);
14567 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
14569 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
14571 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
14572 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
14573 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
14580 ndr_print_ptr(ndr, "needed", r->out.needed);
14582 ndr_print_uint32(ndr, "needed", *r->out.needed);
14584 ndr_print_uint32(ndr, "count", r->out.count);
14585 ndr_print_WERROR(ndr, "result", r->out.result);
14591 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
14593 if (flags & NDR_IN) {
14595 if (flags & NDR_OUT) {
14596 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14598 return NDR_ERR_SUCCESS;
14601 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
14603 if (flags & NDR_IN) {
14605 if (flags & NDR_OUT) {
14606 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14608 return NDR_ERR_SUCCESS;
14611 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
14613 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
14615 if (flags & NDR_SET_VALUES) {
14616 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14618 if (flags & NDR_IN) {
14619 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
14623 if (flags & NDR_OUT) {
14624 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
14626 ndr_print_WERROR(ndr, "result", r->out.result);
14632 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
14634 if (flags & NDR_IN) {
14635 if (r->in.handle == NULL) {
14636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14638 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14640 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
14641 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
14643 if (flags & NDR_OUT) {
14644 if (r->out.job_id == NULL) {
14645 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
14648 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14650 return NDR_ERR_SUCCESS;
14653 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
14655 TALLOC_CTX *_mem_save_handle_0;
14656 TALLOC_CTX *_mem_save_job_id_0;
14657 if (flags & NDR_IN) {
14658 ZERO_STRUCT(r->out);
14660 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14661 NDR_PULL_ALLOC(ndr, r->in.handle);
14663 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14664 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14665 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14666 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14668 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
14669 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
14670 NDR_PULL_ALLOC(ndr, r->out.job_id);
14671 ZERO_STRUCTP(r->out.job_id);
14673 if (flags & NDR_OUT) {
14674 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14675 NDR_PULL_ALLOC(ndr, r->out.job_id);
14677 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
14678 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
14679 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
14680 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
14681 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14683 return NDR_ERR_SUCCESS;
14686 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
14688 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
14690 if (flags & NDR_SET_VALUES) {
14691 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14693 if (flags & NDR_IN) {
14694 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
14696 ndr_print_ptr(ndr, "handle", r->in.handle);
14698 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14700 ndr_print_uint32(ndr, "level", r->in.level);
14701 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
14702 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
14705 if (flags & NDR_OUT) {
14706 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
14708 ndr_print_ptr(ndr, "job_id", r->out.job_id);
14710 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
14712 ndr_print_WERROR(ndr, "result", r->out.result);
14718 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
14720 if (flags & NDR_IN) {
14721 if (r->in.handle == NULL) {
14722 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14724 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14726 if (flags & NDR_OUT) {
14727 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14729 return NDR_ERR_SUCCESS;
14732 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
14734 TALLOC_CTX *_mem_save_handle_0;
14735 if (flags & NDR_IN) {
14736 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14737 NDR_PULL_ALLOC(ndr, r->in.handle);
14739 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14740 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14741 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14744 if (flags & NDR_OUT) {
14745 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14747 return NDR_ERR_SUCCESS;
14750 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
14752 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
14754 if (flags & NDR_SET_VALUES) {
14755 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14757 if (flags & NDR_IN) {
14758 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
14760 ndr_print_ptr(ndr, "handle", r->in.handle);
14762 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14766 if (flags & NDR_OUT) {
14767 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
14769 ndr_print_WERROR(ndr, "result", r->out.result);
14775 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
14777 if (flags & NDR_IN) {
14778 if (r->in.handle == NULL) {
14779 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14781 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14782 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
14783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
14785 if (flags & NDR_OUT) {
14786 if (r->out.num_written == NULL) {
14787 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
14790 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14792 return NDR_ERR_SUCCESS;
14795 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
14797 TALLOC_CTX *_mem_save_handle_0;
14798 TALLOC_CTX *_mem_save_num_written_0;
14799 if (flags & NDR_IN) {
14800 ZERO_STRUCT(r->out);
14802 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14803 NDR_PULL_ALLOC(ndr, r->in.handle);
14805 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14806 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14807 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14809 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
14810 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
14811 NDR_PULL_ALLOC(ndr, r->out.num_written);
14812 ZERO_STRUCTP(r->out.num_written);
14814 if (flags & NDR_OUT) {
14815 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14816 NDR_PULL_ALLOC(ndr, r->out.num_written);
14818 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
14819 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
14820 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
14821 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
14822 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14824 return NDR_ERR_SUCCESS;
14827 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
14829 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
14831 if (flags & NDR_SET_VALUES) {
14832 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14834 if (flags & NDR_IN) {
14835 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
14837 ndr_print_ptr(ndr, "handle", r->in.handle);
14839 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14841 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
14842 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
14845 if (flags & NDR_OUT) {
14846 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
14848 ndr_print_ptr(ndr, "num_written", r->out.num_written);
14850 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
14852 ndr_print_WERROR(ndr, "result", r->out.result);
14858 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
14860 if (flags & NDR_IN) {
14861 if (r->in.handle == NULL) {
14862 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14864 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14866 if (flags & NDR_OUT) {
14867 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14869 return NDR_ERR_SUCCESS;
14872 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
14874 TALLOC_CTX *_mem_save_handle_0;
14875 if (flags & NDR_IN) {
14876 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14877 NDR_PULL_ALLOC(ndr, r->in.handle);
14879 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14880 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14881 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14884 if (flags & NDR_OUT) {
14885 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14887 return NDR_ERR_SUCCESS;
14890 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
14892 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
14894 if (flags & NDR_SET_VALUES) {
14895 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14897 if (flags & NDR_IN) {
14898 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
14900 ndr_print_ptr(ndr, "handle", r->in.handle);
14902 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14906 if (flags & NDR_OUT) {
14907 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
14909 ndr_print_WERROR(ndr, "result", r->out.result);
14915 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
14917 if (flags & NDR_IN) {
14918 if (r->in.handle == NULL) {
14919 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14921 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14923 if (flags & NDR_OUT) {
14924 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14926 return NDR_ERR_SUCCESS;
14929 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
14931 TALLOC_CTX *_mem_save_handle_0;
14932 if (flags & NDR_IN) {
14933 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14934 NDR_PULL_ALLOC(ndr, r->in.handle);
14936 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14937 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14938 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14941 if (flags & NDR_OUT) {
14942 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14944 return NDR_ERR_SUCCESS;
14947 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
14949 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
14951 if (flags & NDR_SET_VALUES) {
14952 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14954 if (flags & NDR_IN) {
14955 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
14957 ndr_print_ptr(ndr, "handle", r->in.handle);
14959 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14963 if (flags & NDR_OUT) {
14964 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
14966 ndr_print_WERROR(ndr, "result", r->out.result);
14972 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
14974 if (flags & NDR_IN) {
14975 if (r->in.handle == NULL) {
14976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14978 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
14981 if (flags & NDR_OUT) {
14982 if (r->out.data == NULL) {
14983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
14986 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
14987 if (r->out._data_size == NULL) {
14988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
14991 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14993 return NDR_ERR_SUCCESS;
14996 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
14998 TALLOC_CTX *_mem_save_handle_0;
14999 TALLOC_CTX *_mem_save__data_size_0;
15000 if (flags & NDR_IN) {
15001 ZERO_STRUCT(r->out);
15003 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15004 NDR_PULL_ALLOC(ndr, r->in.handle);
15006 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15007 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15008 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15010 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
15011 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
15012 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
15013 NDR_PULL_ALLOC(ndr, r->out._data_size);
15014 ZERO_STRUCTP(r->out._data_size);
15016 if (flags & NDR_OUT) {
15017 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
15018 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15019 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
15021 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
15022 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15023 NDR_PULL_ALLOC(ndr, r->out._data_size);
15025 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
15026 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
15027 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
15028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
15029 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15031 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
15034 return NDR_ERR_SUCCESS;
15037 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
15039 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
15041 if (flags & NDR_SET_VALUES) {
15042 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15044 if (flags & NDR_IN) {
15045 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
15047 ndr_print_ptr(ndr, "handle", r->in.handle);
15049 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15051 ndr_print_uint32(ndr, "data_size", r->in.data_size);
15054 if (flags & NDR_OUT) {
15055 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
15057 ndr_print_ptr(ndr, "data", r->out.data);
15059 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
15061 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
15063 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
15065 ndr_print_WERROR(ndr, "result", r->out.result);
15071 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
15073 if (flags & NDR_IN) {
15074 if (r->in.handle == NULL) {
15075 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15077 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15079 if (flags & NDR_OUT) {
15080 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15082 return NDR_ERR_SUCCESS;
15085 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
15087 TALLOC_CTX *_mem_save_handle_0;
15088 if (flags & NDR_IN) {
15089 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15090 NDR_PULL_ALLOC(ndr, r->in.handle);
15092 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15093 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15094 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15095 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15097 if (flags & NDR_OUT) {
15098 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15100 return NDR_ERR_SUCCESS;
15103 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
15105 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
15107 if (flags & NDR_SET_VALUES) {
15108 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15110 if (flags & NDR_IN) {
15111 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
15113 ndr_print_ptr(ndr, "handle", r->in.handle);
15115 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15119 if (flags & NDR_OUT) {
15120 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
15122 ndr_print_WERROR(ndr, "result", r->out.result);
15128 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
15130 if (flags & NDR_IN) {
15131 if (r->in.handle == NULL) {
15132 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15134 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15136 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15137 if (r->in.buffer) {
15138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15139 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
15141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15143 if (flags & NDR_OUT) {
15144 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
15145 if (r->out.buffer) {
15146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15147 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
15149 if (r->out.needed == NULL) {
15150 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15155 return NDR_ERR_SUCCESS;
15158 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
15160 uint32_t _ptr_buffer;
15161 TALLOC_CTX *_mem_save_handle_0;
15162 TALLOC_CTX *_mem_save_buffer_0;
15163 TALLOC_CTX *_mem_save_needed_0;
15164 if (flags & NDR_IN) {
15165 ZERO_STRUCT(r->out);
15167 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15168 NDR_PULL_ALLOC(ndr, r->in.handle);
15170 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15171 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15172 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15174 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15177 NDR_PULL_ALLOC(ndr, r->in.buffer);
15179 r->in.buffer = NULL;
15181 if (r->in.buffer) {
15182 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15183 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15184 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
15185 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
15186 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
15187 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15189 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15190 NDR_PULL_ALLOC(ndr, r->out.needed);
15191 ZERO_STRUCTP(r->out.needed);
15192 if (r->in.buffer) {
15193 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
15196 if (flags & NDR_OUT) {
15197 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15199 NDR_PULL_ALLOC(ndr, r->out.buffer);
15201 r->out.buffer = NULL;
15203 if (r->out.buffer) {
15204 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15205 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
15206 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
15207 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
15208 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
15209 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15211 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15212 NDR_PULL_ALLOC(ndr, r->out.needed);
15214 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15215 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15216 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15218 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15219 if (r->out.buffer) {
15220 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
15223 return NDR_ERR_SUCCESS;
15226 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
15228 ndr_print_struct(ndr, name, "spoolss_AddJob");
15230 if (flags & NDR_SET_VALUES) {
15231 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15233 if (flags & NDR_IN) {
15234 ndr_print_struct(ndr, "in", "spoolss_AddJob");
15236 ndr_print_ptr(ndr, "handle", r->in.handle);
15238 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15240 ndr_print_uint32(ndr, "level", r->in.level);
15241 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15243 if (r->in.buffer) {
15244 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
15247 ndr_print_uint32(ndr, "offered", r->in.offered);
15250 if (flags & NDR_OUT) {
15251 ndr_print_struct(ndr, "out", "spoolss_AddJob");
15253 ndr_print_ptr(ndr, "buffer", r->out.buffer);
15255 if (r->out.buffer) {
15256 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
15259 ndr_print_ptr(ndr, "needed", r->out.needed);
15261 ndr_print_uint32(ndr, "needed", *r->out.needed);
15263 ndr_print_WERROR(ndr, "result", r->out.result);
15269 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
15271 if (flags & NDR_IN) {
15272 if (r->in.handle == NULL) {
15273 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15275 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15276 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
15278 if (flags & NDR_OUT) {
15279 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15281 return NDR_ERR_SUCCESS;
15284 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
15286 TALLOC_CTX *_mem_save_handle_0;
15287 if (flags & NDR_IN) {
15288 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15289 NDR_PULL_ALLOC(ndr, r->in.handle);
15291 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15292 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15293 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15294 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15295 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
15297 if (flags & NDR_OUT) {
15298 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15300 return NDR_ERR_SUCCESS;
15303 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
15305 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
15307 if (flags & NDR_SET_VALUES) {
15308 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15310 if (flags & NDR_IN) {
15311 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
15313 ndr_print_ptr(ndr, "handle", r->in.handle);
15315 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15317 ndr_print_uint32(ndr, "jobid", r->in.jobid);
15320 if (flags & NDR_OUT) {
15321 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
15323 ndr_print_WERROR(ndr, "result", r->out.result);
15329 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
15331 if (flags & NDR_IN) {
15332 if (r->in.handle == NULL) {
15333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15335 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15339 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));
15340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15342 if (flags & NDR_OUT) {
15343 if (r->out.type == NULL) {
15344 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15346 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
15347 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
15348 if (r->out.needed == NULL) {
15349 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15352 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15354 return NDR_ERR_SUCCESS;
15357 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
15359 TALLOC_CTX *_mem_save_handle_0;
15360 TALLOC_CTX *_mem_save_type_0;
15361 TALLOC_CTX *_mem_save_needed_0;
15362 if (flags & NDR_IN) {
15363 ZERO_STRUCT(r->out);
15365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15366 NDR_PULL_ALLOC(ndr, r->in.handle);
15368 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15369 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15370 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15372 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
15373 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
15374 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
15375 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));
15377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
15378 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));
15379 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15380 NDR_PULL_ALLOC(ndr, r->out.type);
15381 ZERO_STRUCTP(r->out.type);
15382 NDR_PULL_ALLOC(ndr, r->out.needed);
15383 ZERO_STRUCTP(r->out.needed);
15385 if (flags & NDR_OUT) {
15386 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15387 NDR_PULL_ALLOC(ndr, r->out.type);
15389 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
15390 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
15391 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
15392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
15393 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
15394 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15395 NDR_PULL_ALLOC(ndr, r->out.needed);
15397 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15398 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15401 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15403 return NDR_ERR_SUCCESS;
15406 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
15408 if (flags & NDR_IN) {
15409 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
15411 if (flags & NDR_OUT) {
15412 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
15413 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
15415 return NDR_ERR_SUCCESS;
15418 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
15420 if (flags & NDR_IN) {
15421 ZERO_STRUCT(r->out);
15423 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
15425 if (flags & NDR_OUT) {
15426 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
15427 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
15429 return NDR_ERR_SUCCESS;
15432 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
15434 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
15436 if (flags & NDR_SET_VALUES) {
15437 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15439 if (flags & NDR_IN) {
15440 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
15442 ndr_print_ptr(ndr, "handle", r->in.handle);
15444 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15446 ndr_print_string(ndr, "value_name", r->in.value_name);
15447 ndr_print_uint32(ndr, "offered", r->in.offered);
15450 if (flags & NDR_OUT) {
15451 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
15453 ndr_print_ptr(ndr, "type", r->out.type);
15455 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
15457 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
15458 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
15459 ndr_print_ptr(ndr, "needed", r->out.needed);
15461 ndr_print_uint32(ndr, "needed", *r->out.needed);
15463 ndr_print_WERROR(ndr, "result", r->out.result);
15469 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
15471 if (flags & NDR_IN) {
15472 if (r->in.handle == NULL) {
15473 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15475 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
15479 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));
15480 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
15481 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
15482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
15484 if (flags & NDR_OUT) {
15485 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15487 return NDR_ERR_SUCCESS;
15490 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
15492 if (flags & NDR_IN) {
15493 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
15495 if (flags & NDR_OUT) {
15496 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
15497 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
15499 return NDR_ERR_SUCCESS;
15502 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
15504 TALLOC_CTX *_mem_save_handle_0;
15505 if (flags & NDR_IN) {
15506 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15507 NDR_PULL_ALLOC(ndr, r->in.handle);
15509 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15510 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15511 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15513 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
15514 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
15515 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
15516 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));
15518 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
15519 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));
15520 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
15522 struct ndr_pull *_ndr_data;
15523 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
15524 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
15525 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
15526 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
15528 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
15530 if (flags & NDR_OUT) {
15531 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15533 return NDR_ERR_SUCCESS;
15536 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
15538 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
15540 if (flags & NDR_SET_VALUES) {
15541 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15543 if (flags & NDR_IN) {
15544 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
15546 ndr_print_ptr(ndr, "handle", r->in.handle);
15548 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15550 ndr_print_string(ndr, "value_name", r->in.value_name);
15551 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
15552 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
15553 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
15554 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);
15557 if (flags & NDR_OUT) {
15558 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
15560 ndr_print_WERROR(ndr, "result", r->out.result);
15566 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
15568 if (flags & NDR_IN) {
15570 if (flags & NDR_OUT) {
15571 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15573 return NDR_ERR_SUCCESS;
15576 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
15578 if (flags & NDR_IN) {
15580 if (flags & NDR_OUT) {
15581 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15583 return NDR_ERR_SUCCESS;
15586 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
15588 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
15590 if (flags & NDR_SET_VALUES) {
15591 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15593 if (flags & NDR_IN) {
15594 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
15598 if (flags & NDR_OUT) {
15599 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
15601 ndr_print_WERROR(ndr, "result", r->out.result);
15607 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
15609 if (flags & NDR_IN) {
15610 if (r->in.handle == NULL) {
15611 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15613 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15615 if (flags & NDR_OUT) {
15616 if (r->out.handle == NULL) {
15617 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15619 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
15620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15622 return NDR_ERR_SUCCESS;
15625 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
15627 TALLOC_CTX *_mem_save_handle_0;
15628 if (flags & NDR_IN) {
15629 ZERO_STRUCT(r->out);
15631 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15632 NDR_PULL_ALLOC(ndr, r->in.handle);
15634 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15635 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15636 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15638 NDR_PULL_ALLOC(ndr, r->out.handle);
15639 *r->out.handle = *r->in.handle;
15641 if (flags & NDR_OUT) {
15642 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15643 NDR_PULL_ALLOC(ndr, r->out.handle);
15645 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15646 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
15647 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
15648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15649 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15651 return NDR_ERR_SUCCESS;
15654 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
15656 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
15658 if (flags & NDR_SET_VALUES) {
15659 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15661 if (flags & NDR_IN) {
15662 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
15664 ndr_print_ptr(ndr, "handle", r->in.handle);
15666 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15670 if (flags & NDR_OUT) {
15671 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
15673 ndr_print_ptr(ndr, "handle", r->out.handle);
15675 ndr_print_policy_handle(ndr, "handle", r->out.handle);
15677 ndr_print_WERROR(ndr, "result", r->out.result);
15683 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
15685 if (flags & NDR_IN) {
15686 if (r->in.handle == NULL) {
15687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15689 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15691 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
15692 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
15694 if (flags & NDR_OUT) {
15695 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15697 return NDR_ERR_SUCCESS;
15700 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
15702 TALLOC_CTX *_mem_save_handle_0;
15703 if (flags & NDR_IN) {
15704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15705 NDR_PULL_ALLOC(ndr, r->in.handle);
15707 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15708 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15709 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15712 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
15713 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
15715 if (flags & NDR_OUT) {
15716 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15718 return NDR_ERR_SUCCESS;
15721 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
15723 ndr_print_struct(ndr, name, "spoolss_AddForm");
15725 if (flags & NDR_SET_VALUES) {
15726 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15728 if (flags & NDR_IN) {
15729 ndr_print_struct(ndr, "in", "spoolss_AddForm");
15731 ndr_print_ptr(ndr, "handle", r->in.handle);
15733 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15735 ndr_print_uint32(ndr, "level", r->in.level);
15736 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
15737 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
15740 if (flags & NDR_OUT) {
15741 ndr_print_struct(ndr, "out", "spoolss_AddForm");
15743 ndr_print_WERROR(ndr, "result", r->out.result);
15749 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
15751 if (flags & NDR_IN) {
15752 if (r->in.handle == NULL) {
15753 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15755 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
15757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
15759 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));
15761 if (flags & NDR_OUT) {
15762 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15764 return NDR_ERR_SUCCESS;
15767 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
15769 TALLOC_CTX *_mem_save_handle_0;
15770 if (flags & NDR_IN) {
15771 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15772 NDR_PULL_ALLOC(ndr, r->in.handle);
15774 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15775 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15776 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15778 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
15779 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
15780 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
15781 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));
15783 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
15784 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));
15786 if (flags & NDR_OUT) {
15787 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15789 return NDR_ERR_SUCCESS;
15792 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
15794 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
15796 if (flags & NDR_SET_VALUES) {
15797 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15799 if (flags & NDR_IN) {
15800 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
15802 ndr_print_ptr(ndr, "handle", r->in.handle);
15804 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15806 ndr_print_string(ndr, "form_name", r->in.form_name);
15809 if (flags & NDR_OUT) {
15810 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
15812 ndr_print_WERROR(ndr, "result", r->out.result);
15818 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
15820 if (flags & NDR_IN) {
15821 if (r->in.handle == NULL) {
15822 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15824 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
15826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
15828 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));
15829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15830 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15831 if (r->in.buffer) {
15832 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15834 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15836 if (flags & NDR_OUT) {
15837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15840 struct ndr_push *_ndr_info;
15841 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15842 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15843 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15844 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15847 if (r->out.needed == NULL) {
15848 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15851 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15853 return NDR_ERR_SUCCESS;
15856 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
15858 uint32_t _ptr_buffer;
15859 uint32_t _ptr_info;
15860 TALLOC_CTX *_mem_save_handle_0;
15861 TALLOC_CTX *_mem_save_buffer_0;
15862 TALLOC_CTX *_mem_save_info_0;
15863 TALLOC_CTX *_mem_save_needed_0;
15864 if (flags & NDR_IN) {
15865 ZERO_STRUCT(r->out);
15867 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15868 NDR_PULL_ALLOC(ndr, r->in.handle);
15870 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15871 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15872 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15874 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
15875 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
15876 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
15877 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));
15879 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
15880 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));
15881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15882 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15884 NDR_PULL_ALLOC(ndr, r->in.buffer);
15886 r->in.buffer = NULL;
15888 if (r->in.buffer) {
15889 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15890 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15891 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15895 NDR_PULL_ALLOC(ndr, r->out.needed);
15896 ZERO_STRUCTP(r->out.needed);
15898 if (flags & NDR_OUT) {
15899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15901 NDR_PULL_ALLOC(ndr, r->out.info);
15903 r->out.info = NULL;
15906 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15907 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15909 struct ndr_pull *_ndr_info;
15910 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15911 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15912 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15913 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15915 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15917 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15918 NDR_PULL_ALLOC(ndr, r->out.needed);
15920 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15921 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15922 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15924 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15926 return NDR_ERR_SUCCESS;
15929 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
15931 ndr_print_struct(ndr, name, "spoolss_GetForm");
15933 if (flags & NDR_SET_VALUES) {
15934 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15936 if (flags & NDR_IN) {
15937 ndr_print_struct(ndr, "in", "spoolss_GetForm");
15939 ndr_print_ptr(ndr, "handle", r->in.handle);
15941 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15943 ndr_print_string(ndr, "form_name", r->in.form_name);
15944 ndr_print_uint32(ndr, "level", r->in.level);
15945 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15947 if (r->in.buffer) {
15948 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15951 ndr_print_uint32(ndr, "offered", r->in.offered);
15954 if (flags & NDR_OUT) {
15955 ndr_print_struct(ndr, "out", "spoolss_GetForm");
15957 ndr_print_ptr(ndr, "info", r->out.info);
15960 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15961 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
15964 ndr_print_ptr(ndr, "needed", r->out.needed);
15966 ndr_print_uint32(ndr, "needed", *r->out.needed);
15968 ndr_print_WERROR(ndr, "result", r->out.result);
15974 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
15976 if (flags & NDR_IN) {
15977 if (r->in.handle == NULL) {
15978 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15980 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
15982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
15984 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));
15985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15986 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
15987 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
15989 if (flags & NDR_OUT) {
15990 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15992 return NDR_ERR_SUCCESS;
15995 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
15997 TALLOC_CTX *_mem_save_handle_0;
15998 if (flags & NDR_IN) {
15999 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16000 NDR_PULL_ALLOC(ndr, r->in.handle);
16002 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16003 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16004 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16006 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
16007 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
16008 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
16009 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));
16011 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
16012 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));
16013 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16014 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
16015 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
16017 if (flags & NDR_OUT) {
16018 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16020 return NDR_ERR_SUCCESS;
16023 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
16025 ndr_print_struct(ndr, name, "spoolss_SetForm");
16027 if (flags & NDR_SET_VALUES) {
16028 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16030 if (flags & NDR_IN) {
16031 ndr_print_struct(ndr, "in", "spoolss_SetForm");
16033 ndr_print_ptr(ndr, "handle", r->in.handle);
16035 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16037 ndr_print_string(ndr, "form_name", r->in.form_name);
16038 ndr_print_uint32(ndr, "level", r->in.level);
16039 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
16040 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
16043 if (flags & NDR_OUT) {
16044 ndr_print_struct(ndr, "out", "spoolss_SetForm");
16046 ndr_print_WERROR(ndr, "result", r->out.result);
16052 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
16054 if (flags & NDR_IN) {
16055 if (r->in.handle == NULL) {
16056 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16058 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16061 if (r->in.buffer) {
16062 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16066 if (flags & NDR_OUT) {
16067 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16069 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16071 if (r->out.needed == NULL) {
16072 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
16076 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16078 return NDR_ERR_SUCCESS;
16081 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
16083 uint32_t _ptr_buffer;
16084 uint32_t _ptr_info;
16085 TALLOC_CTX *_mem_save_handle_0;
16086 TALLOC_CTX *_mem_save_buffer_0;
16087 TALLOC_CTX *_mem_save_info_0;
16088 TALLOC_CTX *_mem_save_needed_0;
16089 if (flags & NDR_IN) {
16090 ZERO_STRUCT(r->out);
16092 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16093 NDR_PULL_ALLOC(ndr, r->in.handle);
16095 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16096 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16097 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16098 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16099 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16100 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16102 NDR_PULL_ALLOC(ndr, r->in.buffer);
16104 r->in.buffer = NULL;
16106 if (r->in.buffer) {
16107 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16108 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16109 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16110 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16112 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16113 NDR_PULL_ALLOC(ndr, r->out.needed);
16114 ZERO_STRUCTP(r->out.needed);
16116 if (flags & NDR_OUT) {
16117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16119 NDR_PULL_ALLOC(ndr, r->out.info);
16121 r->out.info = NULL;
16124 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16125 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16126 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16127 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16129 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16130 NDR_PULL_ALLOC(ndr, r->out.needed);
16132 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16133 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
16137 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16139 return NDR_ERR_SUCCESS;
16142 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
16144 uint32_t cntr_info_0;
16145 if (flags & NDR_IN) {
16146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16149 if (flags & NDR_OUT) {
16150 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16151 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16152 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16154 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16155 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16158 return NDR_ERR_SUCCESS;
16161 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
16163 uint32_t cntr_info_0;
16164 TALLOC_CTX *_mem_save_info_0;
16165 if (flags & NDR_IN) {
16166 ZERO_STRUCT(r->out);
16168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16171 if (flags & NDR_OUT) {
16172 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16173 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16174 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16175 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16176 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16177 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16179 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16180 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16184 return NDR_ERR_SUCCESS;
16187 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
16189 uint32_t cntr_info_1;
16190 ndr_print_struct(ndr, name, "spoolss_EnumForms");
16192 if (flags & NDR_SET_VALUES) {
16193 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16195 if (flags & NDR_IN) {
16196 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
16198 ndr_print_ptr(ndr, "handle", r->in.handle);
16200 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16202 ndr_print_uint32(ndr, "level", r->in.level);
16203 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16205 if (r->in.buffer) {
16206 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16209 ndr_print_uint32(ndr, "offered", r->in.offered);
16212 if (flags & NDR_OUT) {
16213 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
16215 ndr_print_ptr(ndr, "info", r->out.info);
16218 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
16220 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
16222 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16223 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16224 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
16231 ndr_print_ptr(ndr, "needed", r->out.needed);
16233 ndr_print_uint32(ndr, "needed", *r->out.needed);
16235 ndr_print_uint32(ndr, "count", r->out.count);
16236 ndr_print_WERROR(ndr, "result", r->out.result);
16242 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
16244 if (flags & NDR_IN) {
16245 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16246 if (r->in.servername) {
16247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16253 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16254 if (r->in.buffer) {
16255 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16259 if (flags & NDR_OUT) {
16260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16262 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16264 if (r->out.needed == NULL) {
16265 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
16269 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16271 return NDR_ERR_SUCCESS;
16274 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
16276 uint32_t _ptr_servername;
16277 uint32_t _ptr_buffer;
16278 uint32_t _ptr_info;
16279 TALLOC_CTX *_mem_save_servername_0;
16280 TALLOC_CTX *_mem_save_buffer_0;
16281 TALLOC_CTX *_mem_save_info_0;
16282 TALLOC_CTX *_mem_save_needed_0;
16283 if (flags & NDR_IN) {
16284 ZERO_STRUCT(r->out);
16286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16287 if (_ptr_servername) {
16288 NDR_PULL_ALLOC(ndr, r->in.servername);
16290 r->in.servername = NULL;
16292 if (r->in.servername) {
16293 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16294 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16295 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16296 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16297 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16298 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));
16300 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16301 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16304 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16307 NDR_PULL_ALLOC(ndr, r->in.buffer);
16309 r->in.buffer = NULL;
16311 if (r->in.buffer) {
16312 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16313 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16314 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16318 NDR_PULL_ALLOC(ndr, r->out.needed);
16319 ZERO_STRUCTP(r->out.needed);
16321 if (flags & NDR_OUT) {
16322 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16324 NDR_PULL_ALLOC(ndr, r->out.info);
16326 r->out.info = NULL;
16329 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16330 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16331 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16334 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16335 NDR_PULL_ALLOC(ndr, r->out.needed);
16337 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16338 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16341 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
16342 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16344 return NDR_ERR_SUCCESS;
16347 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
16349 uint32_t cntr_info_0;
16350 if (flags & NDR_IN) {
16351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16354 if (flags & NDR_OUT) {
16355 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16356 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16357 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16359 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16360 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16363 return NDR_ERR_SUCCESS;
16366 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
16368 uint32_t cntr_info_0;
16369 TALLOC_CTX *_mem_save_info_0;
16370 if (flags & NDR_IN) {
16371 ZERO_STRUCT(r->out);
16373 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16376 if (flags & NDR_OUT) {
16377 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16378 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16379 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16380 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16381 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16382 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16384 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16385 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16389 return NDR_ERR_SUCCESS;
16392 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
16394 uint32_t cntr_info_1;
16395 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
16397 if (flags & NDR_SET_VALUES) {
16398 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16400 if (flags & NDR_IN) {
16401 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
16403 ndr_print_ptr(ndr, "servername", r->in.servername);
16405 if (r->in.servername) {
16406 ndr_print_string(ndr, "servername", r->in.servername);
16409 ndr_print_uint32(ndr, "level", r->in.level);
16410 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16412 if (r->in.buffer) {
16413 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16416 ndr_print_uint32(ndr, "offered", r->in.offered);
16419 if (flags & NDR_OUT) {
16420 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
16422 ndr_print_ptr(ndr, "info", r->out.info);
16425 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
16427 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
16429 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16430 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16431 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
16438 ndr_print_ptr(ndr, "needed", r->out.needed);
16440 ndr_print_uint32(ndr, "needed", *r->out.needed);
16442 ndr_print_uint32(ndr, "count", r->out.count);
16443 ndr_print_WERROR(ndr, "result", r->out.result);
16449 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
16451 if (flags & NDR_IN) {
16452 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16453 if (r->in.servername) {
16454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16455 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16457 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16461 if (r->in.buffer) {
16462 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16466 if (flags & NDR_OUT) {
16467 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16469 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16471 if (r->out.needed == NULL) {
16472 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->out.count));
16476 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16478 return NDR_ERR_SUCCESS;
16481 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
16483 uint32_t _ptr_servername;
16484 uint32_t _ptr_buffer;
16485 uint32_t _ptr_info;
16486 TALLOC_CTX *_mem_save_servername_0;
16487 TALLOC_CTX *_mem_save_buffer_0;
16488 TALLOC_CTX *_mem_save_info_0;
16489 TALLOC_CTX *_mem_save_needed_0;
16490 if (flags & NDR_IN) {
16491 ZERO_STRUCT(r->out);
16493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16494 if (_ptr_servername) {
16495 NDR_PULL_ALLOC(ndr, r->in.servername);
16497 r->in.servername = NULL;
16499 if (r->in.servername) {
16500 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16501 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16502 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16503 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16504 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16505 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));
16507 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16508 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16511 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16512 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16514 NDR_PULL_ALLOC(ndr, r->in.buffer);
16516 r->in.buffer = NULL;
16518 if (r->in.buffer) {
16519 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16520 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16521 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16525 NDR_PULL_ALLOC(ndr, r->out.needed);
16526 ZERO_STRUCTP(r->out.needed);
16528 if (flags & NDR_OUT) {
16529 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16531 NDR_PULL_ALLOC(ndr, r->out.info);
16533 r->out.info = NULL;
16536 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16537 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16538 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16539 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16541 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16542 NDR_PULL_ALLOC(ndr, r->out.needed);
16544 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16545 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16548 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->out.count));
16549 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16551 return NDR_ERR_SUCCESS;
16554 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
16556 uint32_t cntr_info_0;
16557 if (flags & NDR_IN) {
16558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16561 if (flags & NDR_OUT) {
16562 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16563 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16564 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16566 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16567 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16570 return NDR_ERR_SUCCESS;
16573 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
16575 uint32_t cntr_info_0;
16576 TALLOC_CTX *_mem_save_info_0;
16577 if (flags & NDR_IN) {
16578 ZERO_STRUCT(r->out);
16580 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16583 if (flags & NDR_OUT) {
16584 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16585 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16586 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16587 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16588 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16589 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16591 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16592 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16594 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16596 return NDR_ERR_SUCCESS;
16599 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
16601 uint32_t cntr_info_1;
16602 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
16604 if (flags & NDR_SET_VALUES) {
16605 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16607 if (flags & NDR_IN) {
16608 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
16610 ndr_print_ptr(ndr, "servername", r->in.servername);
16612 if (r->in.servername) {
16613 ndr_print_string(ndr, "servername", r->in.servername);
16616 ndr_print_uint32(ndr, "level", r->in.level);
16617 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16619 if (r->in.buffer) {
16620 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16623 ndr_print_uint32(ndr, "offered", r->in.offered);
16626 if (flags & NDR_OUT) {
16627 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
16629 ndr_print_ptr(ndr, "info", r->out.info);
16632 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)r->out.count);
16634 for (cntr_info_1=0;cntr_info_1<r->out.count;cntr_info_1++) {
16636 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16637 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16638 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
16645 ndr_print_ptr(ndr, "needed", r->out.needed);
16647 ndr_print_uint32(ndr, "needed", *r->out.needed);
16649 ndr_print_uint32(ndr, "count", r->out.count);
16650 ndr_print_WERROR(ndr, "result", r->out.result);
16656 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
16658 if (flags & NDR_IN) {
16659 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
16660 if (r->in.server_name) {
16661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
16664 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));
16666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
16667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
16668 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
16670 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));
16672 if (flags & NDR_OUT) {
16673 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16675 return NDR_ERR_SUCCESS;
16678 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
16680 uint32_t _ptr_server_name;
16681 TALLOC_CTX *_mem_save_server_name_0;
16682 if (flags & NDR_IN) {
16683 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
16684 if (_ptr_server_name) {
16685 NDR_PULL_ALLOC(ndr, r->in.server_name);
16687 r->in.server_name = NULL;
16689 if (r->in.server_name) {
16690 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
16691 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
16692 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
16693 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
16694 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
16695 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));
16697 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
16698 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));
16699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
16701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
16702 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
16703 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
16704 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
16705 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));
16707 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
16708 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));
16710 if (flags & NDR_OUT) {
16711 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16713 return NDR_ERR_SUCCESS;
16716 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
16718 ndr_print_struct(ndr, name, "spoolss_AddPort");
16720 if (flags & NDR_SET_VALUES) {
16721 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16723 if (flags & NDR_IN) {
16724 ndr_print_struct(ndr, "in", "spoolss_AddPort");
16726 ndr_print_ptr(ndr, "server_name", r->in.server_name);
16728 if (r->in.server_name) {
16729 ndr_print_string(ndr, "server_name", r->in.server_name);
16732 ndr_print_uint32(ndr, "unknown", r->in.unknown);
16733 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
16736 if (flags & NDR_OUT) {
16737 ndr_print_struct(ndr, "out", "spoolss_AddPort");
16739 ndr_print_WERROR(ndr, "result", r->out.result);
16745 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
16747 if (flags & NDR_IN) {
16749 if (flags & NDR_OUT) {
16750 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16752 return NDR_ERR_SUCCESS;
16755 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
16757 if (flags & NDR_IN) {
16759 if (flags & NDR_OUT) {
16760 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16762 return NDR_ERR_SUCCESS;
16765 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
16767 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
16769 if (flags & NDR_SET_VALUES) {
16770 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16772 if (flags & NDR_IN) {
16773 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
16777 if (flags & NDR_OUT) {
16778 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
16780 ndr_print_WERROR(ndr, "result", r->out.result);
16786 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
16788 if (flags & NDR_IN) {
16790 if (flags & NDR_OUT) {
16791 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16793 return NDR_ERR_SUCCESS;
16796 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
16798 if (flags & NDR_IN) {
16800 if (flags & NDR_OUT) {
16801 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16803 return NDR_ERR_SUCCESS;
16806 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
16808 ndr_print_struct(ndr, name, "spoolss_DeletePort");
16810 if (flags & NDR_SET_VALUES) {
16811 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16813 if (flags & NDR_IN) {
16814 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
16818 if (flags & NDR_OUT) {
16819 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
16821 ndr_print_WERROR(ndr, "result", r->out.result);
16827 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
16829 if (flags & NDR_IN) {
16831 if (flags & NDR_OUT) {
16832 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16834 return NDR_ERR_SUCCESS;
16837 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
16839 if (flags & NDR_IN) {
16841 if (flags & NDR_OUT) {
16842 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16844 return NDR_ERR_SUCCESS;
16847 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
16849 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
16851 if (flags & NDR_SET_VALUES) {
16852 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16854 if (flags & NDR_IN) {
16855 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
16859 if (flags & NDR_OUT) {
16860 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
16862 ndr_print_WERROR(ndr, "result", r->out.result);
16868 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
16870 if (flags & NDR_IN) {
16872 if (flags & NDR_OUT) {
16873 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16875 return NDR_ERR_SUCCESS;
16878 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
16880 if (flags & NDR_IN) {
16882 if (flags & NDR_OUT) {
16883 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16885 return NDR_ERR_SUCCESS;
16888 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
16890 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
16892 if (flags & NDR_SET_VALUES) {
16893 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16895 if (flags & NDR_IN) {
16896 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
16900 if (flags & NDR_OUT) {
16901 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
16903 ndr_print_WERROR(ndr, "result", r->out.result);
16909 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
16911 if (flags & NDR_IN) {
16913 if (flags & NDR_OUT) {
16914 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16916 return NDR_ERR_SUCCESS;
16919 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
16921 if (flags & NDR_IN) {
16923 if (flags & NDR_OUT) {
16924 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16926 return NDR_ERR_SUCCESS;
16929 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
16931 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
16933 if (flags & NDR_SET_VALUES) {
16934 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16936 if (flags & NDR_IN) {
16937 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
16941 if (flags & NDR_OUT) {
16942 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
16944 ndr_print_WERROR(ndr, "result", r->out.result);
16950 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
16952 if (flags & NDR_IN) {
16954 if (flags & NDR_OUT) {
16955 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16957 return NDR_ERR_SUCCESS;
16960 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
16962 if (flags & NDR_IN) {
16964 if (flags & NDR_OUT) {
16965 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16967 return NDR_ERR_SUCCESS;
16970 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
16972 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
16974 if (flags & NDR_SET_VALUES) {
16975 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16977 if (flags & NDR_IN) {
16978 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
16982 if (flags & NDR_OUT) {
16983 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
16985 ndr_print_WERROR(ndr, "result", r->out.result);
16991 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
16993 if (flags & NDR_IN) {
16995 if (flags & NDR_OUT) {
16996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16998 return NDR_ERR_SUCCESS;
17001 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
17003 if (flags & NDR_IN) {
17005 if (flags & NDR_OUT) {
17006 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17008 return NDR_ERR_SUCCESS;
17011 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
17013 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
17015 if (flags & NDR_SET_VALUES) {
17016 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17018 if (flags & NDR_IN) {
17019 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
17023 if (flags & NDR_OUT) {
17024 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
17026 ndr_print_WERROR(ndr, "result", r->out.result);
17032 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
17034 if (flags & NDR_IN) {
17036 if (flags & NDR_OUT) {
17037 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17039 return NDR_ERR_SUCCESS;
17042 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
17044 if (flags & NDR_IN) {
17046 if (flags & NDR_OUT) {
17047 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17049 return NDR_ERR_SUCCESS;
17052 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
17054 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
17056 if (flags & NDR_SET_VALUES) {
17057 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17059 if (flags & NDR_IN) {
17060 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
17064 if (flags & NDR_OUT) {
17065 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
17067 ndr_print_WERROR(ndr, "result", r->out.result);
17073 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
17075 if (flags & NDR_IN) {
17077 if (flags & NDR_OUT) {
17078 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17080 return NDR_ERR_SUCCESS;
17083 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
17085 if (flags & NDR_IN) {
17087 if (flags & NDR_OUT) {
17088 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17090 return NDR_ERR_SUCCESS;
17093 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
17095 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
17097 if (flags & NDR_SET_VALUES) {
17098 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17100 if (flags & NDR_IN) {
17101 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
17105 if (flags & NDR_OUT) {
17106 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
17108 ndr_print_WERROR(ndr, "result", r->out.result);
17114 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
17116 if (flags & NDR_IN) {
17118 if (flags & NDR_OUT) {
17119 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17121 return NDR_ERR_SUCCESS;
17124 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
17126 if (flags & NDR_IN) {
17128 if (flags & NDR_OUT) {
17129 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17131 return NDR_ERR_SUCCESS;
17134 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
17136 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
17138 if (flags & NDR_SET_VALUES) {
17139 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17141 if (flags & NDR_IN) {
17142 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
17146 if (flags & NDR_OUT) {
17147 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
17149 ndr_print_WERROR(ndr, "result", r->out.result);
17155 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
17157 if (flags & NDR_IN) {
17159 if (flags & NDR_OUT) {
17160 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17162 return NDR_ERR_SUCCESS;
17165 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
17167 if (flags & NDR_IN) {
17169 if (flags & NDR_OUT) {
17170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17172 return NDR_ERR_SUCCESS;
17175 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
17177 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
17179 if (flags & NDR_SET_VALUES) {
17180 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17182 if (flags & NDR_IN) {
17183 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
17187 if (flags & NDR_OUT) {
17188 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
17190 ndr_print_WERROR(ndr, "result", r->out.result);
17196 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
17198 if (flags & NDR_IN) {
17200 if (flags & NDR_OUT) {
17201 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17203 return NDR_ERR_SUCCESS;
17206 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
17208 if (flags & NDR_IN) {
17210 if (flags & NDR_OUT) {
17211 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17213 return NDR_ERR_SUCCESS;
17216 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
17218 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
17220 if (flags & NDR_SET_VALUES) {
17221 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17223 if (flags & NDR_IN) {
17224 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
17228 if (flags & NDR_OUT) {
17229 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
17231 ndr_print_WERROR(ndr, "result", r->out.result);
17237 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
17239 if (flags & NDR_IN) {
17241 if (flags & NDR_OUT) {
17242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17244 return NDR_ERR_SUCCESS;
17247 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
17249 if (flags & NDR_IN) {
17251 if (flags & NDR_OUT) {
17252 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17254 return NDR_ERR_SUCCESS;
17257 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
17259 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
17261 if (flags & NDR_SET_VALUES) {
17262 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17264 if (flags & NDR_IN) {
17265 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
17269 if (flags & NDR_OUT) {
17270 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
17272 ndr_print_WERROR(ndr, "result", r->out.result);
17278 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
17280 if (flags & NDR_IN) {
17282 if (flags & NDR_OUT) {
17283 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17285 return NDR_ERR_SUCCESS;
17288 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
17290 if (flags & NDR_IN) {
17292 if (flags & NDR_OUT) {
17293 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17295 return NDR_ERR_SUCCESS;
17298 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
17300 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
17302 if (flags & NDR_SET_VALUES) {
17303 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17305 if (flags & NDR_IN) {
17306 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
17310 if (flags & NDR_OUT) {
17311 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
17313 ndr_print_WERROR(ndr, "result", r->out.result);
17319 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
17321 if (flags & NDR_IN) {
17322 if (r->in.handle == NULL) {
17323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17325 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17326 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
17327 if (r->in.data_type) {
17328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
17329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
17331 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));
17333 if (r->in.devmode_ctr == NULL) {
17334 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17336 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
17338 if (flags & NDR_OUT) {
17339 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17341 return NDR_ERR_SUCCESS;
17344 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
17346 uint32_t _ptr_data_type;
17347 TALLOC_CTX *_mem_save_handle_0;
17348 TALLOC_CTX *_mem_save_data_type_0;
17349 TALLOC_CTX *_mem_save_devmode_ctr_0;
17350 if (flags & NDR_IN) {
17351 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17352 NDR_PULL_ALLOC(ndr, r->in.handle);
17354 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17355 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17356 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17358 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
17359 if (_ptr_data_type) {
17360 NDR_PULL_ALLOC(ndr, r->in.data_type);
17362 r->in.data_type = NULL;
17364 if (r->in.data_type) {
17365 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
17366 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
17367 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
17368 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
17369 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
17370 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));
17372 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
17373 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));
17374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
17376 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17377 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
17379 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
17380 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
17381 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
17382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
17384 if (flags & NDR_OUT) {
17385 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17387 return NDR_ERR_SUCCESS;
17390 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
17392 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
17394 if (flags & NDR_SET_VALUES) {
17395 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17397 if (flags & NDR_IN) {
17398 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
17400 ndr_print_ptr(ndr, "handle", r->in.handle);
17402 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17404 ndr_print_ptr(ndr, "data_type", r->in.data_type);
17406 if (r->in.data_type) {
17407 ndr_print_string(ndr, "data_type", r->in.data_type);
17410 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
17412 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
17416 if (flags & NDR_OUT) {
17417 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
17419 ndr_print_WERROR(ndr, "result", r->out.result);
17425 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
17427 if (flags & NDR_IN) {
17428 if (r->in.handle == NULL) {
17429 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17431 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
17433 if (r->in.architecture) {
17434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
17435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
17437 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17441 if (r->in.buffer) {
17442 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
17444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
17446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
17448 if (flags & NDR_OUT) {
17449 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
17451 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
17453 if (r->out.needed == NULL) {
17454 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17457 if (r->out.server_major_version == NULL) {
17458 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
17461 if (r->out.server_minor_version == NULL) {
17462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
17465 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17467 return NDR_ERR_SUCCESS;
17470 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
17472 uint32_t _ptr_architecture;
17473 uint32_t _ptr_buffer;
17474 uint32_t _ptr_info;
17475 TALLOC_CTX *_mem_save_handle_0;
17476 TALLOC_CTX *_mem_save_architecture_0;
17477 TALLOC_CTX *_mem_save_buffer_0;
17478 TALLOC_CTX *_mem_save_info_0;
17479 TALLOC_CTX *_mem_save_needed_0;
17480 TALLOC_CTX *_mem_save_server_major_version_0;
17481 TALLOC_CTX *_mem_save_server_minor_version_0;
17482 if (flags & NDR_IN) {
17483 ZERO_STRUCT(r->out);
17485 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17486 NDR_PULL_ALLOC(ndr, r->in.handle);
17488 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17489 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17490 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17491 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17492 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
17493 if (_ptr_architecture) {
17494 NDR_PULL_ALLOC(ndr, r->in.architecture);
17496 r->in.architecture = NULL;
17498 if (r->in.architecture) {
17499 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
17500 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
17501 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
17502 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
17503 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
17504 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));
17506 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
17507 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
17508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
17510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17511 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17513 NDR_PULL_ALLOC(ndr, r->in.buffer);
17515 r->in.buffer = NULL;
17517 if (r->in.buffer) {
17518 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17519 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17520 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
17521 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17523 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17524 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
17525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
17526 NDR_PULL_ALLOC(ndr, r->out.needed);
17527 ZERO_STRUCTP(r->out.needed);
17528 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
17529 ZERO_STRUCTP(r->out.server_major_version);
17530 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
17531 ZERO_STRUCTP(r->out.server_minor_version);
17533 if (flags & NDR_OUT) {
17534 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
17536 NDR_PULL_ALLOC(ndr, r->out.info);
17538 r->out.info = NULL;
17541 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
17542 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
17543 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
17544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
17546 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17547 NDR_PULL_ALLOC(ndr, r->out.needed);
17549 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17550 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17551 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17553 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17554 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
17556 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
17557 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
17558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
17559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
17560 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17561 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
17563 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
17564 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
17565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
17566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
17567 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17569 return NDR_ERR_SUCCESS;
17572 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
17574 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
17576 if (flags & NDR_SET_VALUES) {
17577 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17579 if (flags & NDR_IN) {
17580 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
17582 ndr_print_ptr(ndr, "handle", r->in.handle);
17584 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17586 ndr_print_ptr(ndr, "architecture", r->in.architecture);
17588 if (r->in.architecture) {
17589 ndr_print_string(ndr, "architecture", r->in.architecture);
17592 ndr_print_uint32(ndr, "level", r->in.level);
17593 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17595 if (r->in.buffer) {
17596 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
17599 ndr_print_uint32(ndr, "offered", r->in.offered);
17600 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
17601 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
17604 if (flags & NDR_OUT) {
17605 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
17607 ndr_print_ptr(ndr, "info", r->out.info);
17610 ndr_print_DATA_BLOB(ndr, "info", *r->out.info);
17613 ndr_print_ptr(ndr, "needed", r->out.needed);
17615 ndr_print_uint32(ndr, "needed", *r->out.needed);
17617 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
17619 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
17621 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
17623 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
17625 ndr_print_WERROR(ndr, "result", r->out.result);
17631 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
17633 if (flags & NDR_IN) {
17635 if (flags & NDR_OUT) {
17636 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17638 return NDR_ERR_SUCCESS;
17641 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
17643 if (flags & NDR_IN) {
17645 if (flags & NDR_OUT) {
17646 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17648 return NDR_ERR_SUCCESS;
17651 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
17653 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
17655 if (flags & NDR_SET_VALUES) {
17656 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17658 if (flags & NDR_IN) {
17659 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
17663 if (flags & NDR_OUT) {
17664 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
17666 ndr_print_WERROR(ndr, "result", r->out.result);
17672 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
17674 if (flags & NDR_IN) {
17676 if (flags & NDR_OUT) {
17677 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17679 return NDR_ERR_SUCCESS;
17682 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
17684 if (flags & NDR_IN) {
17686 if (flags & NDR_OUT) {
17687 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17689 return NDR_ERR_SUCCESS;
17692 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
17694 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
17696 if (flags & NDR_SET_VALUES) {
17697 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17699 if (flags & NDR_IN) {
17700 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
17704 if (flags & NDR_OUT) {
17705 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
17707 ndr_print_WERROR(ndr, "result", r->out.result);
17713 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
17715 if (flags & NDR_IN) {
17716 if (r->in.handle == NULL) {
17717 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17719 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17721 if (flags & NDR_OUT) {
17722 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17724 return NDR_ERR_SUCCESS;
17727 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
17729 TALLOC_CTX *_mem_save_handle_0;
17730 if (flags & NDR_IN) {
17731 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17732 NDR_PULL_ALLOC(ndr, r->in.handle);
17734 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17735 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17736 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17739 if (flags & NDR_OUT) {
17740 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17742 return NDR_ERR_SUCCESS;
17745 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
17747 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
17749 if (flags & NDR_SET_VALUES) {
17750 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17752 if (flags & NDR_IN) {
17753 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
17755 ndr_print_ptr(ndr, "handle", r->in.handle);
17757 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17761 if (flags & NDR_OUT) {
17762 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
17764 ndr_print_WERROR(ndr, "result", r->out.result);
17770 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
17772 if (flags & NDR_IN) {
17774 if (flags & NDR_OUT) {
17775 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17777 return NDR_ERR_SUCCESS;
17780 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
17782 if (flags & NDR_IN) {
17784 if (flags & NDR_OUT) {
17785 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17787 return NDR_ERR_SUCCESS;
17790 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
17792 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
17794 if (flags & NDR_SET_VALUES) {
17795 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17797 if (flags & NDR_IN) {
17798 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
17802 if (flags & NDR_OUT) {
17803 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
17805 ndr_print_WERROR(ndr, "result", r->out.result);
17811 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
17813 if (flags & NDR_IN) {
17814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
17815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
17817 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));
17818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
17819 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
17820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
17821 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17822 if (r->in.buffer) {
17823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
17824 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
17827 if (flags & NDR_OUT) {
17828 if (r->out.handle == NULL) {
17829 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17831 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17832 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17834 return NDR_ERR_SUCCESS;
17837 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
17839 uint32_t _ptr_buffer;
17840 TALLOC_CTX *_mem_save_buffer_0;
17841 TALLOC_CTX *_mem_save_handle_0;
17842 if (flags & NDR_IN) {
17843 ZERO_STRUCT(r->out);
17845 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
17846 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
17847 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
17848 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));
17850 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
17851 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));
17852 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
17853 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
17854 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
17855 if (r->in.bufsize > 512) {
17856 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
17858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17860 NDR_PULL_ALLOC(ndr, r->in.buffer);
17862 r->in.buffer = NULL;
17864 if (r->in.buffer) {
17865 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17866 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17867 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
17868 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
17869 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
17870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17872 NDR_PULL_ALLOC(ndr, r->out.handle);
17873 ZERO_STRUCTP(r->out.handle);
17874 if (r->in.buffer) {
17875 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
17878 if (flags & NDR_OUT) {
17879 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17880 NDR_PULL_ALLOC(ndr, r->out.handle);
17882 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17883 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
17884 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17886 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17888 return NDR_ERR_SUCCESS;
17891 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
17893 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
17895 if (flags & NDR_SET_VALUES) {
17896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17898 if (flags & NDR_IN) {
17899 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
17901 ndr_print_string(ndr, "server_name", r->in.server_name);
17902 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
17903 ndr_print_winreg_Type(ndr, "type", r->in.type);
17904 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
17905 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17907 if (r->in.buffer) {
17908 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
17913 if (flags & NDR_OUT) {
17914 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
17916 ndr_print_ptr(ndr, "handle", r->out.handle);
17918 ndr_print_policy_handle(ndr, "handle", r->out.handle);
17920 ndr_print_WERROR(ndr, "result", r->out.result);
17926 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
17928 if (flags & NDR_IN) {
17929 if (r->in.handle == NULL) {
17930 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17932 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17933 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
17934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
17935 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17936 if (r->in.buffer) {
17937 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
17938 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
17941 if (flags & NDR_OUT) {
17942 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17944 return NDR_ERR_SUCCESS;
17947 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
17949 uint32_t _ptr_buffer;
17950 TALLOC_CTX *_mem_save_handle_0;
17951 TALLOC_CTX *_mem_save_buffer_0;
17952 if (flags & NDR_IN) {
17953 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17954 NDR_PULL_ALLOC(ndr, r->in.handle);
17956 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17957 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17958 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17960 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
17961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
17962 if (r->in.bufsize > 512) {
17963 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
17965 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17967 NDR_PULL_ALLOC(ndr, r->in.buffer);
17969 r->in.buffer = NULL;
17971 if (r->in.buffer) {
17972 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17973 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17974 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
17975 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
17976 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
17977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17979 if (r->in.buffer) {
17980 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
17983 if (flags & NDR_OUT) {
17984 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17986 return NDR_ERR_SUCCESS;
17989 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
17991 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
17993 if (flags & NDR_SET_VALUES) {
17994 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17996 if (flags & NDR_IN) {
17997 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
17999 ndr_print_ptr(ndr, "handle", r->in.handle);
18001 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18003 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
18004 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
18005 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18007 if (r->in.buffer) {
18008 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
18013 if (flags & NDR_OUT) {
18014 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
18016 ndr_print_WERROR(ndr, "result", r->out.result);
18022 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
18024 if (flags & NDR_IN) {
18025 if (r->in.handle == NULL) {
18026 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18028 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18030 if (flags & NDR_OUT) {
18031 if (r->out.handle == NULL) {
18032 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18034 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18035 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18037 return NDR_ERR_SUCCESS;
18040 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
18042 TALLOC_CTX *_mem_save_handle_0;
18043 if (flags & NDR_IN) {
18044 ZERO_STRUCT(r->out);
18046 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18047 NDR_PULL_ALLOC(ndr, r->in.handle);
18049 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18050 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18051 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18052 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18053 NDR_PULL_ALLOC(ndr, r->out.handle);
18054 *r->out.handle = *r->in.handle;
18056 if (flags & NDR_OUT) {
18057 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18058 NDR_PULL_ALLOC(ndr, r->out.handle);
18060 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18061 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18062 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18064 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18066 return NDR_ERR_SUCCESS;
18069 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
18071 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
18073 if (flags & NDR_SET_VALUES) {
18074 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18076 if (flags & NDR_IN) {
18077 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
18079 ndr_print_ptr(ndr, "handle", r->in.handle);
18081 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18085 if (flags & NDR_OUT) {
18086 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
18088 ndr_print_ptr(ndr, "handle", r->out.handle);
18090 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18092 ndr_print_WERROR(ndr, "result", r->out.result);
18098 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
18100 if (flags & NDR_IN) {
18102 if (flags & NDR_OUT) {
18103 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18105 return NDR_ERR_SUCCESS;
18108 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
18110 if (flags & NDR_IN) {
18112 if (flags & NDR_OUT) {
18113 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18115 return NDR_ERR_SUCCESS;
18118 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
18120 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
18122 if (flags & NDR_SET_VALUES) {
18123 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18125 if (flags & NDR_IN) {
18126 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
18130 if (flags & NDR_OUT) {
18131 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
18133 ndr_print_WERROR(ndr, "result", r->out.result);
18139 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
18141 if (flags & NDR_IN) {
18143 if (flags & NDR_OUT) {
18144 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18146 return NDR_ERR_SUCCESS;
18149 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
18151 if (flags & NDR_IN) {
18153 if (flags & NDR_OUT) {
18154 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18156 return NDR_ERR_SUCCESS;
18159 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
18161 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
18163 if (flags & NDR_SET_VALUES) {
18164 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18166 if (flags & NDR_IN) {
18167 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
18171 if (flags & NDR_OUT) {
18172 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
18174 ndr_print_WERROR(ndr, "result", r->out.result);
18180 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
18182 if (flags & NDR_IN) {
18184 if (flags & NDR_OUT) {
18185 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18187 return NDR_ERR_SUCCESS;
18190 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
18192 if (flags & NDR_IN) {
18194 if (flags & NDR_OUT) {
18195 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18197 return NDR_ERR_SUCCESS;
18200 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
18202 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
18204 if (flags & NDR_SET_VALUES) {
18205 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18207 if (flags & NDR_IN) {
18208 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
18212 if (flags & NDR_OUT) {
18213 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
18215 ndr_print_WERROR(ndr, "result", r->out.result);
18221 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
18223 if (flags & NDR_IN) {
18225 if (flags & NDR_OUT) {
18226 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18228 return NDR_ERR_SUCCESS;
18231 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
18233 if (flags & NDR_IN) {
18235 if (flags & NDR_OUT) {
18236 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18238 return NDR_ERR_SUCCESS;
18241 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
18243 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
18245 if (flags & NDR_SET_VALUES) {
18246 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18248 if (flags & NDR_IN) {
18249 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
18253 if (flags & NDR_OUT) {
18254 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
18256 ndr_print_WERROR(ndr, "result", r->out.result);
18262 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
18264 if (flags & NDR_IN) {
18265 if (r->in.handle == NULL) {
18266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18268 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18269 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
18270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
18271 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
18272 if (r->in.local_machine) {
18273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
18274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
18276 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));
18278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
18279 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
18280 if (r->in.notify_options) {
18281 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
18284 if (flags & NDR_OUT) {
18285 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18287 return NDR_ERR_SUCCESS;
18290 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
18292 uint32_t _ptr_local_machine;
18293 uint32_t _ptr_notify_options;
18294 TALLOC_CTX *_mem_save_handle_0;
18295 TALLOC_CTX *_mem_save_local_machine_0;
18296 TALLOC_CTX *_mem_save_notify_options_0;
18297 if (flags & NDR_IN) {
18298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18299 NDR_PULL_ALLOC(ndr, r->in.handle);
18301 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18302 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18303 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18305 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
18306 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
18307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
18308 if (_ptr_local_machine) {
18309 NDR_PULL_ALLOC(ndr, r->in.local_machine);
18311 r->in.local_machine = NULL;
18313 if (r->in.local_machine) {
18314 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
18315 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
18316 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
18317 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
18318 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
18319 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));
18321 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
18322 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));
18323 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
18325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
18326 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
18327 if (_ptr_notify_options) {
18328 NDR_PULL_ALLOC(ndr, r->in.notify_options);
18330 r->in.notify_options = NULL;
18332 if (r->in.notify_options) {
18333 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
18334 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
18335 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
18336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
18339 if (flags & NDR_OUT) {
18340 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18342 return NDR_ERR_SUCCESS;
18345 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
18347 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
18349 if (flags & NDR_SET_VALUES) {
18350 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18352 if (flags & NDR_IN) {
18353 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
18355 ndr_print_ptr(ndr, "handle", r->in.handle);
18357 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18359 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
18360 ndr_print_uint32(ndr, "options", r->in.options);
18361 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
18363 if (r->in.local_machine) {
18364 ndr_print_string(ndr, "local_machine", r->in.local_machine);
18367 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
18368 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
18370 if (r->in.notify_options) {
18371 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
18376 if (flags & NDR_OUT) {
18377 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
18379 ndr_print_WERROR(ndr, "result", r->out.result);
18385 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
18387 if (flags & NDR_IN) {
18388 if (r->in.handle == NULL) {
18389 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18391 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
18393 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
18394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
18395 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
18396 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18398 if (flags & NDR_OUT) {
18399 if (r->out.reply_result == NULL) {
18400 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18402 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
18403 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18405 return NDR_ERR_SUCCESS;
18408 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
18410 TALLOC_CTX *_mem_save_handle_0;
18411 TALLOC_CTX *_mem_save_reply_result_0;
18412 if (flags & NDR_IN) {
18413 ZERO_STRUCT(r->out);
18415 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18416 NDR_PULL_ALLOC(ndr, r->in.handle);
18418 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18419 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18420 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
18423 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
18424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
18425 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
18426 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18427 NDR_PULL_ALLOC(ndr, r->out.reply_result);
18428 ZERO_STRUCTP(r->out.reply_result);
18430 if (flags & NDR_OUT) {
18431 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18432 NDR_PULL_ALLOC(ndr, r->out.reply_result);
18434 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
18435 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
18436 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
18437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
18438 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18440 return NDR_ERR_SUCCESS;
18443 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
18445 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
18447 if (flags & NDR_SET_VALUES) {
18448 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18450 if (flags & NDR_IN) {
18451 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
18453 ndr_print_ptr(ndr, "handle", r->in.handle);
18455 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18457 ndr_print_uint32(ndr, "color", r->in.color);
18458 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
18459 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
18460 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
18461 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
18464 if (flags & NDR_OUT) {
18465 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
18467 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
18469 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
18471 ndr_print_WERROR(ndr, "result", r->out.result);
18477 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
18479 if (flags & NDR_IN) {
18480 if (r->in.handle == NULL) {
18481 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18483 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
18485 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
18486 if (r->in.options) {
18487 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
18490 if (flags & NDR_OUT) {
18491 if (r->out.info == NULL) {
18492 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18494 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
18495 if (*r->out.info) {
18496 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
18498 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18500 return NDR_ERR_SUCCESS;
18503 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
18505 uint32_t _ptr_options;
18506 uint32_t _ptr_info;
18507 TALLOC_CTX *_mem_save_handle_0;
18508 TALLOC_CTX *_mem_save_options_0;
18509 TALLOC_CTX *_mem_save_info_0;
18510 TALLOC_CTX *_mem_save_info_1;
18511 if (flags & NDR_IN) {
18512 ZERO_STRUCT(r->out);
18514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18515 NDR_PULL_ALLOC(ndr, r->in.handle);
18517 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18518 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18519 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
18522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
18523 if (_ptr_options) {
18524 NDR_PULL_ALLOC(ndr, r->in.options);
18526 r->in.options = NULL;
18528 if (r->in.options) {
18529 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
18530 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
18531 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
18532 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
18534 NDR_PULL_ALLOC(ndr, r->out.info);
18535 ZERO_STRUCTP(r->out.info);
18537 if (flags & NDR_OUT) {
18538 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18539 NDR_PULL_ALLOC(ndr, r->out.info);
18541 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18542 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
18543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18545 NDR_PULL_ALLOC(ndr, *r->out.info);
18547 *r->out.info = NULL;
18549 if (*r->out.info) {
18550 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
18551 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
18552 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
18553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
18555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
18556 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18558 return NDR_ERR_SUCCESS;
18561 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
18563 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
18565 if (flags & NDR_SET_VALUES) {
18566 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18568 if (flags & NDR_IN) {
18569 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
18571 ndr_print_ptr(ndr, "handle", r->in.handle);
18573 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18575 ndr_print_uint32(ndr, "change_low", r->in.change_low);
18576 ndr_print_ptr(ndr, "options", r->in.options);
18578 if (r->in.options) {
18579 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
18584 if (flags & NDR_OUT) {
18585 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
18587 ndr_print_ptr(ndr, "info", r->out.info);
18589 ndr_print_ptr(ndr, "info", *r->out.info);
18591 if (*r->out.info) {
18592 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
18596 ndr_print_WERROR(ndr, "result", r->out.result);
18602 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
18604 if (flags & NDR_IN) {
18606 if (flags & NDR_OUT) {
18607 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18609 return NDR_ERR_SUCCESS;
18612 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
18614 if (flags & NDR_IN) {
18616 if (flags & NDR_OUT) {
18617 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18619 return NDR_ERR_SUCCESS;
18622 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
18624 ndr_print_struct(ndr, name, "spoolss_44");
18626 if (flags & NDR_SET_VALUES) {
18627 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18629 if (flags & NDR_IN) {
18630 ndr_print_struct(ndr, "in", "spoolss_44");
18634 if (flags & NDR_OUT) {
18635 ndr_print_struct(ndr, "out", "spoolss_44");
18637 ndr_print_WERROR(ndr, "result", r->out.result);
18643 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
18645 if (flags & NDR_IN) {
18646 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
18647 if (r->in.printername) {
18648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18650 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
18651 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18653 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
18654 if (r->in.datatype) {
18655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
18658 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18660 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.access_mask));
18662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18663 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
18664 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
18666 if (flags & NDR_OUT) {
18667 if (r->out.handle == NULL) {
18668 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18670 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18671 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18673 return NDR_ERR_SUCCESS;
18676 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
18678 uint32_t _ptr_printername;
18679 uint32_t _ptr_datatype;
18680 TALLOC_CTX *_mem_save_printername_0;
18681 TALLOC_CTX *_mem_save_datatype_0;
18682 TALLOC_CTX *_mem_save_handle_0;
18683 if (flags & NDR_IN) {
18684 ZERO_STRUCT(r->out);
18686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
18687 if (_ptr_printername) {
18688 NDR_PULL_ALLOC(ndr, r->in.printername);
18690 r->in.printername = NULL;
18692 if (r->in.printername) {
18693 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18694 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
18695 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
18696 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
18697 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
18698 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));
18700 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
18701 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
18702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
18704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
18705 if (_ptr_datatype) {
18706 NDR_PULL_ALLOC(ndr, r->in.datatype);
18708 r->in.datatype = NULL;
18710 if (r->in.datatype) {
18711 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
18712 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
18713 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
18714 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
18715 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
18716 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));
18718 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
18719 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
18720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
18722 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
18723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask));
18724 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18725 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
18726 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
18727 NDR_PULL_ALLOC(ndr, r->out.handle);
18728 ZERO_STRUCTP(r->out.handle);
18730 if (flags & NDR_OUT) {
18731 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18732 NDR_PULL_ALLOC(ndr, r->out.handle);
18734 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18735 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18736 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18738 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18740 return NDR_ERR_SUCCESS;
18743 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
18745 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
18747 if (flags & NDR_SET_VALUES) {
18748 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18750 if (flags & NDR_IN) {
18751 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
18753 ndr_print_ptr(ndr, "printername", r->in.printername);
18755 if (r->in.printername) {
18756 ndr_print_string(ndr, "printername", r->in.printername);
18759 ndr_print_ptr(ndr, "datatype", r->in.datatype);
18761 if (r->in.datatype) {
18762 ndr_print_string(ndr, "datatype", r->in.datatype);
18765 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
18766 ndr_print_uint32(ndr, "access_mask", r->in.access_mask);
18767 ndr_print_uint32(ndr, "level", r->in.level);
18768 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
18769 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
18772 if (flags & NDR_OUT) {
18773 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
18775 ndr_print_ptr(ndr, "handle", r->out.handle);
18777 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18779 ndr_print_WERROR(ndr, "result", r->out.result);
18785 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
18787 if (flags & NDR_IN) {
18788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
18789 if (r->in.server) {
18790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
18793 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18795 if (r->in.info_ctr == NULL) {
18796 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18798 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
18799 if (r->in.devmode_ctr == NULL) {
18800 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18802 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
18803 if (r->in.secdesc_ctr == NULL) {
18804 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18806 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
18807 if (r->in.userlevel_ctr == NULL) {
18808 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18810 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
18812 if (flags & NDR_OUT) {
18813 if (r->out.handle == NULL) {
18814 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18816 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18817 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18819 return NDR_ERR_SUCCESS;
18822 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
18824 uint32_t _ptr_server;
18825 TALLOC_CTX *_mem_save_server_0;
18826 TALLOC_CTX *_mem_save_info_ctr_0;
18827 TALLOC_CTX *_mem_save_devmode_ctr_0;
18828 TALLOC_CTX *_mem_save_secdesc_ctr_0;
18829 TALLOC_CTX *_mem_save_userlevel_ctr_0;
18830 TALLOC_CTX *_mem_save_handle_0;
18831 if (flags & NDR_IN) {
18832 ZERO_STRUCT(r->out);
18834 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
18836 NDR_PULL_ALLOC(ndr, r->in.server);
18838 r->in.server = NULL;
18840 if (r->in.server) {
18841 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
18842 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
18843 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
18844 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
18845 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
18846 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));
18848 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
18849 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
18850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
18852 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18853 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
18855 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18856 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
18857 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
18858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
18859 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18860 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
18862 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18863 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
18864 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
18865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
18866 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18867 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
18869 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18870 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
18871 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
18872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
18873 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18874 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
18876 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
18877 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
18878 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
18879 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
18880 NDR_PULL_ALLOC(ndr, r->out.handle);
18881 ZERO_STRUCTP(r->out.handle);
18883 if (flags & NDR_OUT) {
18884 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18885 NDR_PULL_ALLOC(ndr, r->out.handle);
18887 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18888 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18889 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18891 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18893 return NDR_ERR_SUCCESS;
18896 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
18898 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
18900 if (flags & NDR_SET_VALUES) {
18901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18903 if (flags & NDR_IN) {
18904 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
18906 ndr_print_ptr(ndr, "server", r->in.server);
18908 if (r->in.server) {
18909 ndr_print_string(ndr, "server", r->in.server);
18912 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
18914 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
18916 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
18918 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
18920 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
18922 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
18924 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
18926 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
18930 if (flags & NDR_OUT) {
18931 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
18933 ndr_print_ptr(ndr, "handle", r->out.handle);
18935 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18937 ndr_print_WERROR(ndr, "result", r->out.result);
18943 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
18945 if (flags & NDR_IN) {
18947 if (flags & NDR_OUT) {
18948 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18950 return NDR_ERR_SUCCESS;
18953 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
18955 if (flags & NDR_IN) {
18957 if (flags & NDR_OUT) {
18958 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18960 return NDR_ERR_SUCCESS;
18963 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
18965 ndr_print_struct(ndr, name, "spoolss_47");
18967 if (flags & NDR_SET_VALUES) {
18968 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18970 if (flags & NDR_IN) {
18971 ndr_print_struct(ndr, "in", "spoolss_47");
18975 if (flags & NDR_OUT) {
18976 ndr_print_struct(ndr, "out", "spoolss_47");
18978 ndr_print_WERROR(ndr, "result", r->out.result);
18984 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
18986 if (flags & NDR_IN) {
18987 if (r->in.handle == NULL) {
18988 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18990 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
18992 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
18993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
18995 if (flags & NDR_OUT) {
18996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
18997 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
18998 if (r->out.value_needed == NULL) {
18999 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
19002 if (r->out.printerdata_type == NULL) {
19003 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
19006 if (r->out.buffer == NULL) {
19007 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19009 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
19010 if (r->out.data_needed == NULL) {
19011 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
19014 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19016 return NDR_ERR_SUCCESS;
19019 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
19021 TALLOC_CTX *_mem_save_handle_0;
19022 TALLOC_CTX *_mem_save_value_needed_0;
19023 TALLOC_CTX *_mem_save_printerdata_type_0;
19024 TALLOC_CTX *_mem_save_buffer_0;
19025 TALLOC_CTX *_mem_save_data_needed_0;
19026 if (flags & NDR_IN) {
19027 ZERO_STRUCT(r->out);
19029 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19030 NDR_PULL_ALLOC(ndr, r->in.handle);
19032 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19033 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19034 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19036 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
19037 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
19038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
19039 NDR_PULL_ALLOC(ndr, r->out.value_needed);
19040 ZERO_STRUCTP(r->out.value_needed);
19041 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
19042 ZERO_STRUCTP(r->out.printerdata_type);
19043 NDR_PULL_ALLOC(ndr, r->out.buffer);
19044 ZERO_STRUCTP(r->out.buffer);
19045 NDR_PULL_ALLOC(ndr, r->out.data_needed);
19046 ZERO_STRUCTP(r->out.data_needed);
19048 if (flags & NDR_OUT) {
19049 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
19050 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));
19051 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19052 NDR_PULL_ALLOC(ndr, r->out.value_needed);
19054 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19055 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
19056 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
19057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
19058 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19059 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
19061 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
19062 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
19063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
19064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
19065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19066 NDR_PULL_ALLOC(ndr, r->out.buffer);
19068 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19069 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
19070 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
19071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
19072 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19073 NDR_PULL_ALLOC(ndr, r->out.data_needed);
19075 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19076 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
19077 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
19078 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
19079 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19080 if (r->out.value_name) {
19081 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
19084 return NDR_ERR_SUCCESS;
19087 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
19089 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
19091 if (flags & NDR_SET_VALUES) {
19092 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19094 if (flags & NDR_IN) {
19095 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
19097 ndr_print_ptr(ndr, "handle", r->in.handle);
19099 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19101 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
19102 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
19103 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
19106 if (flags & NDR_OUT) {
19107 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
19109 ndr_print_string(ndr, "value_name", r->out.value_name);
19110 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
19112 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
19114 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
19116 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
19118 ndr_print_ptr(ndr, "buffer", r->out.buffer);
19120 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
19122 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
19124 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
19126 ndr_print_WERROR(ndr, "result", r->out.result);
19132 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
19134 if (flags & NDR_IN) {
19135 if (r->in.handle == NULL) {
19136 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19138 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
19140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
19142 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));
19144 if (flags & NDR_OUT) {
19145 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19147 return NDR_ERR_SUCCESS;
19150 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
19152 TALLOC_CTX *_mem_save_handle_0;
19153 if (flags & NDR_IN) {
19154 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19155 NDR_PULL_ALLOC(ndr, r->in.handle);
19157 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19158 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19159 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19161 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
19162 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
19163 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
19164 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));
19166 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
19167 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));
19169 if (flags & NDR_OUT) {
19170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19172 return NDR_ERR_SUCCESS;
19175 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
19177 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
19179 if (flags & NDR_SET_VALUES) {
19180 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19182 if (flags & NDR_IN) {
19183 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
19185 ndr_print_ptr(ndr, "handle", r->in.handle);
19187 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19189 ndr_print_string(ndr, "value_name", r->in.value_name);
19192 if (flags & NDR_OUT) {
19193 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
19195 ndr_print_WERROR(ndr, "result", r->out.result);
19201 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
19203 if (flags & NDR_IN) {
19205 if (flags & NDR_OUT) {
19206 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19208 return NDR_ERR_SUCCESS;
19211 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
19213 if (flags & NDR_IN) {
19215 if (flags & NDR_OUT) {
19216 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19218 return NDR_ERR_SUCCESS;
19221 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
19223 ndr_print_struct(ndr, name, "spoolss_4a");
19225 if (flags & NDR_SET_VALUES) {
19226 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19228 if (flags & NDR_IN) {
19229 ndr_print_struct(ndr, "in", "spoolss_4a");
19233 if (flags & NDR_OUT) {
19234 ndr_print_struct(ndr, "out", "spoolss_4a");
19236 ndr_print_WERROR(ndr, "result", r->out.result);
19242 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
19244 if (flags & NDR_IN) {
19246 if (flags & NDR_OUT) {
19247 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19249 return NDR_ERR_SUCCESS;
19252 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
19254 if (flags & NDR_IN) {
19256 if (flags & NDR_OUT) {
19257 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19259 return NDR_ERR_SUCCESS;
19262 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
19264 ndr_print_struct(ndr, name, "spoolss_4b");
19266 if (flags & NDR_SET_VALUES) {
19267 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19269 if (flags & NDR_IN) {
19270 ndr_print_struct(ndr, "in", "spoolss_4b");
19274 if (flags & NDR_OUT) {
19275 ndr_print_struct(ndr, "out", "spoolss_4b");
19277 ndr_print_WERROR(ndr, "result", r->out.result);
19283 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
19285 if (flags & NDR_IN) {
19287 if (flags & NDR_OUT) {
19288 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19290 return NDR_ERR_SUCCESS;
19293 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
19295 if (flags & NDR_IN) {
19297 if (flags & NDR_OUT) {
19298 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19300 return NDR_ERR_SUCCESS;
19303 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
19305 ndr_print_struct(ndr, name, "spoolss_4c");
19307 if (flags & NDR_SET_VALUES) {
19308 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19310 if (flags & NDR_IN) {
19311 ndr_print_struct(ndr, "in", "spoolss_4c");
19315 if (flags & NDR_OUT) {
19316 ndr_print_struct(ndr, "out", "spoolss_4c");
19318 ndr_print_WERROR(ndr, "result", r->out.result);
19324 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
19326 if (flags & NDR_IN) {
19327 if (r->in.handle == NULL) {
19328 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19330 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19334 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));
19335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
19336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
19338 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));
19339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
19340 if (r->in.buffer == NULL) {
19341 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19344 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
19345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19347 if (flags & NDR_OUT) {
19348 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19350 return NDR_ERR_SUCCESS;
19353 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
19355 TALLOC_CTX *_mem_save_handle_0;
19356 if (flags & NDR_IN) {
19357 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19358 NDR_PULL_ALLOC(ndr, r->in.handle);
19360 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19361 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19362 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19364 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
19365 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
19366 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
19367 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));
19369 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
19370 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));
19371 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
19372 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
19373 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
19374 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));
19376 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
19377 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));
19378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
19379 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
19380 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19381 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
19383 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
19384 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19385 if (r->in.buffer) {
19386 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
19389 if (flags & NDR_OUT) {
19390 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19392 return NDR_ERR_SUCCESS;
19395 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
19397 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
19399 if (flags & NDR_SET_VALUES) {
19400 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19402 if (flags & NDR_IN) {
19403 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
19405 ndr_print_ptr(ndr, "handle", r->in.handle);
19407 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19409 ndr_print_string(ndr, "key_name", r->in.key_name);
19410 ndr_print_string(ndr, "value_name", r->in.value_name);
19411 ndr_print_uint32(ndr, "type", r->in.type);
19412 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19414 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
19416 ndr_print_uint32(ndr, "offered", r->in.offered);
19419 if (flags & NDR_OUT) {
19420 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
19422 ndr_print_WERROR(ndr, "result", r->out.result);
19428 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
19430 if (flags & NDR_IN) {
19431 if (r->in.handle == NULL) {
19432 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19434 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19438 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));
19439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
19440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
19442 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));
19443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19445 if (flags & NDR_OUT) {
19446 if (r->out.type == NULL) {
19447 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
19450 if (r->out.buffer == NULL) {
19451 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19454 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
19455 if (r->out.needed == NULL) {
19456 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19459 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19461 return NDR_ERR_SUCCESS;
19464 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
19466 TALLOC_CTX *_mem_save_handle_0;
19467 TALLOC_CTX *_mem_save_type_0;
19468 TALLOC_CTX *_mem_save_needed_0;
19469 if (flags & NDR_IN) {
19470 ZERO_STRUCT(r->out);
19472 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19473 NDR_PULL_ALLOC(ndr, r->in.handle);
19475 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19476 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19477 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19479 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
19480 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
19481 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
19482 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));
19484 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
19485 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));
19486 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
19487 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
19488 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
19489 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));
19491 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
19492 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));
19493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19494 NDR_PULL_ALLOC(ndr, r->out.type);
19495 ZERO_STRUCTP(r->out.type);
19496 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
19497 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
19498 NDR_PULL_ALLOC(ndr, r->out.needed);
19499 ZERO_STRUCTP(r->out.needed);
19501 if (flags & NDR_OUT) {
19502 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19503 NDR_PULL_ALLOC(ndr, r->out.type);
19505 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
19506 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
19507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
19508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
19509 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
19510 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19511 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
19513 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
19514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19515 NDR_PULL_ALLOC(ndr, r->out.needed);
19517 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19518 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19521 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19522 if (r->out.buffer) {
19523 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
19526 return NDR_ERR_SUCCESS;
19529 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
19531 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
19533 if (flags & NDR_SET_VALUES) {
19534 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19536 if (flags & NDR_IN) {
19537 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
19539 ndr_print_ptr(ndr, "handle", r->in.handle);
19541 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19543 ndr_print_string(ndr, "key_name", r->in.key_name);
19544 ndr_print_string(ndr, "value_name", r->in.value_name);
19545 ndr_print_uint32(ndr, "offered", r->in.offered);
19548 if (flags & NDR_OUT) {
19549 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
19551 ndr_print_ptr(ndr, "type", r->out.type);
19553 ndr_print_uint32(ndr, "type", *r->out.type);
19555 ndr_print_ptr(ndr, "buffer", r->out.buffer);
19557 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
19559 ndr_print_ptr(ndr, "needed", r->out.needed);
19561 ndr_print_uint32(ndr, "needed", *r->out.needed);
19563 ndr_print_WERROR(ndr, "result", r->out.result);
19569 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
19571 if (flags & NDR_IN) {
19572 if (r->in.handle == NULL) {
19573 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19575 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19576 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19577 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19578 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19579 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));
19580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19582 if (flags & NDR_OUT) {
19583 if (r->out.buffer == NULL) {
19584 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19587 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
19588 if (r->out.needed == NULL) {
19589 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19591 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19592 if (r->out.count == NULL) {
19593 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19596 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19598 return NDR_ERR_SUCCESS;
19601 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
19603 TALLOC_CTX *_mem_save_handle_0;
19604 TALLOC_CTX *_mem_save_needed_0;
19605 TALLOC_CTX *_mem_save_count_0;
19606 if (flags & NDR_IN) {
19607 ZERO_STRUCT(r->out);
19609 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19610 NDR_PULL_ALLOC(ndr, r->in.handle);
19612 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19613 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19614 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19616 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
19617 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
19618 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
19619 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));
19621 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
19622 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));
19623 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19624 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
19625 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
19626 NDR_PULL_ALLOC(ndr, r->out.needed);
19627 ZERO_STRUCTP(r->out.needed);
19628 NDR_PULL_ALLOC(ndr, r->out.count);
19629 ZERO_STRUCTP(r->out.count);
19631 if (flags & NDR_OUT) {
19632 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
19633 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19634 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
19636 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
19637 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19638 NDR_PULL_ALLOC(ndr, r->out.needed);
19640 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19641 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19644 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19645 NDR_PULL_ALLOC(ndr, r->out.count);
19647 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19648 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19649 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19650 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19651 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19652 if (r->out.buffer) {
19653 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
19656 return NDR_ERR_SUCCESS;
19659 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
19661 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
19663 if (flags & NDR_SET_VALUES) {
19664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19666 if (flags & NDR_IN) {
19667 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
19669 ndr_print_ptr(ndr, "handle", r->in.handle);
19671 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19673 ndr_print_string(ndr, "key_name", r->in.key_name);
19674 ndr_print_uint32(ndr, "offered", r->in.offered);
19677 if (flags & NDR_OUT) {
19678 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
19680 ndr_print_ptr(ndr, "buffer", r->out.buffer);
19682 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
19684 ndr_print_ptr(ndr, "needed", r->out.needed);
19686 ndr_print_uint32(ndr, "needed", *r->out.needed);
19688 ndr_print_ptr(ndr, "count", r->out.count);
19690 ndr_print_uint32(ndr, "count", *r->out.count);
19692 ndr_print_WERROR(ndr, "result", r->out.result);
19698 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
19700 uint32_t cntr_key_buffer_1;
19701 if (flags & NDR_IN) {
19702 if (r->in.handle == NULL) {
19703 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19705 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19709 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));
19710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
19712 if (flags & NDR_OUT) {
19713 if (r->out.key_buffer == NULL) {
19714 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
19717 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
19718 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
19720 if (r->out.needed == NULL) {
19721 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19724 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19726 return NDR_ERR_SUCCESS;
19729 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
19731 uint32_t cntr_key_buffer_1;
19732 TALLOC_CTX *_mem_save_handle_0;
19733 TALLOC_CTX *_mem_save_key_buffer_1;
19734 TALLOC_CTX *_mem_save_needed_0;
19735 if (flags & NDR_IN) {
19736 ZERO_STRUCT(r->out);
19738 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19739 NDR_PULL_ALLOC(ndr, r->in.handle);
19741 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19742 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19743 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19745 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
19746 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
19747 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
19748 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
19750 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
19751 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));
19752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
19753 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
19754 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
19755 NDR_PULL_ALLOC(ndr, r->out.needed);
19756 ZERO_STRUCTP(r->out.needed);
19758 if (flags & NDR_OUT) {
19759 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
19760 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19761 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
19763 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
19764 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
19765 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
19766 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
19768 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
19769 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19770 NDR_PULL_ALLOC(ndr, r->out.needed);
19772 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19773 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19775 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19776 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19777 if (r->out.key_buffer) {
19778 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
19781 return NDR_ERR_SUCCESS;
19784 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
19786 uint32_t cntr_key_buffer_1;
19787 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
19789 if (flags & NDR_SET_VALUES) {
19790 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19792 if (flags & NDR_IN) {
19793 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
19795 ndr_print_ptr(ndr, "handle", r->in.handle);
19797 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19799 ndr_print_string(ndr, "key_name", r->in.key_name);
19800 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
19803 if (flags & NDR_OUT) {
19804 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
19806 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
19808 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
19810 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
19812 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
19813 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
19819 ndr_print_ptr(ndr, "needed", r->out.needed);
19821 ndr_print_uint32(ndr, "needed", *r->out.needed);
19823 ndr_print_WERROR(ndr, "result", r->out.result);
19829 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
19831 if (flags & NDR_IN) {
19832 if (r->in.handle == NULL) {
19833 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19835 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19839 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));
19840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
19841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
19843 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));
19845 if (flags & NDR_OUT) {
19846 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19848 return NDR_ERR_SUCCESS;
19851 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
19853 TALLOC_CTX *_mem_save_handle_0;
19854 if (flags & NDR_IN) {
19855 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19856 NDR_PULL_ALLOC(ndr, r->in.handle);
19858 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19859 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19860 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19861 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19862 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
19863 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
19864 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
19865 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));
19867 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
19868 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));
19869 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
19870 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
19871 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
19872 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));
19874 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
19875 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));
19877 if (flags & NDR_OUT) {
19878 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19880 return NDR_ERR_SUCCESS;
19883 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
19885 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
19887 if (flags & NDR_SET_VALUES) {
19888 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19890 if (flags & NDR_IN) {
19891 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
19893 ndr_print_ptr(ndr, "handle", r->in.handle);
19895 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19897 ndr_print_string(ndr, "key_name", r->in.key_name);
19898 ndr_print_string(ndr, "value_name", r->in.value_name);
19901 if (flags & NDR_OUT) {
19902 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
19904 ndr_print_WERROR(ndr, "result", r->out.result);
19910 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
19912 if (flags & NDR_IN) {
19913 if (r->in.handle == NULL) {
19914 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19916 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19917 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
19920 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));
19922 if (flags & NDR_OUT) {
19923 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19925 return NDR_ERR_SUCCESS;
19928 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
19930 TALLOC_CTX *_mem_save_handle_0;
19931 if (flags & NDR_IN) {
19932 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19933 NDR_PULL_ALLOC(ndr, r->in.handle);
19935 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19936 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19937 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19938 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19939 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
19940 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
19941 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
19942 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));
19944 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
19945 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));
19947 if (flags & NDR_OUT) {
19948 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19950 return NDR_ERR_SUCCESS;
19953 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
19955 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
19957 if (flags & NDR_SET_VALUES) {
19958 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19960 if (flags & NDR_IN) {
19961 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
19963 ndr_print_ptr(ndr, "handle", r->in.handle);
19965 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19967 ndr_print_string(ndr, "key_name", r->in.key_name);
19970 if (flags & NDR_OUT) {
19971 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
19973 ndr_print_WERROR(ndr, "result", r->out.result);
19979 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
19981 if (flags & NDR_IN) {
19983 if (flags & NDR_OUT) {
19984 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19986 return NDR_ERR_SUCCESS;
19989 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
19991 if (flags & NDR_IN) {
19993 if (flags & NDR_OUT) {
19994 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19996 return NDR_ERR_SUCCESS;
19999 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
20001 ndr_print_struct(ndr, name, "spoolss_53");
20003 if (flags & NDR_SET_VALUES) {
20004 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20006 if (flags & NDR_IN) {
20007 ndr_print_struct(ndr, "in", "spoolss_53");
20011 if (flags & NDR_OUT) {
20012 ndr_print_struct(ndr, "out", "spoolss_53");
20014 ndr_print_WERROR(ndr, "result", r->out.result);
20020 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
20022 if (flags & NDR_IN) {
20023 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20024 if (r->in.server) {
20025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20033 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20036 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
20037 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20038 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
20039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
20041 if (flags & NDR_OUT) {
20042 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20044 return NDR_ERR_SUCCESS;
20047 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
20049 uint32_t _ptr_server;
20050 TALLOC_CTX *_mem_save_server_0;
20051 if (flags & NDR_IN) {
20052 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20054 NDR_PULL_ALLOC(ndr, r->in.server);
20056 r->in.server = NULL;
20058 if (r->in.server) {
20059 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20060 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20061 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20062 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20063 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20064 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));
20066 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20067 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20070 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20071 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20072 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20073 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));
20075 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20076 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20077 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
20078 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
20079 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
20080 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));
20082 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
20083 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
20084 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
20085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
20087 if (flags & NDR_OUT) {
20088 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20090 return NDR_ERR_SUCCESS;
20093 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
20095 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
20097 if (flags & NDR_SET_VALUES) {
20098 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20100 if (flags & NDR_IN) {
20101 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
20103 ndr_print_ptr(ndr, "server", r->in.server);
20105 if (r->in.server) {
20106 ndr_print_string(ndr, "server", r->in.server);
20109 ndr_print_string(ndr, "architecture", r->in.architecture);
20110 ndr_print_string(ndr, "driver", r->in.driver);
20111 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
20112 ndr_print_uint32(ndr, "version", r->in.version);
20115 if (flags & NDR_OUT) {
20116 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
20118 ndr_print_WERROR(ndr, "result", r->out.result);
20124 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
20126 if (flags & NDR_IN) {
20128 if (flags & NDR_OUT) {
20129 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20131 return NDR_ERR_SUCCESS;
20134 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
20136 if (flags & NDR_IN) {
20138 if (flags & NDR_OUT) {
20139 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20141 return NDR_ERR_SUCCESS;
20144 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
20146 ndr_print_struct(ndr, name, "spoolss_55");
20148 if (flags & NDR_SET_VALUES) {
20149 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20151 if (flags & NDR_IN) {
20152 ndr_print_struct(ndr, "in", "spoolss_55");
20156 if (flags & NDR_OUT) {
20157 ndr_print_struct(ndr, "out", "spoolss_55");
20159 ndr_print_WERROR(ndr, "result", r->out.result);
20165 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
20167 if (flags & NDR_IN) {
20169 if (flags & NDR_OUT) {
20170 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20172 return NDR_ERR_SUCCESS;
20175 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
20177 if (flags & NDR_IN) {
20179 if (flags & NDR_OUT) {
20180 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20182 return NDR_ERR_SUCCESS;
20185 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
20187 ndr_print_struct(ndr, name, "spoolss_56");
20189 if (flags & NDR_SET_VALUES) {
20190 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20192 if (flags & NDR_IN) {
20193 ndr_print_struct(ndr, "in", "spoolss_56");
20197 if (flags & NDR_OUT) {
20198 ndr_print_struct(ndr, "out", "spoolss_56");
20200 ndr_print_WERROR(ndr, "result", r->out.result);
20206 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
20208 if (flags & NDR_IN) {
20210 if (flags & NDR_OUT) {
20211 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20213 return NDR_ERR_SUCCESS;
20216 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
20218 if (flags & NDR_IN) {
20220 if (flags & NDR_OUT) {
20221 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20223 return NDR_ERR_SUCCESS;
20226 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
20228 ndr_print_struct(ndr, name, "spoolss_57");
20230 if (flags & NDR_SET_VALUES) {
20231 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20233 if (flags & NDR_IN) {
20234 ndr_print_struct(ndr, "in", "spoolss_57");
20238 if (flags & NDR_OUT) {
20239 ndr_print_struct(ndr, "out", "spoolss_57");
20241 ndr_print_WERROR(ndr, "result", r->out.result);
20247 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
20249 if (flags & NDR_IN) {
20250 if (r->in.handle == NULL) {
20251 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20253 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
20255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
20257 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));
20258 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
20259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
20260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
20261 if (r->in.status_code == NULL) {
20262 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
20266 if (flags & NDR_OUT) {
20267 if (r->out.out_data == NULL) {
20268 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
20271 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
20272 if (r->out.needed == NULL) {
20273 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20275 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20276 if (r->out.status_code == NULL) {
20277 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
20280 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20282 return NDR_ERR_SUCCESS;
20285 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
20287 TALLOC_CTX *_mem_save_handle_0;
20288 TALLOC_CTX *_mem_save_needed_0;
20289 TALLOC_CTX *_mem_save_status_code_0;
20290 if (flags & NDR_IN) {
20291 ZERO_STRUCT(r->out);
20293 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20294 NDR_PULL_ALLOC(ndr, r->in.handle);
20296 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20297 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20298 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20300 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
20301 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
20302 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
20303 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));
20305 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
20306 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));
20307 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
20308 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
20309 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
20310 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20311 NDR_PULL_ALLOC(ndr, r->in.status_code);
20313 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
20314 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
20315 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
20316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
20317 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
20318 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
20319 NDR_PULL_ALLOC(ndr, r->out.needed);
20320 ZERO_STRUCTP(r->out.needed);
20321 NDR_PULL_ALLOC(ndr, r->out.status_code);
20322 *r->out.status_code = *r->in.status_code;
20324 if (flags & NDR_OUT) {
20325 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
20326 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20327 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
20329 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
20330 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20331 NDR_PULL_ALLOC(ndr, r->out.needed);
20333 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20334 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20337 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20338 NDR_PULL_ALLOC(ndr, r->out.status_code);
20340 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
20341 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
20342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
20343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
20344 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20345 if (r->out.out_data) {
20346 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
20349 return NDR_ERR_SUCCESS;
20352 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
20354 ndr_print_struct(ndr, name, "spoolss_XcvData");
20356 if (flags & NDR_SET_VALUES) {
20357 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20359 if (flags & NDR_IN) {
20360 ndr_print_struct(ndr, "in", "spoolss_XcvData");
20362 ndr_print_ptr(ndr, "handle", r->in.handle);
20364 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20366 ndr_print_string(ndr, "function_name", r->in.function_name);
20367 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
20368 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
20369 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
20370 ndr_print_ptr(ndr, "status_code", r->in.status_code);
20372 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
20376 if (flags & NDR_OUT) {
20377 ndr_print_struct(ndr, "out", "spoolss_XcvData");
20379 ndr_print_ptr(ndr, "out_data", r->out.out_data);
20381 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
20383 ndr_print_ptr(ndr, "needed", r->out.needed);
20385 ndr_print_uint32(ndr, "needed", *r->out.needed);
20387 ndr_print_ptr(ndr, "status_code", r->out.status_code);
20389 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
20391 ndr_print_WERROR(ndr, "result", r->out.result);
20397 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
20399 if (flags & NDR_IN) {
20400 if (r->in.servername == NULL) {
20401 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
20406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20408 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
20409 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20410 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
20412 if (flags & NDR_OUT) {
20413 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20415 return NDR_ERR_SUCCESS;
20418 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
20420 if (flags & NDR_IN) {
20421 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
20422 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
20423 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
20424 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));
20426 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
20427 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
20428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20429 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
20430 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20431 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
20433 if (flags & NDR_OUT) {
20434 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20436 return NDR_ERR_SUCCESS;
20439 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
20441 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
20443 if (flags & NDR_SET_VALUES) {
20444 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20446 if (flags & NDR_IN) {
20447 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
20449 ndr_print_ptr(ndr, "servername", r->in.servername);
20451 ndr_print_string(ndr, "servername", r->in.servername);
20453 ndr_print_uint32(ndr, "level", r->in.level);
20454 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
20455 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->in.info);
20456 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
20459 if (flags & NDR_OUT) {
20460 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
20462 ndr_print_WERROR(ndr, "result", r->out.result);
20468 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
20470 if (flags & NDR_IN) {
20472 if (flags & NDR_OUT) {
20473 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20475 return NDR_ERR_SUCCESS;
20478 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
20480 if (flags & NDR_IN) {
20482 if (flags & NDR_OUT) {
20483 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20485 return NDR_ERR_SUCCESS;
20488 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
20490 ndr_print_struct(ndr, name, "spoolss_5a");
20492 if (flags & NDR_SET_VALUES) {
20493 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20495 if (flags & NDR_IN) {
20496 ndr_print_struct(ndr, "in", "spoolss_5a");
20500 if (flags & NDR_OUT) {
20501 ndr_print_struct(ndr, "out", "spoolss_5a");
20503 ndr_print_WERROR(ndr, "result", r->out.result);
20509 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
20511 if (flags & NDR_IN) {
20513 if (flags & NDR_OUT) {
20514 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20516 return NDR_ERR_SUCCESS;
20519 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
20521 if (flags & NDR_IN) {
20523 if (flags & NDR_OUT) {
20524 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20526 return NDR_ERR_SUCCESS;
20529 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
20531 ndr_print_struct(ndr, name, "spoolss_5b");
20533 if (flags & NDR_SET_VALUES) {
20534 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20536 if (flags & NDR_IN) {
20537 ndr_print_struct(ndr, "in", "spoolss_5b");
20541 if (flags & NDR_OUT) {
20542 ndr_print_struct(ndr, "out", "spoolss_5b");
20544 ndr_print_WERROR(ndr, "result", r->out.result);
20550 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
20552 if (flags & NDR_IN) {
20554 if (flags & NDR_OUT) {
20555 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20557 return NDR_ERR_SUCCESS;
20560 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
20562 if (flags & NDR_IN) {
20564 if (flags & NDR_OUT) {
20565 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20567 return NDR_ERR_SUCCESS;
20570 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
20572 ndr_print_struct(ndr, name, "spoolss_5c");
20574 if (flags & NDR_SET_VALUES) {
20575 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20577 if (flags & NDR_IN) {
20578 ndr_print_struct(ndr, "in", "spoolss_5c");
20582 if (flags & NDR_OUT) {
20583 ndr_print_struct(ndr, "out", "spoolss_5c");
20585 ndr_print_WERROR(ndr, "result", r->out.result);
20591 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
20593 if (flags & NDR_IN) {
20595 if (flags & NDR_OUT) {
20596 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20598 return NDR_ERR_SUCCESS;
20601 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
20603 if (flags & NDR_IN) {
20605 if (flags & NDR_OUT) {
20606 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20608 return NDR_ERR_SUCCESS;
20611 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
20613 ndr_print_struct(ndr, name, "spoolss_5d");
20615 if (flags & NDR_SET_VALUES) {
20616 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20618 if (flags & NDR_IN) {
20619 ndr_print_struct(ndr, "in", "spoolss_5d");
20623 if (flags & NDR_OUT) {
20624 ndr_print_struct(ndr, "out", "spoolss_5d");
20626 ndr_print_WERROR(ndr, "result", r->out.result);
20632 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
20634 if (flags & NDR_IN) {
20636 if (flags & NDR_OUT) {
20637 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20639 return NDR_ERR_SUCCESS;
20642 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
20644 if (flags & NDR_IN) {
20646 if (flags & NDR_OUT) {
20647 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20649 return NDR_ERR_SUCCESS;
20652 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
20654 ndr_print_struct(ndr, name, "spoolss_5e");
20656 if (flags & NDR_SET_VALUES) {
20657 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20659 if (flags & NDR_IN) {
20660 ndr_print_struct(ndr, "in", "spoolss_5e");
20664 if (flags & NDR_OUT) {
20665 ndr_print_struct(ndr, "out", "spoolss_5e");
20667 ndr_print_WERROR(ndr, "result", r->out.result);
20673 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
20675 if (flags & NDR_IN) {
20677 if (flags & NDR_OUT) {
20678 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20680 return NDR_ERR_SUCCESS;
20683 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
20685 if (flags & NDR_IN) {
20687 if (flags & NDR_OUT) {
20688 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20690 return NDR_ERR_SUCCESS;
20693 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
20695 ndr_print_struct(ndr, name, "spoolss_5f");
20697 if (flags & NDR_SET_VALUES) {
20698 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20700 if (flags & NDR_IN) {
20701 ndr_print_struct(ndr, "in", "spoolss_5f");
20705 if (flags & NDR_OUT) {
20706 ndr_print_struct(ndr, "out", "spoolss_5f");
20708 ndr_print_WERROR(ndr, "result", r->out.result);
20714 static const struct ndr_interface_call spoolss_calls[] = {
20716 "spoolss_EnumPrinters",
20717 sizeof(struct spoolss_EnumPrinters),
20718 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
20719 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
20720 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
20724 "spoolss_OpenPrinter",
20725 sizeof(struct spoolss_OpenPrinter),
20726 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
20727 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
20728 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
20733 sizeof(struct spoolss_SetJob),
20734 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
20735 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
20736 (ndr_print_function_t) ndr_print_spoolss_SetJob,
20741 sizeof(struct spoolss_GetJob),
20742 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
20743 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
20744 (ndr_print_function_t) ndr_print_spoolss_GetJob,
20748 "spoolss_EnumJobs",
20749 sizeof(struct spoolss_EnumJobs),
20750 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
20751 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
20752 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
20756 "spoolss_AddPrinter",
20757 sizeof(struct spoolss_AddPrinter),
20758 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
20759 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
20760 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
20764 "spoolss_DeletePrinter",
20765 sizeof(struct spoolss_DeletePrinter),
20766 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
20767 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
20768 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
20772 "spoolss_SetPrinter",
20773 sizeof(struct spoolss_SetPrinter),
20774 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
20775 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
20776 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
20780 "spoolss_GetPrinter",
20781 sizeof(struct spoolss_GetPrinter),
20782 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
20783 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
20784 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
20788 "spoolss_AddPrinterDriver",
20789 sizeof(struct spoolss_AddPrinterDriver),
20790 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
20791 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
20792 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
20796 "spoolss_EnumPrinterDrivers",
20797 sizeof(struct spoolss_EnumPrinterDrivers),
20798 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
20799 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
20800 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
20804 "spoolss_GetPrinterDriver",
20805 sizeof(struct spoolss_GetPrinterDriver),
20806 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
20807 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
20808 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
20812 "spoolss_GetPrinterDriverDirectory",
20813 sizeof(struct spoolss_GetPrinterDriverDirectory),
20814 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
20815 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
20816 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
20820 "spoolss_DeletePrinterDriver",
20821 sizeof(struct spoolss_DeletePrinterDriver),
20822 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
20823 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
20824 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
20828 "spoolss_AddPrintProcessor",
20829 sizeof(struct spoolss_AddPrintProcessor),
20830 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
20831 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
20832 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
20836 "spoolss_EnumPrintProcessors",
20837 sizeof(struct spoolss_EnumPrintProcessors),
20838 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
20839 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
20840 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
20844 "spoolss_GetPrintProcessorDirectory",
20845 sizeof(struct spoolss_GetPrintProcessorDirectory),
20846 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
20847 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
20848 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
20852 "spoolss_StartDocPrinter",
20853 sizeof(struct spoolss_StartDocPrinter),
20854 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
20855 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
20856 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
20860 "spoolss_StartPagePrinter",
20861 sizeof(struct spoolss_StartPagePrinter),
20862 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
20863 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
20864 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
20868 "spoolss_WritePrinter",
20869 sizeof(struct spoolss_WritePrinter),
20870 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
20871 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
20872 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
20876 "spoolss_EndPagePrinter",
20877 sizeof(struct spoolss_EndPagePrinter),
20878 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
20879 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
20880 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
20884 "spoolss_AbortPrinter",
20885 sizeof(struct spoolss_AbortPrinter),
20886 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
20887 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
20888 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
20892 "spoolss_ReadPrinter",
20893 sizeof(struct spoolss_ReadPrinter),
20894 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
20895 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
20896 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
20900 "spoolss_EndDocPrinter",
20901 sizeof(struct spoolss_EndDocPrinter),
20902 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
20903 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
20904 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
20909 sizeof(struct spoolss_AddJob),
20910 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
20911 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
20912 (ndr_print_function_t) ndr_print_spoolss_AddJob,
20916 "spoolss_ScheduleJob",
20917 sizeof(struct spoolss_ScheduleJob),
20918 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
20919 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
20920 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
20924 "spoolss_GetPrinterData",
20925 sizeof(struct spoolss_GetPrinterData),
20926 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
20927 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
20928 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
20932 "spoolss_SetPrinterData",
20933 sizeof(struct spoolss_SetPrinterData),
20934 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
20935 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
20936 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
20940 "spoolss_WaitForPrinterChange",
20941 sizeof(struct spoolss_WaitForPrinterChange),
20942 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
20943 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
20944 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
20948 "spoolss_ClosePrinter",
20949 sizeof(struct spoolss_ClosePrinter),
20950 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
20951 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
20952 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
20957 sizeof(struct spoolss_AddForm),
20958 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
20959 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
20960 (ndr_print_function_t) ndr_print_spoolss_AddForm,
20964 "spoolss_DeleteForm",
20965 sizeof(struct spoolss_DeleteForm),
20966 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
20967 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
20968 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
20973 sizeof(struct spoolss_GetForm),
20974 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
20975 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
20976 (ndr_print_function_t) ndr_print_spoolss_GetForm,
20981 sizeof(struct spoolss_SetForm),
20982 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
20983 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
20984 (ndr_print_function_t) ndr_print_spoolss_SetForm,
20988 "spoolss_EnumForms",
20989 sizeof(struct spoolss_EnumForms),
20990 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
20991 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
20992 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
20996 "spoolss_EnumPorts",
20997 sizeof(struct spoolss_EnumPorts),
20998 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
20999 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
21000 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
21004 "spoolss_EnumMonitors",
21005 sizeof(struct spoolss_EnumMonitors),
21006 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
21007 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
21008 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
21013 sizeof(struct spoolss_AddPort),
21014 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
21015 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
21016 (ndr_print_function_t) ndr_print_spoolss_AddPort,
21020 "spoolss_ConfigurePort",
21021 sizeof(struct spoolss_ConfigurePort),
21022 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
21023 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
21024 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
21028 "spoolss_DeletePort",
21029 sizeof(struct spoolss_DeletePort),
21030 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
21031 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
21032 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
21036 "spoolss_CreatePrinterIC",
21037 sizeof(struct spoolss_CreatePrinterIC),
21038 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
21039 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
21040 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
21044 "spoolss_PlayGDIScriptOnPrinterIC",
21045 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
21046 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
21047 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
21048 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
21052 "spoolss_DeletePrinterIC",
21053 sizeof(struct spoolss_DeletePrinterIC),
21054 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
21055 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
21056 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
21060 "spoolss_AddPrinterConnection",
21061 sizeof(struct spoolss_AddPrinterConnection),
21062 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
21063 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
21064 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
21068 "spoolss_DeletePrinterConnection",
21069 sizeof(struct spoolss_DeletePrinterConnection),
21070 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
21071 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
21072 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
21076 "spoolss_PrinterMessageBox",
21077 sizeof(struct spoolss_PrinterMessageBox),
21078 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
21079 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
21080 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
21084 "spoolss_AddMonitor",
21085 sizeof(struct spoolss_AddMonitor),
21086 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
21087 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
21088 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
21092 "spoolss_DeleteMonitor",
21093 sizeof(struct spoolss_DeleteMonitor),
21094 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
21095 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
21096 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
21100 "spoolss_DeletePrintProcessor",
21101 sizeof(struct spoolss_DeletePrintProcessor),
21102 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
21103 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
21104 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
21108 "spoolss_AddPrintProvidor",
21109 sizeof(struct spoolss_AddPrintProvidor),
21110 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
21111 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
21112 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
21116 "spoolss_DeletePrintProvidor",
21117 sizeof(struct spoolss_DeletePrintProvidor),
21118 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
21119 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
21120 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
21124 "spoolss_EnumPrintProcDataTypes",
21125 sizeof(struct spoolss_EnumPrintProcDataTypes),
21126 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
21127 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
21128 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
21132 "spoolss_ResetPrinter",
21133 sizeof(struct spoolss_ResetPrinter),
21134 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
21135 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
21136 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
21140 "spoolss_GetPrinterDriver2",
21141 sizeof(struct spoolss_GetPrinterDriver2),
21142 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
21143 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
21144 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
21148 "spoolss_FindFirstPrinterChangeNotification",
21149 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
21150 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
21151 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
21152 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
21156 "spoolss_FindNextPrinterChangeNotification",
21157 sizeof(struct spoolss_FindNextPrinterChangeNotification),
21158 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
21159 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
21160 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
21164 "spoolss_FindClosePrinterNotify",
21165 sizeof(struct spoolss_FindClosePrinterNotify),
21166 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
21167 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
21168 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
21172 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
21173 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
21174 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
21175 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
21176 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
21180 "spoolss_ReplyOpenPrinter",
21181 sizeof(struct spoolss_ReplyOpenPrinter),
21182 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
21183 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
21184 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
21188 "spoolss_RouterReplyPrinter",
21189 sizeof(struct spoolss_RouterReplyPrinter),
21190 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
21191 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
21192 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
21196 "spoolss_ReplyClosePrinter",
21197 sizeof(struct spoolss_ReplyClosePrinter),
21198 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
21199 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
21200 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
21204 "spoolss_AddPortEx",
21205 sizeof(struct spoolss_AddPortEx),
21206 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
21207 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
21208 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
21212 "spoolss_RouterFindFirstPrinterChangeNotification",
21213 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
21214 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
21215 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
21216 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
21220 "spoolss_SpoolerInit",
21221 sizeof(struct spoolss_SpoolerInit),
21222 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
21223 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
21224 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
21228 "spoolss_ResetPrinterEx",
21229 sizeof(struct spoolss_ResetPrinterEx),
21230 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
21231 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
21232 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
21236 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
21237 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
21238 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
21239 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
21240 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
21244 "spoolss_RouterReplyPrinterEx",
21245 sizeof(struct spoolss_RouterReplyPrinterEx),
21246 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
21247 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
21248 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
21252 "spoolss_RouterRefreshPrinterChangeNotify",
21253 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
21254 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
21255 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
21256 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
21261 sizeof(struct spoolss_44),
21262 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
21263 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
21264 (ndr_print_function_t) ndr_print_spoolss_44,
21268 "spoolss_OpenPrinterEx",
21269 sizeof(struct spoolss_OpenPrinterEx),
21270 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
21271 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
21272 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
21276 "spoolss_AddPrinterEx",
21277 sizeof(struct spoolss_AddPrinterEx),
21278 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
21279 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
21280 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
21285 sizeof(struct spoolss_47),
21286 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
21287 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
21288 (ndr_print_function_t) ndr_print_spoolss_47,
21292 "spoolss_EnumPrinterData",
21293 sizeof(struct spoolss_EnumPrinterData),
21294 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
21295 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
21296 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
21300 "spoolss_DeletePrinterData",
21301 sizeof(struct spoolss_DeletePrinterData),
21302 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
21303 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
21304 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
21309 sizeof(struct spoolss_4a),
21310 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
21311 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
21312 (ndr_print_function_t) ndr_print_spoolss_4a,
21317 sizeof(struct spoolss_4b),
21318 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
21319 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
21320 (ndr_print_function_t) ndr_print_spoolss_4b,
21325 sizeof(struct spoolss_4c),
21326 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
21327 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
21328 (ndr_print_function_t) ndr_print_spoolss_4c,
21332 "spoolss_SetPrinterDataEx",
21333 sizeof(struct spoolss_SetPrinterDataEx),
21334 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
21335 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
21336 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
21340 "spoolss_GetPrinterDataEx",
21341 sizeof(struct spoolss_GetPrinterDataEx),
21342 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
21343 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
21344 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
21348 "spoolss_EnumPrinterDataEx",
21349 sizeof(struct spoolss_EnumPrinterDataEx),
21350 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
21351 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
21352 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
21356 "spoolss_EnumPrinterKey",
21357 sizeof(struct spoolss_EnumPrinterKey),
21358 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
21359 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
21360 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
21364 "spoolss_DeletePrinterDataEx",
21365 sizeof(struct spoolss_DeletePrinterDataEx),
21366 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
21367 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
21368 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
21372 "spoolss_DeletePrinterKey",
21373 sizeof(struct spoolss_DeletePrinterKey),
21374 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
21375 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
21376 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
21381 sizeof(struct spoolss_53),
21382 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
21383 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
21384 (ndr_print_function_t) ndr_print_spoolss_53,
21388 "spoolss_DeletePrinterDriverEx",
21389 sizeof(struct spoolss_DeletePrinterDriverEx),
21390 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
21391 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
21392 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
21397 sizeof(struct spoolss_55),
21398 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
21399 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
21400 (ndr_print_function_t) ndr_print_spoolss_55,
21405 sizeof(struct spoolss_56),
21406 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
21407 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
21408 (ndr_print_function_t) ndr_print_spoolss_56,
21413 sizeof(struct spoolss_57),
21414 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
21415 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
21416 (ndr_print_function_t) ndr_print_spoolss_57,
21421 sizeof(struct spoolss_XcvData),
21422 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
21423 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
21424 (ndr_print_function_t) ndr_print_spoolss_XcvData,
21428 "spoolss_AddPrinterDriverEx",
21429 sizeof(struct spoolss_AddPrinterDriverEx),
21430 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
21431 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
21432 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
21437 sizeof(struct spoolss_5a),
21438 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
21439 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
21440 (ndr_print_function_t) ndr_print_spoolss_5a,
21445 sizeof(struct spoolss_5b),
21446 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
21447 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
21448 (ndr_print_function_t) ndr_print_spoolss_5b,
21453 sizeof(struct spoolss_5c),
21454 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
21455 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
21456 (ndr_print_function_t) ndr_print_spoolss_5c,
21461 sizeof(struct spoolss_5d),
21462 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
21463 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
21464 (ndr_print_function_t) ndr_print_spoolss_5d,
21469 sizeof(struct spoolss_5e),
21470 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
21471 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
21472 (ndr_print_function_t) ndr_print_spoolss_5e,
21477 sizeof(struct spoolss_5f),
21478 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
21479 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
21480 (ndr_print_function_t) ndr_print_spoolss_5f,
21483 { NULL, 0, NULL, NULL, NULL, false }
21486 static const char * const spoolss_endpoint_strings[] = {
21487 "ncacn_np:[\\pipe\\spoolss]",
21490 static const struct ndr_interface_string_array spoolss_endpoints = {
21492 .names = spoolss_endpoint_strings
21495 static const char * const spoolss_authservice_strings[] = {
21499 static const struct ndr_interface_string_array spoolss_authservices = {
21501 .names = spoolss_authservice_strings
21505 const struct ndr_interface_table ndr_table_spoolss = {
21508 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
21509 NDR_SPOOLSS_VERSION
21511 .helpstring = NDR_SPOOLSS_HELPSTRING,
21513 .calls = spoolss_calls,
21514 .endpoints = &spoolss_endpoints,
21515 .authservices = &spoolss_authservices