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_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
6183 if (ndr_flags & NDR_SCALARS) {
6184 NDR_CHECK(ndr_push_align(ndr, 8));
6185 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
6186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
6188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
6189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
6190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
6191 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
6192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
6193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
6194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
6196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
6198 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
6199 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
6200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
6201 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
6202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
6203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
6204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6205 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
6206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6207 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
6208 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
6209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
6210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6211 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
6212 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
6213 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
6215 if (ndr_flags & NDR_BUFFERS) {
6216 if (r->driver_name) {
6217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6222 if (r->architecture) {
6223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6226 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6228 if (r->driver_path) {
6229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6232 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6238 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6240 if (r->config_file) {
6241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6244 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6252 if (r->monitor_name) {
6253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6256 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6258 if (r->default_datatype) {
6259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6262 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6264 if (r->dependent_files) {
6265 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6267 if (r->previous_names) {
6268 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6270 if (r->manufacturer_name) {
6271 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6274 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6276 if (r->manufacturer_url) {
6277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6280 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6282 if (r->hardware_id) {
6283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6286 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6294 if (r->print_processor) {
6295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6298 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6300 if (r->vendor_setup) {
6301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6304 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6306 if (r->color_profiles) {
6307 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6313 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6315 if (r->core_driver_dependencies) {
6316 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6319 return NDR_ERR_SUCCESS;
6322 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
6324 uint32_t _ptr_driver_name;
6325 TALLOC_CTX *_mem_save_driver_name_0;
6326 uint32_t _ptr_architecture;
6327 TALLOC_CTX *_mem_save_architecture_0;
6328 uint32_t _ptr_driver_path;
6329 TALLOC_CTX *_mem_save_driver_path_0;
6330 uint32_t _ptr_data_file;
6331 TALLOC_CTX *_mem_save_data_file_0;
6332 uint32_t _ptr_config_file;
6333 TALLOC_CTX *_mem_save_config_file_0;
6334 uint32_t _ptr_help_file;
6335 TALLOC_CTX *_mem_save_help_file_0;
6336 uint32_t _ptr_monitor_name;
6337 TALLOC_CTX *_mem_save_monitor_name_0;
6338 uint32_t _ptr_default_datatype;
6339 TALLOC_CTX *_mem_save_default_datatype_0;
6340 uint32_t _ptr_dependent_files;
6341 TALLOC_CTX *_mem_save_dependent_files_0;
6342 uint32_t _ptr_previous_names;
6343 TALLOC_CTX *_mem_save_previous_names_0;
6344 uint32_t _ptr_manufacturer_name;
6345 TALLOC_CTX *_mem_save_manufacturer_name_0;
6346 uint32_t _ptr_manufacturer_url;
6347 TALLOC_CTX *_mem_save_manufacturer_url_0;
6348 uint32_t _ptr_hardware_id;
6349 TALLOC_CTX *_mem_save_hardware_id_0;
6350 uint32_t _ptr_provider;
6351 TALLOC_CTX *_mem_save_provider_0;
6352 uint32_t _ptr_print_processor;
6353 TALLOC_CTX *_mem_save_print_processor_0;
6354 uint32_t _ptr_vendor_setup;
6355 TALLOC_CTX *_mem_save_vendor_setup_0;
6356 uint32_t _ptr_color_profiles;
6357 TALLOC_CTX *_mem_save_color_profiles_0;
6358 uint32_t _ptr_inf_path;
6359 TALLOC_CTX *_mem_save_inf_path_0;
6360 uint32_t _ptr_core_driver_dependencies;
6361 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
6362 if (ndr_flags & NDR_SCALARS) {
6363 NDR_CHECK(ndr_pull_align(ndr, 8));
6364 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
6365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6366 if (_ptr_driver_name) {
6367 NDR_PULL_ALLOC(ndr, r->driver_name);
6369 r->driver_name = NULL;
6371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
6372 if (_ptr_architecture) {
6373 NDR_PULL_ALLOC(ndr, r->architecture);
6375 r->architecture = NULL;
6377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
6378 if (_ptr_driver_path) {
6379 NDR_PULL_ALLOC(ndr, r->driver_path);
6381 r->driver_path = NULL;
6383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
6384 if (_ptr_data_file) {
6385 NDR_PULL_ALLOC(ndr, r->data_file);
6387 r->data_file = NULL;
6389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
6390 if (_ptr_config_file) {
6391 NDR_PULL_ALLOC(ndr, r->config_file);
6393 r->config_file = NULL;
6395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
6396 if (_ptr_help_file) {
6397 NDR_PULL_ALLOC(ndr, r->help_file);
6399 r->help_file = NULL;
6401 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
6402 if (_ptr_monitor_name) {
6403 NDR_PULL_ALLOC(ndr, r->monitor_name);
6405 r->monitor_name = NULL;
6407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
6408 if (_ptr_default_datatype) {
6409 NDR_PULL_ALLOC(ndr, r->default_datatype);
6411 r->default_datatype = NULL;
6413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
6414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
6415 if (_ptr_dependent_files) {
6416 NDR_PULL_ALLOC(ndr, r->dependent_files);
6418 r->dependent_files = NULL;
6420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
6421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
6422 if (_ptr_previous_names) {
6423 NDR_PULL_ALLOC(ndr, r->previous_names);
6425 r->previous_names = NULL;
6427 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
6428 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
6429 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
6430 if (_ptr_manufacturer_name) {
6431 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
6433 r->manufacturer_name = NULL;
6435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
6436 if (_ptr_manufacturer_url) {
6437 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
6439 r->manufacturer_url = NULL;
6441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
6442 if (_ptr_hardware_id) {
6443 NDR_PULL_ALLOC(ndr, r->hardware_id);
6445 r->hardware_id = NULL;
6447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
6448 if (_ptr_provider) {
6449 NDR_PULL_ALLOC(ndr, r->provider);
6453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6454 if (_ptr_print_processor) {
6455 NDR_PULL_ALLOC(ndr, r->print_processor);
6457 r->print_processor = NULL;
6459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
6460 if (_ptr_vendor_setup) {
6461 NDR_PULL_ALLOC(ndr, r->vendor_setup);
6463 r->vendor_setup = NULL;
6465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
6466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
6467 if (_ptr_color_profiles) {
6468 NDR_PULL_ALLOC(ndr, r->color_profiles);
6470 r->color_profiles = NULL;
6472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
6473 if (_ptr_inf_path) {
6474 NDR_PULL_ALLOC(ndr, r->inf_path);
6478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
6479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
6480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
6481 if (_ptr_core_driver_dependencies) {
6482 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
6484 r->core_driver_dependencies = NULL;
6486 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
6487 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
6489 if (ndr_flags & NDR_BUFFERS) {
6490 if (r->driver_name) {
6491 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6492 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6493 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6494 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6495 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6496 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));
6498 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6499 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6502 if (r->architecture) {
6503 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
6504 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
6505 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
6506 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
6507 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
6508 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));
6510 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
6511 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
6512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
6514 if (r->driver_path) {
6515 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6516 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
6517 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
6518 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
6519 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
6520 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));
6522 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
6523 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
6524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
6527 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6528 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
6529 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
6530 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
6531 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
6532 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));
6534 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
6535 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
6536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
6538 if (r->config_file) {
6539 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6540 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
6541 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
6542 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
6543 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
6544 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));
6546 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
6547 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
6548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
6551 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6552 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
6553 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
6554 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
6555 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
6556 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));
6558 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
6559 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
6560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
6562 if (r->monitor_name) {
6563 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6564 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
6565 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
6566 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
6567 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
6568 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));
6570 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6571 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6574 if (r->default_datatype) {
6575 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6576 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6577 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6578 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6579 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6580 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));
6582 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6583 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6586 if (r->dependent_files) {
6587 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6588 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6589 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6592 if (r->previous_names) {
6593 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6594 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6595 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6598 if (r->manufacturer_name) {
6599 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6600 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6601 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6602 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6603 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6604 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));
6606 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6607 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6610 if (r->manufacturer_url) {
6611 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6612 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6613 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6614 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6615 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6616 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));
6618 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6619 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6622 if (r->hardware_id) {
6623 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6624 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6625 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6626 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6627 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6628 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));
6630 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6631 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6635 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6636 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6637 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6638 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6639 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6640 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));
6642 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6643 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6646 if (r->print_processor) {
6647 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6648 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6649 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6650 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6651 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6652 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
6654 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6655 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6658 if (r->vendor_setup) {
6659 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
6660 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
6661 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
6662 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
6663 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
6664 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
6666 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
6667 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
6668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
6670 if (r->color_profiles) {
6671 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
6672 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
6673 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
6677 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6678 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
6679 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
6680 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
6681 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
6682 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
6684 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
6685 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
6686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
6688 if (r->core_driver_dependencies) {
6689 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
6690 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
6691 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
6695 return NDR_ERR_SUCCESS;
6698 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
6700 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
6702 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6703 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6705 if (r->driver_name) {
6706 ndr_print_string(ndr, "driver_name", r->driver_name);
6709 ndr_print_ptr(ndr, "architecture", r->architecture);
6711 if (r->architecture) {
6712 ndr_print_string(ndr, "architecture", r->architecture);
6715 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6717 if (r->driver_path) {
6718 ndr_print_string(ndr, "driver_path", r->driver_path);
6721 ndr_print_ptr(ndr, "data_file", r->data_file);
6724 ndr_print_string(ndr, "data_file", r->data_file);
6727 ndr_print_ptr(ndr, "config_file", r->config_file);
6729 if (r->config_file) {
6730 ndr_print_string(ndr, "config_file", r->config_file);
6733 ndr_print_ptr(ndr, "help_file", r->help_file);
6736 ndr_print_string(ndr, "help_file", r->help_file);
6739 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6741 if (r->monitor_name) {
6742 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6745 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6747 if (r->default_datatype) {
6748 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6751 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);
6752 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6754 if (r->dependent_files) {
6755 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6758 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);
6759 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6761 if (r->previous_names) {
6762 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6765 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6766 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6767 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6769 if (r->manufacturer_name) {
6770 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6773 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6775 if (r->manufacturer_url) {
6776 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6779 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6781 if (r->hardware_id) {
6782 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6785 ndr_print_ptr(ndr, "provider", r->provider);
6788 ndr_print_string(ndr, "provider", r->provider);
6791 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6793 if (r->print_processor) {
6794 ndr_print_string(ndr, "print_processor", r->print_processor);
6797 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
6799 if (r->vendor_setup) {
6800 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
6803 ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
6804 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
6806 if (r->color_profiles) {
6807 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
6810 ndr_print_ptr(ndr, "inf_path", r->inf_path);
6813 ndr_print_string(ndr, "inf_path", r->inf_path);
6816 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
6817 ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
6818 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6820 if (r->core_driver_dependencies) {
6821 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6824 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
6825 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
6829 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
6831 if (ndr_flags & NDR_SCALARS) {
6832 int level = ndr_push_get_switch_value(ndr, r);
6833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6852 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6860 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6863 if (ndr_flags & NDR_BUFFERS) {
6864 int level = ndr_push_get_switch_value(ndr, r);
6868 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6874 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6880 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6886 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6892 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
6898 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6903 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6906 return NDR_ERR_SUCCESS;
6909 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
6913 TALLOC_CTX *_mem_save_info1_0;
6914 TALLOC_CTX *_mem_save_info2_0;
6915 TALLOC_CTX *_mem_save_info3_0;
6916 TALLOC_CTX *_mem_save_info4_0;
6917 TALLOC_CTX *_mem_save_info6_0;
6918 TALLOC_CTX *_mem_save_info8_0;
6919 level = ndr_pull_get_switch_value(ndr, r);
6920 if (ndr_flags & NDR_SCALARS) {
6921 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6922 if (_level != level) {
6923 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6927 uint32_t _ptr_info1;
6928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6930 NDR_PULL_ALLOC(ndr, r->info1);
6937 uint32_t _ptr_info2;
6938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6940 NDR_PULL_ALLOC(ndr, r->info2);
6947 uint32_t _ptr_info3;
6948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6950 NDR_PULL_ALLOC(ndr, r->info3);
6957 uint32_t _ptr_info4;
6958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6960 NDR_PULL_ALLOC(ndr, r->info4);
6967 uint32_t _ptr_info6;
6968 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
6970 NDR_PULL_ALLOC(ndr, r->info6);
6977 uint32_t _ptr_info8;
6978 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
6980 NDR_PULL_ALLOC(ndr, r->info8);
6987 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6990 if (ndr_flags & NDR_BUFFERS) {
6994 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6995 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6996 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7003 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7004 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7005 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7012 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7013 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7014 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
7015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7021 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7022 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7023 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7030 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7031 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7032 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
7033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7039 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7040 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7041 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7047 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7050 return NDR_ERR_SUCCESS;
7053 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
7056 level = ndr_print_get_switch_value(ndr, r);
7057 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
7060 ndr_print_ptr(ndr, "info1", r->info1);
7063 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
7069 ndr_print_ptr(ndr, "info2", r->info2);
7072 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
7078 ndr_print_ptr(ndr, "info3", r->info3);
7081 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
7087 ndr_print_ptr(ndr, "info4", r->info4);
7090 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
7096 ndr_print_ptr(ndr, "info6", r->info6);
7099 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
7105 ndr_print_ptr(ndr, "info8", r->info8);
7108 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
7114 ndr_print_bad_level(ndr, name, level);
7118 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
7120 if (ndr_flags & NDR_SCALARS) {
7121 NDR_CHECK(ndr_push_align(ndr, 4));
7122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7123 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7124 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7126 if (ndr_flags & NDR_BUFFERS) {
7127 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7129 return NDR_ERR_SUCCESS;
7132 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
7134 if (ndr_flags & NDR_SCALARS) {
7135 NDR_CHECK(ndr_pull_align(ndr, 4));
7136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7137 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7138 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7140 if (ndr_flags & NDR_BUFFERS) {
7141 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7143 return NDR_ERR_SUCCESS;
7146 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
7148 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
7150 ndr_print_uint32(ndr, "level", r->level);
7151 ndr_print_set_switch_value(ndr, &r->info, r->level);
7152 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
7156 static enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
7158 if (ndr_flags & NDR_SCALARS) {
7159 NDR_CHECK(ndr_push_align(ndr, 4));
7161 uint32_t _flags_save_string = ndr->flags;
7162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7163 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7164 ndr->flags = _flags_save_string;
7167 if (ndr_flags & NDR_BUFFERS) {
7169 uint32_t _flags_save_string = ndr->flags;
7170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7171 if (r->driver_name) {
7172 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7173 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7175 ndr->flags = _flags_save_string;
7178 return NDR_ERR_SUCCESS;
7181 static enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
7183 uint32_t _ptr_driver_name;
7184 TALLOC_CTX *_mem_save_driver_name_0;
7185 if (ndr_flags & NDR_SCALARS) {
7186 NDR_CHECK(ndr_pull_align(ndr, 4));
7188 uint32_t _flags_save_string = ndr->flags;
7189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7191 if (_ptr_driver_name) {
7192 NDR_PULL_ALLOC(ndr, r->driver_name);
7193 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7195 r->driver_name = NULL;
7197 ndr->flags = _flags_save_string;
7200 if (ndr_flags & NDR_BUFFERS) {
7202 uint32_t _flags_save_string = ndr->flags;
7203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7204 if (r->driver_name) {
7205 uint32_t _relative_save_offset;
7206 _relative_save_offset = ndr->offset;
7207 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7208 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7209 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7210 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7212 ndr->offset = _relative_save_offset;
7214 ndr->flags = _flags_save_string;
7217 return NDR_ERR_SUCCESS;
7220 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
7222 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
7224 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7226 if (r->driver_name) {
7227 ndr_print_string(ndr, "driver_name", r->driver_name);
7233 static enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
7235 if (ndr_flags & NDR_SCALARS) {
7236 NDR_CHECK(ndr_push_align(ndr, 4));
7237 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7239 uint32_t _flags_save_string = ndr->flags;
7240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7242 ndr->flags = _flags_save_string;
7245 uint32_t _flags_save_string = ndr->flags;
7246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7248 ndr->flags = _flags_save_string;
7251 uint32_t _flags_save_string = ndr->flags;
7252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7253 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7254 ndr->flags = _flags_save_string;
7257 uint32_t _flags_save_string = ndr->flags;
7258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7260 ndr->flags = _flags_save_string;
7263 uint32_t _flags_save_string = ndr->flags;
7264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7265 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7266 ndr->flags = _flags_save_string;
7269 if (ndr_flags & NDR_BUFFERS) {
7271 uint32_t _flags_save_string = ndr->flags;
7272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7273 if (r->driver_name) {
7274 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7275 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, 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 if (r->architecture) {
7283 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7284 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7286 ndr->flags = _flags_save_string;
7289 uint32_t _flags_save_string = ndr->flags;
7290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7291 if (r->driver_path) {
7292 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7293 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7295 ndr->flags = _flags_save_string;
7298 uint32_t _flags_save_string = ndr->flags;
7299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7301 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7302 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7304 ndr->flags = _flags_save_string;
7307 uint32_t _flags_save_string = ndr->flags;
7308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7309 if (r->config_file) {
7310 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7311 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7313 ndr->flags = _flags_save_string;
7316 return NDR_ERR_SUCCESS;
7319 static enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
7321 uint32_t _ptr_driver_name;
7322 TALLOC_CTX *_mem_save_driver_name_0;
7323 uint32_t _ptr_architecture;
7324 TALLOC_CTX *_mem_save_architecture_0;
7325 uint32_t _ptr_driver_path;
7326 TALLOC_CTX *_mem_save_driver_path_0;
7327 uint32_t _ptr_data_file;
7328 TALLOC_CTX *_mem_save_data_file_0;
7329 uint32_t _ptr_config_file;
7330 TALLOC_CTX *_mem_save_config_file_0;
7331 if (ndr_flags & NDR_SCALARS) {
7332 NDR_CHECK(ndr_pull_align(ndr, 4));
7333 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7335 uint32_t _flags_save_string = ndr->flags;
7336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7337 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7338 if (_ptr_driver_name) {
7339 NDR_PULL_ALLOC(ndr, r->driver_name);
7340 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7342 r->driver_name = NULL;
7344 ndr->flags = _flags_save_string;
7347 uint32_t _flags_save_string = ndr->flags;
7348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7350 if (_ptr_architecture) {
7351 NDR_PULL_ALLOC(ndr, r->architecture);
7352 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7354 r->architecture = NULL;
7356 ndr->flags = _flags_save_string;
7359 uint32_t _flags_save_string = ndr->flags;
7360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7362 if (_ptr_driver_path) {
7363 NDR_PULL_ALLOC(ndr, r->driver_path);
7364 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7366 r->driver_path = NULL;
7368 ndr->flags = _flags_save_string;
7371 uint32_t _flags_save_string = ndr->flags;
7372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7374 if (_ptr_data_file) {
7375 NDR_PULL_ALLOC(ndr, r->data_file);
7376 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7378 r->data_file = NULL;
7380 ndr->flags = _flags_save_string;
7383 uint32_t _flags_save_string = ndr->flags;
7384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7386 if (_ptr_config_file) {
7387 NDR_PULL_ALLOC(ndr, r->config_file);
7388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7390 r->config_file = NULL;
7392 ndr->flags = _flags_save_string;
7395 if (ndr_flags & NDR_BUFFERS) {
7397 uint32_t _flags_save_string = ndr->flags;
7398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7399 if (r->driver_name) {
7400 uint32_t _relative_save_offset;
7401 _relative_save_offset = ndr->offset;
7402 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7403 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7404 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7405 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7407 ndr->offset = _relative_save_offset;
7409 ndr->flags = _flags_save_string;
7412 uint32_t _flags_save_string = ndr->flags;
7413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7414 if (r->architecture) {
7415 uint32_t _relative_save_offset;
7416 _relative_save_offset = ndr->offset;
7417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7418 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7419 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7420 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7422 ndr->offset = _relative_save_offset;
7424 ndr->flags = _flags_save_string;
7427 uint32_t _flags_save_string = ndr->flags;
7428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7429 if (r->driver_path) {
7430 uint32_t _relative_save_offset;
7431 _relative_save_offset = ndr->offset;
7432 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7433 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7434 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7435 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7437 ndr->offset = _relative_save_offset;
7439 ndr->flags = _flags_save_string;
7442 uint32_t _flags_save_string = ndr->flags;
7443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7445 uint32_t _relative_save_offset;
7446 _relative_save_offset = ndr->offset;
7447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7448 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7449 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7452 ndr->offset = _relative_save_offset;
7454 ndr->flags = _flags_save_string;
7457 uint32_t _flags_save_string = ndr->flags;
7458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7459 if (r->config_file) {
7460 uint32_t _relative_save_offset;
7461 _relative_save_offset = ndr->offset;
7462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7463 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7464 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7467 ndr->offset = _relative_save_offset;
7469 ndr->flags = _flags_save_string;
7472 return NDR_ERR_SUCCESS;
7475 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
7477 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
7479 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7480 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7482 if (r->driver_name) {
7483 ndr_print_string(ndr, "driver_name", r->driver_name);
7486 ndr_print_ptr(ndr, "architecture", r->architecture);
7488 if (r->architecture) {
7489 ndr_print_string(ndr, "architecture", r->architecture);
7492 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7494 if (r->driver_path) {
7495 ndr_print_string(ndr, "driver_path", r->driver_path);
7498 ndr_print_ptr(ndr, "data_file", r->data_file);
7501 ndr_print_string(ndr, "data_file", r->data_file);
7504 ndr_print_ptr(ndr, "config_file", r->config_file);
7506 if (r->config_file) {
7507 ndr_print_string(ndr, "config_file", r->config_file);
7513 static enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
7515 if (ndr_flags & NDR_SCALARS) {
7516 NDR_CHECK(ndr_push_align(ndr, 4));
7517 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7519 uint32_t _flags_save_string = ndr->flags;
7520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7521 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7522 ndr->flags = _flags_save_string;
7525 uint32_t _flags_save_string = ndr->flags;
7526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7527 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7528 ndr->flags = _flags_save_string;
7531 uint32_t _flags_save_string = ndr->flags;
7532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7533 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7534 ndr->flags = _flags_save_string;
7537 uint32_t _flags_save_string = ndr->flags;
7538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7539 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7540 ndr->flags = _flags_save_string;
7543 uint32_t _flags_save_string = ndr->flags;
7544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7545 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7546 ndr->flags = _flags_save_string;
7549 uint32_t _flags_save_string = ndr->flags;
7550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7551 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
7552 ndr->flags = _flags_save_string;
7555 uint32_t _flags_save_string_array = ndr->flags;
7556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7557 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
7558 ndr->flags = _flags_save_string_array;
7561 uint32_t _flags_save_string = ndr->flags;
7562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7564 ndr->flags = _flags_save_string;
7567 uint32_t _flags_save_string = ndr->flags;
7568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
7570 ndr->flags = _flags_save_string;
7573 if (ndr_flags & NDR_BUFFERS) {
7575 uint32_t _flags_save_string = ndr->flags;
7576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7577 if (r->driver_name) {
7578 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7581 ndr->flags = _flags_save_string;
7584 uint32_t _flags_save_string = ndr->flags;
7585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7586 if (r->architecture) {
7587 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7588 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7590 ndr->flags = _flags_save_string;
7593 uint32_t _flags_save_string = ndr->flags;
7594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7595 if (r->driver_path) {
7596 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7597 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7599 ndr->flags = _flags_save_string;
7602 uint32_t _flags_save_string = ndr->flags;
7603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7605 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7606 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7608 ndr->flags = _flags_save_string;
7611 uint32_t _flags_save_string = ndr->flags;
7612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7613 if (r->config_file) {
7614 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7617 ndr->flags = _flags_save_string;
7620 uint32_t _flags_save_string = ndr->flags;
7621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7623 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
7624 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
7626 ndr->flags = _flags_save_string;
7629 uint32_t _flags_save_string_array = ndr->flags;
7630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7631 if (r->dependent_files) {
7632 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
7633 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
7635 ndr->flags = _flags_save_string_array;
7638 uint32_t _flags_save_string = ndr->flags;
7639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7640 if (r->monitor_name) {
7641 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7642 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7644 ndr->flags = _flags_save_string;
7647 uint32_t _flags_save_string = ndr->flags;
7648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7649 if (r->default_datatype) {
7650 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
7651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
7653 ndr->flags = _flags_save_string;
7656 return NDR_ERR_SUCCESS;
7659 static enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
7661 uint32_t _ptr_driver_name;
7662 TALLOC_CTX *_mem_save_driver_name_0;
7663 uint32_t _ptr_architecture;
7664 TALLOC_CTX *_mem_save_architecture_0;
7665 uint32_t _ptr_driver_path;
7666 TALLOC_CTX *_mem_save_driver_path_0;
7667 uint32_t _ptr_data_file;
7668 TALLOC_CTX *_mem_save_data_file_0;
7669 uint32_t _ptr_config_file;
7670 TALLOC_CTX *_mem_save_config_file_0;
7671 uint32_t _ptr_help_file;
7672 TALLOC_CTX *_mem_save_help_file_0;
7673 uint32_t _ptr_dependent_files;
7674 TALLOC_CTX *_mem_save_dependent_files_0;
7675 uint32_t _ptr_monitor_name;
7676 TALLOC_CTX *_mem_save_monitor_name_0;
7677 uint32_t _ptr_default_datatype;
7678 TALLOC_CTX *_mem_save_default_datatype_0;
7679 if (ndr_flags & NDR_SCALARS) {
7680 NDR_CHECK(ndr_pull_align(ndr, 4));
7681 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7683 uint32_t _flags_save_string = ndr->flags;
7684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7686 if (_ptr_driver_name) {
7687 NDR_PULL_ALLOC(ndr, r->driver_name);
7688 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7690 r->driver_name = NULL;
7692 ndr->flags = _flags_save_string;
7695 uint32_t _flags_save_string = ndr->flags;
7696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7697 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7698 if (_ptr_architecture) {
7699 NDR_PULL_ALLOC(ndr, r->architecture);
7700 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7702 r->architecture = NULL;
7704 ndr->flags = _flags_save_string;
7707 uint32_t _flags_save_string = ndr->flags;
7708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7710 if (_ptr_driver_path) {
7711 NDR_PULL_ALLOC(ndr, r->driver_path);
7712 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7714 r->driver_path = NULL;
7716 ndr->flags = _flags_save_string;
7719 uint32_t _flags_save_string = ndr->flags;
7720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7722 if (_ptr_data_file) {
7723 NDR_PULL_ALLOC(ndr, r->data_file);
7724 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7726 r->data_file = NULL;
7728 ndr->flags = _flags_save_string;
7731 uint32_t _flags_save_string = ndr->flags;
7732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7733 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7734 if (_ptr_config_file) {
7735 NDR_PULL_ALLOC(ndr, r->config_file);
7736 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7738 r->config_file = NULL;
7740 ndr->flags = _flags_save_string;
7743 uint32_t _flags_save_string = ndr->flags;
7744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7745 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7746 if (_ptr_help_file) {
7747 NDR_PULL_ALLOC(ndr, r->help_file);
7748 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7750 r->help_file = NULL;
7752 ndr->flags = _flags_save_string;
7755 uint32_t _flags_save_string_array = ndr->flags;
7756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7757 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7758 if (_ptr_dependent_files) {
7759 NDR_PULL_ALLOC(ndr, r->dependent_files);
7760 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7762 r->dependent_files = NULL;
7764 ndr->flags = _flags_save_string_array;
7767 uint32_t _flags_save_string = ndr->flags;
7768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7770 if (_ptr_monitor_name) {
7771 NDR_PULL_ALLOC(ndr, r->monitor_name);
7772 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7774 r->monitor_name = NULL;
7776 ndr->flags = _flags_save_string;
7779 uint32_t _flags_save_string = ndr->flags;
7780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7782 if (_ptr_default_datatype) {
7783 NDR_PULL_ALLOC(ndr, r->default_datatype);
7784 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7786 r->default_datatype = NULL;
7788 ndr->flags = _flags_save_string;
7791 if (ndr_flags & NDR_BUFFERS) {
7793 uint32_t _flags_save_string = ndr->flags;
7794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7795 if (r->driver_name) {
7796 uint32_t _relative_save_offset;
7797 _relative_save_offset = ndr->offset;
7798 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7799 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7800 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7801 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7803 ndr->offset = _relative_save_offset;
7805 ndr->flags = _flags_save_string;
7808 uint32_t _flags_save_string = ndr->flags;
7809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7810 if (r->architecture) {
7811 uint32_t _relative_save_offset;
7812 _relative_save_offset = ndr->offset;
7813 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7814 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7815 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7816 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7818 ndr->offset = _relative_save_offset;
7820 ndr->flags = _flags_save_string;
7823 uint32_t _flags_save_string = ndr->flags;
7824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7825 if (r->driver_path) {
7826 uint32_t _relative_save_offset;
7827 _relative_save_offset = ndr->offset;
7828 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7829 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7830 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7831 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7833 ndr->offset = _relative_save_offset;
7835 ndr->flags = _flags_save_string;
7838 uint32_t _flags_save_string = ndr->flags;
7839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7841 uint32_t _relative_save_offset;
7842 _relative_save_offset = ndr->offset;
7843 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7844 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7845 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7846 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7848 ndr->offset = _relative_save_offset;
7850 ndr->flags = _flags_save_string;
7853 uint32_t _flags_save_string = ndr->flags;
7854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7855 if (r->config_file) {
7856 uint32_t _relative_save_offset;
7857 _relative_save_offset = ndr->offset;
7858 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7859 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7860 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7861 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7863 ndr->offset = _relative_save_offset;
7865 ndr->flags = _flags_save_string;
7868 uint32_t _flags_save_string = ndr->flags;
7869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7871 uint32_t _relative_save_offset;
7872 _relative_save_offset = ndr->offset;
7873 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7874 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7875 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7876 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7878 ndr->offset = _relative_save_offset;
7880 ndr->flags = _flags_save_string;
7883 uint32_t _flags_save_string_array = ndr->flags;
7884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7885 if (r->dependent_files) {
7886 uint32_t _relative_save_offset;
7887 _relative_save_offset = ndr->offset;
7888 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7889 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7890 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7891 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7893 ndr->offset = _relative_save_offset;
7895 ndr->flags = _flags_save_string_array;
7898 uint32_t _flags_save_string = ndr->flags;
7899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7900 if (r->monitor_name) {
7901 uint32_t _relative_save_offset;
7902 _relative_save_offset = ndr->offset;
7903 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7904 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7905 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7906 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7908 ndr->offset = _relative_save_offset;
7910 ndr->flags = _flags_save_string;
7913 uint32_t _flags_save_string = ndr->flags;
7914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7915 if (r->default_datatype) {
7916 uint32_t _relative_save_offset;
7917 _relative_save_offset = ndr->offset;
7918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7919 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7920 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7923 ndr->offset = _relative_save_offset;
7925 ndr->flags = _flags_save_string;
7928 return NDR_ERR_SUCCESS;
7931 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
7933 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
7935 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7936 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7938 if (r->driver_name) {
7939 ndr_print_string(ndr, "driver_name", r->driver_name);
7942 ndr_print_ptr(ndr, "architecture", r->architecture);
7944 if (r->architecture) {
7945 ndr_print_string(ndr, "architecture", r->architecture);
7948 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7950 if (r->driver_path) {
7951 ndr_print_string(ndr, "driver_path", r->driver_path);
7954 ndr_print_ptr(ndr, "data_file", r->data_file);
7957 ndr_print_string(ndr, "data_file", r->data_file);
7960 ndr_print_ptr(ndr, "config_file", r->config_file);
7962 if (r->config_file) {
7963 ndr_print_string(ndr, "config_file", r->config_file);
7966 ndr_print_ptr(ndr, "help_file", r->help_file);
7969 ndr_print_string(ndr, "help_file", r->help_file);
7972 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7974 if (r->dependent_files) {
7975 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7978 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7980 if (r->monitor_name) {
7981 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7984 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7986 if (r->default_datatype) {
7987 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7993 static enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
7995 if (ndr_flags & NDR_SCALARS) {
7996 NDR_CHECK(ndr_push_align(ndr, 4));
7997 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7999 uint32_t _flags_save_string = ndr->flags;
8000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8001 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8002 ndr->flags = _flags_save_string;
8005 uint32_t _flags_save_string = ndr->flags;
8006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8007 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8008 ndr->flags = _flags_save_string;
8011 uint32_t _flags_save_string = ndr->flags;
8012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8013 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8014 ndr->flags = _flags_save_string;
8017 uint32_t _flags_save_string = ndr->flags;
8018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8019 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8020 ndr->flags = _flags_save_string;
8023 uint32_t _flags_save_string = ndr->flags;
8024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8025 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8026 ndr->flags = _flags_save_string;
8029 uint32_t _flags_save_string = ndr->flags;
8030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8031 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8032 ndr->flags = _flags_save_string;
8035 uint32_t _flags_save_string_array = ndr->flags;
8036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8037 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8038 ndr->flags = _flags_save_string_array;
8041 uint32_t _flags_save_string = ndr->flags;
8042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8043 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8044 ndr->flags = _flags_save_string;
8047 uint32_t _flags_save_string = ndr->flags;
8048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8049 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8050 ndr->flags = _flags_save_string;
8053 uint32_t _flags_save_string_array = ndr->flags;
8054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8055 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8056 ndr->flags = _flags_save_string_array;
8059 if (ndr_flags & NDR_BUFFERS) {
8061 uint32_t _flags_save_string = ndr->flags;
8062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8063 if (r->driver_name) {
8064 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8065 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8067 ndr->flags = _flags_save_string;
8070 uint32_t _flags_save_string = ndr->flags;
8071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8072 if (r->architecture) {
8073 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8076 ndr->flags = _flags_save_string;
8079 uint32_t _flags_save_string = ndr->flags;
8080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8081 if (r->driver_path) {
8082 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8083 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8085 ndr->flags = _flags_save_string;
8088 uint32_t _flags_save_string = ndr->flags;
8089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8091 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8092 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8094 ndr->flags = _flags_save_string;
8097 uint32_t _flags_save_string = ndr->flags;
8098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8099 if (r->config_file) {
8100 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8101 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8103 ndr->flags = _flags_save_string;
8106 uint32_t _flags_save_string = ndr->flags;
8107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8109 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8110 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8112 ndr->flags = _flags_save_string;
8115 uint32_t _flags_save_string_array = ndr->flags;
8116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8117 if (r->dependent_files) {
8118 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8119 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8121 ndr->flags = _flags_save_string_array;
8124 uint32_t _flags_save_string = ndr->flags;
8125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8126 if (r->monitor_name) {
8127 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8128 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8130 ndr->flags = _flags_save_string;
8133 uint32_t _flags_save_string = ndr->flags;
8134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8135 if (r->default_datatype) {
8136 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8137 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8139 ndr->flags = _flags_save_string;
8142 uint32_t _flags_save_string_array = ndr->flags;
8143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8144 if (r->previous_names) {
8145 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8146 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8148 ndr->flags = _flags_save_string_array;
8151 return NDR_ERR_SUCCESS;
8154 static enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
8156 uint32_t _ptr_driver_name;
8157 TALLOC_CTX *_mem_save_driver_name_0;
8158 uint32_t _ptr_architecture;
8159 TALLOC_CTX *_mem_save_architecture_0;
8160 uint32_t _ptr_driver_path;
8161 TALLOC_CTX *_mem_save_driver_path_0;
8162 uint32_t _ptr_data_file;
8163 TALLOC_CTX *_mem_save_data_file_0;
8164 uint32_t _ptr_config_file;
8165 TALLOC_CTX *_mem_save_config_file_0;
8166 uint32_t _ptr_help_file;
8167 TALLOC_CTX *_mem_save_help_file_0;
8168 uint32_t _ptr_dependent_files;
8169 TALLOC_CTX *_mem_save_dependent_files_0;
8170 uint32_t _ptr_monitor_name;
8171 TALLOC_CTX *_mem_save_monitor_name_0;
8172 uint32_t _ptr_default_datatype;
8173 TALLOC_CTX *_mem_save_default_datatype_0;
8174 uint32_t _ptr_previous_names;
8175 TALLOC_CTX *_mem_save_previous_names_0;
8176 if (ndr_flags & NDR_SCALARS) {
8177 NDR_CHECK(ndr_pull_align(ndr, 4));
8178 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8180 uint32_t _flags_save_string = ndr->flags;
8181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8182 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8183 if (_ptr_driver_name) {
8184 NDR_PULL_ALLOC(ndr, r->driver_name);
8185 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8187 r->driver_name = NULL;
8189 ndr->flags = _flags_save_string;
8192 uint32_t _flags_save_string = ndr->flags;
8193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8195 if (_ptr_architecture) {
8196 NDR_PULL_ALLOC(ndr, r->architecture);
8197 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8199 r->architecture = NULL;
8201 ndr->flags = _flags_save_string;
8204 uint32_t _flags_save_string = ndr->flags;
8205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8206 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8207 if (_ptr_driver_path) {
8208 NDR_PULL_ALLOC(ndr, r->driver_path);
8209 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8211 r->driver_path = NULL;
8213 ndr->flags = _flags_save_string;
8216 uint32_t _flags_save_string = ndr->flags;
8217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8218 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8219 if (_ptr_data_file) {
8220 NDR_PULL_ALLOC(ndr, r->data_file);
8221 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8223 r->data_file = NULL;
8225 ndr->flags = _flags_save_string;
8228 uint32_t _flags_save_string = ndr->flags;
8229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8231 if (_ptr_config_file) {
8232 NDR_PULL_ALLOC(ndr, r->config_file);
8233 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8235 r->config_file = NULL;
8237 ndr->flags = _flags_save_string;
8240 uint32_t _flags_save_string = ndr->flags;
8241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8243 if (_ptr_help_file) {
8244 NDR_PULL_ALLOC(ndr, r->help_file);
8245 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
8247 r->help_file = NULL;
8249 ndr->flags = _flags_save_string;
8252 uint32_t _flags_save_string_array = ndr->flags;
8253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8255 if (_ptr_dependent_files) {
8256 NDR_PULL_ALLOC(ndr, r->dependent_files);
8257 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
8259 r->dependent_files = NULL;
8261 ndr->flags = _flags_save_string_array;
8264 uint32_t _flags_save_string = ndr->flags;
8265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8267 if (_ptr_monitor_name) {
8268 NDR_PULL_ALLOC(ndr, r->monitor_name);
8269 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
8271 r->monitor_name = NULL;
8273 ndr->flags = _flags_save_string;
8276 uint32_t _flags_save_string = ndr->flags;
8277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8279 if (_ptr_default_datatype) {
8280 NDR_PULL_ALLOC(ndr, r->default_datatype);
8281 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
8283 r->default_datatype = NULL;
8285 ndr->flags = _flags_save_string;
8288 uint32_t _flags_save_string_array = ndr->flags;
8289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8291 if (_ptr_previous_names) {
8292 NDR_PULL_ALLOC(ndr, r->previous_names);
8293 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
8295 r->previous_names = NULL;
8297 ndr->flags = _flags_save_string_array;
8300 if (ndr_flags & NDR_BUFFERS) {
8302 uint32_t _flags_save_string = ndr->flags;
8303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8304 if (r->driver_name) {
8305 uint32_t _relative_save_offset;
8306 _relative_save_offset = ndr->offset;
8307 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8308 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8309 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8310 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8312 ndr->offset = _relative_save_offset;
8314 ndr->flags = _flags_save_string;
8317 uint32_t _flags_save_string = ndr->flags;
8318 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8319 if (r->architecture) {
8320 uint32_t _relative_save_offset;
8321 _relative_save_offset = ndr->offset;
8322 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8323 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8324 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8325 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8327 ndr->offset = _relative_save_offset;
8329 ndr->flags = _flags_save_string;
8332 uint32_t _flags_save_string = ndr->flags;
8333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8334 if (r->driver_path) {
8335 uint32_t _relative_save_offset;
8336 _relative_save_offset = ndr->offset;
8337 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8338 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8339 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8340 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8342 ndr->offset = _relative_save_offset;
8344 ndr->flags = _flags_save_string;
8347 uint32_t _flags_save_string = ndr->flags;
8348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8350 uint32_t _relative_save_offset;
8351 _relative_save_offset = ndr->offset;
8352 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8353 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8354 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8355 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8357 ndr->offset = _relative_save_offset;
8359 ndr->flags = _flags_save_string;
8362 uint32_t _flags_save_string = ndr->flags;
8363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8364 if (r->config_file) {
8365 uint32_t _relative_save_offset;
8366 _relative_save_offset = ndr->offset;
8367 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8368 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8369 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8370 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8372 ndr->offset = _relative_save_offset;
8374 ndr->flags = _flags_save_string;
8377 uint32_t _flags_save_string = ndr->flags;
8378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8380 uint32_t _relative_save_offset;
8381 _relative_save_offset = ndr->offset;
8382 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
8383 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8384 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8385 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
8386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8387 ndr->offset = _relative_save_offset;
8389 ndr->flags = _flags_save_string;
8392 uint32_t _flags_save_string_array = ndr->flags;
8393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8394 if (r->dependent_files) {
8395 uint32_t _relative_save_offset;
8396 _relative_save_offset = ndr->offset;
8397 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
8398 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8399 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8400 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
8401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8402 ndr->offset = _relative_save_offset;
8404 ndr->flags = _flags_save_string_array;
8407 uint32_t _flags_save_string = ndr->flags;
8408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8409 if (r->monitor_name) {
8410 uint32_t _relative_save_offset;
8411 _relative_save_offset = ndr->offset;
8412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
8413 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8414 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
8416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8417 ndr->offset = _relative_save_offset;
8419 ndr->flags = _flags_save_string;
8422 uint32_t _flags_save_string = ndr->flags;
8423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8424 if (r->default_datatype) {
8425 uint32_t _relative_save_offset;
8426 _relative_save_offset = ndr->offset;
8427 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
8428 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8429 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8430 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
8431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8432 ndr->offset = _relative_save_offset;
8434 ndr->flags = _flags_save_string;
8437 uint32_t _flags_save_string_array = ndr->flags;
8438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8439 if (r->previous_names) {
8440 uint32_t _relative_save_offset;
8441 _relative_save_offset = ndr->offset;
8442 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
8443 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8444 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8445 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
8446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8447 ndr->offset = _relative_save_offset;
8449 ndr->flags = _flags_save_string_array;
8452 return NDR_ERR_SUCCESS;
8455 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
8457 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
8459 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8460 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8462 if (r->driver_name) {
8463 ndr_print_string(ndr, "driver_name", r->driver_name);
8466 ndr_print_ptr(ndr, "architecture", r->architecture);
8468 if (r->architecture) {
8469 ndr_print_string(ndr, "architecture", r->architecture);
8472 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8474 if (r->driver_path) {
8475 ndr_print_string(ndr, "driver_path", r->driver_path);
8478 ndr_print_ptr(ndr, "data_file", r->data_file);
8481 ndr_print_string(ndr, "data_file", r->data_file);
8484 ndr_print_ptr(ndr, "config_file", r->config_file);
8486 if (r->config_file) {
8487 ndr_print_string(ndr, "config_file", r->config_file);
8490 ndr_print_ptr(ndr, "help_file", r->help_file);
8493 ndr_print_string(ndr, "help_file", r->help_file);
8496 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8498 if (r->dependent_files) {
8499 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
8502 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8504 if (r->monitor_name) {
8505 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8508 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8510 if (r->default_datatype) {
8511 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8514 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8516 if (r->previous_names) {
8517 ndr_print_string_array(ndr, "previous_names", r->previous_names);
8523 static enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
8525 if (ndr_flags & NDR_SCALARS) {
8526 NDR_CHECK(ndr_push_align(ndr, 4));
8527 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8529 uint32_t _flags_save_string = ndr->flags;
8530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8532 ndr->flags = _flags_save_string;
8535 uint32_t _flags_save_string = ndr->flags;
8536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8538 ndr->flags = _flags_save_string;
8541 uint32_t _flags_save_string = ndr->flags;
8542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8544 ndr->flags = _flags_save_string;
8547 uint32_t _flags_save_string = ndr->flags;
8548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8550 ndr->flags = _flags_save_string;
8553 uint32_t _flags_save_string = ndr->flags;
8554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8556 ndr->flags = _flags_save_string;
8558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
8559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
8560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
8562 if (ndr_flags & NDR_BUFFERS) {
8564 uint32_t _flags_save_string = ndr->flags;
8565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8566 if (r->driver_name) {
8567 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8568 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8570 ndr->flags = _flags_save_string;
8573 uint32_t _flags_save_string = ndr->flags;
8574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8575 if (r->architecture) {
8576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8579 ndr->flags = _flags_save_string;
8582 uint32_t _flags_save_string = ndr->flags;
8583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8584 if (r->driver_path) {
8585 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
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 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8597 ndr->flags = _flags_save_string;
8600 uint32_t _flags_save_string = ndr->flags;
8601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8602 if (r->config_file) {
8603 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8606 ndr->flags = _flags_save_string;
8609 return NDR_ERR_SUCCESS;
8612 static enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
8614 uint32_t _ptr_driver_name;
8615 TALLOC_CTX *_mem_save_driver_name_0;
8616 uint32_t _ptr_architecture;
8617 TALLOC_CTX *_mem_save_architecture_0;
8618 uint32_t _ptr_driver_path;
8619 TALLOC_CTX *_mem_save_driver_path_0;
8620 uint32_t _ptr_data_file;
8621 TALLOC_CTX *_mem_save_data_file_0;
8622 uint32_t _ptr_config_file;
8623 TALLOC_CTX *_mem_save_config_file_0;
8624 if (ndr_flags & NDR_SCALARS) {
8625 NDR_CHECK(ndr_pull_align(ndr, 4));
8626 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8628 uint32_t _flags_save_string = ndr->flags;
8629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8631 if (_ptr_driver_name) {
8632 NDR_PULL_ALLOC(ndr, r->driver_name);
8633 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8635 r->driver_name = NULL;
8637 ndr->flags = _flags_save_string;
8640 uint32_t _flags_save_string = ndr->flags;
8641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8643 if (_ptr_architecture) {
8644 NDR_PULL_ALLOC(ndr, r->architecture);
8645 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8647 r->architecture = NULL;
8649 ndr->flags = _flags_save_string;
8652 uint32_t _flags_save_string = ndr->flags;
8653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8654 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8655 if (_ptr_driver_path) {
8656 NDR_PULL_ALLOC(ndr, r->driver_path);
8657 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8659 r->driver_path = NULL;
8661 ndr->flags = _flags_save_string;
8664 uint32_t _flags_save_string = ndr->flags;
8665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8667 if (_ptr_data_file) {
8668 NDR_PULL_ALLOC(ndr, r->data_file);
8669 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8671 r->data_file = NULL;
8673 ndr->flags = _flags_save_string;
8676 uint32_t _flags_save_string = ndr->flags;
8677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8678 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8679 if (_ptr_config_file) {
8680 NDR_PULL_ALLOC(ndr, r->config_file);
8681 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8683 r->config_file = NULL;
8685 ndr->flags = _flags_save_string;
8687 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
8688 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
8689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
8691 if (ndr_flags & NDR_BUFFERS) {
8693 uint32_t _flags_save_string = ndr->flags;
8694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8695 if (r->driver_name) {
8696 uint32_t _relative_save_offset;
8697 _relative_save_offset = ndr->offset;
8698 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8699 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8700 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8701 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8703 ndr->offset = _relative_save_offset;
8705 ndr->flags = _flags_save_string;
8708 uint32_t _flags_save_string = ndr->flags;
8709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8710 if (r->architecture) {
8711 uint32_t _relative_save_offset;
8712 _relative_save_offset = ndr->offset;
8713 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8714 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8715 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8718 ndr->offset = _relative_save_offset;
8720 ndr->flags = _flags_save_string;
8723 uint32_t _flags_save_string = ndr->flags;
8724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8725 if (r->driver_path) {
8726 uint32_t _relative_save_offset;
8727 _relative_save_offset = ndr->offset;
8728 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8729 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8730 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8731 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8733 ndr->offset = _relative_save_offset;
8735 ndr->flags = _flags_save_string;
8738 uint32_t _flags_save_string = ndr->flags;
8739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8741 uint32_t _relative_save_offset;
8742 _relative_save_offset = ndr->offset;
8743 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8744 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8745 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8746 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8748 ndr->offset = _relative_save_offset;
8750 ndr->flags = _flags_save_string;
8753 uint32_t _flags_save_string = ndr->flags;
8754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8755 if (r->config_file) {
8756 uint32_t _relative_save_offset;
8757 _relative_save_offset = ndr->offset;
8758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8759 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8760 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8763 ndr->offset = _relative_save_offset;
8765 ndr->flags = _flags_save_string;
8768 return NDR_ERR_SUCCESS;
8771 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
8773 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
8775 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8776 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8778 if (r->driver_name) {
8779 ndr_print_string(ndr, "driver_name", r->driver_name);
8782 ndr_print_ptr(ndr, "architecture", r->architecture);
8784 if (r->architecture) {
8785 ndr_print_string(ndr, "architecture", r->architecture);
8788 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8790 if (r->driver_path) {
8791 ndr_print_string(ndr, "driver_path", r->driver_path);
8794 ndr_print_ptr(ndr, "data_file", r->data_file);
8797 ndr_print_string(ndr, "data_file", r->data_file);
8800 ndr_print_ptr(ndr, "config_file", r->config_file);
8802 if (r->config_file) {
8803 ndr_print_string(ndr, "config_file", r->config_file);
8806 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
8807 ndr_print_uint32(ndr, "config_version", r->config_version);
8808 ndr_print_uint32(ndr, "driver_version", r->driver_version);
8812 static enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
8814 if (ndr_flags & NDR_SCALARS) {
8815 NDR_CHECK(ndr_push_align(ndr, 8));
8816 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8818 uint32_t _flags_save_string = ndr->flags;
8819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8820 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8821 ndr->flags = _flags_save_string;
8824 uint32_t _flags_save_string = ndr->flags;
8825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8826 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8827 ndr->flags = _flags_save_string;
8830 uint32_t _flags_save_string = ndr->flags;
8831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8833 ndr->flags = _flags_save_string;
8836 uint32_t _flags_save_string = ndr->flags;
8837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8839 ndr->flags = _flags_save_string;
8842 uint32_t _flags_save_string = ndr->flags;
8843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8844 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8845 ndr->flags = _flags_save_string;
8848 uint32_t _flags_save_string = ndr->flags;
8849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8850 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8851 ndr->flags = _flags_save_string;
8854 uint32_t _flags_save_string_array = ndr->flags;
8855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8856 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8857 ndr->flags = _flags_save_string_array;
8860 uint32_t _flags_save_string = ndr->flags;
8861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8862 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8863 ndr->flags = _flags_save_string;
8866 uint32_t _flags_save_string = ndr->flags;
8867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8868 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8869 ndr->flags = _flags_save_string;
8872 uint32_t _flags_save_string_array = ndr->flags;
8873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8874 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8875 ndr->flags = _flags_save_string_array;
8877 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
8878 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8880 uint32_t _flags_save_string = ndr->flags;
8881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8882 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
8883 ndr->flags = _flags_save_string;
8886 uint32_t _flags_save_string = ndr->flags;
8887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8888 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
8889 ndr->flags = _flags_save_string;
8892 uint32_t _flags_save_string = ndr->flags;
8893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
8895 ndr->flags = _flags_save_string;
8898 uint32_t _flags_save_string = ndr->flags;
8899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8900 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
8901 ndr->flags = _flags_save_string;
8904 if (ndr_flags & NDR_BUFFERS) {
8906 uint32_t _flags_save_string = ndr->flags;
8907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8908 if (r->driver_name) {
8909 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8910 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8912 ndr->flags = _flags_save_string;
8915 uint32_t _flags_save_string = ndr->flags;
8916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8917 if (r->architecture) {
8918 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8919 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8921 ndr->flags = _flags_save_string;
8924 uint32_t _flags_save_string = ndr->flags;
8925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8926 if (r->driver_path) {
8927 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8928 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8930 ndr->flags = _flags_save_string;
8933 uint32_t _flags_save_string = ndr->flags;
8934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8936 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8937 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8939 ndr->flags = _flags_save_string;
8942 uint32_t _flags_save_string = ndr->flags;
8943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8944 if (r->config_file) {
8945 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8946 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8948 ndr->flags = _flags_save_string;
8951 uint32_t _flags_save_string = ndr->flags;
8952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8954 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8955 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8957 ndr->flags = _flags_save_string;
8960 uint32_t _flags_save_string_array = ndr->flags;
8961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8962 if (r->dependent_files) {
8963 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8964 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8966 ndr->flags = _flags_save_string_array;
8969 uint32_t _flags_save_string = ndr->flags;
8970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8971 if (r->monitor_name) {
8972 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8973 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8975 ndr->flags = _flags_save_string;
8978 uint32_t _flags_save_string = ndr->flags;
8979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8980 if (r->default_datatype) {
8981 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8982 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8984 ndr->flags = _flags_save_string;
8987 uint32_t _flags_save_string_array = ndr->flags;
8988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8989 if (r->previous_names) {
8990 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8991 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8993 ndr->flags = _flags_save_string_array;
8996 uint32_t _flags_save_string = ndr->flags;
8997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8998 if (r->manufacturer_name) {
8999 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9000 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9002 ndr->flags = _flags_save_string;
9005 uint32_t _flags_save_string = ndr->flags;
9006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9007 if (r->manufacturer_url) {
9008 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9009 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9011 ndr->flags = _flags_save_string;
9014 uint32_t _flags_save_string = ndr->flags;
9015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9016 if (r->hardware_id) {
9017 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9018 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9020 ndr->flags = _flags_save_string;
9023 uint32_t _flags_save_string = ndr->flags;
9024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9026 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9027 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9029 ndr->flags = _flags_save_string;
9032 return NDR_ERR_SUCCESS;
9035 static enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
9037 uint32_t _ptr_driver_name;
9038 TALLOC_CTX *_mem_save_driver_name_0;
9039 uint32_t _ptr_architecture;
9040 TALLOC_CTX *_mem_save_architecture_0;
9041 uint32_t _ptr_driver_path;
9042 TALLOC_CTX *_mem_save_driver_path_0;
9043 uint32_t _ptr_data_file;
9044 TALLOC_CTX *_mem_save_data_file_0;
9045 uint32_t _ptr_config_file;
9046 TALLOC_CTX *_mem_save_config_file_0;
9047 uint32_t _ptr_help_file;
9048 TALLOC_CTX *_mem_save_help_file_0;
9049 uint32_t _ptr_dependent_files;
9050 TALLOC_CTX *_mem_save_dependent_files_0;
9051 uint32_t _ptr_monitor_name;
9052 TALLOC_CTX *_mem_save_monitor_name_0;
9053 uint32_t _ptr_default_datatype;
9054 TALLOC_CTX *_mem_save_default_datatype_0;
9055 uint32_t _ptr_previous_names;
9056 TALLOC_CTX *_mem_save_previous_names_0;
9057 uint32_t _ptr_manufacturer_name;
9058 TALLOC_CTX *_mem_save_manufacturer_name_0;
9059 uint32_t _ptr_manufacturer_url;
9060 TALLOC_CTX *_mem_save_manufacturer_url_0;
9061 uint32_t _ptr_hardware_id;
9062 TALLOC_CTX *_mem_save_hardware_id_0;
9063 uint32_t _ptr_provider;
9064 TALLOC_CTX *_mem_save_provider_0;
9065 if (ndr_flags & NDR_SCALARS) {
9066 NDR_CHECK(ndr_pull_align(ndr, 8));
9067 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9069 uint32_t _flags_save_string = ndr->flags;
9070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9072 if (_ptr_driver_name) {
9073 NDR_PULL_ALLOC(ndr, r->driver_name);
9074 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9076 r->driver_name = NULL;
9078 ndr->flags = _flags_save_string;
9081 uint32_t _flags_save_string = ndr->flags;
9082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9084 if (_ptr_architecture) {
9085 NDR_PULL_ALLOC(ndr, r->architecture);
9086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9088 r->architecture = NULL;
9090 ndr->flags = _flags_save_string;
9093 uint32_t _flags_save_string = ndr->flags;
9094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9096 if (_ptr_driver_path) {
9097 NDR_PULL_ALLOC(ndr, r->driver_path);
9098 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9100 r->driver_path = NULL;
9102 ndr->flags = _flags_save_string;
9105 uint32_t _flags_save_string = ndr->flags;
9106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9108 if (_ptr_data_file) {
9109 NDR_PULL_ALLOC(ndr, r->data_file);
9110 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9112 r->data_file = NULL;
9114 ndr->flags = _flags_save_string;
9117 uint32_t _flags_save_string = ndr->flags;
9118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9120 if (_ptr_config_file) {
9121 NDR_PULL_ALLOC(ndr, r->config_file);
9122 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9124 r->config_file = NULL;
9126 ndr->flags = _flags_save_string;
9129 uint32_t _flags_save_string = ndr->flags;
9130 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9131 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9132 if (_ptr_help_file) {
9133 NDR_PULL_ALLOC(ndr, r->help_file);
9134 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9136 r->help_file = NULL;
9138 ndr->flags = _flags_save_string;
9141 uint32_t _flags_save_string_array = ndr->flags;
9142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9143 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9144 if (_ptr_dependent_files) {
9145 NDR_PULL_ALLOC(ndr, r->dependent_files);
9146 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9148 r->dependent_files = NULL;
9150 ndr->flags = _flags_save_string_array;
9153 uint32_t _flags_save_string = ndr->flags;
9154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9156 if (_ptr_monitor_name) {
9157 NDR_PULL_ALLOC(ndr, r->monitor_name);
9158 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9160 r->monitor_name = NULL;
9162 ndr->flags = _flags_save_string;
9165 uint32_t _flags_save_string = ndr->flags;
9166 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9168 if (_ptr_default_datatype) {
9169 NDR_PULL_ALLOC(ndr, r->default_datatype);
9170 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9172 r->default_datatype = NULL;
9174 ndr->flags = _flags_save_string;
9177 uint32_t _flags_save_string_array = ndr->flags;
9178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9180 if (_ptr_previous_names) {
9181 NDR_PULL_ALLOC(ndr, r->previous_names);
9182 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
9184 r->previous_names = NULL;
9186 ndr->flags = _flags_save_string_array;
9188 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
9189 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9191 uint32_t _flags_save_string = ndr->flags;
9192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9194 if (_ptr_manufacturer_name) {
9195 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9196 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
9198 r->manufacturer_name = NULL;
9200 ndr->flags = _flags_save_string;
9203 uint32_t _flags_save_string = ndr->flags;
9204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9206 if (_ptr_manufacturer_url) {
9207 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9208 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
9210 r->manufacturer_url = NULL;
9212 ndr->flags = _flags_save_string;
9215 uint32_t _flags_save_string = ndr->flags;
9216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9218 if (_ptr_hardware_id) {
9219 NDR_PULL_ALLOC(ndr, r->hardware_id);
9220 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
9222 r->hardware_id = NULL;
9224 ndr->flags = _flags_save_string;
9227 uint32_t _flags_save_string = ndr->flags;
9228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9230 if (_ptr_provider) {
9231 NDR_PULL_ALLOC(ndr, r->provider);
9232 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
9236 ndr->flags = _flags_save_string;
9239 if (ndr_flags & NDR_BUFFERS) {
9241 uint32_t _flags_save_string = ndr->flags;
9242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9243 if (r->driver_name) {
9244 uint32_t _relative_save_offset;
9245 _relative_save_offset = ndr->offset;
9246 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9247 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9248 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9249 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9251 ndr->offset = _relative_save_offset;
9253 ndr->flags = _flags_save_string;
9256 uint32_t _flags_save_string = ndr->flags;
9257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9258 if (r->architecture) {
9259 uint32_t _relative_save_offset;
9260 _relative_save_offset = ndr->offset;
9261 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
9262 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9263 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9264 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
9265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9266 ndr->offset = _relative_save_offset;
9268 ndr->flags = _flags_save_string;
9271 uint32_t _flags_save_string = ndr->flags;
9272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9273 if (r->driver_path) {
9274 uint32_t _relative_save_offset;
9275 _relative_save_offset = ndr->offset;
9276 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
9277 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9278 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9279 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
9280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9281 ndr->offset = _relative_save_offset;
9283 ndr->flags = _flags_save_string;
9286 uint32_t _flags_save_string = ndr->flags;
9287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9289 uint32_t _relative_save_offset;
9290 _relative_save_offset = ndr->offset;
9291 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
9292 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9293 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9294 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
9295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9296 ndr->offset = _relative_save_offset;
9298 ndr->flags = _flags_save_string;
9301 uint32_t _flags_save_string = ndr->flags;
9302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9303 if (r->config_file) {
9304 uint32_t _relative_save_offset;
9305 _relative_save_offset = ndr->offset;
9306 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
9307 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9308 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9309 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
9310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9311 ndr->offset = _relative_save_offset;
9313 ndr->flags = _flags_save_string;
9316 uint32_t _flags_save_string = ndr->flags;
9317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9319 uint32_t _relative_save_offset;
9320 _relative_save_offset = ndr->offset;
9321 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
9322 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9323 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9324 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
9325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9326 ndr->offset = _relative_save_offset;
9328 ndr->flags = _flags_save_string;
9331 uint32_t _flags_save_string_array = ndr->flags;
9332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9333 if (r->dependent_files) {
9334 uint32_t _relative_save_offset;
9335 _relative_save_offset = ndr->offset;
9336 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
9337 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9338 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9339 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
9340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9341 ndr->offset = _relative_save_offset;
9343 ndr->flags = _flags_save_string_array;
9346 uint32_t _flags_save_string = ndr->flags;
9347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9348 if (r->monitor_name) {
9349 uint32_t _relative_save_offset;
9350 _relative_save_offset = ndr->offset;
9351 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
9352 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9353 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9354 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
9355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9356 ndr->offset = _relative_save_offset;
9358 ndr->flags = _flags_save_string;
9361 uint32_t _flags_save_string = ndr->flags;
9362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9363 if (r->default_datatype) {
9364 uint32_t _relative_save_offset;
9365 _relative_save_offset = ndr->offset;
9366 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
9367 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9368 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9369 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
9370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9371 ndr->offset = _relative_save_offset;
9373 ndr->flags = _flags_save_string;
9376 uint32_t _flags_save_string_array = ndr->flags;
9377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9378 if (r->previous_names) {
9379 uint32_t _relative_save_offset;
9380 _relative_save_offset = ndr->offset;
9381 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
9382 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9383 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9384 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
9385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9386 ndr->offset = _relative_save_offset;
9388 ndr->flags = _flags_save_string_array;
9391 uint32_t _flags_save_string = ndr->flags;
9392 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9393 if (r->manufacturer_name) {
9394 uint32_t _relative_save_offset;
9395 _relative_save_offset = ndr->offset;
9396 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
9397 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9398 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9399 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
9400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9401 ndr->offset = _relative_save_offset;
9403 ndr->flags = _flags_save_string;
9406 uint32_t _flags_save_string = ndr->flags;
9407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9408 if (r->manufacturer_url) {
9409 uint32_t _relative_save_offset;
9410 _relative_save_offset = ndr->offset;
9411 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
9412 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9413 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9414 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
9415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9416 ndr->offset = _relative_save_offset;
9418 ndr->flags = _flags_save_string;
9421 uint32_t _flags_save_string = ndr->flags;
9422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9423 if (r->hardware_id) {
9424 uint32_t _relative_save_offset;
9425 _relative_save_offset = ndr->offset;
9426 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
9427 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9428 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9429 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
9430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9431 ndr->offset = _relative_save_offset;
9433 ndr->flags = _flags_save_string;
9436 uint32_t _flags_save_string = ndr->flags;
9437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9439 uint32_t _relative_save_offset;
9440 _relative_save_offset = ndr->offset;
9441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
9442 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9443 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
9445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9446 ndr->offset = _relative_save_offset;
9448 ndr->flags = _flags_save_string;
9451 return NDR_ERR_SUCCESS;
9454 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
9456 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
9458 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9459 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9461 if (r->driver_name) {
9462 ndr_print_string(ndr, "driver_name", r->driver_name);
9465 ndr_print_ptr(ndr, "architecture", r->architecture);
9467 if (r->architecture) {
9468 ndr_print_string(ndr, "architecture", r->architecture);
9471 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9473 if (r->driver_path) {
9474 ndr_print_string(ndr, "driver_path", r->driver_path);
9477 ndr_print_ptr(ndr, "data_file", r->data_file);
9480 ndr_print_string(ndr, "data_file", r->data_file);
9483 ndr_print_ptr(ndr, "config_file", r->config_file);
9485 if (r->config_file) {
9486 ndr_print_string(ndr, "config_file", r->config_file);
9489 ndr_print_ptr(ndr, "help_file", r->help_file);
9492 ndr_print_string(ndr, "help_file", r->help_file);
9495 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9497 if (r->dependent_files) {
9498 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
9501 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9503 if (r->monitor_name) {
9504 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9507 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9509 if (r->default_datatype) {
9510 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9513 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9515 if (r->previous_names) {
9516 ndr_print_string_array(ndr, "previous_names", r->previous_names);
9519 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
9520 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9521 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9523 if (r->manufacturer_name) {
9524 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9527 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9529 if (r->manufacturer_url) {
9530 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9533 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9535 if (r->hardware_id) {
9536 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9539 ndr_print_ptr(ndr, "provider", r->provider);
9542 ndr_print_string(ndr, "provider", r->provider);
9548 static enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
9550 if (ndr_flags & NDR_SCALARS) {
9551 NDR_CHECK(ndr_push_align(ndr, 8));
9552 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9554 uint32_t _flags_save_string = ndr->flags;
9555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9556 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9557 ndr->flags = _flags_save_string;
9560 uint32_t _flags_save_string = ndr->flags;
9561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9562 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9563 ndr->flags = _flags_save_string;
9566 uint32_t _flags_save_string = ndr->flags;
9567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9568 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9569 ndr->flags = _flags_save_string;
9572 uint32_t _flags_save_string = ndr->flags;
9573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9574 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9575 ndr->flags = _flags_save_string;
9578 uint32_t _flags_save_string = ndr->flags;
9579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9580 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9581 ndr->flags = _flags_save_string;
9584 uint32_t _flags_save_string = ndr->flags;
9585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9586 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
9587 ndr->flags = _flags_save_string;
9590 uint32_t _flags_save_string = ndr->flags;
9591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9592 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
9593 ndr->flags = _flags_save_string;
9596 uint32_t _flags_save_string = ndr->flags;
9597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9598 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
9599 ndr->flags = _flags_save_string;
9602 uint32_t _flags_save_string_array = ndr->flags;
9603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9604 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
9605 ndr->flags = _flags_save_string_array;
9608 uint32_t _flags_save_string_array = ndr->flags;
9609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9610 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
9611 ndr->flags = _flags_save_string_array;
9613 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
9614 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9616 uint32_t _flags_save_string = ndr->flags;
9617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9618 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
9619 ndr->flags = _flags_save_string;
9622 uint32_t _flags_save_string = ndr->flags;
9623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9624 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
9625 ndr->flags = _flags_save_string;
9628 uint32_t _flags_save_string = ndr->flags;
9629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9630 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
9631 ndr->flags = _flags_save_string;
9634 uint32_t _flags_save_string = ndr->flags;
9635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9636 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
9637 ndr->flags = _flags_save_string;
9640 uint32_t _flags_save_string = ndr->flags;
9641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9642 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
9643 ndr->flags = _flags_save_string;
9646 uint32_t _flags_save_string = ndr->flags;
9647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9648 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
9649 ndr->flags = _flags_save_string;
9652 uint32_t _flags_save_string_array = ndr->flags;
9653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9654 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
9655 ndr->flags = _flags_save_string_array;
9658 uint32_t _flags_save_string = ndr->flags;
9659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9660 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
9661 ndr->flags = _flags_save_string;
9663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9665 uint32_t _flags_save_string_array = ndr->flags;
9666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
9668 ndr->flags = _flags_save_string_array;
9670 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9671 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9673 if (ndr_flags & NDR_BUFFERS) {
9675 uint32_t _flags_save_string = ndr->flags;
9676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9677 if (r->driver_name) {
9678 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9679 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9681 ndr->flags = _flags_save_string;
9684 uint32_t _flags_save_string = ndr->flags;
9685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9686 if (r->architecture) {
9687 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9688 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9690 ndr->flags = _flags_save_string;
9693 uint32_t _flags_save_string = ndr->flags;
9694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9695 if (r->driver_path) {
9696 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9697 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9699 ndr->flags = _flags_save_string;
9702 uint32_t _flags_save_string = ndr->flags;
9703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9705 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9706 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9708 ndr->flags = _flags_save_string;
9711 uint32_t _flags_save_string = ndr->flags;
9712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9713 if (r->config_file) {
9714 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9715 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9717 ndr->flags = _flags_save_string;
9720 uint32_t _flags_save_string = ndr->flags;
9721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9723 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
9724 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
9726 ndr->flags = _flags_save_string;
9729 uint32_t _flags_save_string = ndr->flags;
9730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9731 if (r->monitor_name) {
9732 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
9733 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
9735 ndr->flags = _flags_save_string;
9738 uint32_t _flags_save_string = ndr->flags;
9739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9740 if (r->default_datatype) {
9741 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
9742 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
9744 ndr->flags = _flags_save_string;
9747 uint32_t _flags_save_string_array = ndr->flags;
9748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9749 if (r->dependent_files) {
9750 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
9751 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
9753 ndr->flags = _flags_save_string_array;
9756 uint32_t _flags_save_string_array = ndr->flags;
9757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9758 if (r->previous_names) {
9759 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
9760 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
9762 ndr->flags = _flags_save_string_array;
9765 uint32_t _flags_save_string = ndr->flags;
9766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9767 if (r->manufacturer_name) {
9768 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9771 ndr->flags = _flags_save_string;
9774 uint32_t _flags_save_string = ndr->flags;
9775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9776 if (r->manufacturer_url) {
9777 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9778 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9780 ndr->flags = _flags_save_string;
9783 uint32_t _flags_save_string = ndr->flags;
9784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9785 if (r->hardware_id) {
9786 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9787 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9789 ndr->flags = _flags_save_string;
9792 uint32_t _flags_save_string = ndr->flags;
9793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9795 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9796 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9798 ndr->flags = _flags_save_string;
9801 uint32_t _flags_save_string = ndr->flags;
9802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9803 if (r->print_processor) {
9804 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
9805 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
9807 ndr->flags = _flags_save_string;
9810 uint32_t _flags_save_string = ndr->flags;
9811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9812 if (r->vendor_setup) {
9813 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
9814 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
9816 ndr->flags = _flags_save_string;
9819 uint32_t _flags_save_string_array = ndr->flags;
9820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9821 if (r->color_profiles) {
9822 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
9823 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
9825 ndr->flags = _flags_save_string_array;
9828 uint32_t _flags_save_string = ndr->flags;
9829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9831 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
9832 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
9834 ndr->flags = _flags_save_string;
9837 uint32_t _flags_save_string_array = ndr->flags;
9838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9839 if (r->core_driver_dependencies) {
9840 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
9841 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
9843 ndr->flags = _flags_save_string_array;
9846 return NDR_ERR_SUCCESS;
9849 static enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
9851 uint32_t _ptr_driver_name;
9852 TALLOC_CTX *_mem_save_driver_name_0;
9853 uint32_t _ptr_architecture;
9854 TALLOC_CTX *_mem_save_architecture_0;
9855 uint32_t _ptr_driver_path;
9856 TALLOC_CTX *_mem_save_driver_path_0;
9857 uint32_t _ptr_data_file;
9858 TALLOC_CTX *_mem_save_data_file_0;
9859 uint32_t _ptr_config_file;
9860 TALLOC_CTX *_mem_save_config_file_0;
9861 uint32_t _ptr_help_file;
9862 TALLOC_CTX *_mem_save_help_file_0;
9863 uint32_t _ptr_monitor_name;
9864 TALLOC_CTX *_mem_save_monitor_name_0;
9865 uint32_t _ptr_default_datatype;
9866 TALLOC_CTX *_mem_save_default_datatype_0;
9867 uint32_t _ptr_dependent_files;
9868 TALLOC_CTX *_mem_save_dependent_files_0;
9869 uint32_t _ptr_previous_names;
9870 TALLOC_CTX *_mem_save_previous_names_0;
9871 uint32_t _ptr_manufacturer_name;
9872 TALLOC_CTX *_mem_save_manufacturer_name_0;
9873 uint32_t _ptr_manufacturer_url;
9874 TALLOC_CTX *_mem_save_manufacturer_url_0;
9875 uint32_t _ptr_hardware_id;
9876 TALLOC_CTX *_mem_save_hardware_id_0;
9877 uint32_t _ptr_provider;
9878 TALLOC_CTX *_mem_save_provider_0;
9879 uint32_t _ptr_print_processor;
9880 TALLOC_CTX *_mem_save_print_processor_0;
9881 uint32_t _ptr_vendor_setup;
9882 TALLOC_CTX *_mem_save_vendor_setup_0;
9883 uint32_t _ptr_color_profiles;
9884 TALLOC_CTX *_mem_save_color_profiles_0;
9885 uint32_t _ptr_inf_path;
9886 TALLOC_CTX *_mem_save_inf_path_0;
9887 uint32_t _ptr_core_driver_dependencies;
9888 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9889 if (ndr_flags & NDR_SCALARS) {
9890 NDR_CHECK(ndr_pull_align(ndr, 8));
9891 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9893 uint32_t _flags_save_string = ndr->flags;
9894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9896 if (_ptr_driver_name) {
9897 NDR_PULL_ALLOC(ndr, r->driver_name);
9898 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9900 r->driver_name = NULL;
9902 ndr->flags = _flags_save_string;
9905 uint32_t _flags_save_string = ndr->flags;
9906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9908 if (_ptr_architecture) {
9909 NDR_PULL_ALLOC(ndr, r->architecture);
9910 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9912 r->architecture = NULL;
9914 ndr->flags = _flags_save_string;
9917 uint32_t _flags_save_string = ndr->flags;
9918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9920 if (_ptr_driver_path) {
9921 NDR_PULL_ALLOC(ndr, r->driver_path);
9922 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9924 r->driver_path = NULL;
9926 ndr->flags = _flags_save_string;
9929 uint32_t _flags_save_string = ndr->flags;
9930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9932 if (_ptr_data_file) {
9933 NDR_PULL_ALLOC(ndr, r->data_file);
9934 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9936 r->data_file = NULL;
9938 ndr->flags = _flags_save_string;
9941 uint32_t _flags_save_string = ndr->flags;
9942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9944 if (_ptr_config_file) {
9945 NDR_PULL_ALLOC(ndr, r->config_file);
9946 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9948 r->config_file = NULL;
9950 ndr->flags = _flags_save_string;
9953 uint32_t _flags_save_string = ndr->flags;
9954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9956 if (_ptr_help_file) {
9957 NDR_PULL_ALLOC(ndr, r->help_file);
9958 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9960 r->help_file = NULL;
9962 ndr->flags = _flags_save_string;
9965 uint32_t _flags_save_string = ndr->flags;
9966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9968 if (_ptr_monitor_name) {
9969 NDR_PULL_ALLOC(ndr, r->monitor_name);
9970 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9972 r->monitor_name = NULL;
9974 ndr->flags = _flags_save_string;
9977 uint32_t _flags_save_string = ndr->flags;
9978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9979 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9980 if (_ptr_default_datatype) {
9981 NDR_PULL_ALLOC(ndr, r->default_datatype);
9982 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9984 r->default_datatype = NULL;
9986 ndr->flags = _flags_save_string;
9989 uint32_t _flags_save_string_array = ndr->flags;
9990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9992 if (_ptr_dependent_files) {
9993 NDR_PULL_ALLOC(ndr, r->dependent_files);
9994 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9996 r->dependent_files = NULL;
9998 ndr->flags = _flags_save_string_array;
10001 uint32_t _flags_save_string_array = ndr->flags;
10002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10003 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10004 if (_ptr_previous_names) {
10005 NDR_PULL_ALLOC(ndr, r->previous_names);
10006 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10008 r->previous_names = NULL;
10010 ndr->flags = _flags_save_string_array;
10012 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
10013 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10015 uint32_t _flags_save_string = ndr->flags;
10016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10017 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10018 if (_ptr_manufacturer_name) {
10019 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10020 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
10022 r->manufacturer_name = NULL;
10024 ndr->flags = _flags_save_string;
10027 uint32_t _flags_save_string = ndr->flags;
10028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10029 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10030 if (_ptr_manufacturer_url) {
10031 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10032 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
10034 r->manufacturer_url = NULL;
10036 ndr->flags = _flags_save_string;
10039 uint32_t _flags_save_string = ndr->flags;
10040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10042 if (_ptr_hardware_id) {
10043 NDR_PULL_ALLOC(ndr, r->hardware_id);
10044 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
10046 r->hardware_id = NULL;
10048 ndr->flags = _flags_save_string;
10051 uint32_t _flags_save_string = ndr->flags;
10052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10053 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10054 if (_ptr_provider) {
10055 NDR_PULL_ALLOC(ndr, r->provider);
10056 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
10058 r->provider = NULL;
10060 ndr->flags = _flags_save_string;
10063 uint32_t _flags_save_string = ndr->flags;
10064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10066 if (_ptr_print_processor) {
10067 NDR_PULL_ALLOC(ndr, r->print_processor);
10068 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
10070 r->print_processor = NULL;
10072 ndr->flags = _flags_save_string;
10075 uint32_t _flags_save_string = ndr->flags;
10076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10078 if (_ptr_vendor_setup) {
10079 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10080 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
10082 r->vendor_setup = NULL;
10084 ndr->flags = _flags_save_string;
10087 uint32_t _flags_save_string_array = ndr->flags;
10088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10089 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10090 if (_ptr_color_profiles) {
10091 NDR_PULL_ALLOC(ndr, r->color_profiles);
10092 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
10094 r->color_profiles = NULL;
10096 ndr->flags = _flags_save_string_array;
10099 uint32_t _flags_save_string = ndr->flags;
10100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10101 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10102 if (_ptr_inf_path) {
10103 NDR_PULL_ALLOC(ndr, r->inf_path);
10104 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
10106 r->inf_path = NULL;
10108 ndr->flags = _flags_save_string;
10110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10112 uint32_t _flags_save_string_array = ndr->flags;
10113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10115 if (_ptr_core_driver_dependencies) {
10116 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10117 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
10119 r->core_driver_dependencies = NULL;
10121 ndr->flags = _flags_save_string_array;
10123 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10124 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10126 if (ndr_flags & NDR_BUFFERS) {
10128 uint32_t _flags_save_string = ndr->flags;
10129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10130 if (r->driver_name) {
10131 uint32_t _relative_save_offset;
10132 _relative_save_offset = ndr->offset;
10133 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10134 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10135 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10136 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10138 ndr->offset = _relative_save_offset;
10140 ndr->flags = _flags_save_string;
10143 uint32_t _flags_save_string = ndr->flags;
10144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10145 if (r->architecture) {
10146 uint32_t _relative_save_offset;
10147 _relative_save_offset = ndr->offset;
10148 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10149 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10150 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10151 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10153 ndr->offset = _relative_save_offset;
10155 ndr->flags = _flags_save_string;
10158 uint32_t _flags_save_string = ndr->flags;
10159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10160 if (r->driver_path) {
10161 uint32_t _relative_save_offset;
10162 _relative_save_offset = ndr->offset;
10163 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10164 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10165 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10166 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10168 ndr->offset = _relative_save_offset;
10170 ndr->flags = _flags_save_string;
10173 uint32_t _flags_save_string = ndr->flags;
10174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10175 if (r->data_file) {
10176 uint32_t _relative_save_offset;
10177 _relative_save_offset = ndr->offset;
10178 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10179 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10180 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10181 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10183 ndr->offset = _relative_save_offset;
10185 ndr->flags = _flags_save_string;
10188 uint32_t _flags_save_string = ndr->flags;
10189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10190 if (r->config_file) {
10191 uint32_t _relative_save_offset;
10192 _relative_save_offset = ndr->offset;
10193 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10194 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10195 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10196 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10198 ndr->offset = _relative_save_offset;
10200 ndr->flags = _flags_save_string;
10203 uint32_t _flags_save_string = ndr->flags;
10204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10205 if (r->help_file) {
10206 uint32_t _relative_save_offset;
10207 _relative_save_offset = ndr->offset;
10208 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10209 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10210 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10211 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10213 ndr->offset = _relative_save_offset;
10215 ndr->flags = _flags_save_string;
10218 uint32_t _flags_save_string = ndr->flags;
10219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10220 if (r->monitor_name) {
10221 uint32_t _relative_save_offset;
10222 _relative_save_offset = ndr->offset;
10223 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10224 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10225 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10226 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10228 ndr->offset = _relative_save_offset;
10230 ndr->flags = _flags_save_string;
10233 uint32_t _flags_save_string = ndr->flags;
10234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10235 if (r->default_datatype) {
10236 uint32_t _relative_save_offset;
10237 _relative_save_offset = ndr->offset;
10238 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10239 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10240 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10241 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10243 ndr->offset = _relative_save_offset;
10245 ndr->flags = _flags_save_string;
10248 uint32_t _flags_save_string_array = ndr->flags;
10249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10250 if (r->dependent_files) {
10251 uint32_t _relative_save_offset;
10252 _relative_save_offset = ndr->offset;
10253 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10254 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10255 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10256 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10258 ndr->offset = _relative_save_offset;
10260 ndr->flags = _flags_save_string_array;
10263 uint32_t _flags_save_string_array = ndr->flags;
10264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10265 if (r->previous_names) {
10266 uint32_t _relative_save_offset;
10267 _relative_save_offset = ndr->offset;
10268 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
10269 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10270 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10271 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
10272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10273 ndr->offset = _relative_save_offset;
10275 ndr->flags = _flags_save_string_array;
10278 uint32_t _flags_save_string = ndr->flags;
10279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10280 if (r->manufacturer_name) {
10281 uint32_t _relative_save_offset;
10282 _relative_save_offset = ndr->offset;
10283 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
10284 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10285 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10286 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
10287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10288 ndr->offset = _relative_save_offset;
10290 ndr->flags = _flags_save_string;
10293 uint32_t _flags_save_string = ndr->flags;
10294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10295 if (r->manufacturer_url) {
10296 uint32_t _relative_save_offset;
10297 _relative_save_offset = ndr->offset;
10298 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
10299 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10300 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10301 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
10302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10303 ndr->offset = _relative_save_offset;
10305 ndr->flags = _flags_save_string;
10308 uint32_t _flags_save_string = ndr->flags;
10309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10310 if (r->hardware_id) {
10311 uint32_t _relative_save_offset;
10312 _relative_save_offset = ndr->offset;
10313 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
10314 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10315 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10316 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
10317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10318 ndr->offset = _relative_save_offset;
10320 ndr->flags = _flags_save_string;
10323 uint32_t _flags_save_string = ndr->flags;
10324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10326 uint32_t _relative_save_offset;
10327 _relative_save_offset = ndr->offset;
10328 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
10329 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10330 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10331 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
10332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10333 ndr->offset = _relative_save_offset;
10335 ndr->flags = _flags_save_string;
10338 uint32_t _flags_save_string = ndr->flags;
10339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10340 if (r->print_processor) {
10341 uint32_t _relative_save_offset;
10342 _relative_save_offset = ndr->offset;
10343 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
10344 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10345 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10346 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
10347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10348 ndr->offset = _relative_save_offset;
10350 ndr->flags = _flags_save_string;
10353 uint32_t _flags_save_string = ndr->flags;
10354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10355 if (r->vendor_setup) {
10356 uint32_t _relative_save_offset;
10357 _relative_save_offset = ndr->offset;
10358 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
10359 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10360 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10361 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
10362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10363 ndr->offset = _relative_save_offset;
10365 ndr->flags = _flags_save_string;
10368 uint32_t _flags_save_string_array = ndr->flags;
10369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10370 if (r->color_profiles) {
10371 uint32_t _relative_save_offset;
10372 _relative_save_offset = ndr->offset;
10373 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
10374 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10375 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10376 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
10377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10378 ndr->offset = _relative_save_offset;
10380 ndr->flags = _flags_save_string_array;
10383 uint32_t _flags_save_string = ndr->flags;
10384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10386 uint32_t _relative_save_offset;
10387 _relative_save_offset = ndr->offset;
10388 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
10389 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10390 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10391 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
10392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10393 ndr->offset = _relative_save_offset;
10395 ndr->flags = _flags_save_string;
10398 uint32_t _flags_save_string_array = ndr->flags;
10399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10400 if (r->core_driver_dependencies) {
10401 uint32_t _relative_save_offset;
10402 _relative_save_offset = ndr->offset;
10403 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
10404 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10405 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10406 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
10407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10408 ndr->offset = _relative_save_offset;
10410 ndr->flags = _flags_save_string_array;
10413 return NDR_ERR_SUCCESS;
10416 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
10418 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
10420 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10421 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10423 if (r->driver_name) {
10424 ndr_print_string(ndr, "driver_name", r->driver_name);
10427 ndr_print_ptr(ndr, "architecture", r->architecture);
10429 if (r->architecture) {
10430 ndr_print_string(ndr, "architecture", r->architecture);
10433 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10435 if (r->driver_path) {
10436 ndr_print_string(ndr, "driver_path", r->driver_path);
10439 ndr_print_ptr(ndr, "data_file", r->data_file);
10441 if (r->data_file) {
10442 ndr_print_string(ndr, "data_file", r->data_file);
10445 ndr_print_ptr(ndr, "config_file", r->config_file);
10447 if (r->config_file) {
10448 ndr_print_string(ndr, "config_file", r->config_file);
10451 ndr_print_ptr(ndr, "help_file", r->help_file);
10453 if (r->help_file) {
10454 ndr_print_string(ndr, "help_file", r->help_file);
10457 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10459 if (r->monitor_name) {
10460 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10463 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10465 if (r->default_datatype) {
10466 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10469 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10471 if (r->dependent_files) {
10472 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10475 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10477 if (r->previous_names) {
10478 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10481 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
10482 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10483 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10485 if (r->manufacturer_name) {
10486 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10489 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10491 if (r->manufacturer_url) {
10492 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10495 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10497 if (r->hardware_id) {
10498 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10501 ndr_print_ptr(ndr, "provider", r->provider);
10504 ndr_print_string(ndr, "provider", r->provider);
10507 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10509 if (r->print_processor) {
10510 ndr_print_string(ndr, "print_processor", r->print_processor);
10513 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10515 if (r->vendor_setup) {
10516 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10519 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10521 if (r->color_profiles) {
10522 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
10525 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10528 ndr_print_string(ndr, "inf_path", r->inf_path);
10531 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10532 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10534 if (r->core_driver_dependencies) {
10535 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10538 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10539 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10543 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
10545 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10546 if (ndr_flags & NDR_SCALARS) {
10547 int level = ndr_push_get_switch_value(ndr, r);
10550 NDR_CHECK(ndr_push_align(ndr, 4));
10551 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10552 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10556 NDR_CHECK(ndr_push_align(ndr, 4));
10557 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10558 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10562 NDR_CHECK(ndr_push_align(ndr, 4));
10563 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10564 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10568 NDR_CHECK(ndr_push_align(ndr, 4));
10569 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10570 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10574 NDR_CHECK(ndr_push_align(ndr, 4));
10575 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10576 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10580 NDR_CHECK(ndr_push_align(ndr, 8));
10581 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10582 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10586 NDR_CHECK(ndr_push_align(ndr, 8));
10587 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10588 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10596 if (ndr_flags & NDR_BUFFERS) {
10597 int level = ndr_push_get_switch_value(ndr, r);
10598 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10601 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10605 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10609 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10613 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10617 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10621 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10625 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10633 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10634 return NDR_ERR_SUCCESS;
10637 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
10639 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10641 level = ndr_pull_get_switch_value(ndr, r);
10642 if (ndr_flags & NDR_SCALARS) {
10645 NDR_CHECK(ndr_pull_align(ndr, 4));
10646 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10647 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10651 NDR_CHECK(ndr_pull_align(ndr, 4));
10652 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10653 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10657 NDR_CHECK(ndr_pull_align(ndr, 4));
10658 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10659 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10663 NDR_CHECK(ndr_pull_align(ndr, 4));
10664 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10665 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10669 NDR_CHECK(ndr_pull_align(ndr, 4));
10670 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10671 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10675 NDR_CHECK(ndr_pull_align(ndr, 8));
10676 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10677 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10681 NDR_CHECK(ndr_pull_align(ndr, 8));
10682 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10683 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10691 if (ndr_flags & NDR_BUFFERS) {
10692 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10695 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10699 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10703 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10707 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10711 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10715 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10719 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10727 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10728 return NDR_ERR_SUCCESS;
10731 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
10734 level = ndr_print_get_switch_value(ndr, r);
10735 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
10738 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
10742 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
10746 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
10750 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
10754 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
10758 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
10762 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
10771 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
10773 if (ndr_flags & NDR_SCALARS) {
10774 NDR_CHECK(ndr_push_align(ndr, 4));
10776 uint32_t _flags_save_string = ndr->flags;
10777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10778 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
10779 ndr->flags = _flags_save_string;
10782 if (ndr_flags & NDR_BUFFERS) {
10784 return NDR_ERR_SUCCESS;
10787 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
10789 if (ndr_flags & NDR_SCALARS) {
10790 NDR_CHECK(ndr_pull_align(ndr, 4));
10792 uint32_t _flags_save_string = ndr->flags;
10793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10794 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
10795 ndr->flags = _flags_save_string;
10798 if (ndr_flags & NDR_BUFFERS) {
10800 return NDR_ERR_SUCCESS;
10803 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
10805 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
10807 ndr_print_string(ndr, "directory_name", r->directory_name);
10811 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10813 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
10816 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
10818 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10819 if (ndr_flags & NDR_SCALARS) {
10820 int level = ndr_push_get_switch_value(ndr, r);
10823 NDR_CHECK(ndr_push_align(ndr, 4));
10824 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10825 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10829 NDR_CHECK(ndr_push_align(ndr, 4));
10830 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10831 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10836 if (ndr_flags & NDR_BUFFERS) {
10837 int level = ndr_push_get_switch_value(ndr, r);
10838 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10848 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10849 return NDR_ERR_SUCCESS;
10852 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
10854 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10856 level = ndr_pull_get_switch_value(ndr, r);
10857 if (ndr_flags & NDR_SCALARS) {
10860 NDR_CHECK(ndr_pull_align(ndr, 4));
10861 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10862 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10866 NDR_CHECK(ndr_pull_align(ndr, 4));
10867 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10868 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10873 if (ndr_flags & NDR_BUFFERS) {
10874 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10884 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10885 return NDR_ERR_SUCCESS;
10888 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
10891 level = ndr_print_get_switch_value(ndr, r);
10892 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
10895 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
10899 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
10905 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
10907 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
10910 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
10912 if (ndr_flags & NDR_SCALARS) {
10913 NDR_CHECK(ndr_push_align(ndr, 4));
10915 uint32_t _flags_save_string = ndr->flags;
10916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10917 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
10918 ndr->flags = _flags_save_string;
10921 if (ndr_flags & NDR_BUFFERS) {
10923 uint32_t _flags_save_string = ndr->flags;
10924 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10925 if (r->print_processor_name) {
10926 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
10927 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
10929 ndr->flags = _flags_save_string;
10932 return NDR_ERR_SUCCESS;
10935 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
10937 uint32_t _ptr_print_processor_name;
10938 TALLOC_CTX *_mem_save_print_processor_name_0;
10939 if (ndr_flags & NDR_SCALARS) {
10940 NDR_CHECK(ndr_pull_align(ndr, 4));
10942 uint32_t _flags_save_string = ndr->flags;
10943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
10945 if (_ptr_print_processor_name) {
10946 NDR_PULL_ALLOC(ndr, r->print_processor_name);
10947 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
10949 r->print_processor_name = NULL;
10951 ndr->flags = _flags_save_string;
10954 if (ndr_flags & NDR_BUFFERS) {
10956 uint32_t _flags_save_string = ndr->flags;
10957 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10958 if (r->print_processor_name) {
10959 uint32_t _relative_save_offset;
10960 _relative_save_offset = ndr->offset;
10961 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
10962 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10963 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
10964 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
10965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
10966 ndr->offset = _relative_save_offset;
10968 ndr->flags = _flags_save_string;
10971 return NDR_ERR_SUCCESS;
10974 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
10976 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
10978 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
10980 if (r->print_processor_name) {
10981 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
10987 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
10989 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10990 if (ndr_flags & NDR_SCALARS) {
10991 int level = ndr_push_get_switch_value(ndr, r);
10994 NDR_CHECK(ndr_push_align(ndr, 4));
10995 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10996 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11004 if (ndr_flags & NDR_BUFFERS) {
11005 int level = ndr_push_get_switch_value(ndr, r);
11006 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11009 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11017 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11018 return NDR_ERR_SUCCESS;
11021 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
11023 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11025 level = ndr_pull_get_switch_value(ndr, r);
11026 if (ndr_flags & NDR_SCALARS) {
11029 NDR_CHECK(ndr_pull_align(ndr, 4));
11030 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11031 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11039 if (ndr_flags & NDR_BUFFERS) {
11040 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11043 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11051 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11052 return NDR_ERR_SUCCESS;
11055 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
11058 level = ndr_print_get_switch_value(ndr, r);
11059 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
11062 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
11071 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
11073 if (ndr_flags & NDR_SCALARS) {
11074 NDR_CHECK(ndr_push_align(ndr, 4));
11075 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
11076 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
11077 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
11079 if (ndr_flags & NDR_BUFFERS) {
11080 if (r->document_name) {
11081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11084 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11086 if (r->output_file) {
11087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11090 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11096 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11099 return NDR_ERR_SUCCESS;
11102 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
11104 uint32_t _ptr_document_name;
11105 TALLOC_CTX *_mem_save_document_name_0;
11106 uint32_t _ptr_output_file;
11107 TALLOC_CTX *_mem_save_output_file_0;
11108 uint32_t _ptr_datatype;
11109 TALLOC_CTX *_mem_save_datatype_0;
11110 if (ndr_flags & NDR_SCALARS) {
11111 NDR_CHECK(ndr_pull_align(ndr, 4));
11112 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
11113 if (_ptr_document_name) {
11114 NDR_PULL_ALLOC(ndr, r->document_name);
11116 r->document_name = NULL;
11118 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
11119 if (_ptr_output_file) {
11120 NDR_PULL_ALLOC(ndr, r->output_file);
11122 r->output_file = NULL;
11124 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
11125 if (_ptr_datatype) {
11126 NDR_PULL_ALLOC(ndr, r->datatype);
11128 r->datatype = NULL;
11131 if (ndr_flags & NDR_BUFFERS) {
11132 if (r->document_name) {
11133 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11134 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
11135 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
11136 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
11137 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
11138 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));
11140 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
11141 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
11142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
11144 if (r->output_file) {
11145 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11146 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
11147 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
11148 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
11149 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
11150 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));
11152 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
11153 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
11154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
11157 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11158 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
11159 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
11160 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
11161 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
11162 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));
11164 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
11165 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
11166 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
11169 return NDR_ERR_SUCCESS;
11172 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
11174 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
11176 ndr_print_ptr(ndr, "document_name", r->document_name);
11178 if (r->document_name) {
11179 ndr_print_string(ndr, "document_name", r->document_name);
11182 ndr_print_ptr(ndr, "output_file", r->output_file);
11184 if (r->output_file) {
11185 ndr_print_string(ndr, "output_file", r->output_file);
11188 ndr_print_ptr(ndr, "datatype", r->datatype);
11191 ndr_print_string(ndr, "datatype", r->datatype);
11197 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
11199 if (ndr_flags & NDR_SCALARS) {
11200 int level = ndr_push_get_switch_value(ndr, r);
11201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11218 if (ndr_flags & NDR_BUFFERS) {
11219 int level = ndr_push_get_switch_value(ndr, r);
11223 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11238 return NDR_ERR_SUCCESS;
11241 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
11245 TALLOC_CTX *_mem_save_info1_0;
11246 level = ndr_pull_get_switch_value(ndr, r);
11247 if (ndr_flags & NDR_SCALARS) {
11248 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11249 if (_level != level) {
11250 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11254 uint32_t _ptr_info1;
11255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11257 NDR_PULL_ALLOC(ndr, r->info1);
11274 if (ndr_flags & NDR_BUFFERS) {
11278 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11279 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11280 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11296 return NDR_ERR_SUCCESS;
11299 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
11302 level = ndr_print_get_switch_value(ndr, r);
11303 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
11306 ndr_print_ptr(ndr, "info1", r->info1);
11309 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
11326 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
11328 if (ndr_flags & NDR_SCALARS) {
11329 NDR_CHECK(ndr_push_align(ndr, 4));
11330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
11331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11336 uint32_t _flags_save_string = ndr->flags;
11337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11339 struct ndr_push *_ndr_extra_string;
11340 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11341 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11342 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11344 ndr->flags = _flags_save_string;
11347 if (ndr_flags & NDR_BUFFERS) {
11349 return NDR_ERR_SUCCESS;
11352 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
11354 if (ndr_flags & NDR_SCALARS) {
11355 NDR_CHECK(ndr_pull_align(ndr, 4));
11356 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
11362 uint32_t _flags_save_string = ndr->flags;
11363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11365 struct ndr_pull *_ndr_extra_string;
11366 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11367 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11368 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11370 ndr->flags = _flags_save_string;
11373 if (ndr_flags & NDR_BUFFERS) {
11375 return NDR_ERR_SUCCESS;
11378 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
11380 ndr_print_struct(ndr, name, "spoolss_OSVersion");
11382 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);
11383 ndr_print_uint32(ndr, "major", r->major);
11384 ndr_print_uint32(ndr, "minor", r->minor);
11385 ndr_print_uint32(ndr, "build", r->build);
11386 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
11387 ndr_print_string(ndr, "extra_string", r->extra_string);
11391 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
11393 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
11396 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
11398 if (ndr_flags & NDR_SCALARS) {
11399 NDR_CHECK(ndr_push_align(ndr, 4));
11400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
11401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11406 uint32_t _flags_save_string = ndr->flags;
11407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11409 struct ndr_push *_ndr_extra_string;
11410 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11411 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11412 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11414 ndr->flags = _flags_save_string;
11416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
11417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
11419 if (ndr_flags & NDR_BUFFERS) {
11421 return NDR_ERR_SUCCESS;
11424 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
11426 if (ndr_flags & NDR_SCALARS) {
11427 NDR_CHECK(ndr_pull_align(ndr, 4));
11428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11431 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
11434 uint32_t _flags_save_string = ndr->flags;
11435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11437 struct ndr_pull *_ndr_extra_string;
11438 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11439 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11440 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11442 ndr->flags = _flags_save_string;
11444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
11445 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
11447 if (ndr_flags & NDR_BUFFERS) {
11449 return NDR_ERR_SUCCESS;
11452 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
11454 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
11456 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);
11457 ndr_print_uint32(ndr, "major", r->major);
11458 ndr_print_uint32(ndr, "minor", r->minor);
11459 ndr_print_uint32(ndr, "build", r->build);
11460 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
11461 ndr_print_string(ndr, "extra_string", r->extra_string);
11462 ndr_print_uint32(ndr, "unknown2", r->unknown2);
11463 ndr_print_uint32(ndr, "unknown3", r->unknown3);
11467 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
11469 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
11472 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
11474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11475 return NDR_ERR_SUCCESS;
11478 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
11481 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11483 return NDR_ERR_SUCCESS;
11486 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
11488 const char *val = NULL;
11491 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
11492 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
11493 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
11494 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
11495 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
11497 ndr_print_enum(ndr, name, "ENUM", val, r);
11500 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
11502 if (ndr_flags & NDR_SCALARS) {
11503 int level = ndr_push_get_switch_value(ndr, r);
11505 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11508 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11510 uint32_t _flags_save_string = ndr->flags;
11511 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11512 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
11513 ndr->flags = _flags_save_string;
11517 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11519 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11521 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11522 ndr->flags = _flags_save_DATA_BLOB;
11526 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
11530 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11532 uint32_t _flags_save_string_array = ndr->flags;
11533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11534 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
11535 ndr->flags = _flags_save_string_array;
11541 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11543 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
11544 ndr->flags = _flags_save_DATA_BLOB;
11550 if (ndr_flags & NDR_BUFFERS) {
11551 int level = ndr_push_get_switch_value(ndr, r);
11553 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11556 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11559 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11562 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11565 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11573 return NDR_ERR_SUCCESS;
11576 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
11579 level = ndr_pull_get_switch_value(ndr, r);
11580 if (ndr_flags & NDR_SCALARS) {
11582 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11585 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11587 uint32_t _flags_save_string = ndr->flags;
11588 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11589 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
11590 ndr->flags = _flags_save_string;
11594 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11596 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11598 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
11599 ndr->flags = _flags_save_DATA_BLOB;
11603 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
11607 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11609 uint32_t _flags_save_string_array = ndr->flags;
11610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11611 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
11612 ndr->flags = _flags_save_string_array;
11618 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11620 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
11621 ndr->flags = _flags_save_DATA_BLOB;
11627 if (ndr_flags & NDR_BUFFERS) {
11629 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11632 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11635 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11638 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11641 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11649 return NDR_ERR_SUCCESS;
11652 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
11655 level = ndr_print_get_switch_value(ndr, r);
11656 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
11658 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11661 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11662 ndr_print_string(ndr, "string", r->string);
11665 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11666 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
11669 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11670 ndr_print_uint32(ndr, "value", r->value);
11673 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11674 ndr_print_string_array(ndr, "string_array", r->string_array);
11678 ndr_print_DATA_BLOB(ndr, "data", r->data);
11684 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11686 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
11689 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
11691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11692 return NDR_ERR_SUCCESS;
11695 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
11698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11700 return NDR_ERR_SUCCESS;
11703 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
11705 const char *val = NULL;
11708 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
11709 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
11710 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
11712 ndr_print_enum(ndr, name, "ENUM", val, r);
11715 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
11717 if (ndr_flags & NDR_SCALARS) {
11718 NDR_CHECK(ndr_push_align(ndr, 4));
11719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
11720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
11722 if (ndr_flags & NDR_BUFFERS) {
11724 return NDR_ERR_SUCCESS;
11727 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
11729 if (ndr_flags & NDR_SCALARS) {
11730 NDR_CHECK(ndr_pull_align(ndr, 4));
11731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
11732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
11734 if (ndr_flags & NDR_BUFFERS) {
11736 return NDR_ERR_SUCCESS;
11739 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
11741 ndr_print_struct(ndr, name, "spoolss_FormSize");
11743 ndr_print_uint32(ndr, "width", r->width);
11744 ndr_print_uint32(ndr, "height", r->height);
11748 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
11750 if (ndr_flags & NDR_SCALARS) {
11751 NDR_CHECK(ndr_push_align(ndr, 4));
11752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
11753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
11754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
11755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
11757 if (ndr_flags & NDR_BUFFERS) {
11759 return NDR_ERR_SUCCESS;
11762 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
11764 if (ndr_flags & NDR_SCALARS) {
11765 NDR_CHECK(ndr_pull_align(ndr, 4));
11766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
11767 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
11768 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
11769 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
11771 if (ndr_flags & NDR_BUFFERS) {
11773 return NDR_ERR_SUCCESS;
11776 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
11778 ndr_print_struct(ndr, name, "spoolss_FormArea");
11780 ndr_print_uint32(ndr, "left", r->left);
11781 ndr_print_uint32(ndr, "top", r->top);
11782 ndr_print_uint32(ndr, "right", r->right);
11783 ndr_print_uint32(ndr, "bottom", r->bottom);
11787 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
11789 if (ndr_flags & NDR_SCALARS) {
11790 NDR_CHECK(ndr_push_align(ndr, 4));
11791 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
11793 uint32_t _flags_save_string = ndr->flags;
11794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11795 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
11796 ndr->flags = _flags_save_string;
11798 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11799 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11801 if (ndr_flags & NDR_BUFFERS) {
11803 uint32_t _flags_save_string = ndr->flags;
11804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11805 if (r->form_name) {
11806 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
11807 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
11809 ndr->flags = _flags_save_string;
11812 return NDR_ERR_SUCCESS;
11815 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
11817 uint32_t _ptr_form_name;
11818 TALLOC_CTX *_mem_save_form_name_0;
11819 if (ndr_flags & NDR_SCALARS) {
11820 NDR_CHECK(ndr_pull_align(ndr, 4));
11821 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
11823 uint32_t _flags_save_string = ndr->flags;
11824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11825 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
11826 if (_ptr_form_name) {
11827 NDR_PULL_ALLOC(ndr, r->form_name);
11828 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
11830 r->form_name = NULL;
11832 ndr->flags = _flags_save_string;
11834 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11835 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11837 if (ndr_flags & NDR_BUFFERS) {
11839 uint32_t _flags_save_string = ndr->flags;
11840 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11841 if (r->form_name) {
11842 uint32_t _relative_save_offset;
11843 _relative_save_offset = ndr->offset;
11844 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
11845 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11846 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
11847 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
11848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
11849 ndr->offset = _relative_save_offset;
11851 ndr->flags = _flags_save_string;
11854 return NDR_ERR_SUCCESS;
11857 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
11859 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
11861 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
11862 ndr_print_ptr(ndr, "form_name", r->form_name);
11864 if (r->form_name) {
11865 ndr_print_string(ndr, "form_name", r->form_name);
11868 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
11869 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
11873 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
11875 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11876 if (ndr_flags & NDR_SCALARS) {
11877 int level = ndr_push_get_switch_value(ndr, r);
11880 NDR_CHECK(ndr_push_align(ndr, 4));
11881 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11882 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
11890 if (ndr_flags & NDR_BUFFERS) {
11891 int level = ndr_push_get_switch_value(ndr, r);
11892 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11895 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
11903 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11904 return NDR_ERR_SUCCESS;
11907 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
11909 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11911 level = ndr_pull_get_switch_value(ndr, r);
11912 if (ndr_flags & NDR_SCALARS) {
11915 NDR_CHECK(ndr_pull_align(ndr, 4));
11916 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11917 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
11925 if (ndr_flags & NDR_BUFFERS) {
11926 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11929 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
11937 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11938 return NDR_ERR_SUCCESS;
11941 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
11944 level = ndr_print_get_switch_value(ndr, r);
11945 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
11948 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
11957 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11959 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
11962 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
11964 if (ndr_flags & NDR_SCALARS) {
11965 NDR_CHECK(ndr_push_align(ndr, 4));
11966 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
11967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
11968 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11969 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11971 if (ndr_flags & NDR_BUFFERS) {
11972 if (r->form_name) {
11973 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, 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->form_name, CH_UTF16)));
11976 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11979 return NDR_ERR_SUCCESS;
11982 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
11984 uint32_t _ptr_form_name;
11985 TALLOC_CTX *_mem_save_form_name_0;
11986 if (ndr_flags & NDR_SCALARS) {
11987 NDR_CHECK(ndr_pull_align(ndr, 4));
11988 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
11989 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
11990 if (_ptr_form_name) {
11991 NDR_PULL_ALLOC(ndr, r->form_name);
11993 r->form_name = NULL;
11995 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11996 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11998 if (ndr_flags & NDR_BUFFERS) {
11999 if (r->form_name) {
12000 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12001 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12002 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
12003 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
12004 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
12005 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));
12007 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
12008 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
12009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12012 return NDR_ERR_SUCCESS;
12015 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
12017 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
12019 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12020 ndr_print_ptr(ndr, "form_name", r->form_name);
12022 if (r->form_name) {
12023 ndr_print_string(ndr, "form_name", r->form_name);
12026 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12027 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12031 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
12033 if (ndr_flags & NDR_SCALARS) {
12034 int level = ndr_push_get_switch_value(ndr, r);
12035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
12038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
12042 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12045 if (ndr_flags & NDR_BUFFERS) {
12046 int level = ndr_push_get_switch_value(ndr, r);
12050 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12055 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12058 return NDR_ERR_SUCCESS;
12061 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
12065 TALLOC_CTX *_mem_save_info1_0;
12066 level = ndr_pull_get_switch_value(ndr, r);
12067 if (ndr_flags & NDR_SCALARS) {
12068 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12069 if (_level != level) {
12070 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12074 uint32_t _ptr_info1;
12075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
12077 NDR_PULL_ALLOC(ndr, r->info1);
12084 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12087 if (ndr_flags & NDR_BUFFERS) {
12091 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12092 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
12093 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
12099 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12102 return NDR_ERR_SUCCESS;
12105 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
12108 level = ndr_print_get_switch_value(ndr, r);
12109 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
12112 ndr_print_ptr(ndr, "info1", r->info1);
12115 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
12121 ndr_print_bad_level(ndr, name, level);
12125 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
12127 if (ndr_flags & NDR_SCALARS) {
12128 NDR_CHECK(ndr_push_align(ndr, 4));
12130 uint32_t _flags_save_string = ndr->flags;
12131 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12132 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12133 ndr->flags = _flags_save_string;
12136 if (ndr_flags & NDR_BUFFERS) {
12138 uint32_t _flags_save_string = ndr->flags;
12139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12140 if (r->port_name) {
12141 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12142 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12144 ndr->flags = _flags_save_string;
12147 return NDR_ERR_SUCCESS;
12150 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
12152 uint32_t _ptr_port_name;
12153 TALLOC_CTX *_mem_save_port_name_0;
12154 if (ndr_flags & NDR_SCALARS) {
12155 NDR_CHECK(ndr_pull_align(ndr, 4));
12157 uint32_t _flags_save_string = ndr->flags;
12158 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12160 if (_ptr_port_name) {
12161 NDR_PULL_ALLOC(ndr, r->port_name);
12162 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12164 r->port_name = NULL;
12166 ndr->flags = _flags_save_string;
12169 if (ndr_flags & NDR_BUFFERS) {
12171 uint32_t _flags_save_string = ndr->flags;
12172 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12173 if (r->port_name) {
12174 uint32_t _relative_save_offset;
12175 _relative_save_offset = ndr->offset;
12176 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12177 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12178 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12179 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12181 ndr->offset = _relative_save_offset;
12183 ndr->flags = _flags_save_string;
12186 return NDR_ERR_SUCCESS;
12189 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
12191 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
12193 ndr_print_ptr(ndr, "port_name", r->port_name);
12195 if (r->port_name) {
12196 ndr_print_string(ndr, "port_name", r->port_name);
12202 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12205 return NDR_ERR_SUCCESS;
12208 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12211 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12213 return NDR_ERR_SUCCESS;
12216 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
12218 ndr_print_uint32(ndr, name, r);
12220 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
12221 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
12222 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
12223 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
12227 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
12229 if (ndr_flags & NDR_SCALARS) {
12230 NDR_CHECK(ndr_push_align(ndr, 4));
12232 uint32_t _flags_save_string = ndr->flags;
12233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12235 ndr->flags = _flags_save_string;
12238 uint32_t _flags_save_string = ndr->flags;
12239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12241 ndr->flags = _flags_save_string;
12244 uint32_t _flags_save_string = ndr->flags;
12245 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12246 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
12247 ndr->flags = _flags_save_string;
12249 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
12250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12252 if (ndr_flags & NDR_BUFFERS) {
12254 uint32_t _flags_save_string = ndr->flags;
12255 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12256 if (r->port_name) {
12257 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12258 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12260 ndr->flags = _flags_save_string;
12263 uint32_t _flags_save_string = ndr->flags;
12264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12265 if (r->monitor_name) {
12266 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12267 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12269 ndr->flags = _flags_save_string;
12272 uint32_t _flags_save_string = ndr->flags;
12273 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12274 if (r->description) {
12275 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
12276 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
12278 ndr->flags = _flags_save_string;
12281 return NDR_ERR_SUCCESS;
12284 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
12286 uint32_t _ptr_port_name;
12287 TALLOC_CTX *_mem_save_port_name_0;
12288 uint32_t _ptr_monitor_name;
12289 TALLOC_CTX *_mem_save_monitor_name_0;
12290 uint32_t _ptr_description;
12291 TALLOC_CTX *_mem_save_description_0;
12292 if (ndr_flags & NDR_SCALARS) {
12293 NDR_CHECK(ndr_pull_align(ndr, 4));
12295 uint32_t _flags_save_string = ndr->flags;
12296 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12297 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12298 if (_ptr_port_name) {
12299 NDR_PULL_ALLOC(ndr, r->port_name);
12300 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12302 r->port_name = NULL;
12304 ndr->flags = _flags_save_string;
12307 uint32_t _flags_save_string = ndr->flags;
12308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12309 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12310 if (_ptr_monitor_name) {
12311 NDR_PULL_ALLOC(ndr, r->monitor_name);
12312 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12314 r->monitor_name = NULL;
12316 ndr->flags = _flags_save_string;
12319 uint32_t _flags_save_string = ndr->flags;
12320 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12321 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
12322 if (_ptr_description) {
12323 NDR_PULL_ALLOC(ndr, r->description);
12324 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
12326 r->description = NULL;
12328 ndr->flags = _flags_save_string;
12330 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
12331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12333 if (ndr_flags & NDR_BUFFERS) {
12335 uint32_t _flags_save_string = ndr->flags;
12336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12337 if (r->port_name) {
12338 uint32_t _relative_save_offset;
12339 _relative_save_offset = ndr->offset;
12340 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12341 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12342 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12343 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12345 ndr->offset = _relative_save_offset;
12347 ndr->flags = _flags_save_string;
12350 uint32_t _flags_save_string = ndr->flags;
12351 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12352 if (r->monitor_name) {
12353 uint32_t _relative_save_offset;
12354 _relative_save_offset = ndr->offset;
12355 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12356 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12357 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12358 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12359 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12360 ndr->offset = _relative_save_offset;
12362 ndr->flags = _flags_save_string;
12365 uint32_t _flags_save_string = ndr->flags;
12366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12367 if (r->description) {
12368 uint32_t _relative_save_offset;
12369 _relative_save_offset = ndr->offset;
12370 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
12371 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
12372 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
12373 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
12374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
12375 ndr->offset = _relative_save_offset;
12377 ndr->flags = _flags_save_string;
12380 return NDR_ERR_SUCCESS;
12383 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
12385 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
12387 ndr_print_ptr(ndr, "port_name", r->port_name);
12389 if (r->port_name) {
12390 ndr_print_string(ndr, "port_name", r->port_name);
12393 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12395 if (r->monitor_name) {
12396 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12399 ndr_print_ptr(ndr, "description", r->description);
12401 if (r->description) {
12402 ndr_print_string(ndr, "description", r->description);
12405 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
12406 ndr_print_uint32(ndr, "reserved", r->reserved);
12410 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
12412 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12413 if (ndr_flags & NDR_SCALARS) {
12414 int level = ndr_push_get_switch_value(ndr, r);
12417 NDR_CHECK(ndr_push_align(ndr, 4));
12418 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12419 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12423 NDR_CHECK(ndr_push_align(ndr, 4));
12424 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12425 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12436 if (ndr_flags & NDR_BUFFERS) {
12437 int level = ndr_push_get_switch_value(ndr, r);
12438 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12441 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12445 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12456 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12457 return NDR_ERR_SUCCESS;
12460 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
12462 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12464 level = ndr_pull_get_switch_value(ndr, r);
12465 if (ndr_flags & NDR_SCALARS) {
12468 NDR_CHECK(ndr_pull_align(ndr, 4));
12469 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12470 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12474 NDR_CHECK(ndr_pull_align(ndr, 4));
12475 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12476 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12487 if (ndr_flags & NDR_BUFFERS) {
12488 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12491 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12495 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12506 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12507 return NDR_ERR_SUCCESS;
12510 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
12513 level = ndr_print_get_switch_value(ndr, r);
12514 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
12517 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
12521 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
12533 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
12535 if (ndr_flags & NDR_SCALARS) {
12536 NDR_CHECK(ndr_push_align(ndr, 4));
12538 uint32_t _flags_save_string = ndr->flags;
12539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12540 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12541 ndr->flags = _flags_save_string;
12544 if (ndr_flags & NDR_BUFFERS) {
12546 uint32_t _flags_save_string = ndr->flags;
12547 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12548 if (r->monitor_name) {
12549 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12550 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12552 ndr->flags = _flags_save_string;
12555 return NDR_ERR_SUCCESS;
12558 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
12560 uint32_t _ptr_monitor_name;
12561 TALLOC_CTX *_mem_save_monitor_name_0;
12562 if (ndr_flags & NDR_SCALARS) {
12563 NDR_CHECK(ndr_pull_align(ndr, 4));
12565 uint32_t _flags_save_string = ndr->flags;
12566 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12567 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12568 if (_ptr_monitor_name) {
12569 NDR_PULL_ALLOC(ndr, r->monitor_name);
12570 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12572 r->monitor_name = NULL;
12574 ndr->flags = _flags_save_string;
12577 if (ndr_flags & NDR_BUFFERS) {
12579 uint32_t _flags_save_string = ndr->flags;
12580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12581 if (r->monitor_name) {
12582 uint32_t _relative_save_offset;
12583 _relative_save_offset = ndr->offset;
12584 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12585 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12586 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12587 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12588 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12589 ndr->offset = _relative_save_offset;
12591 ndr->flags = _flags_save_string;
12594 return NDR_ERR_SUCCESS;
12597 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
12599 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
12601 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12603 if (r->monitor_name) {
12604 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12610 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
12612 if (ndr_flags & NDR_SCALARS) {
12613 NDR_CHECK(ndr_push_align(ndr, 4));
12615 uint32_t _flags_save_string = ndr->flags;
12616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12617 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12618 ndr->flags = _flags_save_string;
12621 uint32_t _flags_save_string = ndr->flags;
12622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12623 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
12624 ndr->flags = _flags_save_string;
12627 uint32_t _flags_save_string = ndr->flags;
12628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
12630 ndr->flags = _flags_save_string;
12633 if (ndr_flags & NDR_BUFFERS) {
12635 uint32_t _flags_save_string = ndr->flags;
12636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12637 if (r->monitor_name) {
12638 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12639 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12641 ndr->flags = _flags_save_string;
12644 uint32_t _flags_save_string = ndr->flags;
12645 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12646 if (r->environment) {
12647 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
12648 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
12650 ndr->flags = _flags_save_string;
12653 uint32_t _flags_save_string = ndr->flags;
12654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12656 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
12657 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
12659 ndr->flags = _flags_save_string;
12662 return NDR_ERR_SUCCESS;
12665 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
12667 uint32_t _ptr_monitor_name;
12668 TALLOC_CTX *_mem_save_monitor_name_0;
12669 uint32_t _ptr_environment;
12670 TALLOC_CTX *_mem_save_environment_0;
12671 uint32_t _ptr_dll_name;
12672 TALLOC_CTX *_mem_save_dll_name_0;
12673 if (ndr_flags & NDR_SCALARS) {
12674 NDR_CHECK(ndr_pull_align(ndr, 4));
12676 uint32_t _flags_save_string = ndr->flags;
12677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12678 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12679 if (_ptr_monitor_name) {
12680 NDR_PULL_ALLOC(ndr, r->monitor_name);
12681 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12683 r->monitor_name = NULL;
12685 ndr->flags = _flags_save_string;
12688 uint32_t _flags_save_string = ndr->flags;
12689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
12691 if (_ptr_environment) {
12692 NDR_PULL_ALLOC(ndr, r->environment);
12693 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
12695 r->environment = NULL;
12697 ndr->flags = _flags_save_string;
12700 uint32_t _flags_save_string = ndr->flags;
12701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12702 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
12703 if (_ptr_dll_name) {
12704 NDR_PULL_ALLOC(ndr, r->dll_name);
12705 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
12707 r->dll_name = NULL;
12709 ndr->flags = _flags_save_string;
12712 if (ndr_flags & NDR_BUFFERS) {
12714 uint32_t _flags_save_string = ndr->flags;
12715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12716 if (r->monitor_name) {
12717 uint32_t _relative_save_offset;
12718 _relative_save_offset = ndr->offset;
12719 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12720 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12721 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12722 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12724 ndr->offset = _relative_save_offset;
12726 ndr->flags = _flags_save_string;
12729 uint32_t _flags_save_string = ndr->flags;
12730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12731 if (r->environment) {
12732 uint32_t _relative_save_offset;
12733 _relative_save_offset = ndr->offset;
12734 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
12735 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
12736 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
12737 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
12738 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
12739 ndr->offset = _relative_save_offset;
12741 ndr->flags = _flags_save_string;
12744 uint32_t _flags_save_string = ndr->flags;
12745 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12747 uint32_t _relative_save_offset;
12748 _relative_save_offset = ndr->offset;
12749 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
12750 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12751 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
12752 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
12753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
12754 ndr->offset = _relative_save_offset;
12756 ndr->flags = _flags_save_string;
12759 return NDR_ERR_SUCCESS;
12762 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
12764 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
12766 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12768 if (r->monitor_name) {
12769 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12772 ndr_print_ptr(ndr, "environment", r->environment);
12774 if (r->environment) {
12775 ndr_print_string(ndr, "environment", r->environment);
12778 ndr_print_ptr(ndr, "dll_name", r->dll_name);
12781 ndr_print_string(ndr, "dll_name", r->dll_name);
12787 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
12789 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12790 if (ndr_flags & NDR_SCALARS) {
12791 int level = ndr_push_get_switch_value(ndr, r);
12794 NDR_CHECK(ndr_push_align(ndr, 4));
12795 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12796 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12800 NDR_CHECK(ndr_push_align(ndr, 4));
12801 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12802 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12810 if (ndr_flags & NDR_BUFFERS) {
12811 int level = ndr_push_get_switch_value(ndr, r);
12812 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12815 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12819 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12827 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12828 return NDR_ERR_SUCCESS;
12831 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
12833 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12835 level = ndr_pull_get_switch_value(ndr, r);
12836 if (ndr_flags & NDR_SCALARS) {
12839 NDR_CHECK(ndr_pull_align(ndr, 4));
12840 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12841 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12845 NDR_CHECK(ndr_pull_align(ndr, 4));
12846 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12847 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12855 if (ndr_flags & NDR_BUFFERS) {
12856 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12859 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12863 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12871 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12872 return NDR_ERR_SUCCESS;
12875 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
12878 level = ndr_print_get_switch_value(ndr, r);
12879 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
12882 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
12886 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
12895 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12898 return NDR_ERR_SUCCESS;
12901 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12904 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12906 return NDR_ERR_SUCCESS;
12909 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
12911 ndr_print_uint32(ndr, name, r);
12913 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
12914 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
12915 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
12916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
12917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
12918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
12919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
12920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
12921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
12922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
12923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
12924 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
12925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
12926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
12927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
12928 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
12929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
12930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
12931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
12932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
12936 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
12938 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
12939 return NDR_ERR_SUCCESS;
12942 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
12945 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
12947 return NDR_ERR_SUCCESS;
12950 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
12952 const char *val = NULL;
12955 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
12956 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
12957 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
12958 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
12959 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
12960 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
12961 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
12962 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
12963 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
12964 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
12965 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
12966 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
12967 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
12968 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
12969 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
12970 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
12971 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
12972 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
12973 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
12974 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
12975 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
12976 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
12977 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
12978 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
12979 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
12980 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
12982 ndr_print_enum(ndr, name, "ENUM", val, r);
12985 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
12987 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
12988 return NDR_ERR_SUCCESS;
12991 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
12994 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
12996 return NDR_ERR_SUCCESS;
12999 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
13001 const char *val = NULL;
13004 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
13005 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
13007 ndr_print_enum(ndr, name, "ENUM", val, r);
13010 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
13012 uint32_t cntr_fields_1;
13013 if (ndr_flags & NDR_SCALARS) {
13014 NDR_CHECK(ndr_push_align(ndr, 4));
13015 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13016 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
13017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
13018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
13019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13020 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
13022 if (ndr_flags & NDR_BUFFERS) {
13024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13025 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13026 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
13030 return NDR_ERR_SUCCESS;
13033 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
13035 uint32_t _ptr_fields;
13036 uint32_t cntr_fields_1;
13037 TALLOC_CTX *_mem_save_fields_0;
13038 TALLOC_CTX *_mem_save_fields_1;
13039 if (ndr_flags & NDR_SCALARS) {
13040 NDR_CHECK(ndr_pull_align(ndr, 4));
13041 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13042 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
13043 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
13044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
13045 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13046 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
13048 NDR_PULL_ALLOC(ndr, r->fields);
13053 if (ndr_flags & NDR_BUFFERS) {
13055 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
13056 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13057 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
13058 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
13059 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
13060 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13061 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13062 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
13064 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
13065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
13068 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
13071 return NDR_ERR_SUCCESS;
13074 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
13076 uint32_t cntr_fields_1;
13077 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
13079 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13080 ndr_print_uint16(ndr, "u1", r->u1);
13081 ndr_print_uint32(ndr, "u2", r->u2);
13082 ndr_print_uint32(ndr, "u3", r->u3);
13083 ndr_print_uint32(ndr, "count", r->count);
13084 ndr_print_ptr(ndr, "fields", r->fields);
13087 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
13089 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
13091 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
13092 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
13102 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
13104 uint32_t cntr_types_1;
13105 if (ndr_flags & NDR_SCALARS) {
13106 NDR_CHECK(ndr_push_align(ndr, 4));
13107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13110 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
13112 if (ndr_flags & NDR_BUFFERS) {
13114 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13115 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13116 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13118 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13119 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13123 return NDR_ERR_SUCCESS;
13126 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
13128 uint32_t _ptr_types;
13129 uint32_t cntr_types_1;
13130 TALLOC_CTX *_mem_save_types_0;
13131 TALLOC_CTX *_mem_save_types_1;
13132 if (ndr_flags & NDR_SCALARS) {
13133 NDR_CHECK(ndr_pull_align(ndr, 4));
13134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13137 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
13139 NDR_PULL_ALLOC(ndr, r->types);
13144 if (ndr_flags & NDR_BUFFERS) {
13146 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
13147 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13148 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
13149 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
13150 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
13151 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13152 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13153 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13155 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13156 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
13159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
13162 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
13165 return NDR_ERR_SUCCESS;
13168 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
13170 uint32_t cntr_types_1;
13171 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
13173 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13174 ndr_print_uint32(ndr, "flags", r->flags);
13175 ndr_print_uint32(ndr, "count", r->count);
13176 ndr_print_ptr(ndr, "types", r->types);
13179 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
13181 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
13183 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
13184 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
13194 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
13196 if (ndr_flags & NDR_SCALARS) {
13197 NDR_CHECK(ndr_push_align(ndr, 4));
13198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
13201 if (ndr_flags & NDR_BUFFERS) {
13203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
13204 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
13207 return NDR_ERR_SUCCESS;
13210 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
13212 uint32_t _ptr_string;
13213 TALLOC_CTX *_mem_save_string_0;
13214 if (ndr_flags & NDR_SCALARS) {
13215 NDR_CHECK(ndr_pull_align(ndr, 4));
13216 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
13219 NDR_PULL_ALLOC(ndr, r->string);
13224 if (ndr_flags & NDR_BUFFERS) {
13226 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
13227 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
13228 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
13229 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
13230 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
13233 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
13236 return NDR_ERR_SUCCESS;
13239 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
13241 ndr_print_struct(ndr, name, "spoolss_NotifyString");
13243 ndr_print_uint32(ndr, "size", r->size);
13244 ndr_print_ptr(ndr, "string", r->string);
13247 ndr_print_string(ndr, "string", r->string);
13253 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
13255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13256 return NDR_ERR_SUCCESS;
13259 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
13262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13264 return NDR_ERR_SUCCESS;
13267 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
13269 const char *val = NULL;
13272 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
13273 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
13274 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
13275 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
13276 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
13278 ndr_print_enum(ndr, name, "ENUM", val, r);
13281 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
13283 if (ndr_flags & NDR_SCALARS) {
13284 int level = ndr_push_get_switch_value(ndr, r);
13285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13288 uint32_t cntr_integer_0;
13289 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
13295 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13299 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
13303 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13307 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13311 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13314 if (ndr_flags & NDR_BUFFERS) {
13315 int level = ndr_push_get_switch_value(ndr, r);
13321 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13326 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
13331 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13335 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13339 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13342 return NDR_ERR_SUCCESS;
13345 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
13349 TALLOC_CTX *_mem_save_devmode_0;
13350 level = ndr_pull_get_switch_value(ndr, r);
13351 if (ndr_flags & NDR_SCALARS) {
13352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13353 if (_level != level) {
13354 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13358 uint32_t cntr_integer_0;
13359 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
13365 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13369 uint32_t _ptr_devmode;
13370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
13371 if (_ptr_devmode) {
13372 NDR_PULL_ALLOC(ndr, r->devmode);
13379 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13383 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13387 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13390 if (ndr_flags & NDR_BUFFERS) {
13396 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13401 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
13402 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
13403 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
13404 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
13409 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13413 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13417 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13420 return NDR_ERR_SUCCESS;
13423 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
13426 uint32_t cntr_integer_0;
13427 level = ndr_print_get_switch_value(ndr, r);
13428 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
13431 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
13433 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
13435 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
13436 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
13444 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
13448 ndr_print_ptr(ndr, "devmode", r->devmode);
13451 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
13457 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
13461 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
13465 ndr_print_bad_level(ndr, name, level);
13469 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
13471 if (ndr_flags & NDR_SCALARS) {
13472 NDR_CHECK(ndr_push_align(ndr, 4));
13473 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13474 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
13475 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
13476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
13477 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
13478 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13480 if (ndr_flags & NDR_BUFFERS) {
13481 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13483 return NDR_ERR_SUCCESS;
13486 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
13488 if (ndr_flags & NDR_SCALARS) {
13489 NDR_CHECK(ndr_pull_align(ndr, 4));
13490 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13491 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
13492 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
13493 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
13494 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
13495 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13497 if (ndr_flags & NDR_BUFFERS) {
13498 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13500 return NDR_ERR_SUCCESS;
13503 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
13505 ndr_print_struct(ndr, name, "spoolss_Notify");
13507 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13508 ndr_print_spoolss_Field(ndr, "field", r->field);
13509 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
13510 ndr_print_uint32(ndr, "job_id", r->job_id);
13511 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
13512 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
13516 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
13518 uint32_t cntr_notifies_0;
13519 if (ndr_flags & NDR_SCALARS) {
13520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13521 NDR_CHECK(ndr_push_align(ndr, 4));
13522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13525 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13526 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13529 if (ndr_flags & NDR_BUFFERS) {
13530 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13531 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13534 return NDR_ERR_SUCCESS;
13537 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
13539 uint32_t cntr_notifies_0;
13540 TALLOC_CTX *_mem_save_notifies_0;
13541 if (ndr_flags & NDR_SCALARS) {
13542 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
13543 NDR_CHECK(ndr_pull_align(ndr, 4));
13544 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13547 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
13548 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13549 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13550 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13551 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13555 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
13558 if (ndr_flags & NDR_BUFFERS) {
13559 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13560 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13561 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13562 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13566 return NDR_ERR_SUCCESS;
13569 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
13571 uint32_t cntr_notifies_0;
13572 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
13574 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13575 ndr_print_uint32(ndr, "flags", r->flags);
13576 ndr_print_uint32(ndr, "count", r->count);
13577 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
13579 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
13581 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
13582 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
13590 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
13592 if (ndr_flags & NDR_SCALARS) {
13593 int level = ndr_push_get_switch_value(ndr, r);
13594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13597 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
13601 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13604 if (ndr_flags & NDR_BUFFERS) {
13605 int level = ndr_push_get_switch_value(ndr, r);
13609 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13614 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13617 return NDR_ERR_SUCCESS;
13620 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
13624 TALLOC_CTX *_mem_save_info0_0;
13625 level = ndr_pull_get_switch_value(ndr, r);
13626 if (ndr_flags & NDR_SCALARS) {
13627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13628 if (_level != level) {
13629 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13633 uint32_t _ptr_info0;
13634 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
13636 NDR_PULL_ALLOC(ndr, r->info0);
13643 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13646 if (ndr_flags & NDR_BUFFERS) {
13650 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
13651 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
13652 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
13658 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13661 return NDR_ERR_SUCCESS;
13664 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
13667 level = ndr_print_get_switch_value(ndr, r);
13668 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
13671 ndr_print_ptr(ndr, "info0", r->info0);
13674 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
13680 ndr_print_bad_level(ndr, name, level);
13684 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13687 return NDR_ERR_SUCCESS;
13690 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13693 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13695 return NDR_ERR_SUCCESS;
13698 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13700 ndr_print_uint32(ndr, name, r);
13702 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
13703 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
13704 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
13708 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
13710 if (ndr_flags & NDR_SCALARS) {
13711 NDR_CHECK(ndr_push_align(ndr, 4));
13712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13713 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13716 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13717 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13718 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13720 if (ndr_flags & NDR_BUFFERS) {
13722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13734 return NDR_ERR_SUCCESS;
13737 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
13739 uint32_t _ptr_client;
13740 TALLOC_CTX *_mem_save_client_0;
13741 uint32_t _ptr_user;
13742 TALLOC_CTX *_mem_save_user_0;
13743 if (ndr_flags & NDR_SCALARS) {
13744 NDR_CHECK(ndr_pull_align(ndr, 4));
13745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13746 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
13748 NDR_PULL_ALLOC(ndr, r->client);
13752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
13754 NDR_PULL_ALLOC(ndr, r->user);
13758 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
13759 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
13760 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
13761 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
13763 if (ndr_flags & NDR_BUFFERS) {
13765 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
13766 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
13767 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
13768 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
13769 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
13770 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));
13772 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
13773 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
13774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
13777 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
13778 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
13779 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
13780 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
13781 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
13782 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));
13784 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
13785 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
13786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
13789 return NDR_ERR_SUCCESS;
13792 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
13794 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
13796 ndr_print_uint32(ndr, "size", r->size);
13797 ndr_print_ptr(ndr, "client", r->client);
13800 ndr_print_string(ndr, "client", r->client);
13803 ndr_print_ptr(ndr, "user", r->user);
13806 ndr_print_string(ndr, "user", r->user);
13809 ndr_print_uint32(ndr, "build", r->build);
13810 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
13811 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
13812 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
13816 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
13818 if (ndr_flags & NDR_SCALARS) {
13819 NDR_CHECK(ndr_push_align(ndr, 4));
13820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
13822 if (ndr_flags & NDR_BUFFERS) {
13824 return NDR_ERR_SUCCESS;
13827 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
13829 if (ndr_flags & NDR_SCALARS) {
13830 NDR_CHECK(ndr_pull_align(ndr, 4));
13831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
13833 if (ndr_flags & NDR_BUFFERS) {
13835 return NDR_ERR_SUCCESS;
13838 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
13840 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
13842 ndr_print_uint32(ndr, "not_used", r->not_used);
13846 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
13848 if (ndr_flags & NDR_SCALARS) {
13849 NDR_CHECK(ndr_push_align(ndr, 4));
13850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
13853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13854 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13856 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13857 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13858 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13859 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
13861 if (ndr_flags & NDR_BUFFERS) {
13863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13866 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13872 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13875 return NDR_ERR_SUCCESS;
13878 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
13880 uint32_t _ptr_client;
13881 TALLOC_CTX *_mem_save_client_0;
13882 uint32_t _ptr_user;
13883 TALLOC_CTX *_mem_save_user_0;
13884 if (ndr_flags & NDR_SCALARS) {
13885 NDR_CHECK(ndr_pull_align(ndr, 4));
13886 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13887 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13888 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
13889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
13891 NDR_PULL_ALLOC(ndr, r->client);
13895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
13897 NDR_PULL_ALLOC(ndr, r->user);
13901 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
13902 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
13903 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
13904 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
13905 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
13907 if (ndr_flags & NDR_BUFFERS) {
13909 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
13910 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
13911 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
13912 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
13913 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
13914 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));
13916 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
13917 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
13918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
13921 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
13922 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
13923 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
13924 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
13925 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
13926 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));
13928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
13929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
13930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
13933 return NDR_ERR_SUCCESS;
13936 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
13938 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
13940 ndr_print_uint32(ndr, "size", r->size);
13941 ndr_print_uint32(ndr, "flags", r->flags);
13942 ndr_print_uint32(ndr, "size2", r->size2);
13943 ndr_print_ptr(ndr, "client", r->client);
13946 ndr_print_string(ndr, "client", r->client);
13949 ndr_print_ptr(ndr, "user", r->user);
13952 ndr_print_string(ndr, "user", r->user);
13955 ndr_print_uint32(ndr, "build", r->build);
13956 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
13957 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
13958 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
13959 ndr_print_udlong(ndr, "reserved", r->reserved);
13963 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
13965 if (ndr_flags & NDR_SCALARS) {
13966 int level = ndr_push_get_switch_value(ndr, r);
13967 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13970 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
13974 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
13978 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
13982 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13985 if (ndr_flags & NDR_BUFFERS) {
13986 int level = ndr_push_get_switch_value(ndr, r);
13990 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
13996 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14002 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14007 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14010 return NDR_ERR_SUCCESS;
14013 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
14017 TALLOC_CTX *_mem_save_level1_0;
14018 TALLOC_CTX *_mem_save_level2_0;
14019 TALLOC_CTX *_mem_save_level3_0;
14020 level = ndr_pull_get_switch_value(ndr, r);
14021 if (ndr_flags & NDR_SCALARS) {
14022 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14023 if (_level != level) {
14024 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14028 uint32_t _ptr_level1;
14029 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
14031 NDR_PULL_ALLOC(ndr, r->level1);
14038 uint32_t _ptr_level2;
14039 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
14041 NDR_PULL_ALLOC(ndr, r->level2);
14048 uint32_t _ptr_level3;
14049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
14051 NDR_PULL_ALLOC(ndr, r->level3);
14058 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14061 if (ndr_flags & NDR_BUFFERS) {
14065 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14066 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
14067 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
14074 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14075 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
14076 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
14083 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
14084 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
14085 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
14091 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14094 return NDR_ERR_SUCCESS;
14097 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
14100 level = ndr_print_get_switch_value(ndr, r);
14101 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
14104 ndr_print_ptr(ndr, "level1", r->level1);
14107 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
14113 ndr_print_ptr(ndr, "level2", r->level2);
14116 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
14122 ndr_print_ptr(ndr, "level3", r->level3);
14125 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
14131 ndr_print_bad_level(ndr, name, level);
14135 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
14137 if (ndr_flags & NDR_SCALARS) {
14138 NDR_CHECK(ndr_push_align(ndr, 4));
14139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
14140 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
14141 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14143 if (ndr_flags & NDR_BUFFERS) {
14144 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14146 return NDR_ERR_SUCCESS;
14149 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
14151 if (ndr_flags & NDR_SCALARS) {
14152 NDR_CHECK(ndr_pull_align(ndr, 4));
14153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
14154 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
14155 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14157 if (ndr_flags & NDR_BUFFERS) {
14158 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14160 return NDR_ERR_SUCCESS;
14163 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
14165 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
14167 ndr_print_uint32(ndr, "level", r->level);
14168 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
14169 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
14173 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14176 return NDR_ERR_SUCCESS;
14179 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14184 return NDR_ERR_SUCCESS;
14187 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
14189 ndr_print_uint32(ndr, name, r);
14191 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
14192 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
14193 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
14194 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
14195 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
14199 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14202 return NDR_ERR_SUCCESS;
14205 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14210 return NDR_ERR_SUCCESS;
14213 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14215 ndr_print_uint32(ndr, name, r);
14217 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
14218 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
14219 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
14223 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
14225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14226 return NDR_ERR_SUCCESS;
14229 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
14232 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14234 return NDR_ERR_SUCCESS;
14237 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
14239 const char *val = NULL;
14242 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
14243 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
14245 ndr_print_enum(ndr, name, "ENUM", val, r);
14248 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
14250 if (ndr_flags & NDR_SCALARS) {
14251 NDR_CHECK(ndr_push_align(ndr, 4));
14252 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
14254 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14258 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14260 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14261 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14262 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14263 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14265 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14268 if (ndr_flags & NDR_BUFFERS) {
14270 return NDR_ERR_SUCCESS;
14273 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
14275 if (ndr_flags & NDR_SCALARS) {
14276 NDR_CHECK(ndr_pull_align(ndr, 4));
14277 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14278 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14279 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14282 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14283 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14285 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14286 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14287 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14288 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14289 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14293 if (ndr_flags & NDR_BUFFERS) {
14295 return NDR_ERR_SUCCESS;
14298 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
14300 ndr_print_struct(ndr, name, "spoolss_PortData1");
14302 ndr_print_string(ndr, "portname", r->portname);
14303 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
14304 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14305 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14306 ndr_print_uint32(ndr, "reserved", r->reserved);
14307 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14308 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14309 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14310 ndr_print_string(ndr, "queue", r->queue);
14311 ndr_print_string(ndr, "ip_address", r->ip_address);
14312 ndr_print_string(ndr, "hardware_address", r->hardware_address);
14313 ndr_print_string(ndr, "device_type", r->device_type);
14314 ndr_print_uint32(ndr, "port_number", r->port_number);
14315 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14316 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14320 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
14322 if (ndr_flags & NDR_SCALARS) {
14323 NDR_CHECK(ndr_push_align(ndr, 4));
14324 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
14326 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14329 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14330 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14332 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14333 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
14339 if (ndr_flags & NDR_BUFFERS) {
14341 return NDR_ERR_SUCCESS;
14344 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
14346 if (ndr_flags & NDR_SCALARS) {
14347 NDR_CHECK(ndr_pull_align(ndr, 4));
14348 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14350 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14353 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14354 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14356 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14357 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14358 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14359 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14361 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
14363 if (ndr_flags & NDR_BUFFERS) {
14365 return NDR_ERR_SUCCESS;
14368 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
14370 ndr_print_struct(ndr, name, "spoolss_PortData2");
14372 ndr_print_string(ndr, "portname", r->portname);
14373 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
14374 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14375 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14376 ndr_print_uint32(ndr, "reserved", r->reserved);
14377 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14378 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14379 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14380 ndr_print_string(ndr, "queue", r->queue);
14381 ndr_print_string(ndr, "device_type", r->device_type);
14382 ndr_print_uint32(ndr, "port_number", r->port_number);
14383 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14384 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14385 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
14389 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
14391 if (ndr_flags & NDR_SCALARS) {
14392 NDR_CHECK(ndr_push_align(ndr, 4));
14394 uint32_t _flags_save_string = ndr->flags;
14395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14396 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
14397 ndr->flags = _flags_save_string;
14400 if (ndr_flags & NDR_BUFFERS) {
14402 return NDR_ERR_SUCCESS;
14405 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
14407 if (ndr_flags & NDR_SCALARS) {
14408 NDR_CHECK(ndr_pull_align(ndr, 4));
14410 uint32_t _flags_save_string = ndr->flags;
14411 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14412 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
14413 ndr->flags = _flags_save_string;
14416 if (ndr_flags & NDR_BUFFERS) {
14418 return NDR_ERR_SUCCESS;
14421 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
14423 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
14425 ndr_print_string(ndr, "dll_name", r->dll_name);
14429 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14432 return NDR_ERR_SUCCESS;
14435 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14440 return NDR_ERR_SUCCESS;
14443 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14445 ndr_print_uint32(ndr, name, r);
14447 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
14448 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
14449 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
14450 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
14451 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
14452 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
14453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
14454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
14458 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
14460 if (flags & NDR_IN) {
14461 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
14462 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
14463 if (r->in.server) {
14464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14467 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14470 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14471 if (r->in.buffer) {
14472 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14476 if (flags & NDR_OUT) {
14477 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14479 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
14481 if (r->out.needed == NULL) {
14482 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14485 if (r->out.count == NULL) {
14486 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
14489 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14491 return NDR_ERR_SUCCESS;
14494 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
14496 uint32_t _ptr_server;
14497 uint32_t _ptr_buffer;
14498 uint32_t _ptr_info;
14499 TALLOC_CTX *_mem_save_server_0;
14500 TALLOC_CTX *_mem_save_buffer_0;
14501 TALLOC_CTX *_mem_save_info_0;
14502 TALLOC_CTX *_mem_save_needed_0;
14503 TALLOC_CTX *_mem_save_count_0;
14504 if (flags & NDR_IN) {
14505 ZERO_STRUCT(r->out);
14507 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
14508 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14510 NDR_PULL_ALLOC(ndr, r->in.server);
14512 r->in.server = NULL;
14514 if (r->in.server) {
14515 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14516 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14517 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14518 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14519 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14520 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));
14522 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14523 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14526 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14529 NDR_PULL_ALLOC(ndr, r->in.buffer);
14531 r->in.buffer = NULL;
14533 if (r->in.buffer) {
14534 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14535 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14536 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14540 NDR_PULL_ALLOC(ndr, r->out.needed);
14541 ZERO_STRUCTP(r->out.needed);
14542 NDR_PULL_ALLOC(ndr, r->out.count);
14543 ZERO_STRUCTP(r->out.count);
14545 if (flags & NDR_OUT) {
14546 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14548 NDR_PULL_ALLOC(ndr, r->out.info);
14550 r->out.info = NULL;
14553 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14554 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14555 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
14556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14558 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14559 NDR_PULL_ALLOC(ndr, r->out.needed);
14561 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14562 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14565 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14566 NDR_PULL_ALLOC(ndr, r->out.count);
14568 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
14569 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
14570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
14571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
14572 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14574 return NDR_ERR_SUCCESS;
14577 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
14579 uint32_t cntr_info_0;
14580 if (flags & NDR_IN) {
14581 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14584 if (flags & NDR_OUT) {
14585 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14586 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14587 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14589 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14590 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14593 return NDR_ERR_SUCCESS;
14596 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
14598 uint32_t cntr_info_0;
14599 TALLOC_CTX *_mem_save_info_0;
14600 if (flags & NDR_IN) {
14601 ZERO_STRUCT(r->out);
14603 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14604 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14606 if (flags & NDR_OUT) {
14607 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
14608 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14609 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14610 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14611 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14612 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14614 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14615 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14617 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14619 return NDR_ERR_SUCCESS;
14622 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
14624 uint32_t cntr_info_1;
14625 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
14627 if (flags & NDR_SET_VALUES) {
14628 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14630 if (flags & NDR_IN) {
14631 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
14633 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
14634 ndr_print_ptr(ndr, "server", r->in.server);
14636 if (r->in.server) {
14637 ndr_print_string(ndr, "server", r->in.server);
14640 ndr_print_uint32(ndr, "level", r->in.level);
14641 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14643 if (r->in.buffer) {
14644 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14647 ndr_print_uint32(ndr, "offered", r->in.offered);
14650 if (flags & NDR_OUT) {
14651 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
14653 ndr_print_ptr(ndr, "count", r->out.count);
14655 ndr_print_uint32(ndr, "count", *r->out.count);
14657 ndr_print_ptr(ndr, "info", r->out.info);
14660 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
14662 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
14664 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
14665 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
14666 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
14673 ndr_print_ptr(ndr, "needed", r->out.needed);
14675 ndr_print_uint32(ndr, "needed", *r->out.needed);
14677 ndr_print_WERROR(ndr, "result", r->out.result);
14683 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
14685 if (flags & NDR_IN) {
14686 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
14687 if (r->in.printername) {
14688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14691 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14693 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
14694 if (r->in.datatype) {
14695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
14696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
14698 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14700 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14701 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
14703 if (flags & NDR_OUT) {
14704 if (r->out.handle == NULL) {
14705 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14707 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14708 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14710 return NDR_ERR_SUCCESS;
14713 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
14715 uint32_t _ptr_printername;
14716 uint32_t _ptr_datatype;
14717 TALLOC_CTX *_mem_save_printername_0;
14718 TALLOC_CTX *_mem_save_datatype_0;
14719 TALLOC_CTX *_mem_save_handle_0;
14720 if (flags & NDR_IN) {
14721 ZERO_STRUCT(r->out);
14723 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
14724 if (_ptr_printername) {
14725 NDR_PULL_ALLOC(ndr, r->in.printername);
14727 r->in.printername = NULL;
14729 if (r->in.printername) {
14730 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
14731 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
14732 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
14733 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
14734 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
14735 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));
14737 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
14738 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
14739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
14741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14742 if (_ptr_datatype) {
14743 NDR_PULL_ALLOC(ndr, r->in.datatype);
14745 r->in.datatype = NULL;
14747 if (r->in.datatype) {
14748 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14749 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
14750 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
14751 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
14752 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
14753 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));
14755 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
14756 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
14757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14759 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14760 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
14761 NDR_PULL_ALLOC(ndr, r->out.handle);
14762 ZERO_STRUCTP(r->out.handle);
14764 if (flags & NDR_OUT) {
14765 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14766 NDR_PULL_ALLOC(ndr, r->out.handle);
14768 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14769 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
14770 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14772 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14774 return NDR_ERR_SUCCESS;
14777 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
14779 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
14781 if (flags & NDR_SET_VALUES) {
14782 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14784 if (flags & NDR_IN) {
14785 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
14787 ndr_print_ptr(ndr, "printername", r->in.printername);
14789 if (r->in.printername) {
14790 ndr_print_string(ndr, "printername", r->in.printername);
14793 ndr_print_ptr(ndr, "datatype", r->in.datatype);
14795 if (r->in.datatype) {
14796 ndr_print_string(ndr, "datatype", r->in.datatype);
14799 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
14800 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
14803 if (flags & NDR_OUT) {
14804 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
14806 ndr_print_ptr(ndr, "handle", r->out.handle);
14808 ndr_print_policy_handle(ndr, "handle", r->out.handle);
14810 ndr_print_WERROR(ndr, "result", r->out.result);
14816 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
14818 if (flags & NDR_IN) {
14819 if (r->in.handle == NULL) {
14820 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14822 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
14824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
14826 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14828 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
14830 if (flags & NDR_OUT) {
14831 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14833 return NDR_ERR_SUCCESS;
14836 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
14839 TALLOC_CTX *_mem_save_handle_0;
14840 TALLOC_CTX *_mem_save_ctr_0;
14841 if (flags & NDR_IN) {
14842 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14843 NDR_PULL_ALLOC(ndr, r->in.handle);
14845 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14846 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14847 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14848 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14849 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
14850 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14852 NDR_PULL_ALLOC(ndr, r->in.ctr);
14857 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14858 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
14859 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14860 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
14862 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
14864 if (flags & NDR_OUT) {
14865 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14867 return NDR_ERR_SUCCESS;
14870 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
14872 ndr_print_struct(ndr, name, "spoolss_SetJob");
14874 if (flags & NDR_SET_VALUES) {
14875 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14877 if (flags & NDR_IN) {
14878 ndr_print_struct(ndr, "in", "spoolss_SetJob");
14880 ndr_print_ptr(ndr, "handle", r->in.handle);
14882 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14884 ndr_print_uint32(ndr, "job_id", r->in.job_id);
14885 ndr_print_ptr(ndr, "ctr", r->in.ctr);
14888 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
14891 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
14894 if (flags & NDR_OUT) {
14895 ndr_print_struct(ndr, "out", "spoolss_SetJob");
14897 ndr_print_WERROR(ndr, "result", r->out.result);
14903 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
14905 if (flags & NDR_IN) {
14906 if (r->in.handle == NULL) {
14907 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14909 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
14911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14912 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14913 if (r->in.buffer) {
14914 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14916 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14918 if (flags & NDR_OUT) {
14919 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14922 struct ndr_push *_ndr_info;
14923 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
14924 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
14925 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
14926 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
14929 if (r->out.needed == NULL) {
14930 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14932 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14933 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14935 return NDR_ERR_SUCCESS;
14938 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
14940 uint32_t _ptr_buffer;
14941 uint32_t _ptr_info;
14942 TALLOC_CTX *_mem_save_handle_0;
14943 TALLOC_CTX *_mem_save_buffer_0;
14944 TALLOC_CTX *_mem_save_info_0;
14945 TALLOC_CTX *_mem_save_needed_0;
14946 if (flags & NDR_IN) {
14947 ZERO_STRUCT(r->out);
14949 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14950 NDR_PULL_ALLOC(ndr, r->in.handle);
14952 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14953 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14954 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
14957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14960 NDR_PULL_ALLOC(ndr, r->in.buffer);
14962 r->in.buffer = NULL;
14964 if (r->in.buffer) {
14965 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14966 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14967 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14971 NDR_PULL_ALLOC(ndr, r->out.needed);
14972 ZERO_STRUCTP(r->out.needed);
14974 if (flags & NDR_OUT) {
14975 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14977 NDR_PULL_ALLOC(ndr, r->out.info);
14979 r->out.info = NULL;
14982 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14983 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14985 struct ndr_pull *_ndr_info;
14986 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
14987 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
14988 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
14989 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
14991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14993 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14994 NDR_PULL_ALLOC(ndr, r->out.needed);
14996 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14997 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14998 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14999 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15000 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15002 return NDR_ERR_SUCCESS;
15005 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
15007 ndr_print_struct(ndr, name, "spoolss_GetJob");
15009 if (flags & NDR_SET_VALUES) {
15010 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15012 if (flags & NDR_IN) {
15013 ndr_print_struct(ndr, "in", "spoolss_GetJob");
15015 ndr_print_ptr(ndr, "handle", r->in.handle);
15017 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15019 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15020 ndr_print_uint32(ndr, "level", r->in.level);
15021 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15023 if (r->in.buffer) {
15024 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15027 ndr_print_uint32(ndr, "offered", r->in.offered);
15030 if (flags & NDR_OUT) {
15031 ndr_print_struct(ndr, "out", "spoolss_GetJob");
15033 ndr_print_ptr(ndr, "info", r->out.info);
15036 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15037 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
15040 ndr_print_ptr(ndr, "needed", r->out.needed);
15042 ndr_print_uint32(ndr, "needed", *r->out.needed);
15044 ndr_print_WERROR(ndr, "result", r->out.result);
15050 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
15052 if (flags & NDR_IN) {
15053 if (r->in.handle == NULL) {
15054 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15056 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
15058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
15059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15060 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15061 if (r->in.buffer) {
15062 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15066 if (flags & NDR_OUT) {
15067 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15069 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15071 if (r->out.needed == NULL) {
15072 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15075 if (r->out.count == NULL) {
15076 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15079 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15081 return NDR_ERR_SUCCESS;
15084 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
15086 uint32_t _ptr_buffer;
15087 uint32_t _ptr_info;
15088 TALLOC_CTX *_mem_save_handle_0;
15089 TALLOC_CTX *_mem_save_buffer_0;
15090 TALLOC_CTX *_mem_save_info_0;
15091 TALLOC_CTX *_mem_save_needed_0;
15092 TALLOC_CTX *_mem_save_count_0;
15093 if (flags & NDR_IN) {
15094 ZERO_STRUCT(r->out);
15096 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15097 NDR_PULL_ALLOC(ndr, r->in.handle);
15099 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15100 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15101 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
15104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
15105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15108 NDR_PULL_ALLOC(ndr, r->in.buffer);
15110 r->in.buffer = NULL;
15112 if (r->in.buffer) {
15113 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15114 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15115 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15116 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15118 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15119 NDR_PULL_ALLOC(ndr, r->out.needed);
15120 ZERO_STRUCTP(r->out.needed);
15121 NDR_PULL_ALLOC(ndr, r->out.count);
15122 ZERO_STRUCTP(r->out.count);
15124 if (flags & NDR_OUT) {
15125 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15127 NDR_PULL_ALLOC(ndr, r->out.info);
15129 r->out.info = NULL;
15132 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15133 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15134 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15135 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15137 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15138 NDR_PULL_ALLOC(ndr, r->out.needed);
15140 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15141 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15142 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15144 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15145 NDR_PULL_ALLOC(ndr, r->out.count);
15147 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15148 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15151 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15153 return NDR_ERR_SUCCESS;
15156 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
15158 uint32_t cntr_info_0;
15159 if (flags & NDR_IN) {
15160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15161 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15163 if (flags & NDR_OUT) {
15164 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15165 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15166 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15168 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15169 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15172 return NDR_ERR_SUCCESS;
15175 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
15177 uint32_t cntr_info_0;
15178 TALLOC_CTX *_mem_save_info_0;
15179 if (flags & NDR_IN) {
15180 ZERO_STRUCT(r->out);
15182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15183 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15185 if (flags & NDR_OUT) {
15186 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15187 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15188 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15189 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15190 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15191 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15193 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15194 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15198 return NDR_ERR_SUCCESS;
15201 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
15203 uint32_t cntr_info_1;
15204 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
15206 if (flags & NDR_SET_VALUES) {
15207 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15209 if (flags & NDR_IN) {
15210 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
15212 ndr_print_ptr(ndr, "handle", r->in.handle);
15214 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15216 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
15217 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
15218 ndr_print_uint32(ndr, "level", r->in.level);
15219 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15221 if (r->in.buffer) {
15222 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15225 ndr_print_uint32(ndr, "offered", r->in.offered);
15228 if (flags & NDR_OUT) {
15229 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
15231 ndr_print_ptr(ndr, "count", r->out.count);
15233 ndr_print_uint32(ndr, "count", *r->out.count);
15235 ndr_print_ptr(ndr, "info", r->out.info);
15238 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15240 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15242 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15243 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15244 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
15251 ndr_print_ptr(ndr, "needed", r->out.needed);
15253 ndr_print_uint32(ndr, "needed", *r->out.needed);
15255 ndr_print_WERROR(ndr, "result", r->out.result);
15261 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
15263 if (flags & NDR_IN) {
15265 if (flags & NDR_OUT) {
15266 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15268 return NDR_ERR_SUCCESS;
15271 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
15273 if (flags & NDR_IN) {
15275 if (flags & NDR_OUT) {
15276 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15278 return NDR_ERR_SUCCESS;
15281 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
15283 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
15285 if (flags & NDR_SET_VALUES) {
15286 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15288 if (flags & NDR_IN) {
15289 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
15293 if (flags & NDR_OUT) {
15294 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
15296 ndr_print_WERROR(ndr, "result", r->out.result);
15302 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
15304 if (flags & NDR_IN) {
15305 if (r->in.handle == NULL) {
15306 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15308 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15310 if (flags & NDR_OUT) {
15311 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15313 return NDR_ERR_SUCCESS;
15316 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
15318 TALLOC_CTX *_mem_save_handle_0;
15319 if (flags & NDR_IN) {
15320 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15321 NDR_PULL_ALLOC(ndr, r->in.handle);
15323 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15324 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15325 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15328 if (flags & NDR_OUT) {
15329 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15331 return NDR_ERR_SUCCESS;
15334 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
15336 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
15338 if (flags & NDR_SET_VALUES) {
15339 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15341 if (flags & NDR_IN) {
15342 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
15344 ndr_print_ptr(ndr, "handle", r->in.handle);
15346 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15350 if (flags & NDR_OUT) {
15351 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
15353 ndr_print_WERROR(ndr, "result", r->out.result);
15359 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
15361 if (flags & NDR_IN) {
15362 if (r->in.handle == NULL) {
15363 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15365 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15366 if (r->in.info_ctr == NULL) {
15367 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15369 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15370 if (r->in.devmode_ctr == NULL) {
15371 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15373 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15374 if (r->in.secdesc_ctr == NULL) {
15375 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15377 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15378 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
15380 if (flags & NDR_OUT) {
15381 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15383 return NDR_ERR_SUCCESS;
15386 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
15388 TALLOC_CTX *_mem_save_handle_0;
15389 TALLOC_CTX *_mem_save_info_ctr_0;
15390 TALLOC_CTX *_mem_save_devmode_ctr_0;
15391 TALLOC_CTX *_mem_save_secdesc_ctr_0;
15392 if (flags & NDR_IN) {
15393 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15394 NDR_PULL_ALLOC(ndr, r->in.handle);
15396 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15397 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15398 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15400 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15401 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15403 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15404 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15405 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15407 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15408 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
15410 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15411 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
15412 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15413 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15414 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15415 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
15417 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15418 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
15419 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15421 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
15423 if (flags & NDR_OUT) {
15424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15426 return NDR_ERR_SUCCESS;
15429 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
15431 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
15433 if (flags & NDR_SET_VALUES) {
15434 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15436 if (flags & NDR_IN) {
15437 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
15439 ndr_print_ptr(ndr, "handle", r->in.handle);
15441 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15443 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15445 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15447 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
15449 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
15451 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15453 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15455 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
15458 if (flags & NDR_OUT) {
15459 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
15461 ndr_print_WERROR(ndr, "result", r->out.result);
15467 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
15469 if (flags & NDR_IN) {
15470 if (r->in.handle == NULL) {
15471 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15473 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15475 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15476 if (r->in.buffer) {
15477 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15479 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15481 if (flags & NDR_OUT) {
15482 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15485 struct ndr_push *_ndr_info;
15486 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15487 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15488 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15489 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15492 if (r->out.needed == NULL) {
15493 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15495 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15496 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15498 return NDR_ERR_SUCCESS;
15501 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
15503 uint32_t _ptr_buffer;
15504 uint32_t _ptr_info;
15505 TALLOC_CTX *_mem_save_handle_0;
15506 TALLOC_CTX *_mem_save_buffer_0;
15507 TALLOC_CTX *_mem_save_info_0;
15508 TALLOC_CTX *_mem_save_needed_0;
15509 if (flags & NDR_IN) {
15510 ZERO_STRUCT(r->out);
15512 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15513 NDR_PULL_ALLOC(ndr, r->in.handle);
15515 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15516 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15517 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15520 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15522 NDR_PULL_ALLOC(ndr, r->in.buffer);
15524 r->in.buffer = NULL;
15526 if (r->in.buffer) {
15527 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15528 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15529 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15533 NDR_PULL_ALLOC(ndr, r->out.needed);
15534 ZERO_STRUCTP(r->out.needed);
15536 if (flags & NDR_OUT) {
15537 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15539 NDR_PULL_ALLOC(ndr, r->out.info);
15541 r->out.info = NULL;
15544 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15545 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15547 struct ndr_pull *_ndr_info;
15548 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15549 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15550 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15551 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15555 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15556 NDR_PULL_ALLOC(ndr, r->out.needed);
15558 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15559 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15560 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15562 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15564 return NDR_ERR_SUCCESS;
15567 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
15569 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
15571 if (flags & NDR_SET_VALUES) {
15572 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15574 if (flags & NDR_IN) {
15575 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
15577 ndr_print_ptr(ndr, "handle", r->in.handle);
15579 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15581 ndr_print_uint32(ndr, "level", r->in.level);
15582 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15584 if (r->in.buffer) {
15585 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15588 ndr_print_uint32(ndr, "offered", r->in.offered);
15591 if (flags & NDR_OUT) {
15592 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
15594 ndr_print_ptr(ndr, "info", r->out.info);
15597 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15598 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
15601 ndr_print_ptr(ndr, "needed", r->out.needed);
15603 ndr_print_uint32(ndr, "needed", *r->out.needed);
15605 ndr_print_WERROR(ndr, "result", r->out.result);
15611 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
15613 if (flags & NDR_IN) {
15614 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
15615 if (r->in.servername) {
15616 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15617 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15619 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15621 if (r->in.info_ctr == NULL) {
15622 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15624 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15626 if (flags & NDR_OUT) {
15627 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15629 return NDR_ERR_SUCCESS;
15632 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
15634 uint32_t _ptr_servername;
15635 TALLOC_CTX *_mem_save_servername_0;
15636 TALLOC_CTX *_mem_save_info_ctr_0;
15637 if (flags & NDR_IN) {
15638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
15639 if (_ptr_servername) {
15640 NDR_PULL_ALLOC(ndr, r->in.servername);
15642 r->in.servername = NULL;
15644 if (r->in.servername) {
15645 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
15646 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
15647 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
15648 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
15649 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
15650 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));
15652 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
15653 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
15654 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
15656 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15657 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15659 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15660 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15661 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15662 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15664 if (flags & NDR_OUT) {
15665 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15667 return NDR_ERR_SUCCESS;
15670 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
15672 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
15674 if (flags & NDR_SET_VALUES) {
15675 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15677 if (flags & NDR_IN) {
15678 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
15680 ndr_print_ptr(ndr, "servername", r->in.servername);
15682 if (r->in.servername) {
15683 ndr_print_string(ndr, "servername", r->in.servername);
15686 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15688 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15692 if (flags & NDR_OUT) {
15693 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
15695 ndr_print_WERROR(ndr, "result", r->out.result);
15701 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
15703 if (flags & NDR_IN) {
15704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
15705 if (r->in.server) {
15706 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15709 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
15712 if (r->in.environment) {
15713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15716 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15719 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15720 if (r->in.buffer) {
15721 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15725 if (flags & NDR_OUT) {
15726 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15728 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15730 if (r->out.needed == NULL) {
15731 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15734 if (r->out.count == NULL) {
15735 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15738 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15740 return NDR_ERR_SUCCESS;
15743 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
15745 uint32_t _ptr_server;
15746 uint32_t _ptr_environment;
15747 uint32_t _ptr_buffer;
15748 uint32_t _ptr_info;
15749 TALLOC_CTX *_mem_save_server_0;
15750 TALLOC_CTX *_mem_save_environment_0;
15751 TALLOC_CTX *_mem_save_buffer_0;
15752 TALLOC_CTX *_mem_save_info_0;
15753 TALLOC_CTX *_mem_save_needed_0;
15754 TALLOC_CTX *_mem_save_count_0;
15755 if (flags & NDR_IN) {
15756 ZERO_STRUCT(r->out);
15758 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
15760 NDR_PULL_ALLOC(ndr, r->in.server);
15762 r->in.server = NULL;
15764 if (r->in.server) {
15765 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
15766 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
15767 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
15768 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
15769 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
15770 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));
15772 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
15773 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
15774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
15776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
15777 if (_ptr_environment) {
15778 NDR_PULL_ALLOC(ndr, r->in.environment);
15780 r->in.environment = NULL;
15782 if (r->in.environment) {
15783 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
15784 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
15785 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
15786 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
15787 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
15788 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));
15790 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
15791 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
15792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
15794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15795 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15797 NDR_PULL_ALLOC(ndr, r->in.buffer);
15799 r->in.buffer = NULL;
15801 if (r->in.buffer) {
15802 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15803 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15804 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15807 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15808 NDR_PULL_ALLOC(ndr, r->out.needed);
15809 ZERO_STRUCTP(r->out.needed);
15810 NDR_PULL_ALLOC(ndr, r->out.count);
15811 ZERO_STRUCTP(r->out.count);
15813 if (flags & NDR_OUT) {
15814 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15816 NDR_PULL_ALLOC(ndr, r->out.info);
15818 r->out.info = NULL;
15821 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15822 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15823 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15824 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15826 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15827 NDR_PULL_ALLOC(ndr, r->out.needed);
15829 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15830 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15831 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15833 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15834 NDR_PULL_ALLOC(ndr, r->out.count);
15836 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15837 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15838 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15839 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15840 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15842 return NDR_ERR_SUCCESS;
15845 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
15847 uint32_t cntr_info_0;
15848 if (flags & NDR_IN) {
15849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15852 if (flags & NDR_OUT) {
15853 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15854 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15855 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15857 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15858 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15861 return NDR_ERR_SUCCESS;
15864 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
15866 uint32_t cntr_info_0;
15867 TALLOC_CTX *_mem_save_info_0;
15868 if (flags & NDR_IN) {
15869 ZERO_STRUCT(r->out);
15871 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15872 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15874 if (flags & NDR_OUT) {
15875 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15876 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15877 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15878 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15879 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15880 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15882 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15883 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15885 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15887 return NDR_ERR_SUCCESS;
15890 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
15892 uint32_t cntr_info_1;
15893 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
15895 if (flags & NDR_SET_VALUES) {
15896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15898 if (flags & NDR_IN) {
15899 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
15901 ndr_print_ptr(ndr, "server", r->in.server);
15903 if (r->in.server) {
15904 ndr_print_string(ndr, "server", r->in.server);
15907 ndr_print_ptr(ndr, "environment", r->in.environment);
15909 if (r->in.environment) {
15910 ndr_print_string(ndr, "environment", r->in.environment);
15913 ndr_print_uint32(ndr, "level", r->in.level);
15914 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15916 if (r->in.buffer) {
15917 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15920 ndr_print_uint32(ndr, "offered", r->in.offered);
15923 if (flags & NDR_OUT) {
15924 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
15926 ndr_print_ptr(ndr, "count", r->out.count);
15928 ndr_print_uint32(ndr, "count", *r->out.count);
15930 ndr_print_ptr(ndr, "info", r->out.info);
15933 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15935 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15937 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15938 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15939 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
15946 ndr_print_ptr(ndr, "needed", r->out.needed);
15948 ndr_print_uint32(ndr, "needed", *r->out.needed);
15950 ndr_print_WERROR(ndr, "result", r->out.result);
15956 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
15958 if (flags & NDR_IN) {
15960 if (flags & NDR_OUT) {
15961 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15963 return NDR_ERR_SUCCESS;
15966 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
15968 if (flags & NDR_IN) {
15970 if (flags & NDR_OUT) {
15971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15973 return NDR_ERR_SUCCESS;
15976 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
15978 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
15980 if (flags & NDR_SET_VALUES) {
15981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15983 if (flags & NDR_IN) {
15984 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
15988 if (flags & NDR_OUT) {
15989 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
15991 ndr_print_WERROR(ndr, "result", r->out.result);
15997 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
15999 if (flags & NDR_IN) {
16000 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16001 if (r->in.server) {
16002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16005 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16007 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16008 if (r->in.environment) {
16009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16010 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16011 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16012 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16016 if (r->in.buffer) {
16017 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16021 if (flags & NDR_OUT) {
16022 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16025 struct ndr_push *_ndr_info;
16026 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16027 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16028 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16029 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16032 if (r->out.needed == NULL) {
16033 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16036 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16038 return NDR_ERR_SUCCESS;
16041 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
16043 uint32_t _ptr_server;
16044 uint32_t _ptr_environment;
16045 uint32_t _ptr_buffer;
16046 uint32_t _ptr_info;
16047 TALLOC_CTX *_mem_save_server_0;
16048 TALLOC_CTX *_mem_save_environment_0;
16049 TALLOC_CTX *_mem_save_buffer_0;
16050 TALLOC_CTX *_mem_save_info_0;
16051 TALLOC_CTX *_mem_save_needed_0;
16052 if (flags & NDR_IN) {
16053 ZERO_STRUCT(r->out);
16055 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16057 NDR_PULL_ALLOC(ndr, r->in.server);
16059 r->in.server = NULL;
16061 if (r->in.server) {
16062 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16063 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16064 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16065 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16066 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16067 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));
16069 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16070 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16074 if (_ptr_environment) {
16075 NDR_PULL_ALLOC(ndr, r->in.environment);
16077 r->in.environment = NULL;
16079 if (r->in.environment) {
16080 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16081 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16082 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16083 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16084 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16085 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));
16087 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16088 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16091 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16092 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16094 NDR_PULL_ALLOC(ndr, r->in.buffer);
16096 r->in.buffer = NULL;
16098 if (r->in.buffer) {
16099 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16100 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16101 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16102 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16104 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16105 NDR_PULL_ALLOC(ndr, r->out.needed);
16106 ZERO_STRUCTP(r->out.needed);
16108 if (flags & NDR_OUT) {
16109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16111 NDR_PULL_ALLOC(ndr, r->out.info);
16113 r->out.info = NULL;
16116 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16117 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16119 struct ndr_pull *_ndr_info;
16120 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16121 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16122 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16123 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16125 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16127 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16128 NDR_PULL_ALLOC(ndr, r->out.needed);
16130 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16131 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16134 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16136 return NDR_ERR_SUCCESS;
16139 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16141 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
16143 if (flags & NDR_SET_VALUES) {
16144 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16146 if (flags & NDR_IN) {
16147 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
16149 ndr_print_ptr(ndr, "server", r->in.server);
16151 if (r->in.server) {
16152 ndr_print_string(ndr, "server", r->in.server);
16155 ndr_print_ptr(ndr, "environment", r->in.environment);
16157 if (r->in.environment) {
16158 ndr_print_string(ndr, "environment", r->in.environment);
16161 ndr_print_uint32(ndr, "level", r->in.level);
16162 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16164 if (r->in.buffer) {
16165 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16168 ndr_print_uint32(ndr, "offered", r->in.offered);
16171 if (flags & NDR_OUT) {
16172 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
16174 ndr_print_ptr(ndr, "info", r->out.info);
16177 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16178 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
16181 ndr_print_ptr(ndr, "needed", r->out.needed);
16183 ndr_print_uint32(ndr, "needed", *r->out.needed);
16185 ndr_print_WERROR(ndr, "result", r->out.result);
16191 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
16193 if (flags & NDR_IN) {
16194 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16195 if (r->in.server) {
16196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16199 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16204 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16208 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16210 if (flags & NDR_OUT) {
16211 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16213 return NDR_ERR_SUCCESS;
16216 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
16218 uint32_t _ptr_server;
16219 TALLOC_CTX *_mem_save_server_0;
16220 if (flags & NDR_IN) {
16221 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16223 NDR_PULL_ALLOC(ndr, r->in.server);
16225 r->in.server = NULL;
16227 if (r->in.server) {
16228 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16229 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16230 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16231 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16232 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16233 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));
16235 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16236 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16239 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16240 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16241 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16242 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));
16244 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16245 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16246 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
16247 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
16248 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
16249 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));
16251 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
16252 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
16254 if (flags & NDR_OUT) {
16255 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16257 return NDR_ERR_SUCCESS;
16260 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
16262 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
16264 if (flags & NDR_SET_VALUES) {
16265 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16267 if (flags & NDR_IN) {
16268 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
16270 ndr_print_ptr(ndr, "server", r->in.server);
16272 if (r->in.server) {
16273 ndr_print_string(ndr, "server", r->in.server);
16276 ndr_print_string(ndr, "architecture", r->in.architecture);
16277 ndr_print_string(ndr, "driver", r->in.driver);
16280 if (flags & NDR_OUT) {
16281 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
16283 ndr_print_WERROR(ndr, "result", r->out.result);
16289 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
16291 if (flags & NDR_IN) {
16292 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16293 if (r->in.server) {
16294 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16297 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16302 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16306 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));
16307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16308 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16310 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));
16312 if (flags & NDR_OUT) {
16313 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16315 return NDR_ERR_SUCCESS;
16318 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
16320 uint32_t _ptr_server;
16321 TALLOC_CTX *_mem_save_server_0;
16322 if (flags & NDR_IN) {
16323 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16325 NDR_PULL_ALLOC(ndr, r->in.server);
16327 r->in.server = NULL;
16329 if (r->in.server) {
16330 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16331 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16332 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16333 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16334 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16335 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));
16337 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16338 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16341 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16342 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16343 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16344 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));
16346 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16347 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16348 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
16349 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
16350 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
16351 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));
16353 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
16354 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));
16355 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
16356 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
16357 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
16358 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));
16360 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
16361 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));
16363 if (flags & NDR_OUT) {
16364 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16366 return NDR_ERR_SUCCESS;
16369 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
16371 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
16373 if (flags & NDR_SET_VALUES) {
16374 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16376 if (flags & NDR_IN) {
16377 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
16379 ndr_print_ptr(ndr, "server", r->in.server);
16381 if (r->in.server) {
16382 ndr_print_string(ndr, "server", r->in.server);
16385 ndr_print_string(ndr, "architecture", r->in.architecture);
16386 ndr_print_string(ndr, "path_name", r->in.path_name);
16387 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
16390 if (flags & NDR_OUT) {
16391 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
16393 ndr_print_WERROR(ndr, "result", r->out.result);
16399 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
16401 if (flags & NDR_IN) {
16402 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16403 if (r->in.servername) {
16404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16409 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16410 if (r->in.environment) {
16411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16414 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16416 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16417 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16418 if (r->in.buffer) {
16419 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16423 if (flags & NDR_OUT) {
16424 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16426 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16428 if (r->out.needed == NULL) {
16429 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16432 if (r->out.count == NULL) {
16433 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
16436 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16438 return NDR_ERR_SUCCESS;
16441 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
16443 uint32_t _ptr_servername;
16444 uint32_t _ptr_environment;
16445 uint32_t _ptr_buffer;
16446 uint32_t _ptr_info;
16447 TALLOC_CTX *_mem_save_servername_0;
16448 TALLOC_CTX *_mem_save_environment_0;
16449 TALLOC_CTX *_mem_save_buffer_0;
16450 TALLOC_CTX *_mem_save_info_0;
16451 TALLOC_CTX *_mem_save_needed_0;
16452 TALLOC_CTX *_mem_save_count_0;
16453 if (flags & NDR_IN) {
16454 ZERO_STRUCT(r->out);
16456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16457 if (_ptr_servername) {
16458 NDR_PULL_ALLOC(ndr, r->in.servername);
16460 r->in.servername = NULL;
16462 if (r->in.servername) {
16463 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16464 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16465 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16466 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16467 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16468 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));
16470 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16471 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16475 if (_ptr_environment) {
16476 NDR_PULL_ALLOC(ndr, r->in.environment);
16478 r->in.environment = NULL;
16480 if (r->in.environment) {
16481 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16482 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16483 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16484 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16485 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16486 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));
16488 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16489 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16495 NDR_PULL_ALLOC(ndr, r->in.buffer);
16497 r->in.buffer = NULL;
16499 if (r->in.buffer) {
16500 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16501 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16502 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16506 NDR_PULL_ALLOC(ndr, r->out.needed);
16507 ZERO_STRUCTP(r->out.needed);
16508 NDR_PULL_ALLOC(ndr, r->out.count);
16509 ZERO_STRUCTP(r->out.count);
16511 if (flags & NDR_OUT) {
16512 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16514 NDR_PULL_ALLOC(ndr, r->out.info);
16516 r->out.info = NULL;
16519 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16520 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16521 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16525 NDR_PULL_ALLOC(ndr, r->out.needed);
16527 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16528 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16531 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16532 NDR_PULL_ALLOC(ndr, r->out.count);
16534 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16535 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16538 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16540 return NDR_ERR_SUCCESS;
16543 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
16545 uint32_t cntr_info_0;
16546 if (flags & NDR_IN) {
16547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16550 if (flags & NDR_OUT) {
16551 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16552 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16553 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16555 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16556 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16559 return NDR_ERR_SUCCESS;
16562 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
16564 uint32_t cntr_info_0;
16565 TALLOC_CTX *_mem_save_info_0;
16566 if (flags & NDR_IN) {
16567 ZERO_STRUCT(r->out);
16569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16572 if (flags & NDR_OUT) {
16573 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16574 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16575 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16576 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16577 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16578 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16580 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16581 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16585 return NDR_ERR_SUCCESS;
16588 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
16590 uint32_t cntr_info_1;
16591 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
16593 if (flags & NDR_SET_VALUES) {
16594 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16596 if (flags & NDR_IN) {
16597 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
16599 ndr_print_ptr(ndr, "servername", r->in.servername);
16601 if (r->in.servername) {
16602 ndr_print_string(ndr, "servername", r->in.servername);
16605 ndr_print_ptr(ndr, "environment", r->in.environment);
16607 if (r->in.environment) {
16608 ndr_print_string(ndr, "environment", r->in.environment);
16611 ndr_print_uint32(ndr, "level", r->in.level);
16612 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16614 if (r->in.buffer) {
16615 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16618 ndr_print_uint32(ndr, "offered", r->in.offered);
16621 if (flags & NDR_OUT) {
16622 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
16624 ndr_print_ptr(ndr, "count", r->out.count);
16626 ndr_print_uint32(ndr, "count", *r->out.count);
16628 ndr_print_ptr(ndr, "info", r->out.info);
16631 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16633 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16635 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16636 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16637 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
16644 ndr_print_ptr(ndr, "needed", r->out.needed);
16646 ndr_print_uint32(ndr, "needed", *r->out.needed);
16648 ndr_print_WERROR(ndr, "result", r->out.result);
16654 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16656 if (flags & NDR_IN) {
16658 if (flags & NDR_OUT) {
16659 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16661 return NDR_ERR_SUCCESS;
16664 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
16666 if (flags & NDR_IN) {
16668 if (flags & NDR_OUT) {
16669 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16671 return NDR_ERR_SUCCESS;
16674 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16676 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
16678 if (flags & NDR_SET_VALUES) {
16679 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16681 if (flags & NDR_IN) {
16682 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
16686 if (flags & NDR_OUT) {
16687 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
16689 ndr_print_WERROR(ndr, "result", r->out.result);
16695 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
16697 if (flags & NDR_IN) {
16698 if (r->in.handle == NULL) {
16699 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16701 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16703 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
16704 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
16706 if (flags & NDR_OUT) {
16707 if (r->out.job_id == NULL) {
16708 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
16711 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16713 return NDR_ERR_SUCCESS;
16716 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
16718 TALLOC_CTX *_mem_save_handle_0;
16719 TALLOC_CTX *_mem_save_job_id_0;
16720 if (flags & NDR_IN) {
16721 ZERO_STRUCT(r->out);
16723 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16724 NDR_PULL_ALLOC(ndr, r->in.handle);
16726 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16727 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16728 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16729 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16730 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16731 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
16732 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
16733 NDR_PULL_ALLOC(ndr, r->out.job_id);
16734 ZERO_STRUCTP(r->out.job_id);
16736 if (flags & NDR_OUT) {
16737 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16738 NDR_PULL_ALLOC(ndr, r->out.job_id);
16740 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
16741 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
16742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
16743 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
16744 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16746 return NDR_ERR_SUCCESS;
16749 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
16751 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
16753 if (flags & NDR_SET_VALUES) {
16754 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16756 if (flags & NDR_IN) {
16757 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
16759 ndr_print_ptr(ndr, "handle", r->in.handle);
16761 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16763 ndr_print_uint32(ndr, "level", r->in.level);
16764 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
16765 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
16768 if (flags & NDR_OUT) {
16769 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
16771 ndr_print_ptr(ndr, "job_id", r->out.job_id);
16773 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
16775 ndr_print_WERROR(ndr, "result", r->out.result);
16781 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
16783 if (flags & NDR_IN) {
16784 if (r->in.handle == NULL) {
16785 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16787 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16789 if (flags & NDR_OUT) {
16790 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16792 return NDR_ERR_SUCCESS;
16795 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
16797 TALLOC_CTX *_mem_save_handle_0;
16798 if (flags & NDR_IN) {
16799 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16800 NDR_PULL_ALLOC(ndr, r->in.handle);
16802 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16803 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16804 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16805 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16807 if (flags & NDR_OUT) {
16808 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16810 return NDR_ERR_SUCCESS;
16813 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
16815 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
16817 if (flags & NDR_SET_VALUES) {
16818 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16820 if (flags & NDR_IN) {
16821 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
16823 ndr_print_ptr(ndr, "handle", r->in.handle);
16825 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16829 if (flags & NDR_OUT) {
16830 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
16832 ndr_print_WERROR(ndr, "result", r->out.result);
16838 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
16840 if (flags & NDR_IN) {
16841 if (r->in.handle == NULL) {
16842 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16844 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16845 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
16846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
16848 if (flags & NDR_OUT) {
16849 if (r->out.num_written == NULL) {
16850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
16853 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16855 return NDR_ERR_SUCCESS;
16858 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
16860 TALLOC_CTX *_mem_save_handle_0;
16861 TALLOC_CTX *_mem_save_num_written_0;
16862 if (flags & NDR_IN) {
16863 ZERO_STRUCT(r->out);
16865 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16866 NDR_PULL_ALLOC(ndr, r->in.handle);
16868 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16869 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16870 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16871 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16872 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
16873 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
16874 NDR_PULL_ALLOC(ndr, r->out.num_written);
16875 ZERO_STRUCTP(r->out.num_written);
16877 if (flags & NDR_OUT) {
16878 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16879 NDR_PULL_ALLOC(ndr, r->out.num_written);
16881 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
16882 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
16883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
16884 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
16885 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16887 return NDR_ERR_SUCCESS;
16890 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
16892 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
16894 if (flags & NDR_SET_VALUES) {
16895 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16897 if (flags & NDR_IN) {
16898 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
16900 ndr_print_ptr(ndr, "handle", r->in.handle);
16902 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16904 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
16905 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
16908 if (flags & NDR_OUT) {
16909 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
16911 ndr_print_ptr(ndr, "num_written", r->out.num_written);
16913 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
16915 ndr_print_WERROR(ndr, "result", r->out.result);
16921 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
16923 if (flags & NDR_IN) {
16924 if (r->in.handle == NULL) {
16925 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16927 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16929 if (flags & NDR_OUT) {
16930 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16932 return NDR_ERR_SUCCESS;
16935 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
16937 TALLOC_CTX *_mem_save_handle_0;
16938 if (flags & NDR_IN) {
16939 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16940 NDR_PULL_ALLOC(ndr, r->in.handle);
16942 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16943 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16944 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16947 if (flags & NDR_OUT) {
16948 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16950 return NDR_ERR_SUCCESS;
16953 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
16955 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
16957 if (flags & NDR_SET_VALUES) {
16958 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16960 if (flags & NDR_IN) {
16961 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
16963 ndr_print_ptr(ndr, "handle", r->in.handle);
16965 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16969 if (flags & NDR_OUT) {
16970 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
16972 ndr_print_WERROR(ndr, "result", r->out.result);
16978 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
16980 if (flags & NDR_IN) {
16981 if (r->in.handle == NULL) {
16982 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16984 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16986 if (flags & NDR_OUT) {
16987 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16989 return NDR_ERR_SUCCESS;
16992 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
16994 TALLOC_CTX *_mem_save_handle_0;
16995 if (flags & NDR_IN) {
16996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16997 NDR_PULL_ALLOC(ndr, r->in.handle);
16999 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17000 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17001 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17004 if (flags & NDR_OUT) {
17005 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17007 return NDR_ERR_SUCCESS;
17010 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
17012 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
17014 if (flags & NDR_SET_VALUES) {
17015 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17017 if (flags & NDR_IN) {
17018 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
17020 ndr_print_ptr(ndr, "handle", r->in.handle);
17022 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17026 if (flags & NDR_OUT) {
17027 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
17029 ndr_print_WERROR(ndr, "result", r->out.result);
17035 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
17037 if (flags & NDR_IN) {
17038 if (r->in.handle == NULL) {
17039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17041 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17044 if (flags & NDR_OUT) {
17045 if (r->out.data == NULL) {
17046 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17049 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
17050 if (r->out._data_size == NULL) {
17051 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
17054 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17056 return NDR_ERR_SUCCESS;
17059 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
17061 TALLOC_CTX *_mem_save_handle_0;
17062 TALLOC_CTX *_mem_save__data_size_0;
17063 if (flags & NDR_IN) {
17064 ZERO_STRUCT(r->out);
17066 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17067 NDR_PULL_ALLOC(ndr, r->in.handle);
17069 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17070 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17071 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17073 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
17074 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
17075 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
17076 NDR_PULL_ALLOC(ndr, r->out._data_size);
17077 ZERO_STRUCTP(r->out._data_size);
17079 if (flags & NDR_OUT) {
17080 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
17081 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17082 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
17084 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
17085 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17086 NDR_PULL_ALLOC(ndr, r->out._data_size);
17088 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
17089 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
17090 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
17091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
17092 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17094 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
17097 return NDR_ERR_SUCCESS;
17100 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
17102 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
17104 if (flags & NDR_SET_VALUES) {
17105 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17107 if (flags & NDR_IN) {
17108 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
17110 ndr_print_ptr(ndr, "handle", r->in.handle);
17112 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17114 ndr_print_uint32(ndr, "data_size", r->in.data_size);
17117 if (flags & NDR_OUT) {
17118 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
17120 ndr_print_ptr(ndr, "data", r->out.data);
17122 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
17124 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
17126 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
17128 ndr_print_WERROR(ndr, "result", r->out.result);
17134 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
17136 if (flags & NDR_IN) {
17137 if (r->in.handle == NULL) {
17138 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17140 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17142 if (flags & NDR_OUT) {
17143 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17145 return NDR_ERR_SUCCESS;
17148 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
17150 TALLOC_CTX *_mem_save_handle_0;
17151 if (flags & NDR_IN) {
17152 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17153 NDR_PULL_ALLOC(ndr, r->in.handle);
17155 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17156 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17157 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17160 if (flags & NDR_OUT) {
17161 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17163 return NDR_ERR_SUCCESS;
17166 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
17168 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
17170 if (flags & NDR_SET_VALUES) {
17171 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17173 if (flags & NDR_IN) {
17174 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
17176 ndr_print_ptr(ndr, "handle", r->in.handle);
17178 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17182 if (flags & NDR_OUT) {
17183 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
17185 ndr_print_WERROR(ndr, "result", r->out.result);
17191 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
17193 if (flags & NDR_IN) {
17194 if (r->in.handle == NULL) {
17195 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17197 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17200 if (r->in.buffer) {
17201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17202 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
17204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17206 if (flags & NDR_OUT) {
17207 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
17208 if (r->out.buffer) {
17209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17210 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
17212 if (r->out.needed == NULL) {
17213 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17216 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17218 return NDR_ERR_SUCCESS;
17221 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
17223 uint32_t _ptr_buffer;
17224 TALLOC_CTX *_mem_save_handle_0;
17225 TALLOC_CTX *_mem_save_buffer_0;
17226 TALLOC_CTX *_mem_save_needed_0;
17227 if (flags & NDR_IN) {
17228 ZERO_STRUCT(r->out);
17230 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17231 NDR_PULL_ALLOC(ndr, r->in.handle);
17233 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17234 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17235 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17237 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17238 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17240 NDR_PULL_ALLOC(ndr, r->in.buffer);
17242 r->in.buffer = NULL;
17244 if (r->in.buffer) {
17245 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17246 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17247 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
17248 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
17249 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
17250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17253 NDR_PULL_ALLOC(ndr, r->out.needed);
17254 ZERO_STRUCTP(r->out.needed);
17255 if (r->in.buffer) {
17256 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
17259 if (flags & NDR_OUT) {
17260 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17262 NDR_PULL_ALLOC(ndr, r->out.buffer);
17264 r->out.buffer = NULL;
17266 if (r->out.buffer) {
17267 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17268 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
17269 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
17270 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
17271 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
17272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17274 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17275 NDR_PULL_ALLOC(ndr, r->out.needed);
17277 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17278 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17279 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17281 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17282 if (r->out.buffer) {
17283 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
17286 return NDR_ERR_SUCCESS;
17289 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
17291 ndr_print_struct(ndr, name, "spoolss_AddJob");
17293 if (flags & NDR_SET_VALUES) {
17294 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17296 if (flags & NDR_IN) {
17297 ndr_print_struct(ndr, "in", "spoolss_AddJob");
17299 ndr_print_ptr(ndr, "handle", r->in.handle);
17301 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17303 ndr_print_uint32(ndr, "level", r->in.level);
17304 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17306 if (r->in.buffer) {
17307 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
17310 ndr_print_uint32(ndr, "offered", r->in.offered);
17313 if (flags & NDR_OUT) {
17314 ndr_print_struct(ndr, "out", "spoolss_AddJob");
17316 ndr_print_ptr(ndr, "buffer", r->out.buffer);
17318 if (r->out.buffer) {
17319 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
17322 ndr_print_ptr(ndr, "needed", r->out.needed);
17324 ndr_print_uint32(ndr, "needed", *r->out.needed);
17326 ndr_print_WERROR(ndr, "result", r->out.result);
17332 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
17334 if (flags & NDR_IN) {
17335 if (r->in.handle == NULL) {
17336 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17338 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
17341 if (flags & NDR_OUT) {
17342 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17344 return NDR_ERR_SUCCESS;
17347 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
17349 TALLOC_CTX *_mem_save_handle_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_uint32(ndr, NDR_SCALARS, &r->in.jobid));
17360 if (flags & NDR_OUT) {
17361 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17363 return NDR_ERR_SUCCESS;
17366 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
17368 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
17370 if (flags & NDR_SET_VALUES) {
17371 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17373 if (flags & NDR_IN) {
17374 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
17376 ndr_print_ptr(ndr, "handle", r->in.handle);
17378 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17380 ndr_print_uint32(ndr, "jobid", r->in.jobid);
17383 if (flags & NDR_OUT) {
17384 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
17386 ndr_print_WERROR(ndr, "result", r->out.result);
17392 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
17394 if (flags & NDR_IN) {
17395 if (r->in.handle == NULL) {
17396 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17398 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17402 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));
17403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17405 if (flags & NDR_OUT) {
17406 if (r->out.type == NULL) {
17407 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17409 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
17410 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
17411 if (r->out.needed == NULL) {
17412 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17415 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17417 return NDR_ERR_SUCCESS;
17420 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
17422 TALLOC_CTX *_mem_save_handle_0;
17423 TALLOC_CTX *_mem_save_type_0;
17424 TALLOC_CTX *_mem_save_needed_0;
17425 if (flags & NDR_IN) {
17426 ZERO_STRUCT(r->out);
17428 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17429 NDR_PULL_ALLOC(ndr, r->in.handle);
17431 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17432 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17433 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17434 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17435 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17436 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17437 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17438 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));
17440 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17441 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));
17442 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17443 NDR_PULL_ALLOC(ndr, r->out.type);
17444 ZERO_STRUCTP(r->out.type);
17445 NDR_PULL_ALLOC(ndr, r->out.needed);
17446 ZERO_STRUCTP(r->out.needed);
17448 if (flags & NDR_OUT) {
17449 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17450 NDR_PULL_ALLOC(ndr, r->out.type);
17452 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
17453 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
17454 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
17455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
17456 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
17457 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17458 NDR_PULL_ALLOC(ndr, r->out.needed);
17460 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17461 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17462 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17464 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17466 return NDR_ERR_SUCCESS;
17469 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
17471 if (flags & NDR_IN) {
17472 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17474 if (flags & NDR_OUT) {
17475 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17476 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17478 return NDR_ERR_SUCCESS;
17481 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
17483 if (flags & NDR_IN) {
17484 ZERO_STRUCT(r->out);
17486 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17488 if (flags & NDR_OUT) {
17489 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
17490 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17492 return NDR_ERR_SUCCESS;
17495 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
17497 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
17499 if (flags & NDR_SET_VALUES) {
17500 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17502 if (flags & NDR_IN) {
17503 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
17505 ndr_print_ptr(ndr, "handle", r->in.handle);
17507 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17509 ndr_print_string(ndr, "value_name", r->in.value_name);
17510 ndr_print_uint32(ndr, "offered", r->in.offered);
17513 if (flags & NDR_OUT) {
17514 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
17516 ndr_print_ptr(ndr, "type", r->out.type);
17518 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
17520 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
17521 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
17522 ndr_print_ptr(ndr, "needed", r->out.needed);
17524 ndr_print_uint32(ndr, "needed", *r->out.needed);
17526 ndr_print_WERROR(ndr, "result", r->out.result);
17532 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
17534 if (flags & NDR_IN) {
17535 if (r->in.handle == NULL) {
17536 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17538 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17539 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17540 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17541 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17542 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));
17543 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17544 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
17547 if (flags & NDR_OUT) {
17548 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17550 return NDR_ERR_SUCCESS;
17553 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
17555 if (flags & NDR_IN) {
17556 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17558 if (flags & NDR_OUT) {
17559 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17560 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17562 return NDR_ERR_SUCCESS;
17565 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
17567 TALLOC_CTX *_mem_save_handle_0;
17568 if (flags & NDR_IN) {
17569 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17570 NDR_PULL_ALLOC(ndr, r->in.handle);
17572 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17573 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17574 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17575 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17576 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17577 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17578 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17579 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));
17581 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17582 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));
17583 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17585 struct ndr_pull *_ndr_data;
17586 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
17587 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
17588 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
17589 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
17591 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
17593 if (flags & NDR_OUT) {
17594 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17596 return NDR_ERR_SUCCESS;
17599 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
17601 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
17603 if (flags & NDR_SET_VALUES) {
17604 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17606 if (flags & NDR_IN) {
17607 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
17609 ndr_print_ptr(ndr, "handle", r->in.handle);
17611 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17613 ndr_print_string(ndr, "value_name", r->in.value_name);
17614 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
17615 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
17616 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
17617 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);
17620 if (flags & NDR_OUT) {
17621 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
17623 ndr_print_WERROR(ndr, "result", r->out.result);
17629 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
17631 if (flags & NDR_IN) {
17633 if (flags & NDR_OUT) {
17634 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17636 return NDR_ERR_SUCCESS;
17639 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
17641 if (flags & NDR_IN) {
17643 if (flags & NDR_OUT) {
17644 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17646 return NDR_ERR_SUCCESS;
17649 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
17651 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
17653 if (flags & NDR_SET_VALUES) {
17654 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17656 if (flags & NDR_IN) {
17657 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
17661 if (flags & NDR_OUT) {
17662 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
17664 ndr_print_WERROR(ndr, "result", r->out.result);
17670 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
17672 if (flags & NDR_IN) {
17673 if (r->in.handle == NULL) {
17674 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17676 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17678 if (flags & NDR_OUT) {
17679 if (r->out.handle == NULL) {
17680 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17682 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17683 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17685 return NDR_ERR_SUCCESS;
17688 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
17690 TALLOC_CTX *_mem_save_handle_0;
17691 if (flags & NDR_IN) {
17692 ZERO_STRUCT(r->out);
17694 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17695 NDR_PULL_ALLOC(ndr, r->in.handle);
17697 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17698 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17699 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17701 NDR_PULL_ALLOC(ndr, r->out.handle);
17702 *r->out.handle = *r->in.handle;
17704 if (flags & NDR_OUT) {
17705 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17706 NDR_PULL_ALLOC(ndr, r->out.handle);
17708 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17709 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
17710 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17712 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17714 return NDR_ERR_SUCCESS;
17717 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
17719 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
17721 if (flags & NDR_SET_VALUES) {
17722 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17724 if (flags & NDR_IN) {
17725 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
17727 ndr_print_ptr(ndr, "handle", r->in.handle);
17729 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17733 if (flags & NDR_OUT) {
17734 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
17736 ndr_print_ptr(ndr, "handle", r->out.handle);
17738 ndr_print_policy_handle(ndr, "handle", r->out.handle);
17740 ndr_print_WERROR(ndr, "result", r->out.result);
17746 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
17748 if (flags & NDR_IN) {
17749 if (r->in.handle == NULL) {
17750 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17752 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17754 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
17755 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17757 if (flags & NDR_OUT) {
17758 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17760 return NDR_ERR_SUCCESS;
17763 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
17765 TALLOC_CTX *_mem_save_handle_0;
17766 if (flags & NDR_IN) {
17767 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17768 NDR_PULL_ALLOC(ndr, r->in.handle);
17770 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17771 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17772 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17774 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17775 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
17776 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17778 if (flags & NDR_OUT) {
17779 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17781 return NDR_ERR_SUCCESS;
17784 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
17786 ndr_print_struct(ndr, name, "spoolss_AddForm");
17788 if (flags & NDR_SET_VALUES) {
17789 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17791 if (flags & NDR_IN) {
17792 ndr_print_struct(ndr, "in", "spoolss_AddForm");
17794 ndr_print_ptr(ndr, "handle", r->in.handle);
17796 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17798 ndr_print_uint32(ndr, "level", r->in.level);
17799 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
17800 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
17803 if (flags & NDR_OUT) {
17804 ndr_print_struct(ndr, "out", "spoolss_AddForm");
17806 ndr_print_WERROR(ndr, "result", r->out.result);
17812 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
17814 if (flags & NDR_IN) {
17815 if (r->in.handle == NULL) {
17816 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17818 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17822 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));
17824 if (flags & NDR_OUT) {
17825 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17827 return NDR_ERR_SUCCESS;
17830 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
17832 TALLOC_CTX *_mem_save_handle_0;
17833 if (flags & NDR_IN) {
17834 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17835 NDR_PULL_ALLOC(ndr, r->in.handle);
17837 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17838 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17839 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17840 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17841 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
17842 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
17843 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
17844 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));
17846 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
17847 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));
17849 if (flags & NDR_OUT) {
17850 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17852 return NDR_ERR_SUCCESS;
17855 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
17857 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
17859 if (flags & NDR_SET_VALUES) {
17860 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17862 if (flags & NDR_IN) {
17863 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
17865 ndr_print_ptr(ndr, "handle", r->in.handle);
17867 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17869 ndr_print_string(ndr, "form_name", r->in.form_name);
17872 if (flags & NDR_OUT) {
17873 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
17875 ndr_print_WERROR(ndr, "result", r->out.result);
17881 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
17883 if (flags & NDR_IN) {
17884 if (r->in.handle == NULL) {
17885 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17887 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17888 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17890 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17891 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));
17892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17893 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17894 if (r->in.buffer) {
17895 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
17897 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17899 if (flags & NDR_OUT) {
17900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
17903 struct ndr_push *_ndr_info;
17904 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
17905 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
17906 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
17907 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
17910 if (r->out.needed == NULL) {
17911 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17913 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17914 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17916 return NDR_ERR_SUCCESS;
17919 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
17921 uint32_t _ptr_buffer;
17922 uint32_t _ptr_info;
17923 TALLOC_CTX *_mem_save_handle_0;
17924 TALLOC_CTX *_mem_save_buffer_0;
17925 TALLOC_CTX *_mem_save_info_0;
17926 TALLOC_CTX *_mem_save_needed_0;
17927 if (flags & NDR_IN) {
17928 ZERO_STRUCT(r->out);
17930 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17931 NDR_PULL_ALLOC(ndr, r->in.handle);
17933 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17934 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17935 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17937 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
17938 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
17939 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
17940 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));
17942 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
17943 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));
17944 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17947 NDR_PULL_ALLOC(ndr, r->in.buffer);
17949 r->in.buffer = NULL;
17951 if (r->in.buffer) {
17952 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17953 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17954 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
17955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17958 NDR_PULL_ALLOC(ndr, r->out.needed);
17959 ZERO_STRUCTP(r->out.needed);
17961 if (flags & NDR_OUT) {
17962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
17964 NDR_PULL_ALLOC(ndr, r->out.info);
17966 r->out.info = NULL;
17969 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
17970 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
17972 struct ndr_pull *_ndr_info;
17973 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
17974 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
17975 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
17976 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
17978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
17980 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17981 NDR_PULL_ALLOC(ndr, r->out.needed);
17983 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17984 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17985 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17986 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17987 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17989 return NDR_ERR_SUCCESS;
17992 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
17994 ndr_print_struct(ndr, name, "spoolss_GetForm");
17996 if (flags & NDR_SET_VALUES) {
17997 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17999 if (flags & NDR_IN) {
18000 ndr_print_struct(ndr, "in", "spoolss_GetForm");
18002 ndr_print_ptr(ndr, "handle", r->in.handle);
18004 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18006 ndr_print_string(ndr, "form_name", r->in.form_name);
18007 ndr_print_uint32(ndr, "level", r->in.level);
18008 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18010 if (r->in.buffer) {
18011 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18014 ndr_print_uint32(ndr, "offered", r->in.offered);
18017 if (flags & NDR_OUT) {
18018 ndr_print_struct(ndr, "out", "spoolss_GetForm");
18020 ndr_print_ptr(ndr, "info", r->out.info);
18023 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18024 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
18027 ndr_print_ptr(ndr, "needed", r->out.needed);
18029 ndr_print_uint32(ndr, "needed", *r->out.needed);
18031 ndr_print_WERROR(ndr, "result", r->out.result);
18037 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
18039 if (flags & NDR_IN) {
18040 if (r->in.handle == NULL) {
18041 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18043 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18047 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));
18048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18049 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18050 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18052 if (flags & NDR_OUT) {
18053 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18055 return NDR_ERR_SUCCESS;
18058 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
18060 TALLOC_CTX *_mem_save_handle_0;
18061 if (flags & NDR_IN) {
18062 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18063 NDR_PULL_ALLOC(ndr, r->in.handle);
18065 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18066 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18067 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18068 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18069 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18070 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18071 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18072 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));
18074 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18075 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));
18076 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18077 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18078 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18080 if (flags & NDR_OUT) {
18081 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18083 return NDR_ERR_SUCCESS;
18086 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
18088 ndr_print_struct(ndr, name, "spoolss_SetForm");
18090 if (flags & NDR_SET_VALUES) {
18091 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18093 if (flags & NDR_IN) {
18094 ndr_print_struct(ndr, "in", "spoolss_SetForm");
18096 ndr_print_ptr(ndr, "handle", r->in.handle);
18098 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18100 ndr_print_string(ndr, "form_name", r->in.form_name);
18101 ndr_print_uint32(ndr, "level", r->in.level);
18102 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18103 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18106 if (flags & NDR_OUT) {
18107 ndr_print_struct(ndr, "out", "spoolss_SetForm");
18109 ndr_print_WERROR(ndr, "result", r->out.result);
18115 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
18117 if (flags & NDR_IN) {
18118 if (r->in.handle == NULL) {
18119 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18121 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18123 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18124 if (r->in.buffer) {
18125 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18127 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18129 if (flags & NDR_OUT) {
18130 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18132 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18134 if (r->out.needed == NULL) {
18135 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18138 if (r->out.count == NULL) {
18139 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18142 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18144 return NDR_ERR_SUCCESS;
18147 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
18149 uint32_t _ptr_buffer;
18150 uint32_t _ptr_info;
18151 TALLOC_CTX *_mem_save_handle_0;
18152 TALLOC_CTX *_mem_save_buffer_0;
18153 TALLOC_CTX *_mem_save_info_0;
18154 TALLOC_CTX *_mem_save_needed_0;
18155 TALLOC_CTX *_mem_save_count_0;
18156 if (flags & NDR_IN) {
18157 ZERO_STRUCT(r->out);
18159 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18160 NDR_PULL_ALLOC(ndr, r->in.handle);
18162 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18163 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18164 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18169 NDR_PULL_ALLOC(ndr, r->in.buffer);
18171 r->in.buffer = NULL;
18173 if (r->in.buffer) {
18174 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18175 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18176 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18179 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18180 NDR_PULL_ALLOC(ndr, r->out.needed);
18181 ZERO_STRUCTP(r->out.needed);
18182 NDR_PULL_ALLOC(ndr, r->out.count);
18183 ZERO_STRUCTP(r->out.count);
18185 if (flags & NDR_OUT) {
18186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18188 NDR_PULL_ALLOC(ndr, r->out.info);
18190 r->out.info = NULL;
18193 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18194 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18195 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18196 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18198 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18199 NDR_PULL_ALLOC(ndr, r->out.needed);
18201 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18202 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18203 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18204 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18205 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18206 NDR_PULL_ALLOC(ndr, r->out.count);
18208 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18209 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18210 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18212 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18214 return NDR_ERR_SUCCESS;
18217 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
18219 uint32_t cntr_info_0;
18220 if (flags & NDR_IN) {
18221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18224 if (flags & NDR_OUT) {
18225 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18226 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18227 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18229 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18230 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18233 return NDR_ERR_SUCCESS;
18236 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
18238 uint32_t cntr_info_0;
18239 TALLOC_CTX *_mem_save_info_0;
18240 if (flags & NDR_IN) {
18241 ZERO_STRUCT(r->out);
18243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18246 if (flags & NDR_OUT) {
18247 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18248 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18249 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18250 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18251 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18252 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18254 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18255 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18259 return NDR_ERR_SUCCESS;
18262 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
18264 uint32_t cntr_info_1;
18265 ndr_print_struct(ndr, name, "spoolss_EnumForms");
18267 if (flags & NDR_SET_VALUES) {
18268 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18270 if (flags & NDR_IN) {
18271 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
18273 ndr_print_ptr(ndr, "handle", r->in.handle);
18275 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18277 ndr_print_uint32(ndr, "level", r->in.level);
18278 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18280 if (r->in.buffer) {
18281 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18284 ndr_print_uint32(ndr, "offered", r->in.offered);
18287 if (flags & NDR_OUT) {
18288 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
18290 ndr_print_ptr(ndr, "count", r->out.count);
18292 ndr_print_uint32(ndr, "count", *r->out.count);
18294 ndr_print_ptr(ndr, "info", r->out.info);
18297 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18299 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18301 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18302 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18303 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
18310 ndr_print_ptr(ndr, "needed", r->out.needed);
18312 ndr_print_uint32(ndr, "needed", *r->out.needed);
18314 ndr_print_WERROR(ndr, "result", r->out.result);
18320 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
18322 if (flags & NDR_IN) {
18323 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18324 if (r->in.servername) {
18325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18328 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18332 if (r->in.buffer) {
18333 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18337 if (flags & NDR_OUT) {
18338 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18340 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18342 if (r->out.needed == NULL) {
18343 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18346 if (r->out.count == NULL) {
18347 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18349 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18350 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18352 return NDR_ERR_SUCCESS;
18355 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
18357 uint32_t _ptr_servername;
18358 uint32_t _ptr_buffer;
18359 uint32_t _ptr_info;
18360 TALLOC_CTX *_mem_save_servername_0;
18361 TALLOC_CTX *_mem_save_buffer_0;
18362 TALLOC_CTX *_mem_save_info_0;
18363 TALLOC_CTX *_mem_save_needed_0;
18364 TALLOC_CTX *_mem_save_count_0;
18365 if (flags & NDR_IN) {
18366 ZERO_STRUCT(r->out);
18368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18369 if (_ptr_servername) {
18370 NDR_PULL_ALLOC(ndr, r->in.servername);
18372 r->in.servername = NULL;
18374 if (r->in.servername) {
18375 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18376 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18377 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18378 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18379 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18380 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));
18382 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18384 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18387 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18389 NDR_PULL_ALLOC(ndr, r->in.buffer);
18391 r->in.buffer = NULL;
18393 if (r->in.buffer) {
18394 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18395 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18396 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18397 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18399 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18400 NDR_PULL_ALLOC(ndr, r->out.needed);
18401 ZERO_STRUCTP(r->out.needed);
18402 NDR_PULL_ALLOC(ndr, r->out.count);
18403 ZERO_STRUCTP(r->out.count);
18405 if (flags & NDR_OUT) {
18406 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18408 NDR_PULL_ALLOC(ndr, r->out.info);
18410 r->out.info = NULL;
18413 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18414 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18415 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18418 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18419 NDR_PULL_ALLOC(ndr, r->out.needed);
18421 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18422 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18425 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18426 NDR_PULL_ALLOC(ndr, r->out.count);
18428 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18429 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18432 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18434 return NDR_ERR_SUCCESS;
18437 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
18439 uint32_t cntr_info_0;
18440 if (flags & NDR_IN) {
18441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18444 if (flags & NDR_OUT) {
18445 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18446 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18447 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18449 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18450 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18453 return NDR_ERR_SUCCESS;
18456 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
18458 uint32_t cntr_info_0;
18459 TALLOC_CTX *_mem_save_info_0;
18460 if (flags & NDR_IN) {
18461 ZERO_STRUCT(r->out);
18463 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18464 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18466 if (flags & NDR_OUT) {
18467 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18468 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18469 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18470 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18471 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18472 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18474 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18475 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18479 return NDR_ERR_SUCCESS;
18482 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
18484 uint32_t cntr_info_1;
18485 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
18487 if (flags & NDR_SET_VALUES) {
18488 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18490 if (flags & NDR_IN) {
18491 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
18493 ndr_print_ptr(ndr, "servername", r->in.servername);
18495 if (r->in.servername) {
18496 ndr_print_string(ndr, "servername", r->in.servername);
18499 ndr_print_uint32(ndr, "level", r->in.level);
18500 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18502 if (r->in.buffer) {
18503 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18506 ndr_print_uint32(ndr, "offered", r->in.offered);
18509 if (flags & NDR_OUT) {
18510 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
18512 ndr_print_ptr(ndr, "count", r->out.count);
18514 ndr_print_uint32(ndr, "count", *r->out.count);
18516 ndr_print_ptr(ndr, "info", r->out.info);
18519 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18521 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18523 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18524 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18525 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
18532 ndr_print_ptr(ndr, "needed", r->out.needed);
18534 ndr_print_uint32(ndr, "needed", *r->out.needed);
18536 ndr_print_WERROR(ndr, "result", r->out.result);
18542 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
18544 if (flags & NDR_IN) {
18545 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18546 if (r->in.servername) {
18547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18550 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18553 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18554 if (r->in.buffer) {
18555 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18559 if (flags & NDR_OUT) {
18560 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18562 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18564 if (r->out.needed == NULL) {
18565 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18568 if (r->out.count == NULL) {
18569 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18571 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18572 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18574 return NDR_ERR_SUCCESS;
18577 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
18579 uint32_t _ptr_servername;
18580 uint32_t _ptr_buffer;
18581 uint32_t _ptr_info;
18582 TALLOC_CTX *_mem_save_servername_0;
18583 TALLOC_CTX *_mem_save_buffer_0;
18584 TALLOC_CTX *_mem_save_info_0;
18585 TALLOC_CTX *_mem_save_needed_0;
18586 TALLOC_CTX *_mem_save_count_0;
18587 if (flags & NDR_IN) {
18588 ZERO_STRUCT(r->out);
18590 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18591 if (_ptr_servername) {
18592 NDR_PULL_ALLOC(ndr, r->in.servername);
18594 r->in.servername = NULL;
18596 if (r->in.servername) {
18597 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18598 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18599 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18600 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18601 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18602 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));
18604 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18605 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18606 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18609 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18611 NDR_PULL_ALLOC(ndr, r->in.buffer);
18613 r->in.buffer = NULL;
18615 if (r->in.buffer) {
18616 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18617 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18618 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18621 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18622 NDR_PULL_ALLOC(ndr, r->out.needed);
18623 ZERO_STRUCTP(r->out.needed);
18624 NDR_PULL_ALLOC(ndr, r->out.count);
18625 ZERO_STRUCTP(r->out.count);
18627 if (flags & NDR_OUT) {
18628 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18630 NDR_PULL_ALLOC(ndr, r->out.info);
18632 r->out.info = NULL;
18635 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18636 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18637 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18638 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18640 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18641 NDR_PULL_ALLOC(ndr, r->out.needed);
18643 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18644 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18645 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18646 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18647 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18648 NDR_PULL_ALLOC(ndr, r->out.count);
18650 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18651 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18652 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18656 return NDR_ERR_SUCCESS;
18659 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
18661 uint32_t cntr_info_0;
18662 if (flags & NDR_IN) {
18663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18666 if (flags & NDR_OUT) {
18667 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18668 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18669 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18671 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18672 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18675 return NDR_ERR_SUCCESS;
18678 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
18680 uint32_t cntr_info_0;
18681 TALLOC_CTX *_mem_save_info_0;
18682 if (flags & NDR_IN) {
18683 ZERO_STRUCT(r->out);
18685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18686 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18688 if (flags & NDR_OUT) {
18689 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18690 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18691 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18692 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18693 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18694 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18696 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18697 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18701 return NDR_ERR_SUCCESS;
18704 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
18706 uint32_t cntr_info_1;
18707 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
18709 if (flags & NDR_SET_VALUES) {
18710 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18712 if (flags & NDR_IN) {
18713 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
18715 ndr_print_ptr(ndr, "servername", r->in.servername);
18717 if (r->in.servername) {
18718 ndr_print_string(ndr, "servername", r->in.servername);
18721 ndr_print_uint32(ndr, "level", r->in.level);
18722 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18724 if (r->in.buffer) {
18725 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18728 ndr_print_uint32(ndr, "offered", r->in.offered);
18731 if (flags & NDR_OUT) {
18732 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
18734 ndr_print_ptr(ndr, "count", r->out.count);
18736 ndr_print_uint32(ndr, "count", *r->out.count);
18738 ndr_print_ptr(ndr, "info", r->out.info);
18741 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18743 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18745 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18746 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18747 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
18754 ndr_print_ptr(ndr, "needed", r->out.needed);
18756 ndr_print_uint32(ndr, "needed", *r->out.needed);
18758 ndr_print_WERROR(ndr, "result", r->out.result);
18764 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
18766 if (flags & NDR_IN) {
18767 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
18768 if (r->in.server_name) {
18769 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
18770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
18772 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));
18774 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
18775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
18776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
18778 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));
18780 if (flags & NDR_OUT) {
18781 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18783 return NDR_ERR_SUCCESS;
18786 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
18788 uint32_t _ptr_server_name;
18789 TALLOC_CTX *_mem_save_server_name_0;
18790 if (flags & NDR_IN) {
18791 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
18792 if (_ptr_server_name) {
18793 NDR_PULL_ALLOC(ndr, r->in.server_name);
18795 r->in.server_name = NULL;
18797 if (r->in.server_name) {
18798 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18799 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
18800 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
18801 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
18802 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
18803 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));
18805 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
18806 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));
18807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
18809 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
18810 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
18811 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
18812 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
18813 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));
18815 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
18816 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));
18818 if (flags & NDR_OUT) {
18819 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18821 return NDR_ERR_SUCCESS;
18824 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
18826 ndr_print_struct(ndr, name, "spoolss_AddPort");
18828 if (flags & NDR_SET_VALUES) {
18829 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18831 if (flags & NDR_IN) {
18832 ndr_print_struct(ndr, "in", "spoolss_AddPort");
18834 ndr_print_ptr(ndr, "server_name", r->in.server_name);
18836 if (r->in.server_name) {
18837 ndr_print_string(ndr, "server_name", r->in.server_name);
18840 ndr_print_uint32(ndr, "unknown", r->in.unknown);
18841 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
18844 if (flags & NDR_OUT) {
18845 ndr_print_struct(ndr, "out", "spoolss_AddPort");
18847 ndr_print_WERROR(ndr, "result", r->out.result);
18853 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
18855 if (flags & NDR_IN) {
18857 if (flags & NDR_OUT) {
18858 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18860 return NDR_ERR_SUCCESS;
18863 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
18865 if (flags & NDR_IN) {
18867 if (flags & NDR_OUT) {
18868 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18870 return NDR_ERR_SUCCESS;
18873 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
18875 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
18877 if (flags & NDR_SET_VALUES) {
18878 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18880 if (flags & NDR_IN) {
18881 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
18885 if (flags & NDR_OUT) {
18886 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
18888 ndr_print_WERROR(ndr, "result", r->out.result);
18894 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
18896 if (flags & NDR_IN) {
18898 if (flags & NDR_OUT) {
18899 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18901 return NDR_ERR_SUCCESS;
18904 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
18906 if (flags & NDR_IN) {
18908 if (flags & NDR_OUT) {
18909 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18911 return NDR_ERR_SUCCESS;
18914 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
18916 ndr_print_struct(ndr, name, "spoolss_DeletePort");
18918 if (flags & NDR_SET_VALUES) {
18919 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18921 if (flags & NDR_IN) {
18922 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
18926 if (flags & NDR_OUT) {
18927 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
18929 ndr_print_WERROR(ndr, "result", r->out.result);
18935 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
18937 if (flags & NDR_IN) {
18939 if (flags & NDR_OUT) {
18940 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18942 return NDR_ERR_SUCCESS;
18945 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
18947 if (flags & NDR_IN) {
18949 if (flags & NDR_OUT) {
18950 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18952 return NDR_ERR_SUCCESS;
18955 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
18957 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
18959 if (flags & NDR_SET_VALUES) {
18960 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18962 if (flags & NDR_IN) {
18963 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
18967 if (flags & NDR_OUT) {
18968 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
18970 ndr_print_WERROR(ndr, "result", r->out.result);
18976 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
18978 if (flags & NDR_IN) {
18980 if (flags & NDR_OUT) {
18981 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18983 return NDR_ERR_SUCCESS;
18986 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
18988 if (flags & NDR_IN) {
18990 if (flags & NDR_OUT) {
18991 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18993 return NDR_ERR_SUCCESS;
18996 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
18998 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
19000 if (flags & NDR_SET_VALUES) {
19001 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19003 if (flags & NDR_IN) {
19004 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
19008 if (flags & NDR_OUT) {
19009 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
19011 ndr_print_WERROR(ndr, "result", r->out.result);
19017 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
19019 if (flags & NDR_IN) {
19021 if (flags & NDR_OUT) {
19022 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19024 return NDR_ERR_SUCCESS;
19027 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
19029 if (flags & NDR_IN) {
19031 if (flags & NDR_OUT) {
19032 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19034 return NDR_ERR_SUCCESS;
19037 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
19039 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
19041 if (flags & NDR_SET_VALUES) {
19042 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19044 if (flags & NDR_IN) {
19045 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
19049 if (flags & NDR_OUT) {
19050 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
19052 ndr_print_WERROR(ndr, "result", r->out.result);
19058 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
19060 if (flags & NDR_IN) {
19062 if (flags & NDR_OUT) {
19063 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19065 return NDR_ERR_SUCCESS;
19068 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
19070 if (flags & NDR_IN) {
19072 if (flags & NDR_OUT) {
19073 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19075 return NDR_ERR_SUCCESS;
19078 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
19080 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
19082 if (flags & NDR_SET_VALUES) {
19083 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19085 if (flags & NDR_IN) {
19086 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
19090 if (flags & NDR_OUT) {
19091 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
19093 ndr_print_WERROR(ndr, "result", r->out.result);
19099 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
19101 if (flags & NDR_IN) {
19103 if (flags & NDR_OUT) {
19104 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19106 return NDR_ERR_SUCCESS;
19109 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
19111 if (flags & NDR_IN) {
19113 if (flags & NDR_OUT) {
19114 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19116 return NDR_ERR_SUCCESS;
19119 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
19121 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
19123 if (flags & NDR_SET_VALUES) {
19124 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19126 if (flags & NDR_IN) {
19127 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
19131 if (flags & NDR_OUT) {
19132 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
19134 ndr_print_WERROR(ndr, "result", r->out.result);
19140 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
19142 if (flags & NDR_IN) {
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_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
19152 if (flags & NDR_IN) {
19154 if (flags & NDR_OUT) {
19155 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19157 return NDR_ERR_SUCCESS;
19160 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
19162 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
19164 if (flags & NDR_SET_VALUES) {
19165 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19167 if (flags & NDR_IN) {
19168 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
19172 if (flags & NDR_OUT) {
19173 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
19175 ndr_print_WERROR(ndr, "result", r->out.result);
19181 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
19183 if (flags & NDR_IN) {
19185 if (flags & NDR_OUT) {
19186 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19188 return NDR_ERR_SUCCESS;
19191 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
19193 if (flags & NDR_IN) {
19195 if (flags & NDR_OUT) {
19196 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19198 return NDR_ERR_SUCCESS;
19201 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
19203 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
19205 if (flags & NDR_SET_VALUES) {
19206 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19208 if (flags & NDR_IN) {
19209 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
19213 if (flags & NDR_OUT) {
19214 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
19216 ndr_print_WERROR(ndr, "result", r->out.result);
19222 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
19224 if (flags & NDR_IN) {
19226 if (flags & NDR_OUT) {
19227 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19229 return NDR_ERR_SUCCESS;
19232 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
19234 if (flags & NDR_IN) {
19236 if (flags & NDR_OUT) {
19237 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19239 return NDR_ERR_SUCCESS;
19242 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
19244 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
19246 if (flags & NDR_SET_VALUES) {
19247 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19249 if (flags & NDR_IN) {
19250 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
19254 if (flags & NDR_OUT) {
19255 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
19257 ndr_print_WERROR(ndr, "result", r->out.result);
19263 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
19265 if (flags & NDR_IN) {
19267 if (flags & NDR_OUT) {
19268 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19270 return NDR_ERR_SUCCESS;
19273 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
19275 if (flags & NDR_IN) {
19277 if (flags & NDR_OUT) {
19278 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19280 return NDR_ERR_SUCCESS;
19283 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
19285 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
19287 if (flags & NDR_SET_VALUES) {
19288 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19290 if (flags & NDR_IN) {
19291 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
19295 if (flags & NDR_OUT) {
19296 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
19298 ndr_print_WERROR(ndr, "result", r->out.result);
19304 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
19306 if (flags & NDR_IN) {
19308 if (flags & NDR_OUT) {
19309 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19311 return NDR_ERR_SUCCESS;
19314 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
19316 if (flags & NDR_IN) {
19318 if (flags & NDR_OUT) {
19319 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19321 return NDR_ERR_SUCCESS;
19324 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
19326 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
19328 if (flags & NDR_SET_VALUES) {
19329 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19331 if (flags & NDR_IN) {
19332 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
19336 if (flags & NDR_OUT) {
19337 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
19339 ndr_print_WERROR(ndr, "result", r->out.result);
19345 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
19347 if (flags & NDR_IN) {
19349 if (flags & NDR_OUT) {
19350 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19352 return NDR_ERR_SUCCESS;
19355 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
19357 if (flags & NDR_IN) {
19359 if (flags & NDR_OUT) {
19360 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19362 return NDR_ERR_SUCCESS;
19365 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
19367 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
19369 if (flags & NDR_SET_VALUES) {
19370 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19372 if (flags & NDR_IN) {
19373 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
19377 if (flags & NDR_OUT) {
19378 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
19380 ndr_print_WERROR(ndr, "result", r->out.result);
19386 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19388 if (flags & NDR_IN) {
19390 if (flags & NDR_OUT) {
19391 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19393 return NDR_ERR_SUCCESS;
19396 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
19398 if (flags & NDR_IN) {
19400 if (flags & NDR_OUT) {
19401 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19403 return NDR_ERR_SUCCESS;
19406 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19408 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
19410 if (flags & NDR_SET_VALUES) {
19411 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19413 if (flags & NDR_IN) {
19414 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
19418 if (flags & NDR_OUT) {
19419 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
19421 ndr_print_WERROR(ndr, "result", r->out.result);
19427 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
19429 if (flags & NDR_IN) {
19430 if (r->in.handle == NULL) {
19431 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19433 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19434 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
19435 if (r->in.data_type) {
19436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19439 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));
19441 if (r->in.devmode_ctr == NULL) {
19442 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19444 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19446 if (flags & NDR_OUT) {
19447 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19449 return NDR_ERR_SUCCESS;
19452 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
19454 uint32_t _ptr_data_type;
19455 TALLOC_CTX *_mem_save_handle_0;
19456 TALLOC_CTX *_mem_save_data_type_0;
19457 TALLOC_CTX *_mem_save_devmode_ctr_0;
19458 if (flags & NDR_IN) {
19459 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19460 NDR_PULL_ALLOC(ndr, r->in.handle);
19462 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19463 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19464 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
19467 if (_ptr_data_type) {
19468 NDR_PULL_ALLOC(ndr, r->in.data_type);
19470 r->in.data_type = NULL;
19472 if (r->in.data_type) {
19473 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
19474 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
19475 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
19476 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
19477 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
19478 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));
19480 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
19481 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));
19482 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
19484 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19485 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19487 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19488 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19489 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19492 if (flags & NDR_OUT) {
19493 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19495 return NDR_ERR_SUCCESS;
19498 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
19500 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
19502 if (flags & NDR_SET_VALUES) {
19503 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19505 if (flags & NDR_IN) {
19506 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
19508 ndr_print_ptr(ndr, "handle", r->in.handle);
19510 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19512 ndr_print_ptr(ndr, "data_type", r->in.data_type);
19514 if (r->in.data_type) {
19515 ndr_print_string(ndr, "data_type", r->in.data_type);
19518 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19520 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19524 if (flags & NDR_OUT) {
19525 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
19527 ndr_print_WERROR(ndr, "result", r->out.result);
19533 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
19535 if (flags & NDR_IN) {
19536 if (r->in.handle == NULL) {
19537 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19539 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19540 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
19541 if (r->in.architecture) {
19542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19545 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19548 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19549 if (r->in.buffer) {
19550 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
19554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
19556 if (flags & NDR_OUT) {
19557 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19559 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19561 if (r->out.needed == NULL) {
19562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19565 if (r->out.server_major_version == NULL) {
19566 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
19569 if (r->out.server_minor_version == NULL) {
19570 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19572 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
19573 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19575 return NDR_ERR_SUCCESS;
19578 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
19580 uint32_t _ptr_architecture;
19581 uint32_t _ptr_buffer;
19582 uint32_t _ptr_info;
19583 TALLOC_CTX *_mem_save_handle_0;
19584 TALLOC_CTX *_mem_save_architecture_0;
19585 TALLOC_CTX *_mem_save_buffer_0;
19586 TALLOC_CTX *_mem_save_info_0;
19587 TALLOC_CTX *_mem_save_needed_0;
19588 TALLOC_CTX *_mem_save_server_major_version_0;
19589 TALLOC_CTX *_mem_save_server_minor_version_0;
19590 if (flags & NDR_IN) {
19591 ZERO_STRUCT(r->out);
19593 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19594 NDR_PULL_ALLOC(ndr, r->in.handle);
19596 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19597 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19598 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19600 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
19601 if (_ptr_architecture) {
19602 NDR_PULL_ALLOC(ndr, r->in.architecture);
19604 r->in.architecture = NULL;
19606 if (r->in.architecture) {
19607 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
19608 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
19609 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
19610 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
19611 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
19612 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));
19614 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
19615 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
19616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
19618 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19619 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19621 NDR_PULL_ALLOC(ndr, r->in.buffer);
19623 r->in.buffer = NULL;
19625 if (r->in.buffer) {
19626 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19627 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19628 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19632 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
19633 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
19634 NDR_PULL_ALLOC(ndr, r->out.needed);
19635 ZERO_STRUCTP(r->out.needed);
19636 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19637 ZERO_STRUCTP(r->out.server_major_version);
19638 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19639 ZERO_STRUCTP(r->out.server_minor_version);
19641 if (flags & NDR_OUT) {
19642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19644 NDR_PULL_ALLOC(ndr, r->out.info);
19646 r->out.info = NULL;
19649 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19650 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19651 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19654 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19655 NDR_PULL_ALLOC(ndr, r->out.needed);
19657 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19658 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19659 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19661 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19662 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19664 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19665 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
19666 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
19667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
19668 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19669 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19671 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19672 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
19673 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
19674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
19675 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19677 return NDR_ERR_SUCCESS;
19680 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
19682 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
19684 if (flags & NDR_SET_VALUES) {
19685 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19687 if (flags & NDR_IN) {
19688 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
19690 ndr_print_ptr(ndr, "handle", r->in.handle);
19692 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19694 ndr_print_ptr(ndr, "architecture", r->in.architecture);
19696 if (r->in.architecture) {
19697 ndr_print_string(ndr, "architecture", r->in.architecture);
19700 ndr_print_uint32(ndr, "level", r->in.level);
19701 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19703 if (r->in.buffer) {
19704 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19707 ndr_print_uint32(ndr, "offered", r->in.offered);
19708 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
19709 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
19712 if (flags & NDR_OUT) {
19713 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
19715 ndr_print_ptr(ndr, "info", r->out.info);
19718 ndr_print_DATA_BLOB(ndr, "info", *r->out.info);
19721 ndr_print_ptr(ndr, "needed", r->out.needed);
19723 ndr_print_uint32(ndr, "needed", *r->out.needed);
19725 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
19727 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
19729 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
19731 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
19733 ndr_print_WERROR(ndr, "result", r->out.result);
19739 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
19741 if (flags & NDR_IN) {
19743 if (flags & NDR_OUT) {
19744 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19746 return NDR_ERR_SUCCESS;
19749 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
19751 if (flags & NDR_IN) {
19753 if (flags & NDR_OUT) {
19754 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19756 return NDR_ERR_SUCCESS;
19759 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
19761 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
19763 if (flags & NDR_SET_VALUES) {
19764 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19766 if (flags & NDR_IN) {
19767 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
19771 if (flags & NDR_OUT) {
19772 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
19774 ndr_print_WERROR(ndr, "result", r->out.result);
19780 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
19782 if (flags & NDR_IN) {
19784 if (flags & NDR_OUT) {
19785 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19787 return NDR_ERR_SUCCESS;
19790 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
19792 if (flags & NDR_IN) {
19794 if (flags & NDR_OUT) {
19795 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19797 return NDR_ERR_SUCCESS;
19800 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
19802 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
19804 if (flags & NDR_SET_VALUES) {
19805 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19807 if (flags & NDR_IN) {
19808 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
19812 if (flags & NDR_OUT) {
19813 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
19815 ndr_print_WERROR(ndr, "result", r->out.result);
19821 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
19823 if (flags & NDR_IN) {
19824 if (r->in.handle == NULL) {
19825 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19827 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19829 if (flags & NDR_OUT) {
19830 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19832 return NDR_ERR_SUCCESS;
19835 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
19837 TALLOC_CTX *_mem_save_handle_0;
19838 if (flags & NDR_IN) {
19839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19840 NDR_PULL_ALLOC(ndr, r->in.handle);
19842 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19843 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19844 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19847 if (flags & NDR_OUT) {
19848 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19850 return NDR_ERR_SUCCESS;
19853 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
19855 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
19857 if (flags & NDR_SET_VALUES) {
19858 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19860 if (flags & NDR_IN) {
19861 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
19863 ndr_print_ptr(ndr, "handle", r->in.handle);
19865 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19869 if (flags & NDR_OUT) {
19870 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
19872 ndr_print_WERROR(ndr, "result", r->out.result);
19878 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
19880 if (flags & NDR_IN) {
19882 if (flags & NDR_OUT) {
19883 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19885 return NDR_ERR_SUCCESS;
19888 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
19890 if (flags & NDR_IN) {
19892 if (flags & NDR_OUT) {
19893 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19895 return NDR_ERR_SUCCESS;
19898 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
19900 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
19902 if (flags & NDR_SET_VALUES) {
19903 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19905 if (flags & NDR_IN) {
19906 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
19910 if (flags & NDR_OUT) {
19911 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
19913 ndr_print_WERROR(ndr, "result", r->out.result);
19919 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
19921 if (flags & NDR_IN) {
19922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19924 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19925 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));
19926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
19927 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
19928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
19929 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19930 if (r->in.buffer) {
19931 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
19932 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
19935 if (flags & NDR_OUT) {
19936 if (r->out.handle == NULL) {
19937 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19939 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19940 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19942 return NDR_ERR_SUCCESS;
19945 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
19947 uint32_t _ptr_buffer;
19948 TALLOC_CTX *_mem_save_buffer_0;
19949 TALLOC_CTX *_mem_save_handle_0;
19950 if (flags & NDR_IN) {
19951 ZERO_STRUCT(r->out);
19953 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
19954 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
19955 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
19956 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));
19958 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
19959 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));
19960 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
19961 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
19962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
19963 if (r->in.bufsize > 512) {
19964 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
19966 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19968 NDR_PULL_ALLOC(ndr, r->in.buffer);
19970 r->in.buffer = NULL;
19972 if (r->in.buffer) {
19973 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19974 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19975 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
19976 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
19977 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
19978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19980 NDR_PULL_ALLOC(ndr, r->out.handle);
19981 ZERO_STRUCTP(r->out.handle);
19982 if (r->in.buffer) {
19983 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
19986 if (flags & NDR_OUT) {
19987 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19988 NDR_PULL_ALLOC(ndr, r->out.handle);
19990 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19991 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19992 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19993 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19994 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19996 return NDR_ERR_SUCCESS;
19999 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
20001 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
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_ReplyOpenPrinter");
20009 ndr_print_string(ndr, "server_name", r->in.server_name);
20010 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20011 ndr_print_winreg_Type(ndr, "type", r->in.type);
20012 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20013 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20015 if (r->in.buffer) {
20016 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20021 if (flags & NDR_OUT) {
20022 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
20024 ndr_print_ptr(ndr, "handle", r->out.handle);
20026 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20028 ndr_print_WERROR(ndr, "result", r->out.result);
20034 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
20036 if (flags & NDR_IN) {
20037 if (r->in.handle == NULL) {
20038 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20040 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20041 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20043 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20044 if (r->in.buffer) {
20045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20046 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20049 if (flags & NDR_OUT) {
20050 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20052 return NDR_ERR_SUCCESS;
20055 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
20057 uint32_t _ptr_buffer;
20058 TALLOC_CTX *_mem_save_handle_0;
20059 TALLOC_CTX *_mem_save_buffer_0;
20060 if (flags & NDR_IN) {
20061 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20062 NDR_PULL_ALLOC(ndr, r->in.handle);
20064 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20065 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20066 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20068 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20069 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20070 if (r->in.bufsize > 512) {
20071 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20075 NDR_PULL_ALLOC(ndr, r->in.buffer);
20077 r->in.buffer = NULL;
20079 if (r->in.buffer) {
20080 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20081 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20082 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20083 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20084 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20087 if (r->in.buffer) {
20088 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20091 if (flags & NDR_OUT) {
20092 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20094 return NDR_ERR_SUCCESS;
20097 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
20099 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
20101 if (flags & NDR_SET_VALUES) {
20102 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20104 if (flags & NDR_IN) {
20105 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
20107 ndr_print_ptr(ndr, "handle", r->in.handle);
20109 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20111 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20112 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20113 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20115 if (r->in.buffer) {
20116 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20121 if (flags & NDR_OUT) {
20122 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
20124 ndr_print_WERROR(ndr, "result", r->out.result);
20130 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
20132 if (flags & NDR_IN) {
20133 if (r->in.handle == NULL) {
20134 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20136 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20138 if (flags & NDR_OUT) {
20139 if (r->out.handle == NULL) {
20140 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20142 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20143 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20145 return NDR_ERR_SUCCESS;
20148 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
20150 TALLOC_CTX *_mem_save_handle_0;
20151 if (flags & NDR_IN) {
20152 ZERO_STRUCT(r->out);
20154 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20155 NDR_PULL_ALLOC(ndr, r->in.handle);
20157 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20158 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20159 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20161 NDR_PULL_ALLOC(ndr, r->out.handle);
20162 *r->out.handle = *r->in.handle;
20164 if (flags & NDR_OUT) {
20165 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20166 NDR_PULL_ALLOC(ndr, r->out.handle);
20168 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20169 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20170 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20171 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20172 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20174 return NDR_ERR_SUCCESS;
20177 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
20179 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
20181 if (flags & NDR_SET_VALUES) {
20182 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20184 if (flags & NDR_IN) {
20185 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
20187 ndr_print_ptr(ndr, "handle", r->in.handle);
20189 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20193 if (flags & NDR_OUT) {
20194 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
20196 ndr_print_ptr(ndr, "handle", r->out.handle);
20198 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20200 ndr_print_WERROR(ndr, "result", r->out.result);
20206 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *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_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *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_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
20228 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
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_AddPortEx");
20238 if (flags & NDR_OUT) {
20239 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
20241 ndr_print_WERROR(ndr, "result", r->out.result);
20247 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20249 if (flags & NDR_IN) {
20251 if (flags & NDR_OUT) {
20252 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20254 return NDR_ERR_SUCCESS;
20257 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20259 if (flags & NDR_IN) {
20261 if (flags & NDR_OUT) {
20262 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20264 return NDR_ERR_SUCCESS;
20267 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20269 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
20271 if (flags & NDR_SET_VALUES) {
20272 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20274 if (flags & NDR_IN) {
20275 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
20279 if (flags & NDR_OUT) {
20280 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
20282 ndr_print_WERROR(ndr, "result", r->out.result);
20288 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
20290 if (flags & NDR_IN) {
20292 if (flags & NDR_OUT) {
20293 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20295 return NDR_ERR_SUCCESS;
20298 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
20300 if (flags & NDR_IN) {
20302 if (flags & NDR_OUT) {
20303 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20305 return NDR_ERR_SUCCESS;
20308 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
20310 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
20312 if (flags & NDR_SET_VALUES) {
20313 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20315 if (flags & NDR_IN) {
20316 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
20320 if (flags & NDR_OUT) {
20321 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
20323 ndr_print_WERROR(ndr, "result", r->out.result);
20329 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
20331 if (flags & NDR_IN) {
20333 if (flags & NDR_OUT) {
20334 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20336 return NDR_ERR_SUCCESS;
20339 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
20341 if (flags & NDR_IN) {
20343 if (flags & NDR_OUT) {
20344 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20346 return NDR_ERR_SUCCESS;
20349 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
20351 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
20353 if (flags & NDR_SET_VALUES) {
20354 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20356 if (flags & NDR_IN) {
20357 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
20361 if (flags & NDR_OUT) {
20362 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
20364 ndr_print_WERROR(ndr, "result", r->out.result);
20370 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20372 if (flags & NDR_IN) {
20373 if (r->in.handle == NULL) {
20374 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20376 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20377 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
20379 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
20380 if (r->in.local_machine) {
20381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20384 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));
20386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
20388 if (r->in.notify_options) {
20389 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20392 if (flags & NDR_OUT) {
20393 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20395 return NDR_ERR_SUCCESS;
20398 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20400 uint32_t _ptr_local_machine;
20401 uint32_t _ptr_notify_options;
20402 TALLOC_CTX *_mem_save_handle_0;
20403 TALLOC_CTX *_mem_save_local_machine_0;
20404 TALLOC_CTX *_mem_save_notify_options_0;
20405 if (flags & NDR_IN) {
20406 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20407 NDR_PULL_ALLOC(ndr, r->in.handle);
20409 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20410 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20411 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20412 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20413 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20414 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
20415 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
20416 if (_ptr_local_machine) {
20417 NDR_PULL_ALLOC(ndr, r->in.local_machine);
20419 r->in.local_machine = NULL;
20421 if (r->in.local_machine) {
20422 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
20423 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
20424 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
20425 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
20426 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
20427 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));
20429 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
20430 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));
20431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
20433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20434 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
20435 if (_ptr_notify_options) {
20436 NDR_PULL_ALLOC(ndr, r->in.notify_options);
20438 r->in.notify_options = NULL;
20440 if (r->in.notify_options) {
20441 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20442 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
20443 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
20447 if (flags & NDR_OUT) {
20448 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20450 return NDR_ERR_SUCCESS;
20453 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20455 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20457 if (flags & NDR_SET_VALUES) {
20458 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20460 if (flags & NDR_IN) {
20461 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20463 ndr_print_ptr(ndr, "handle", r->in.handle);
20465 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20467 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20468 ndr_print_uint32(ndr, "options", r->in.options);
20469 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
20471 if (r->in.local_machine) {
20472 ndr_print_string(ndr, "local_machine", r->in.local_machine);
20475 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20476 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
20478 if (r->in.notify_options) {
20479 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
20484 if (flags & NDR_OUT) {
20485 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20487 ndr_print_WERROR(ndr, "result", r->out.result);
20493 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20495 if (flags & NDR_IN) {
20496 if (r->in.handle == NULL) {
20497 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20499 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
20501 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20502 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
20503 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20504 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20506 if (flags & NDR_OUT) {
20507 if (r->out.reply_result == NULL) {
20508 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20510 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
20511 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20513 return NDR_ERR_SUCCESS;
20516 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
20518 TALLOC_CTX *_mem_save_handle_0;
20519 TALLOC_CTX *_mem_save_reply_result_0;
20520 if (flags & NDR_IN) {
20521 ZERO_STRUCT(r->out);
20523 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20524 NDR_PULL_ALLOC(ndr, r->in.handle);
20526 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20527 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20528 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20530 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
20531 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
20533 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20534 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20535 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20536 ZERO_STRUCTP(r->out.reply_result);
20538 if (flags & NDR_OUT) {
20539 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20540 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20542 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
20543 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
20544 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
20545 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
20546 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20548 return NDR_ERR_SUCCESS;
20551 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20553 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
20555 if (flags & NDR_SET_VALUES) {
20556 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20558 if (flags & NDR_IN) {
20559 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
20561 ndr_print_ptr(ndr, "handle", r->in.handle);
20563 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20565 ndr_print_uint32(ndr, "color", r->in.color);
20566 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20567 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
20568 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
20569 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
20572 if (flags & NDR_OUT) {
20573 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
20575 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
20577 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
20579 ndr_print_WERROR(ndr, "result", r->out.result);
20585 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20587 if (flags & NDR_IN) {
20588 if (r->in.handle == NULL) {
20589 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20591 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
20593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
20594 if (r->in.options) {
20595 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20598 if (flags & NDR_OUT) {
20599 if (r->out.info == NULL) {
20600 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20602 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
20603 if (*r->out.info) {
20604 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20606 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20608 return NDR_ERR_SUCCESS;
20611 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
20613 uint32_t _ptr_options;
20614 uint32_t _ptr_info;
20615 TALLOC_CTX *_mem_save_handle_0;
20616 TALLOC_CTX *_mem_save_options_0;
20617 TALLOC_CTX *_mem_save_info_0;
20618 TALLOC_CTX *_mem_save_info_1;
20619 if (flags & NDR_IN) {
20620 ZERO_STRUCT(r->out);
20622 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20623 NDR_PULL_ALLOC(ndr, r->in.handle);
20625 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20626 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20627 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20629 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
20630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
20631 if (_ptr_options) {
20632 NDR_PULL_ALLOC(ndr, r->in.options);
20634 r->in.options = NULL;
20636 if (r->in.options) {
20637 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20638 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
20639 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20640 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
20642 NDR_PULL_ALLOC(ndr, r->out.info);
20643 ZERO_STRUCTP(r->out.info);
20645 if (flags & NDR_OUT) {
20646 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20647 NDR_PULL_ALLOC(ndr, r->out.info);
20649 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20650 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
20651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20653 NDR_PULL_ALLOC(ndr, *r->out.info);
20655 *r->out.info = NULL;
20657 if (*r->out.info) {
20658 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
20659 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
20660 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
20663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
20664 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20666 return NDR_ERR_SUCCESS;
20669 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20671 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
20673 if (flags & NDR_SET_VALUES) {
20674 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20676 if (flags & NDR_IN) {
20677 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
20679 ndr_print_ptr(ndr, "handle", r->in.handle);
20681 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20683 ndr_print_uint32(ndr, "change_low", r->in.change_low);
20684 ndr_print_ptr(ndr, "options", r->in.options);
20686 if (r->in.options) {
20687 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
20692 if (flags & NDR_OUT) {
20693 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
20695 ndr_print_ptr(ndr, "info", r->out.info);
20697 ndr_print_ptr(ndr, "info", *r->out.info);
20699 if (*r->out.info) {
20700 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
20704 ndr_print_WERROR(ndr, "result", r->out.result);
20710 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
20712 if (flags & NDR_IN) {
20714 if (flags & NDR_OUT) {
20715 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20717 return NDR_ERR_SUCCESS;
20720 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
20722 if (flags & NDR_IN) {
20724 if (flags & NDR_OUT) {
20725 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20727 return NDR_ERR_SUCCESS;
20730 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
20732 ndr_print_struct(ndr, name, "spoolss_44");
20734 if (flags & NDR_SET_VALUES) {
20735 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20737 if (flags & NDR_IN) {
20738 ndr_print_struct(ndr, "in", "spoolss_44");
20742 if (flags & NDR_OUT) {
20743 ndr_print_struct(ndr, "out", "spoolss_44");
20745 ndr_print_WERROR(ndr, "result", r->out.result);
20751 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
20753 if (flags & NDR_IN) {
20754 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20755 if (r->in.printername) {
20756 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20759 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20761 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20762 if (r->in.datatype) {
20763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20766 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20768 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20769 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
20770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20771 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
20772 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
20774 if (flags & NDR_OUT) {
20775 if (r->out.handle == NULL) {
20776 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20778 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20779 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20781 return NDR_ERR_SUCCESS;
20784 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
20786 uint32_t _ptr_printername;
20787 uint32_t _ptr_datatype;
20788 TALLOC_CTX *_mem_save_printername_0;
20789 TALLOC_CTX *_mem_save_datatype_0;
20790 TALLOC_CTX *_mem_save_handle_0;
20791 if (flags & NDR_IN) {
20792 ZERO_STRUCT(r->out);
20794 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20795 if (_ptr_printername) {
20796 NDR_PULL_ALLOC(ndr, r->in.printername);
20798 r->in.printername = NULL;
20800 if (r->in.printername) {
20801 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20802 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20803 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20804 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20805 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20806 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));
20808 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20809 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20810 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20812 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20813 if (_ptr_datatype) {
20814 NDR_PULL_ALLOC(ndr, r->in.datatype);
20816 r->in.datatype = NULL;
20818 if (r->in.datatype) {
20819 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20820 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20821 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20822 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20823 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20824 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));
20826 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20827 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20828 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20830 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20831 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
20832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20833 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
20834 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
20835 NDR_PULL_ALLOC(ndr, r->out.handle);
20836 ZERO_STRUCTP(r->out.handle);
20838 if (flags & NDR_OUT) {
20839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20840 NDR_PULL_ALLOC(ndr, r->out.handle);
20842 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20843 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20844 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20846 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20848 return NDR_ERR_SUCCESS;
20851 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
20853 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
20855 if (flags & NDR_SET_VALUES) {
20856 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20858 if (flags & NDR_IN) {
20859 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
20861 ndr_print_ptr(ndr, "printername", r->in.printername);
20863 if (r->in.printername) {
20864 ndr_print_string(ndr, "printername", r->in.printername);
20867 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20869 if (r->in.datatype) {
20870 ndr_print_string(ndr, "datatype", r->in.datatype);
20873 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20874 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
20875 ndr_print_uint32(ndr, "level", r->in.level);
20876 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
20877 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
20880 if (flags & NDR_OUT) {
20881 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
20883 ndr_print_ptr(ndr, "handle", r->out.handle);
20885 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20887 ndr_print_WERROR(ndr, "result", r->out.result);
20893 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
20895 if (flags & NDR_IN) {
20896 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20897 if (r->in.server) {
20898 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20899 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20901 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20903 if (r->in.info_ctr == NULL) {
20904 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20906 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20907 if (r->in.devmode_ctr == NULL) {
20908 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20910 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20911 if (r->in.secdesc_ctr == NULL) {
20912 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20914 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20915 if (r->in.userlevel_ctr == NULL) {
20916 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20918 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
20920 if (flags & NDR_OUT) {
20921 if (r->out.handle == NULL) {
20922 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20924 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20925 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20927 return NDR_ERR_SUCCESS;
20930 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
20932 uint32_t _ptr_server;
20933 TALLOC_CTX *_mem_save_server_0;
20934 TALLOC_CTX *_mem_save_info_ctr_0;
20935 TALLOC_CTX *_mem_save_devmode_ctr_0;
20936 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20937 TALLOC_CTX *_mem_save_userlevel_ctr_0;
20938 TALLOC_CTX *_mem_save_handle_0;
20939 if (flags & NDR_IN) {
20940 ZERO_STRUCT(r->out);
20942 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20944 NDR_PULL_ALLOC(ndr, r->in.server);
20946 r->in.server = NULL;
20948 if (r->in.server) {
20949 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20950 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20951 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20952 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20953 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20954 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));
20956 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20957 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20960 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20961 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20963 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20964 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20965 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20967 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20968 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20970 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20971 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20972 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20974 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20975 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20977 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20978 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20979 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20980 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20981 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20982 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
20984 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20985 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
20986 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
20987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20988 NDR_PULL_ALLOC(ndr, r->out.handle);
20989 ZERO_STRUCTP(r->out.handle);
20991 if (flags & NDR_OUT) {
20992 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20993 NDR_PULL_ALLOC(ndr, r->out.handle);
20995 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20996 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20997 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20998 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20999 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21001 return NDR_ERR_SUCCESS;
21004 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
21006 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
21008 if (flags & NDR_SET_VALUES) {
21009 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21011 if (flags & NDR_IN) {
21012 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
21014 ndr_print_ptr(ndr, "server", r->in.server);
21016 if (r->in.server) {
21017 ndr_print_string(ndr, "server", r->in.server);
21020 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21022 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21024 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21026 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21028 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21030 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21032 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21034 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21038 if (flags & NDR_OUT) {
21039 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
21041 ndr_print_ptr(ndr, "handle", r->out.handle);
21043 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21045 ndr_print_WERROR(ndr, "result", r->out.result);
21051 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
21053 if (flags & NDR_IN) {
21055 if (flags & NDR_OUT) {
21056 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21058 return NDR_ERR_SUCCESS;
21061 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
21063 if (flags & NDR_IN) {
21065 if (flags & NDR_OUT) {
21066 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21068 return NDR_ERR_SUCCESS;
21071 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
21073 ndr_print_struct(ndr, name, "spoolss_47");
21075 if (flags & NDR_SET_VALUES) {
21076 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21078 if (flags & NDR_IN) {
21079 ndr_print_struct(ndr, "in", "spoolss_47");
21083 if (flags & NDR_OUT) {
21084 ndr_print_struct(ndr, "out", "spoolss_47");
21086 ndr_print_WERROR(ndr, "result", r->out.result);
21092 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
21094 if (flags & NDR_IN) {
21095 if (r->in.handle == NULL) {
21096 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21098 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
21100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
21101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
21103 if (flags & NDR_OUT) {
21104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
21105 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
21106 if (r->out.value_needed == NULL) {
21107 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
21110 if (r->out.printerdata_type == NULL) {
21111 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
21114 if (r->out.buffer == NULL) {
21115 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21117 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
21118 if (r->out.data_needed == NULL) {
21119 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
21122 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21124 return NDR_ERR_SUCCESS;
21127 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
21129 TALLOC_CTX *_mem_save_handle_0;
21130 TALLOC_CTX *_mem_save_value_needed_0;
21131 TALLOC_CTX *_mem_save_printerdata_type_0;
21132 TALLOC_CTX *_mem_save_buffer_0;
21133 TALLOC_CTX *_mem_save_data_needed_0;
21134 if (flags & NDR_IN) {
21135 ZERO_STRUCT(r->out);
21137 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21138 NDR_PULL_ALLOC(ndr, r->in.handle);
21140 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21141 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21142 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21143 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
21145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
21146 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
21147 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21148 ZERO_STRUCTP(r->out.value_needed);
21149 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21150 ZERO_STRUCTP(r->out.printerdata_type);
21151 NDR_PULL_ALLOC(ndr, r->out.buffer);
21152 ZERO_STRUCTP(r->out.buffer);
21153 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21154 ZERO_STRUCTP(r->out.data_needed);
21156 if (flags & NDR_OUT) {
21157 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
21158 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));
21159 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21160 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21162 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21163 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
21164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
21165 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
21166 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21167 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21169 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21170 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
21171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
21172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
21173 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21174 NDR_PULL_ALLOC(ndr, r->out.buffer);
21176 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21177 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
21178 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
21179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
21180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21181 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21183 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21184 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
21185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
21186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
21187 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21188 if (r->out.value_name) {
21189 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
21192 return NDR_ERR_SUCCESS;
21195 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
21197 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
21199 if (flags & NDR_SET_VALUES) {
21200 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21202 if (flags & NDR_IN) {
21203 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
21205 ndr_print_ptr(ndr, "handle", r->in.handle);
21207 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21209 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
21210 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
21211 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
21214 if (flags & NDR_OUT) {
21215 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
21217 ndr_print_string(ndr, "value_name", r->out.value_name);
21218 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
21220 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
21222 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
21224 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
21226 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21228 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
21230 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
21232 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
21234 ndr_print_WERROR(ndr, "result", r->out.result);
21240 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
21242 if (flags & NDR_IN) {
21243 if (r->in.handle == NULL) {
21244 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21246 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21250 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));
21252 if (flags & NDR_OUT) {
21253 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21255 return NDR_ERR_SUCCESS;
21258 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
21260 TALLOC_CTX *_mem_save_handle_0;
21261 if (flags & NDR_IN) {
21262 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21263 NDR_PULL_ALLOC(ndr, r->in.handle);
21265 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21266 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21267 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21269 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21270 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21271 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21272 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));
21274 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21275 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));
21277 if (flags & NDR_OUT) {
21278 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21280 return NDR_ERR_SUCCESS;
21283 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
21285 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
21287 if (flags & NDR_SET_VALUES) {
21288 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21290 if (flags & NDR_IN) {
21291 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
21293 ndr_print_ptr(ndr, "handle", r->in.handle);
21295 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21297 ndr_print_string(ndr, "value_name", r->in.value_name);
21300 if (flags & NDR_OUT) {
21301 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
21303 ndr_print_WERROR(ndr, "result", r->out.result);
21309 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
21311 if (flags & NDR_IN) {
21313 if (flags & NDR_OUT) {
21314 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21316 return NDR_ERR_SUCCESS;
21319 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
21321 if (flags & NDR_IN) {
21323 if (flags & NDR_OUT) {
21324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21326 return NDR_ERR_SUCCESS;
21329 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
21331 ndr_print_struct(ndr, name, "spoolss_4a");
21333 if (flags & NDR_SET_VALUES) {
21334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21336 if (flags & NDR_IN) {
21337 ndr_print_struct(ndr, "in", "spoolss_4a");
21341 if (flags & NDR_OUT) {
21342 ndr_print_struct(ndr, "out", "spoolss_4a");
21344 ndr_print_WERROR(ndr, "result", r->out.result);
21350 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
21352 if (flags & NDR_IN) {
21354 if (flags & NDR_OUT) {
21355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21357 return NDR_ERR_SUCCESS;
21360 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
21362 if (flags & NDR_IN) {
21364 if (flags & NDR_OUT) {
21365 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21367 return NDR_ERR_SUCCESS;
21370 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
21372 ndr_print_struct(ndr, name, "spoolss_4b");
21374 if (flags & NDR_SET_VALUES) {
21375 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21377 if (flags & NDR_IN) {
21378 ndr_print_struct(ndr, "in", "spoolss_4b");
21382 if (flags & NDR_OUT) {
21383 ndr_print_struct(ndr, "out", "spoolss_4b");
21385 ndr_print_WERROR(ndr, "result", r->out.result);
21391 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
21393 if (flags & NDR_IN) {
21395 if (flags & NDR_OUT) {
21396 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21398 return NDR_ERR_SUCCESS;
21401 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
21403 if (flags & NDR_IN) {
21405 if (flags & NDR_OUT) {
21406 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21408 return NDR_ERR_SUCCESS;
21411 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
21413 ndr_print_struct(ndr, name, "spoolss_4c");
21415 if (flags & NDR_SET_VALUES) {
21416 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21418 if (flags & NDR_IN) {
21419 ndr_print_struct(ndr, "in", "spoolss_4c");
21423 if (flags & NDR_OUT) {
21424 ndr_print_struct(ndr, "out", "spoolss_4c");
21426 ndr_print_WERROR(ndr, "result", r->out.result);
21432 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
21434 if (flags & NDR_IN) {
21435 if (r->in.handle == NULL) {
21436 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21438 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21442 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));
21443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21446 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));
21447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
21448 if (r->in.buffer == NULL) {
21449 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21452 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21455 if (flags & NDR_OUT) {
21456 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21458 return NDR_ERR_SUCCESS;
21461 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
21463 TALLOC_CTX *_mem_save_handle_0;
21464 if (flags & NDR_IN) {
21465 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21466 NDR_PULL_ALLOC(ndr, r->in.handle);
21468 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21469 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21470 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21472 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21473 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21474 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21475 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));
21477 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21478 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));
21479 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21480 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21481 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21482 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));
21484 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21485 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));
21486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
21487 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21488 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21489 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21491 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21493 if (r->in.buffer) {
21494 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21497 if (flags & NDR_OUT) {
21498 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21500 return NDR_ERR_SUCCESS;
21503 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
21505 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
21507 if (flags & NDR_SET_VALUES) {
21508 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21510 if (flags & NDR_IN) {
21511 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
21513 ndr_print_ptr(ndr, "handle", r->in.handle);
21515 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21517 ndr_print_string(ndr, "key_name", r->in.key_name);
21518 ndr_print_string(ndr, "value_name", r->in.value_name);
21519 ndr_print_uint32(ndr, "type", r->in.type);
21520 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21522 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21524 ndr_print_uint32(ndr, "offered", r->in.offered);
21527 if (flags & NDR_OUT) {
21528 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
21530 ndr_print_WERROR(ndr, "result", r->out.result);
21536 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
21538 if (flags & NDR_IN) {
21539 if (r->in.handle == NULL) {
21540 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21542 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21545 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21546 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));
21547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21550 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));
21551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21553 if (flags & NDR_OUT) {
21554 if (r->out.type == NULL) {
21555 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21557 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
21558 if (r->out.buffer == NULL) {
21559 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21562 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21563 if (r->out.needed == NULL) {
21564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21567 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21569 return NDR_ERR_SUCCESS;
21572 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
21574 TALLOC_CTX *_mem_save_handle_0;
21575 TALLOC_CTX *_mem_save_type_0;
21576 TALLOC_CTX *_mem_save_needed_0;
21577 if (flags & NDR_IN) {
21578 ZERO_STRUCT(r->out);
21580 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21581 NDR_PULL_ALLOC(ndr, r->in.handle);
21583 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21584 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21585 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21587 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21588 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21589 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21590 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));
21592 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21593 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));
21594 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21595 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21596 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21597 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));
21599 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21600 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));
21601 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21602 NDR_PULL_ALLOC(ndr, r->out.type);
21603 ZERO_STRUCTP(r->out.type);
21604 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
21605 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
21606 NDR_PULL_ALLOC(ndr, r->out.needed);
21607 ZERO_STRUCTP(r->out.needed);
21609 if (flags & NDR_OUT) {
21610 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21611 NDR_PULL_ALLOC(ndr, r->out.type);
21613 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21614 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21615 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
21616 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21617 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21618 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21619 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21621 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21622 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21623 NDR_PULL_ALLOC(ndr, r->out.needed);
21625 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21626 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21627 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21628 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21629 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21630 if (r->out.buffer) {
21631 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21634 return NDR_ERR_SUCCESS;
21637 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
21639 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
21641 if (flags & NDR_SET_VALUES) {
21642 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21644 if (flags & NDR_IN) {
21645 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
21647 ndr_print_ptr(ndr, "handle", r->in.handle);
21649 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21651 ndr_print_string(ndr, "key_name", r->in.key_name);
21652 ndr_print_string(ndr, "value_name", r->in.value_name);
21653 ndr_print_uint32(ndr, "offered", r->in.offered);
21656 if (flags & NDR_OUT) {
21657 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
21659 ndr_print_ptr(ndr, "type", r->out.type);
21661 ndr_print_uint32(ndr, "type", *r->out.type);
21663 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21665 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21667 ndr_print_ptr(ndr, "needed", r->out.needed);
21669 ndr_print_uint32(ndr, "needed", *r->out.needed);
21671 ndr_print_WERROR(ndr, "result", r->out.result);
21677 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
21679 if (flags & NDR_IN) {
21680 if (r->in.handle == NULL) {
21681 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21683 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21687 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));
21688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21690 if (flags & NDR_OUT) {
21691 if (r->out.buffer == NULL) {
21692 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21695 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21696 if (r->out.needed == NULL) {
21697 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21699 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21700 if (r->out.count == NULL) {
21701 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21704 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21706 return NDR_ERR_SUCCESS;
21709 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
21711 TALLOC_CTX *_mem_save_handle_0;
21712 TALLOC_CTX *_mem_save_needed_0;
21713 TALLOC_CTX *_mem_save_count_0;
21714 if (flags & NDR_IN) {
21715 ZERO_STRUCT(r->out);
21717 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21718 NDR_PULL_ALLOC(ndr, r->in.handle);
21720 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21721 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21722 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21723 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21724 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21725 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21726 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21727 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));
21729 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21730 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));
21731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21732 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
21733 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
21734 NDR_PULL_ALLOC(ndr, r->out.needed);
21735 ZERO_STRUCTP(r->out.needed);
21736 NDR_PULL_ALLOC(ndr, r->out.count);
21737 ZERO_STRUCTP(r->out.count);
21739 if (flags & NDR_OUT) {
21740 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21741 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21742 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21744 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21745 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21746 NDR_PULL_ALLOC(ndr, r->out.needed);
21748 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21749 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21752 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21753 NDR_PULL_ALLOC(ndr, r->out.count);
21755 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21756 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21757 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21758 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21759 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21760 if (r->out.buffer) {
21761 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21764 return NDR_ERR_SUCCESS;
21767 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
21769 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
21771 if (flags & NDR_SET_VALUES) {
21772 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21774 if (flags & NDR_IN) {
21775 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
21777 ndr_print_ptr(ndr, "handle", r->in.handle);
21779 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21781 ndr_print_string(ndr, "key_name", r->in.key_name);
21782 ndr_print_uint32(ndr, "offered", r->in.offered);
21785 if (flags & NDR_OUT) {
21786 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
21788 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21790 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21792 ndr_print_ptr(ndr, "needed", r->out.needed);
21794 ndr_print_uint32(ndr, "needed", *r->out.needed);
21796 ndr_print_ptr(ndr, "count", r->out.count);
21798 ndr_print_uint32(ndr, "count", *r->out.count);
21800 ndr_print_WERROR(ndr, "result", r->out.result);
21806 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
21808 uint32_t cntr_key_buffer_1;
21809 if (flags & NDR_IN) {
21810 if (r->in.handle == NULL) {
21811 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21813 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21817 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));
21818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
21820 if (flags & NDR_OUT) {
21821 if (r->out.key_buffer == NULL) {
21822 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
21825 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
21826 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
21828 if (r->out.needed == NULL) {
21829 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21832 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21834 return NDR_ERR_SUCCESS;
21837 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
21839 uint32_t cntr_key_buffer_1;
21840 TALLOC_CTX *_mem_save_handle_0;
21841 TALLOC_CTX *_mem_save_key_buffer_1;
21842 TALLOC_CTX *_mem_save_needed_0;
21843 if (flags & NDR_IN) {
21844 ZERO_STRUCT(r->out);
21846 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21847 NDR_PULL_ALLOC(ndr, r->in.handle);
21849 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21850 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21851 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21853 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21854 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21855 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21856 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));
21858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21859 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));
21860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
21861 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
21862 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
21863 NDR_PULL_ALLOC(ndr, r->out.needed);
21864 ZERO_STRUCTP(r->out.needed);
21866 if (flags & NDR_OUT) {
21867 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
21868 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21869 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
21871 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
21872 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
21873 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
21874 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
21876 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
21877 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21878 NDR_PULL_ALLOC(ndr, r->out.needed);
21880 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21881 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21884 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21885 if (r->out.key_buffer) {
21886 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
21889 return NDR_ERR_SUCCESS;
21892 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
21894 uint32_t cntr_key_buffer_1;
21895 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
21897 if (flags & NDR_SET_VALUES) {
21898 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21900 if (flags & NDR_IN) {
21901 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
21903 ndr_print_ptr(ndr, "handle", r->in.handle);
21905 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21907 ndr_print_string(ndr, "key_name", r->in.key_name);
21908 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
21911 if (flags & NDR_OUT) {
21912 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
21914 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
21916 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
21918 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
21920 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
21921 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
21927 ndr_print_ptr(ndr, "needed", r->out.needed);
21929 ndr_print_uint32(ndr, "needed", *r->out.needed);
21931 ndr_print_WERROR(ndr, "result", r->out.result);
21937 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
21939 if (flags & NDR_IN) {
21940 if (r->in.handle == NULL) {
21941 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21943 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21947 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));
21948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21949 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21950 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21951 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));
21953 if (flags & NDR_OUT) {
21954 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21956 return NDR_ERR_SUCCESS;
21959 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
21961 TALLOC_CTX *_mem_save_handle_0;
21962 if (flags & NDR_IN) {
21963 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21964 NDR_PULL_ALLOC(ndr, r->in.handle);
21966 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21967 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21968 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21970 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21971 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21972 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21973 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
21975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21976 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));
21977 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21978 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21979 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21980 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));
21982 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21983 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));
21985 if (flags & NDR_OUT) {
21986 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21988 return NDR_ERR_SUCCESS;
21991 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
21993 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
21995 if (flags & NDR_SET_VALUES) {
21996 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21998 if (flags & NDR_IN) {
21999 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
22001 ndr_print_ptr(ndr, "handle", r->in.handle);
22003 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22005 ndr_print_string(ndr, "key_name", r->in.key_name);
22006 ndr_print_string(ndr, "value_name", r->in.value_name);
22009 if (flags & NDR_OUT) {
22010 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
22012 ndr_print_WERROR(ndr, "result", r->out.result);
22018 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
22020 if (flags & NDR_IN) {
22021 if (r->in.handle == NULL) {
22022 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22024 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22028 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));
22030 if (flags & NDR_OUT) {
22031 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22033 return NDR_ERR_SUCCESS;
22036 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
22038 TALLOC_CTX *_mem_save_handle_0;
22039 if (flags & NDR_IN) {
22040 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22041 NDR_PULL_ALLOC(ndr, r->in.handle);
22043 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22044 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22045 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22046 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22047 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22048 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22049 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22050 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.key_name), ndr_get_array_length(ndr, &r->in.key_name));
22052 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22053 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));
22055 if (flags & NDR_OUT) {
22056 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22058 return NDR_ERR_SUCCESS;
22061 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
22063 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
22065 if (flags & NDR_SET_VALUES) {
22066 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22068 if (flags & NDR_IN) {
22069 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
22071 ndr_print_ptr(ndr, "handle", r->in.handle);
22073 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22075 ndr_print_string(ndr, "key_name", r->in.key_name);
22078 if (flags & NDR_OUT) {
22079 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
22081 ndr_print_WERROR(ndr, "result", r->out.result);
22087 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
22089 if (flags & NDR_IN) {
22091 if (flags & NDR_OUT) {
22092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22094 return NDR_ERR_SUCCESS;
22097 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
22099 if (flags & NDR_IN) {
22101 if (flags & NDR_OUT) {
22102 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22104 return NDR_ERR_SUCCESS;
22107 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
22109 ndr_print_struct(ndr, name, "spoolss_53");
22111 if (flags & NDR_SET_VALUES) {
22112 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22114 if (flags & NDR_IN) {
22115 ndr_print_struct(ndr, "in", "spoolss_53");
22119 if (flags & NDR_OUT) {
22120 ndr_print_struct(ndr, "out", "spoolss_53");
22122 ndr_print_WERROR(ndr, "result", r->out.result);
22128 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22130 if (flags & NDR_IN) {
22131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22132 if (r->in.server) {
22133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22136 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22139 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22141 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22143 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22145 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22146 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
22147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
22149 if (flags & NDR_OUT) {
22150 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22152 return NDR_ERR_SUCCESS;
22155 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
22157 uint32_t _ptr_server;
22158 TALLOC_CTX *_mem_save_server_0;
22159 if (flags & NDR_IN) {
22160 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22162 NDR_PULL_ALLOC(ndr, r->in.server);
22164 r->in.server = NULL;
22166 if (r->in.server) {
22167 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22168 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22169 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22170 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22171 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22172 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));
22174 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22175 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22176 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22178 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22179 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22180 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22181 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));
22183 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22184 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22185 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22186 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22187 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22188 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));
22190 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22191 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22192 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
22193 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
22195 if (flags & NDR_OUT) {
22196 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22198 return NDR_ERR_SUCCESS;
22201 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22203 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
22205 if (flags & NDR_SET_VALUES) {
22206 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22208 if (flags & NDR_IN) {
22209 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
22211 ndr_print_ptr(ndr, "server", r->in.server);
22213 if (r->in.server) {
22214 ndr_print_string(ndr, "server", r->in.server);
22217 ndr_print_string(ndr, "architecture", r->in.architecture);
22218 ndr_print_string(ndr, "driver", r->in.driver);
22219 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
22220 ndr_print_uint32(ndr, "version", r->in.version);
22223 if (flags & NDR_OUT) {
22224 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
22226 ndr_print_WERROR(ndr, "result", r->out.result);
22232 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
22234 if (flags & NDR_IN) {
22236 if (flags & NDR_OUT) {
22237 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22239 return NDR_ERR_SUCCESS;
22242 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
22244 if (flags & NDR_IN) {
22246 if (flags & NDR_OUT) {
22247 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22249 return NDR_ERR_SUCCESS;
22252 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
22254 ndr_print_struct(ndr, name, "spoolss_55");
22256 if (flags & NDR_SET_VALUES) {
22257 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22259 if (flags & NDR_IN) {
22260 ndr_print_struct(ndr, "in", "spoolss_55");
22264 if (flags & NDR_OUT) {
22265 ndr_print_struct(ndr, "out", "spoolss_55");
22267 ndr_print_WERROR(ndr, "result", r->out.result);
22273 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
22275 if (flags & NDR_IN) {
22277 if (flags & NDR_OUT) {
22278 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22280 return NDR_ERR_SUCCESS;
22283 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
22285 if (flags & NDR_IN) {
22287 if (flags & NDR_OUT) {
22288 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22290 return NDR_ERR_SUCCESS;
22293 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
22295 ndr_print_struct(ndr, name, "spoolss_56");
22297 if (flags & NDR_SET_VALUES) {
22298 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22300 if (flags & NDR_IN) {
22301 ndr_print_struct(ndr, "in", "spoolss_56");
22305 if (flags & NDR_OUT) {
22306 ndr_print_struct(ndr, "out", "spoolss_56");
22308 ndr_print_WERROR(ndr, "result", r->out.result);
22314 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
22316 if (flags & NDR_IN) {
22318 if (flags & NDR_OUT) {
22319 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22321 return NDR_ERR_SUCCESS;
22324 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
22326 if (flags & NDR_IN) {
22328 if (flags & NDR_OUT) {
22329 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22331 return NDR_ERR_SUCCESS;
22334 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
22336 ndr_print_struct(ndr, name, "spoolss_57");
22338 if (flags & NDR_SET_VALUES) {
22339 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22341 if (flags & NDR_IN) {
22342 ndr_print_struct(ndr, "in", "spoolss_57");
22346 if (flags & NDR_OUT) {
22347 ndr_print_struct(ndr, "out", "spoolss_57");
22349 ndr_print_WERROR(ndr, "result", r->out.result);
22355 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
22357 if (flags & NDR_IN) {
22358 if (r->in.handle == NULL) {
22359 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22361 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22365 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));
22366 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
22367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
22368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22369 if (r->in.status_code == NULL) {
22370 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22372 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
22374 if (flags & NDR_OUT) {
22375 if (r->out.out_data == NULL) {
22376 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22378 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22379 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
22380 if (r->out.needed == NULL) {
22381 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22384 if (r->out.status_code == NULL) {
22385 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
22388 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22390 return NDR_ERR_SUCCESS;
22393 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
22395 TALLOC_CTX *_mem_save_handle_0;
22396 TALLOC_CTX *_mem_save_needed_0;
22397 TALLOC_CTX *_mem_save_status_code_0;
22398 if (flags & NDR_IN) {
22399 ZERO_STRUCT(r->out);
22401 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22402 NDR_PULL_ALLOC(ndr, r->in.handle);
22404 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22405 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22406 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22408 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
22409 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
22410 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
22411 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));
22413 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
22414 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));
22415 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
22416 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
22417 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
22418 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22419 NDR_PULL_ALLOC(ndr, r->in.status_code);
22421 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22422 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
22423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
22424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22425 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
22426 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
22427 NDR_PULL_ALLOC(ndr, r->out.needed);
22428 ZERO_STRUCTP(r->out.needed);
22429 NDR_PULL_ALLOC(ndr, r->out.status_code);
22430 *r->out.status_code = *r->in.status_code;
22432 if (flags & NDR_OUT) {
22433 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
22434 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22435 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
22437 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
22438 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22439 NDR_PULL_ALLOC(ndr, r->out.needed);
22441 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22442 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22443 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22445 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22446 NDR_PULL_ALLOC(ndr, r->out.status_code);
22448 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22449 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
22450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
22451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22452 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22453 if (r->out.out_data) {
22454 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
22457 return NDR_ERR_SUCCESS;
22460 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
22462 ndr_print_struct(ndr, name, "spoolss_XcvData");
22464 if (flags & NDR_SET_VALUES) {
22465 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22467 if (flags & NDR_IN) {
22468 ndr_print_struct(ndr, "in", "spoolss_XcvData");
22470 ndr_print_ptr(ndr, "handle", r->in.handle);
22472 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22474 ndr_print_string(ndr, "function_name", r->in.function_name);
22475 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
22476 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
22477 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
22478 ndr_print_ptr(ndr, "status_code", r->in.status_code);
22480 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
22484 if (flags & NDR_OUT) {
22485 ndr_print_struct(ndr, "out", "spoolss_XcvData");
22487 ndr_print_ptr(ndr, "out_data", r->out.out_data);
22489 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
22491 ndr_print_ptr(ndr, "needed", r->out.needed);
22493 ndr_print_uint32(ndr, "needed", *r->out.needed);
22495 ndr_print_ptr(ndr, "status_code", r->out.status_code);
22497 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
22499 ndr_print_WERROR(ndr, "result", r->out.result);
22505 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
22507 if (flags & NDR_IN) {
22508 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22509 if (r->in.servername) {
22510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22513 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22515 if (r->in.info_ctr == NULL) {
22516 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22518 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22519 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
22521 if (flags & NDR_OUT) {
22522 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22524 return NDR_ERR_SUCCESS;
22527 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
22529 uint32_t _ptr_servername;
22530 TALLOC_CTX *_mem_save_servername_0;
22531 TALLOC_CTX *_mem_save_info_ctr_0;
22532 if (flags & NDR_IN) {
22533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22534 if (_ptr_servername) {
22535 NDR_PULL_ALLOC(ndr, r->in.servername);
22537 r->in.servername = NULL;
22539 if (r->in.servername) {
22540 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22541 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22542 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22543 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22544 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22545 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));
22547 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22548 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22551 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22552 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
22554 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
22555 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
22556 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22557 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
22558 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
22560 if (flags & NDR_OUT) {
22561 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22563 return NDR_ERR_SUCCESS;
22566 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
22568 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
22570 if (flags & NDR_SET_VALUES) {
22571 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22573 if (flags & NDR_IN) {
22574 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
22576 ndr_print_ptr(ndr, "servername", r->in.servername);
22578 if (r->in.servername) {
22579 ndr_print_string(ndr, "servername", r->in.servername);
22582 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
22584 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
22586 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
22589 if (flags & NDR_OUT) {
22590 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
22592 ndr_print_WERROR(ndr, "result", r->out.result);
22598 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
22600 if (flags & NDR_IN) {
22602 if (flags & NDR_OUT) {
22603 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22605 return NDR_ERR_SUCCESS;
22608 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
22610 if (flags & NDR_IN) {
22612 if (flags & NDR_OUT) {
22613 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22615 return NDR_ERR_SUCCESS;
22618 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
22620 ndr_print_struct(ndr, name, "spoolss_5a");
22622 if (flags & NDR_SET_VALUES) {
22623 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22625 if (flags & NDR_IN) {
22626 ndr_print_struct(ndr, "in", "spoolss_5a");
22630 if (flags & NDR_OUT) {
22631 ndr_print_struct(ndr, "out", "spoolss_5a");
22633 ndr_print_WERROR(ndr, "result", r->out.result);
22639 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
22641 if (flags & NDR_IN) {
22643 if (flags & NDR_OUT) {
22644 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22646 return NDR_ERR_SUCCESS;
22649 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
22651 if (flags & NDR_IN) {
22653 if (flags & NDR_OUT) {
22654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22656 return NDR_ERR_SUCCESS;
22659 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
22661 ndr_print_struct(ndr, name, "spoolss_5b");
22663 if (flags & NDR_SET_VALUES) {
22664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22666 if (flags & NDR_IN) {
22667 ndr_print_struct(ndr, "in", "spoolss_5b");
22671 if (flags & NDR_OUT) {
22672 ndr_print_struct(ndr, "out", "spoolss_5b");
22674 ndr_print_WERROR(ndr, "result", r->out.result);
22680 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
22682 if (flags & NDR_IN) {
22684 if (flags & NDR_OUT) {
22685 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22687 return NDR_ERR_SUCCESS;
22690 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
22692 if (flags & NDR_IN) {
22694 if (flags & NDR_OUT) {
22695 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22697 return NDR_ERR_SUCCESS;
22700 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
22702 ndr_print_struct(ndr, name, "spoolss_5c");
22704 if (flags & NDR_SET_VALUES) {
22705 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22707 if (flags & NDR_IN) {
22708 ndr_print_struct(ndr, "in", "spoolss_5c");
22712 if (flags & NDR_OUT) {
22713 ndr_print_struct(ndr, "out", "spoolss_5c");
22715 ndr_print_WERROR(ndr, "result", r->out.result);
22721 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
22723 if (flags & NDR_IN) {
22725 if (flags & NDR_OUT) {
22726 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22728 return NDR_ERR_SUCCESS;
22731 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
22733 if (flags & NDR_IN) {
22735 if (flags & NDR_OUT) {
22736 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22738 return NDR_ERR_SUCCESS;
22741 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
22743 ndr_print_struct(ndr, name, "spoolss_5d");
22745 if (flags & NDR_SET_VALUES) {
22746 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22748 if (flags & NDR_IN) {
22749 ndr_print_struct(ndr, "in", "spoolss_5d");
22753 if (flags & NDR_OUT) {
22754 ndr_print_struct(ndr, "out", "spoolss_5d");
22756 ndr_print_WERROR(ndr, "result", r->out.result);
22762 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
22764 if (flags & NDR_IN) {
22766 if (flags & NDR_OUT) {
22767 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22769 return NDR_ERR_SUCCESS;
22772 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
22774 if (flags & NDR_IN) {
22776 if (flags & NDR_OUT) {
22777 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22779 return NDR_ERR_SUCCESS;
22782 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
22784 ndr_print_struct(ndr, name, "spoolss_5e");
22786 if (flags & NDR_SET_VALUES) {
22787 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22789 if (flags & NDR_IN) {
22790 ndr_print_struct(ndr, "in", "spoolss_5e");
22794 if (flags & NDR_OUT) {
22795 ndr_print_struct(ndr, "out", "spoolss_5e");
22797 ndr_print_WERROR(ndr, "result", r->out.result);
22803 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
22805 if (flags & NDR_IN) {
22807 if (flags & NDR_OUT) {
22808 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22810 return NDR_ERR_SUCCESS;
22813 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
22815 if (flags & NDR_IN) {
22817 if (flags & NDR_OUT) {
22818 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22820 return NDR_ERR_SUCCESS;
22823 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
22825 ndr_print_struct(ndr, name, "spoolss_5f");
22827 if (flags & NDR_SET_VALUES) {
22828 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22830 if (flags & NDR_IN) {
22831 ndr_print_struct(ndr, "in", "spoolss_5f");
22835 if (flags & NDR_OUT) {
22836 ndr_print_struct(ndr, "out", "spoolss_5f");
22838 ndr_print_WERROR(ndr, "result", r->out.result);
22844 static const struct ndr_interface_call spoolss_calls[] = {
22846 "spoolss_EnumPrinters",
22847 sizeof(struct spoolss_EnumPrinters),
22848 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
22849 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
22850 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
22854 "spoolss_OpenPrinter",
22855 sizeof(struct spoolss_OpenPrinter),
22856 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
22857 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
22858 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
22863 sizeof(struct spoolss_SetJob),
22864 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
22865 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
22866 (ndr_print_function_t) ndr_print_spoolss_SetJob,
22871 sizeof(struct spoolss_GetJob),
22872 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
22873 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
22874 (ndr_print_function_t) ndr_print_spoolss_GetJob,
22878 "spoolss_EnumJobs",
22879 sizeof(struct spoolss_EnumJobs),
22880 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
22881 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
22882 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
22886 "spoolss_AddPrinter",
22887 sizeof(struct spoolss_AddPrinter),
22888 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
22889 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
22890 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
22894 "spoolss_DeletePrinter",
22895 sizeof(struct spoolss_DeletePrinter),
22896 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
22897 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
22898 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
22902 "spoolss_SetPrinter",
22903 sizeof(struct spoolss_SetPrinter),
22904 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
22905 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
22906 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
22910 "spoolss_GetPrinter",
22911 sizeof(struct spoolss_GetPrinter),
22912 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
22913 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
22914 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
22918 "spoolss_AddPrinterDriver",
22919 sizeof(struct spoolss_AddPrinterDriver),
22920 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
22921 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
22922 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
22926 "spoolss_EnumPrinterDrivers",
22927 sizeof(struct spoolss_EnumPrinterDrivers),
22928 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
22929 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
22930 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
22934 "spoolss_GetPrinterDriver",
22935 sizeof(struct spoolss_GetPrinterDriver),
22936 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
22937 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
22938 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
22942 "spoolss_GetPrinterDriverDirectory",
22943 sizeof(struct spoolss_GetPrinterDriverDirectory),
22944 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
22945 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
22946 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
22950 "spoolss_DeletePrinterDriver",
22951 sizeof(struct spoolss_DeletePrinterDriver),
22952 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
22953 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
22954 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
22958 "spoolss_AddPrintProcessor",
22959 sizeof(struct spoolss_AddPrintProcessor),
22960 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
22961 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
22962 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
22966 "spoolss_EnumPrintProcessors",
22967 sizeof(struct spoolss_EnumPrintProcessors),
22968 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
22969 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
22970 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
22974 "spoolss_GetPrintProcessorDirectory",
22975 sizeof(struct spoolss_GetPrintProcessorDirectory),
22976 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
22977 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
22978 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
22982 "spoolss_StartDocPrinter",
22983 sizeof(struct spoolss_StartDocPrinter),
22984 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
22985 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
22986 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
22990 "spoolss_StartPagePrinter",
22991 sizeof(struct spoolss_StartPagePrinter),
22992 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
22993 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
22994 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
22998 "spoolss_WritePrinter",
22999 sizeof(struct spoolss_WritePrinter),
23000 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
23001 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
23002 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
23006 "spoolss_EndPagePrinter",
23007 sizeof(struct spoolss_EndPagePrinter),
23008 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
23009 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
23010 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
23014 "spoolss_AbortPrinter",
23015 sizeof(struct spoolss_AbortPrinter),
23016 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
23017 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
23018 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
23022 "spoolss_ReadPrinter",
23023 sizeof(struct spoolss_ReadPrinter),
23024 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
23025 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
23026 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
23030 "spoolss_EndDocPrinter",
23031 sizeof(struct spoolss_EndDocPrinter),
23032 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
23033 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
23034 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
23039 sizeof(struct spoolss_AddJob),
23040 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
23041 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
23042 (ndr_print_function_t) ndr_print_spoolss_AddJob,
23046 "spoolss_ScheduleJob",
23047 sizeof(struct spoolss_ScheduleJob),
23048 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
23049 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
23050 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
23054 "spoolss_GetPrinterData",
23055 sizeof(struct spoolss_GetPrinterData),
23056 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
23057 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
23058 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
23062 "spoolss_SetPrinterData",
23063 sizeof(struct spoolss_SetPrinterData),
23064 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
23065 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
23066 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
23070 "spoolss_WaitForPrinterChange",
23071 sizeof(struct spoolss_WaitForPrinterChange),
23072 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
23073 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
23074 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
23078 "spoolss_ClosePrinter",
23079 sizeof(struct spoolss_ClosePrinter),
23080 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
23081 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
23082 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
23087 sizeof(struct spoolss_AddForm),
23088 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
23089 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
23090 (ndr_print_function_t) ndr_print_spoolss_AddForm,
23094 "spoolss_DeleteForm",
23095 sizeof(struct spoolss_DeleteForm),
23096 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
23097 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
23098 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
23103 sizeof(struct spoolss_GetForm),
23104 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
23105 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
23106 (ndr_print_function_t) ndr_print_spoolss_GetForm,
23111 sizeof(struct spoolss_SetForm),
23112 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
23113 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
23114 (ndr_print_function_t) ndr_print_spoolss_SetForm,
23118 "spoolss_EnumForms",
23119 sizeof(struct spoolss_EnumForms),
23120 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
23121 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
23122 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
23126 "spoolss_EnumPorts",
23127 sizeof(struct spoolss_EnumPorts),
23128 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
23129 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
23130 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
23134 "spoolss_EnumMonitors",
23135 sizeof(struct spoolss_EnumMonitors),
23136 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
23137 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
23138 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
23143 sizeof(struct spoolss_AddPort),
23144 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
23145 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
23146 (ndr_print_function_t) ndr_print_spoolss_AddPort,
23150 "spoolss_ConfigurePort",
23151 sizeof(struct spoolss_ConfigurePort),
23152 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
23153 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
23154 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
23158 "spoolss_DeletePort",
23159 sizeof(struct spoolss_DeletePort),
23160 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
23161 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
23162 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
23166 "spoolss_CreatePrinterIC",
23167 sizeof(struct spoolss_CreatePrinterIC),
23168 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
23169 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
23170 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
23174 "spoolss_PlayGDIScriptOnPrinterIC",
23175 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
23176 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
23177 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
23178 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
23182 "spoolss_DeletePrinterIC",
23183 sizeof(struct spoolss_DeletePrinterIC),
23184 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
23185 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
23186 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
23190 "spoolss_AddPrinterConnection",
23191 sizeof(struct spoolss_AddPrinterConnection),
23192 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
23193 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
23194 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
23198 "spoolss_DeletePrinterConnection",
23199 sizeof(struct spoolss_DeletePrinterConnection),
23200 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
23201 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
23202 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
23206 "spoolss_PrinterMessageBox",
23207 sizeof(struct spoolss_PrinterMessageBox),
23208 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
23209 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
23210 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
23214 "spoolss_AddMonitor",
23215 sizeof(struct spoolss_AddMonitor),
23216 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
23217 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
23218 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
23222 "spoolss_DeleteMonitor",
23223 sizeof(struct spoolss_DeleteMonitor),
23224 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
23225 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
23226 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
23230 "spoolss_DeletePrintProcessor",
23231 sizeof(struct spoolss_DeletePrintProcessor),
23232 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
23233 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
23234 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
23238 "spoolss_AddPrintProvidor",
23239 sizeof(struct spoolss_AddPrintProvidor),
23240 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
23241 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
23242 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
23246 "spoolss_DeletePrintProvidor",
23247 sizeof(struct spoolss_DeletePrintProvidor),
23248 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
23249 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
23250 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
23254 "spoolss_EnumPrintProcDataTypes",
23255 sizeof(struct spoolss_EnumPrintProcDataTypes),
23256 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
23257 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
23258 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
23262 "spoolss_ResetPrinter",
23263 sizeof(struct spoolss_ResetPrinter),
23264 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
23265 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
23266 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
23270 "spoolss_GetPrinterDriver2",
23271 sizeof(struct spoolss_GetPrinterDriver2),
23272 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
23273 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
23274 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
23278 "spoolss_FindFirstPrinterChangeNotification",
23279 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
23280 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
23281 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
23282 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
23286 "spoolss_FindNextPrinterChangeNotification",
23287 sizeof(struct spoolss_FindNextPrinterChangeNotification),
23288 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
23289 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
23290 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
23294 "spoolss_FindClosePrinterNotify",
23295 sizeof(struct spoolss_FindClosePrinterNotify),
23296 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
23297 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
23298 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
23302 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
23303 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
23304 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23305 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23306 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23310 "spoolss_ReplyOpenPrinter",
23311 sizeof(struct spoolss_ReplyOpenPrinter),
23312 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
23313 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
23314 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
23318 "spoolss_RouterReplyPrinter",
23319 sizeof(struct spoolss_RouterReplyPrinter),
23320 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
23321 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
23322 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
23326 "spoolss_ReplyClosePrinter",
23327 sizeof(struct spoolss_ReplyClosePrinter),
23328 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
23329 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
23330 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
23334 "spoolss_AddPortEx",
23335 sizeof(struct spoolss_AddPortEx),
23336 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
23337 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
23338 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
23342 "spoolss_RouterFindFirstPrinterChangeNotification",
23343 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
23344 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
23345 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
23346 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
23350 "spoolss_SpoolerInit",
23351 sizeof(struct spoolss_SpoolerInit),
23352 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
23353 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
23354 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
23358 "spoolss_ResetPrinterEx",
23359 sizeof(struct spoolss_ResetPrinterEx),
23360 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
23361 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
23362 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
23366 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
23367 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
23368 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23369 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23370 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23374 "spoolss_RouterReplyPrinterEx",
23375 sizeof(struct spoolss_RouterReplyPrinterEx),
23376 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
23377 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
23378 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
23382 "spoolss_RouterRefreshPrinterChangeNotify",
23383 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
23384 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
23385 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
23386 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
23391 sizeof(struct spoolss_44),
23392 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
23393 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
23394 (ndr_print_function_t) ndr_print_spoolss_44,
23398 "spoolss_OpenPrinterEx",
23399 sizeof(struct spoolss_OpenPrinterEx),
23400 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
23401 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
23402 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
23406 "spoolss_AddPrinterEx",
23407 sizeof(struct spoolss_AddPrinterEx),
23408 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
23409 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
23410 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
23415 sizeof(struct spoolss_47),
23416 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
23417 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
23418 (ndr_print_function_t) ndr_print_spoolss_47,
23422 "spoolss_EnumPrinterData",
23423 sizeof(struct spoolss_EnumPrinterData),
23424 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
23425 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
23426 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
23430 "spoolss_DeletePrinterData",
23431 sizeof(struct spoolss_DeletePrinterData),
23432 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
23433 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
23434 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
23439 sizeof(struct spoolss_4a),
23440 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
23441 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
23442 (ndr_print_function_t) ndr_print_spoolss_4a,
23447 sizeof(struct spoolss_4b),
23448 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
23449 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
23450 (ndr_print_function_t) ndr_print_spoolss_4b,
23455 sizeof(struct spoolss_4c),
23456 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
23457 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
23458 (ndr_print_function_t) ndr_print_spoolss_4c,
23462 "spoolss_SetPrinterDataEx",
23463 sizeof(struct spoolss_SetPrinterDataEx),
23464 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
23465 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
23466 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
23470 "spoolss_GetPrinterDataEx",
23471 sizeof(struct spoolss_GetPrinterDataEx),
23472 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
23473 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
23474 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
23478 "spoolss_EnumPrinterDataEx",
23479 sizeof(struct spoolss_EnumPrinterDataEx),
23480 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
23481 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
23482 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
23486 "spoolss_EnumPrinterKey",
23487 sizeof(struct spoolss_EnumPrinterKey),
23488 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
23489 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
23490 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
23494 "spoolss_DeletePrinterDataEx",
23495 sizeof(struct spoolss_DeletePrinterDataEx),
23496 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
23497 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
23498 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
23502 "spoolss_DeletePrinterKey",
23503 sizeof(struct spoolss_DeletePrinterKey),
23504 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
23505 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
23506 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
23511 sizeof(struct spoolss_53),
23512 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
23513 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
23514 (ndr_print_function_t) ndr_print_spoolss_53,
23518 "spoolss_DeletePrinterDriverEx",
23519 sizeof(struct spoolss_DeletePrinterDriverEx),
23520 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
23521 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
23522 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
23527 sizeof(struct spoolss_55),
23528 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
23529 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
23530 (ndr_print_function_t) ndr_print_spoolss_55,
23535 sizeof(struct spoolss_56),
23536 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
23537 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
23538 (ndr_print_function_t) ndr_print_spoolss_56,
23543 sizeof(struct spoolss_57),
23544 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
23545 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
23546 (ndr_print_function_t) ndr_print_spoolss_57,
23551 sizeof(struct spoolss_XcvData),
23552 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
23553 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
23554 (ndr_print_function_t) ndr_print_spoolss_XcvData,
23558 "spoolss_AddPrinterDriverEx",
23559 sizeof(struct spoolss_AddPrinterDriverEx),
23560 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
23561 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
23562 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
23567 sizeof(struct spoolss_5a),
23568 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
23569 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
23570 (ndr_print_function_t) ndr_print_spoolss_5a,
23575 sizeof(struct spoolss_5b),
23576 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
23577 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
23578 (ndr_print_function_t) ndr_print_spoolss_5b,
23583 sizeof(struct spoolss_5c),
23584 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
23585 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
23586 (ndr_print_function_t) ndr_print_spoolss_5c,
23591 sizeof(struct spoolss_5d),
23592 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
23593 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
23594 (ndr_print_function_t) ndr_print_spoolss_5d,
23599 sizeof(struct spoolss_5e),
23600 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
23601 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
23602 (ndr_print_function_t) ndr_print_spoolss_5e,
23607 sizeof(struct spoolss_5f),
23608 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
23609 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
23610 (ndr_print_function_t) ndr_print_spoolss_5f,
23613 { NULL, 0, NULL, NULL, NULL, false }
23616 static const char * const spoolss_endpoint_strings[] = {
23617 "ncacn_np:[\\pipe\\spoolss]",
23620 static const struct ndr_interface_string_array spoolss_endpoints = {
23622 .names = spoolss_endpoint_strings
23625 static const char * const spoolss_authservice_strings[] = {
23629 static const struct ndr_interface_string_array spoolss_authservices = {
23631 .names = spoolss_authservice_strings
23635 const struct ndr_interface_table ndr_table_spoolss = {
23638 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
23639 NDR_SPOOLSS_VERSION
23641 .helpstring = NDR_SPOOLSS_HELPSTRING,
23643 .calls = spoolss_calls,
23644 .endpoints = &spoolss_endpoints,
23645 .authservices = &spoolss_authservices