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 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
4741 if (ndr_flags & NDR_SCALARS) {
4742 NDR_CHECK(ndr_push_align(ndr, 4));
4743 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4745 if (ndr_flags & NDR_BUFFERS) {
4746 if (r->driver_name) {
4747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4750 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4753 return NDR_ERR_SUCCESS;
4756 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
4758 uint32_t _ptr_driver_name;
4759 TALLOC_CTX *_mem_save_driver_name_0;
4760 if (ndr_flags & NDR_SCALARS) {
4761 NDR_CHECK(ndr_pull_align(ndr, 4));
4762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4763 if (_ptr_driver_name) {
4764 NDR_PULL_ALLOC(ndr, r->driver_name);
4766 r->driver_name = NULL;
4769 if (ndr_flags & NDR_BUFFERS) {
4770 if (r->driver_name) {
4771 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4772 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4773 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4774 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4775 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4776 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));
4778 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4779 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4783 return NDR_ERR_SUCCESS;
4786 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
4788 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
4790 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4792 if (r->driver_name) {
4793 ndr_print_string(ndr, "driver_name", r->driver_name);
4799 static enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
4801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4802 return NDR_ERR_SUCCESS;
4805 static enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
4808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4810 return NDR_ERR_SUCCESS;
4813 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
4815 const char *val = NULL;
4818 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
4819 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
4820 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
4821 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
4823 ndr_print_enum(ndr, name, "ENUM", val, r);
4826 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
4828 if (ndr_flags & NDR_SCALARS) {
4829 NDR_CHECK(ndr_push_align(ndr, 4));
4830 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
4831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
4833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
4834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
4835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
4837 if (ndr_flags & NDR_BUFFERS) {
4838 if (r->driver_name) {
4839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4844 if (r->architecture) {
4845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4850 if (r->driver_path) {
4851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4854 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4862 if (r->config_file) {
4863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4866 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4869 return NDR_ERR_SUCCESS;
4872 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
4874 uint32_t _ptr_driver_name;
4875 TALLOC_CTX *_mem_save_driver_name_0;
4876 uint32_t _ptr_architecture;
4877 TALLOC_CTX *_mem_save_architecture_0;
4878 uint32_t _ptr_driver_path;
4879 TALLOC_CTX *_mem_save_driver_path_0;
4880 uint32_t _ptr_data_file;
4881 TALLOC_CTX *_mem_save_data_file_0;
4882 uint32_t _ptr_config_file;
4883 TALLOC_CTX *_mem_save_config_file_0;
4884 if (ndr_flags & NDR_SCALARS) {
4885 NDR_CHECK(ndr_pull_align(ndr, 4));
4886 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
4887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4888 if (_ptr_driver_name) {
4889 NDR_PULL_ALLOC(ndr, r->driver_name);
4891 r->driver_name = NULL;
4893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
4894 if (_ptr_architecture) {
4895 NDR_PULL_ALLOC(ndr, r->architecture);
4897 r->architecture = NULL;
4899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
4900 if (_ptr_driver_path) {
4901 NDR_PULL_ALLOC(ndr, r->driver_path);
4903 r->driver_path = NULL;
4905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
4906 if (_ptr_data_file) {
4907 NDR_PULL_ALLOC(ndr, r->data_file);
4909 r->data_file = NULL;
4911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
4912 if (_ptr_config_file) {
4913 NDR_PULL_ALLOC(ndr, r->config_file);
4915 r->config_file = NULL;
4918 if (ndr_flags & NDR_BUFFERS) {
4919 if (r->driver_name) {
4920 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4921 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4922 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4923 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4924 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4925 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));
4927 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4928 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4931 if (r->architecture) {
4932 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4933 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4934 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
4935 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
4936 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
4937 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));
4939 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
4940 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
4941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4943 if (r->driver_path) {
4944 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4945 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4946 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
4947 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
4948 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
4949 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));
4951 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
4952 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
4953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4956 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4957 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4958 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
4959 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
4960 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
4961 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));
4963 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
4964 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
4965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4967 if (r->config_file) {
4968 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4969 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4970 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
4971 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
4972 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
4973 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));
4975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
4976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
4977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4980 return NDR_ERR_SUCCESS;
4983 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
4985 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
4987 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4988 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4990 if (r->driver_name) {
4991 ndr_print_string(ndr, "driver_name", r->driver_name);
4994 ndr_print_ptr(ndr, "architecture", r->architecture);
4996 if (r->architecture) {
4997 ndr_print_string(ndr, "architecture", r->architecture);
5000 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5002 if (r->driver_path) {
5003 ndr_print_string(ndr, "driver_path", r->driver_path);
5006 ndr_print_ptr(ndr, "data_file", r->data_file);
5009 ndr_print_string(ndr, "data_file", r->data_file);
5012 ndr_print_ptr(ndr, "config_file", r->config_file);
5014 if (r->config_file) {
5015 ndr_print_string(ndr, "config_file", r->config_file);
5021 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
5023 if (ndr_flags & NDR_SCALARS) {
5024 NDR_CHECK(ndr_push_align(ndr, 4));
5025 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5026 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5037 if (ndr_flags & NDR_BUFFERS) {
5038 if (r->driver_name) {
5039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5042 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5044 if (r->architecture) {
5045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5048 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5050 if (r->driver_path) {
5051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5054 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5060 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5062 if (r->config_file) {
5063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5066 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5072 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5074 if (r->monitor_name) {
5075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5078 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5080 if (r->default_datatype) {
5081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5084 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5086 if (r->dependent_files) {
5087 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5090 return NDR_ERR_SUCCESS;
5093 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
5095 uint32_t _ptr_driver_name;
5096 TALLOC_CTX *_mem_save_driver_name_0;
5097 uint32_t _ptr_architecture;
5098 TALLOC_CTX *_mem_save_architecture_0;
5099 uint32_t _ptr_driver_path;
5100 TALLOC_CTX *_mem_save_driver_path_0;
5101 uint32_t _ptr_data_file;
5102 TALLOC_CTX *_mem_save_data_file_0;
5103 uint32_t _ptr_config_file;
5104 TALLOC_CTX *_mem_save_config_file_0;
5105 uint32_t _ptr_help_file;
5106 TALLOC_CTX *_mem_save_help_file_0;
5107 uint32_t _ptr_monitor_name;
5108 TALLOC_CTX *_mem_save_monitor_name_0;
5109 uint32_t _ptr_default_datatype;
5110 TALLOC_CTX *_mem_save_default_datatype_0;
5111 uint32_t _ptr_dependent_files;
5112 TALLOC_CTX *_mem_save_dependent_files_0;
5113 if (ndr_flags & NDR_SCALARS) {
5114 NDR_CHECK(ndr_pull_align(ndr, 4));
5115 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5117 if (_ptr_driver_name) {
5118 NDR_PULL_ALLOC(ndr, r->driver_name);
5120 r->driver_name = NULL;
5122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5123 if (_ptr_architecture) {
5124 NDR_PULL_ALLOC(ndr, r->architecture);
5126 r->architecture = NULL;
5128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5129 if (_ptr_driver_path) {
5130 NDR_PULL_ALLOC(ndr, r->driver_path);
5132 r->driver_path = NULL;
5134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5135 if (_ptr_data_file) {
5136 NDR_PULL_ALLOC(ndr, r->data_file);
5138 r->data_file = NULL;
5140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5141 if (_ptr_config_file) {
5142 NDR_PULL_ALLOC(ndr, r->config_file);
5144 r->config_file = NULL;
5146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5147 if (_ptr_help_file) {
5148 NDR_PULL_ALLOC(ndr, r->help_file);
5150 r->help_file = NULL;
5152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5153 if (_ptr_monitor_name) {
5154 NDR_PULL_ALLOC(ndr, r->monitor_name);
5156 r->monitor_name = NULL;
5158 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5159 if (_ptr_default_datatype) {
5160 NDR_PULL_ALLOC(ndr, r->default_datatype);
5162 r->default_datatype = NULL;
5164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5166 if (_ptr_dependent_files) {
5167 NDR_PULL_ALLOC(ndr, r->dependent_files);
5169 r->dependent_files = NULL;
5172 if (ndr_flags & NDR_BUFFERS) {
5173 if (r->driver_name) {
5174 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5175 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5176 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5177 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5178 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5179 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));
5181 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5182 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5185 if (r->architecture) {
5186 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5187 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5188 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5189 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5190 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5191 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));
5193 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5194 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5197 if (r->driver_path) {
5198 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5199 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5200 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5201 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5202 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5203 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));
5205 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5210 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5211 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5212 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5213 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5214 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5215 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));
5217 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5218 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5221 if (r->config_file) {
5222 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5223 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5224 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5225 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5226 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5227 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));
5229 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5230 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5234 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5235 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5236 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5237 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5238 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5239 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));
5241 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5242 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5245 if (r->monitor_name) {
5246 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5247 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5248 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5249 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5250 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5251 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));
5253 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5254 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5257 if (r->default_datatype) {
5258 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5259 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5260 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5261 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5262 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5263 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));
5265 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5266 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5269 if (r->dependent_files) {
5270 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5271 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5272 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5276 return NDR_ERR_SUCCESS;
5279 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
5281 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
5283 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5284 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5286 if (r->driver_name) {
5287 ndr_print_string(ndr, "driver_name", r->driver_name);
5290 ndr_print_ptr(ndr, "architecture", r->architecture);
5292 if (r->architecture) {
5293 ndr_print_string(ndr, "architecture", r->architecture);
5296 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5298 if (r->driver_path) {
5299 ndr_print_string(ndr, "driver_path", r->driver_path);
5302 ndr_print_ptr(ndr, "data_file", r->data_file);
5305 ndr_print_string(ndr, "data_file", r->data_file);
5308 ndr_print_ptr(ndr, "config_file", r->config_file);
5310 if (r->config_file) {
5311 ndr_print_string(ndr, "config_file", r->config_file);
5314 ndr_print_ptr(ndr, "help_file", r->help_file);
5317 ndr_print_string(ndr, "help_file", r->help_file);
5320 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5322 if (r->monitor_name) {
5323 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5326 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5328 if (r->default_datatype) {
5329 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5332 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);
5333 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5335 if (r->dependent_files) {
5336 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5342 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
5344 if (ndr_flags & NDR_SCALARS) {
5345 NDR_CHECK(ndr_push_align(ndr, 4));
5346 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5360 if (ndr_flags & NDR_BUFFERS) {
5361 if (r->driver_name) {
5362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5365 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5367 if (r->architecture) {
5368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5371 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5373 if (r->driver_path) {
5374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5385 if (r->config_file) {
5386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5397 if (r->monitor_name) {
5398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5403 if (r->default_datatype) {
5404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5409 if (r->dependent_files) {
5410 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5412 if (r->previous_names) {
5413 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5416 return NDR_ERR_SUCCESS;
5419 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
5421 uint32_t _ptr_driver_name;
5422 TALLOC_CTX *_mem_save_driver_name_0;
5423 uint32_t _ptr_architecture;
5424 TALLOC_CTX *_mem_save_architecture_0;
5425 uint32_t _ptr_driver_path;
5426 TALLOC_CTX *_mem_save_driver_path_0;
5427 uint32_t _ptr_data_file;
5428 TALLOC_CTX *_mem_save_data_file_0;
5429 uint32_t _ptr_config_file;
5430 TALLOC_CTX *_mem_save_config_file_0;
5431 uint32_t _ptr_help_file;
5432 TALLOC_CTX *_mem_save_help_file_0;
5433 uint32_t _ptr_monitor_name;
5434 TALLOC_CTX *_mem_save_monitor_name_0;
5435 uint32_t _ptr_default_datatype;
5436 TALLOC_CTX *_mem_save_default_datatype_0;
5437 uint32_t _ptr_dependent_files;
5438 TALLOC_CTX *_mem_save_dependent_files_0;
5439 uint32_t _ptr_previous_names;
5440 TALLOC_CTX *_mem_save_previous_names_0;
5441 if (ndr_flags & NDR_SCALARS) {
5442 NDR_CHECK(ndr_pull_align(ndr, 4));
5443 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5445 if (_ptr_driver_name) {
5446 NDR_PULL_ALLOC(ndr, r->driver_name);
5448 r->driver_name = NULL;
5450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5451 if (_ptr_architecture) {
5452 NDR_PULL_ALLOC(ndr, r->architecture);
5454 r->architecture = NULL;
5456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5457 if (_ptr_driver_path) {
5458 NDR_PULL_ALLOC(ndr, r->driver_path);
5460 r->driver_path = NULL;
5462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5463 if (_ptr_data_file) {
5464 NDR_PULL_ALLOC(ndr, r->data_file);
5466 r->data_file = NULL;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5469 if (_ptr_config_file) {
5470 NDR_PULL_ALLOC(ndr, r->config_file);
5472 r->config_file = NULL;
5474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5475 if (_ptr_help_file) {
5476 NDR_PULL_ALLOC(ndr, r->help_file);
5478 r->help_file = NULL;
5480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5481 if (_ptr_monitor_name) {
5482 NDR_PULL_ALLOC(ndr, r->monitor_name);
5484 r->monitor_name = NULL;
5486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5487 if (_ptr_default_datatype) {
5488 NDR_PULL_ALLOC(ndr, r->default_datatype);
5490 r->default_datatype = NULL;
5492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5494 if (_ptr_dependent_files) {
5495 NDR_PULL_ALLOC(ndr, r->dependent_files);
5497 r->dependent_files = NULL;
5499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5500 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5501 if (_ptr_previous_names) {
5502 NDR_PULL_ALLOC(ndr, r->previous_names);
5504 r->previous_names = NULL;
5507 if (ndr_flags & NDR_BUFFERS) {
5508 if (r->driver_name) {
5509 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5510 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5511 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5512 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5513 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5514 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));
5516 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5517 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5520 if (r->architecture) {
5521 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5522 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5523 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5524 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5525 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5526 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));
5528 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5529 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5532 if (r->driver_path) {
5533 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5534 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5535 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5536 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5537 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5538 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));
5540 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5541 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5545 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5546 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5547 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5548 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5549 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5550 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));
5552 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5553 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5556 if (r->config_file) {
5557 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5558 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5559 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5560 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5561 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5562 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));
5564 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5565 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5569 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5570 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5571 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5572 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5573 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5574 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));
5576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5580 if (r->monitor_name) {
5581 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5582 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5583 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5584 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5585 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5586 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));
5588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5592 if (r->default_datatype) {
5593 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5594 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5595 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5596 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5597 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5598 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));
5600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5604 if (r->dependent_files) {
5605 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5606 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5607 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5610 if (r->previous_names) {
5611 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5612 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
5613 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
5617 return NDR_ERR_SUCCESS;
5620 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
5622 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
5624 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5625 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5627 if (r->driver_name) {
5628 ndr_print_string(ndr, "driver_name", r->driver_name);
5631 ndr_print_ptr(ndr, "architecture", r->architecture);
5633 if (r->architecture) {
5634 ndr_print_string(ndr, "architecture", r->architecture);
5637 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5639 if (r->driver_path) {
5640 ndr_print_string(ndr, "driver_path", r->driver_path);
5643 ndr_print_ptr(ndr, "data_file", r->data_file);
5646 ndr_print_string(ndr, "data_file", r->data_file);
5649 ndr_print_ptr(ndr, "config_file", r->config_file);
5651 if (r->config_file) {
5652 ndr_print_string(ndr, "config_file", r->config_file);
5655 ndr_print_ptr(ndr, "help_file", r->help_file);
5658 ndr_print_string(ndr, "help_file", r->help_file);
5661 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5663 if (r->monitor_name) {
5664 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5667 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5669 if (r->default_datatype) {
5670 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5673 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);
5674 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5676 if (r->dependent_files) {
5677 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5680 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);
5681 ndr_print_ptr(ndr, "previous_names", r->previous_names);
5683 if (r->previous_names) {
5684 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
5690 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
5692 if (ndr_flags & NDR_SCALARS) {
5693 NDR_CHECK(ndr_push_align(ndr, 8));
5694 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5695 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5699 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5701 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5707 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
5708 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
5709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
5710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
5711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
5712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
5714 if (ndr_flags & NDR_BUFFERS) {
5715 if (r->driver_name) {
5716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5721 if (r->architecture) {
5722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5727 if (r->driver_path) {
5728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5737 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5739 if (r->config_file) {
5740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5749 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5751 if (r->monitor_name) {
5752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5757 if (r->default_datatype) {
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5763 if (r->dependent_files) {
5764 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5766 if (r->previous_names) {
5767 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5769 if (r->manufacturer_name) {
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5775 if (r->manufacturer_url) {
5776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5781 if (r->hardware_id) {
5782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5794 return NDR_ERR_SUCCESS;
5797 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
5799 uint32_t _ptr_driver_name;
5800 TALLOC_CTX *_mem_save_driver_name_0;
5801 uint32_t _ptr_architecture;
5802 TALLOC_CTX *_mem_save_architecture_0;
5803 uint32_t _ptr_driver_path;
5804 TALLOC_CTX *_mem_save_driver_path_0;
5805 uint32_t _ptr_data_file;
5806 TALLOC_CTX *_mem_save_data_file_0;
5807 uint32_t _ptr_config_file;
5808 TALLOC_CTX *_mem_save_config_file_0;
5809 uint32_t _ptr_help_file;
5810 TALLOC_CTX *_mem_save_help_file_0;
5811 uint32_t _ptr_monitor_name;
5812 TALLOC_CTX *_mem_save_monitor_name_0;
5813 uint32_t _ptr_default_datatype;
5814 TALLOC_CTX *_mem_save_default_datatype_0;
5815 uint32_t _ptr_dependent_files;
5816 TALLOC_CTX *_mem_save_dependent_files_0;
5817 uint32_t _ptr_previous_names;
5818 TALLOC_CTX *_mem_save_previous_names_0;
5819 uint32_t _ptr_manufacturer_name;
5820 TALLOC_CTX *_mem_save_manufacturer_name_0;
5821 uint32_t _ptr_manufacturer_url;
5822 TALLOC_CTX *_mem_save_manufacturer_url_0;
5823 uint32_t _ptr_hardware_id;
5824 TALLOC_CTX *_mem_save_hardware_id_0;
5825 uint32_t _ptr_provider;
5826 TALLOC_CTX *_mem_save_provider_0;
5827 if (ndr_flags & NDR_SCALARS) {
5828 NDR_CHECK(ndr_pull_align(ndr, 8));
5829 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5831 if (_ptr_driver_name) {
5832 NDR_PULL_ALLOC(ndr, r->driver_name);
5834 r->driver_name = NULL;
5836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5837 if (_ptr_architecture) {
5838 NDR_PULL_ALLOC(ndr, r->architecture);
5840 r->architecture = NULL;
5842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5843 if (_ptr_driver_path) {
5844 NDR_PULL_ALLOC(ndr, r->driver_path);
5846 r->driver_path = NULL;
5848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5849 if (_ptr_data_file) {
5850 NDR_PULL_ALLOC(ndr, r->data_file);
5852 r->data_file = NULL;
5854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5855 if (_ptr_config_file) {
5856 NDR_PULL_ALLOC(ndr, r->config_file);
5858 r->config_file = NULL;
5860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5861 if (_ptr_help_file) {
5862 NDR_PULL_ALLOC(ndr, r->help_file);
5864 r->help_file = NULL;
5866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5867 if (_ptr_monitor_name) {
5868 NDR_PULL_ALLOC(ndr, r->monitor_name);
5870 r->monitor_name = NULL;
5872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5873 if (_ptr_default_datatype) {
5874 NDR_PULL_ALLOC(ndr, r->default_datatype);
5876 r->default_datatype = NULL;
5878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5880 if (_ptr_dependent_files) {
5881 NDR_PULL_ALLOC(ndr, r->dependent_files);
5883 r->dependent_files = NULL;
5885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5887 if (_ptr_previous_names) {
5888 NDR_PULL_ALLOC(ndr, r->previous_names);
5890 r->previous_names = NULL;
5892 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
5893 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
5894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
5895 if (_ptr_manufacturer_name) {
5896 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
5898 r->manufacturer_name = NULL;
5900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
5901 if (_ptr_manufacturer_url) {
5902 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
5904 r->manufacturer_url = NULL;
5906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
5907 if (_ptr_hardware_id) {
5908 NDR_PULL_ALLOC(ndr, r->hardware_id);
5910 r->hardware_id = NULL;
5912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
5913 if (_ptr_provider) {
5914 NDR_PULL_ALLOC(ndr, r->provider);
5919 if (ndr_flags & NDR_BUFFERS) {
5920 if (r->driver_name) {
5921 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5922 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5923 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5924 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5925 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5926 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));
5928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5932 if (r->architecture) {
5933 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5934 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5935 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5936 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5937 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5938 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));
5940 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5941 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5944 if (r->driver_path) {
5945 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5946 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5947 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5948 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5949 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5950 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));
5952 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5953 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5957 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5958 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5959 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5960 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5961 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5962 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));
5964 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5968 if (r->config_file) {
5969 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5970 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5971 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5972 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5973 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5974 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));
5976 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5977 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5981 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5982 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5983 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5984 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5985 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5986 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));
5988 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5989 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5992 if (r->monitor_name) {
5993 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5994 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5995 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5996 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5997 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5998 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));
6000 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6001 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6004 if (r->default_datatype) {
6005 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6006 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6007 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6008 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6009 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6010 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));
6012 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6013 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6016 if (r->dependent_files) {
6017 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6018 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6019 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6022 if (r->previous_names) {
6023 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6024 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6025 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6028 if (r->manufacturer_name) {
6029 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6030 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6031 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6032 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6033 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6034 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));
6036 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6040 if (r->manufacturer_url) {
6041 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6042 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6043 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6044 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6045 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6046 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));
6048 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6049 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6052 if (r->hardware_id) {
6053 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6054 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6055 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6056 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6057 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6058 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));
6060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6065 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6066 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6067 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6068 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6069 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6070 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));
6072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6077 return NDR_ERR_SUCCESS;
6080 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
6082 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
6084 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6085 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6087 if (r->driver_name) {
6088 ndr_print_string(ndr, "driver_name", r->driver_name);
6091 ndr_print_ptr(ndr, "architecture", r->architecture);
6093 if (r->architecture) {
6094 ndr_print_string(ndr, "architecture", r->architecture);
6097 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6099 if (r->driver_path) {
6100 ndr_print_string(ndr, "driver_path", r->driver_path);
6103 ndr_print_ptr(ndr, "data_file", r->data_file);
6106 ndr_print_string(ndr, "data_file", r->data_file);
6109 ndr_print_ptr(ndr, "config_file", r->config_file);
6111 if (r->config_file) {
6112 ndr_print_string(ndr, "config_file", r->config_file);
6115 ndr_print_ptr(ndr, "help_file", r->help_file);
6118 ndr_print_string(ndr, "help_file", r->help_file);
6121 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6123 if (r->monitor_name) {
6124 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6127 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6129 if (r->default_datatype) {
6130 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6133 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);
6134 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6136 if (r->dependent_files) {
6137 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6140 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);
6141 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6143 if (r->previous_names) {
6144 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6147 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6148 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6149 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6151 if (r->manufacturer_name) {
6152 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6155 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6157 if (r->manufacturer_url) {
6158 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6161 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6163 if (r->hardware_id) {
6164 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6167 ndr_print_ptr(ndr, "provider", r->provider);
6170 ndr_print_string(ndr, "provider", r->provider);
6176 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
6178 if (ndr_flags & NDR_SCALARS) {
6179 NDR_CHECK(ndr_push_align(ndr, 8));
6180 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
6181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
6183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
6184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
6185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
6186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
6187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
6188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
6189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
6191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
6193 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
6194 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
6195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
6196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
6197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
6198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
6199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
6201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
6203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
6204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
6205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
6207 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
6208 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
6210 if (ndr_flags & NDR_BUFFERS) {
6211 if (r->driver_name) {
6212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6215 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6217 if (r->architecture) {
6218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6223 if (r->driver_path) {
6224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6233 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6235 if (r->config_file) {
6236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6239 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6245 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6247 if (r->monitor_name) {
6248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6253 if (r->default_datatype) {
6254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6259 if (r->dependent_files) {
6260 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6262 if (r->previous_names) {
6263 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6265 if (r->manufacturer_name) {
6266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6271 if (r->manufacturer_url) {
6272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6277 if (r->hardware_id) {
6278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6281 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6289 if (r->print_processor) {
6290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6293 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6295 if (r->vendor_setup) {
6296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6301 if (r->color_profiles) {
6302 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6308 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6310 if (r->core_driver_dependencies) {
6311 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6314 return NDR_ERR_SUCCESS;
6317 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
6319 uint32_t _ptr_driver_name;
6320 TALLOC_CTX *_mem_save_driver_name_0;
6321 uint32_t _ptr_architecture;
6322 TALLOC_CTX *_mem_save_architecture_0;
6323 uint32_t _ptr_driver_path;
6324 TALLOC_CTX *_mem_save_driver_path_0;
6325 uint32_t _ptr_data_file;
6326 TALLOC_CTX *_mem_save_data_file_0;
6327 uint32_t _ptr_config_file;
6328 TALLOC_CTX *_mem_save_config_file_0;
6329 uint32_t _ptr_help_file;
6330 TALLOC_CTX *_mem_save_help_file_0;
6331 uint32_t _ptr_monitor_name;
6332 TALLOC_CTX *_mem_save_monitor_name_0;
6333 uint32_t _ptr_default_datatype;
6334 TALLOC_CTX *_mem_save_default_datatype_0;
6335 uint32_t _ptr_dependent_files;
6336 TALLOC_CTX *_mem_save_dependent_files_0;
6337 uint32_t _ptr_previous_names;
6338 TALLOC_CTX *_mem_save_previous_names_0;
6339 uint32_t _ptr_manufacturer_name;
6340 TALLOC_CTX *_mem_save_manufacturer_name_0;
6341 uint32_t _ptr_manufacturer_url;
6342 TALLOC_CTX *_mem_save_manufacturer_url_0;
6343 uint32_t _ptr_hardware_id;
6344 TALLOC_CTX *_mem_save_hardware_id_0;
6345 uint32_t _ptr_provider;
6346 TALLOC_CTX *_mem_save_provider_0;
6347 uint32_t _ptr_print_processor;
6348 TALLOC_CTX *_mem_save_print_processor_0;
6349 uint32_t _ptr_vendor_setup;
6350 TALLOC_CTX *_mem_save_vendor_setup_0;
6351 uint32_t _ptr_color_profiles;
6352 TALLOC_CTX *_mem_save_color_profiles_0;
6353 uint32_t _ptr_inf_path;
6354 TALLOC_CTX *_mem_save_inf_path_0;
6355 uint32_t _ptr_core_driver_dependencies;
6356 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
6357 if (ndr_flags & NDR_SCALARS) {
6358 NDR_CHECK(ndr_pull_align(ndr, 8));
6359 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
6360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6361 if (_ptr_driver_name) {
6362 NDR_PULL_ALLOC(ndr, r->driver_name);
6364 r->driver_name = NULL;
6366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
6367 if (_ptr_architecture) {
6368 NDR_PULL_ALLOC(ndr, r->architecture);
6370 r->architecture = NULL;
6372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
6373 if (_ptr_driver_path) {
6374 NDR_PULL_ALLOC(ndr, r->driver_path);
6376 r->driver_path = NULL;
6378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
6379 if (_ptr_data_file) {
6380 NDR_PULL_ALLOC(ndr, r->data_file);
6382 r->data_file = NULL;
6384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
6385 if (_ptr_config_file) {
6386 NDR_PULL_ALLOC(ndr, r->config_file);
6388 r->config_file = NULL;
6390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
6391 if (_ptr_help_file) {
6392 NDR_PULL_ALLOC(ndr, r->help_file);
6394 r->help_file = NULL;
6396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
6397 if (_ptr_monitor_name) {
6398 NDR_PULL_ALLOC(ndr, r->monitor_name);
6400 r->monitor_name = NULL;
6402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
6403 if (_ptr_default_datatype) {
6404 NDR_PULL_ALLOC(ndr, r->default_datatype);
6406 r->default_datatype = NULL;
6408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
6409 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
6410 if (_ptr_dependent_files) {
6411 NDR_PULL_ALLOC(ndr, r->dependent_files);
6413 r->dependent_files = NULL;
6415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
6416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
6417 if (_ptr_previous_names) {
6418 NDR_PULL_ALLOC(ndr, r->previous_names);
6420 r->previous_names = NULL;
6422 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
6423 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
6424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
6425 if (_ptr_manufacturer_name) {
6426 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
6428 r->manufacturer_name = NULL;
6430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
6431 if (_ptr_manufacturer_url) {
6432 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
6434 r->manufacturer_url = NULL;
6436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
6437 if (_ptr_hardware_id) {
6438 NDR_PULL_ALLOC(ndr, r->hardware_id);
6440 r->hardware_id = NULL;
6442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
6443 if (_ptr_provider) {
6444 NDR_PULL_ALLOC(ndr, r->provider);
6448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6449 if (_ptr_print_processor) {
6450 NDR_PULL_ALLOC(ndr, r->print_processor);
6452 r->print_processor = NULL;
6454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
6455 if (_ptr_vendor_setup) {
6456 NDR_PULL_ALLOC(ndr, r->vendor_setup);
6458 r->vendor_setup = NULL;
6460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
6461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
6462 if (_ptr_color_profiles) {
6463 NDR_PULL_ALLOC(ndr, r->color_profiles);
6465 r->color_profiles = NULL;
6467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
6468 if (_ptr_inf_path) {
6469 NDR_PULL_ALLOC(ndr, r->inf_path);
6473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
6474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
6475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
6476 if (_ptr_core_driver_dependencies) {
6477 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
6479 r->core_driver_dependencies = NULL;
6481 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
6482 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
6484 if (ndr_flags & NDR_BUFFERS) {
6485 if (r->driver_name) {
6486 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6487 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6488 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6489 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6490 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6491 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));
6493 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6494 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6497 if (r->architecture) {
6498 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
6499 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
6500 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
6501 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
6502 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
6503 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));
6505 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
6506 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
6507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
6509 if (r->driver_path) {
6510 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6511 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
6512 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
6513 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
6514 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
6515 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));
6517 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
6518 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
6519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
6522 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6523 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
6524 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
6525 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
6526 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
6527 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));
6529 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
6530 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
6531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
6533 if (r->config_file) {
6534 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6535 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
6536 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
6537 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
6538 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
6539 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));
6541 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
6542 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
6543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
6546 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6547 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
6548 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
6549 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
6550 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
6551 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));
6553 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
6554 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
6555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
6557 if (r->monitor_name) {
6558 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6559 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
6560 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
6561 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
6562 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
6563 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));
6565 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6566 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6569 if (r->default_datatype) {
6570 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6571 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6572 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6573 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6574 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6575 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));
6577 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6578 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6581 if (r->dependent_files) {
6582 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6583 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6584 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6587 if (r->previous_names) {
6588 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6589 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6590 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6593 if (r->manufacturer_name) {
6594 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6595 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6596 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6597 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6598 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6599 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));
6601 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6602 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6605 if (r->manufacturer_url) {
6606 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6607 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6608 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6609 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6610 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6611 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));
6613 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6614 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6617 if (r->hardware_id) {
6618 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6619 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6620 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6621 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6622 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6623 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));
6625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6630 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6631 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6632 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6633 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6634 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6635 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));
6637 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6641 if (r->print_processor) {
6642 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6643 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6644 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6645 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6646 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6647 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));
6649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6653 if (r->vendor_setup) {
6654 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
6655 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
6656 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
6657 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
6658 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
6659 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));
6661 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
6662 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
6663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
6665 if (r->color_profiles) {
6666 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
6667 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
6668 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
6672 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6673 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
6674 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
6675 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
6676 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
6677 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));
6679 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
6680 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
6681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
6683 if (r->core_driver_dependencies) {
6684 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
6685 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
6686 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
6690 return NDR_ERR_SUCCESS;
6693 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
6695 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
6697 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6698 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6700 if (r->driver_name) {
6701 ndr_print_string(ndr, "driver_name", r->driver_name);
6704 ndr_print_ptr(ndr, "architecture", r->architecture);
6706 if (r->architecture) {
6707 ndr_print_string(ndr, "architecture", r->architecture);
6710 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6712 if (r->driver_path) {
6713 ndr_print_string(ndr, "driver_path", r->driver_path);
6716 ndr_print_ptr(ndr, "data_file", r->data_file);
6719 ndr_print_string(ndr, "data_file", r->data_file);
6722 ndr_print_ptr(ndr, "config_file", r->config_file);
6724 if (r->config_file) {
6725 ndr_print_string(ndr, "config_file", r->config_file);
6728 ndr_print_ptr(ndr, "help_file", r->help_file);
6731 ndr_print_string(ndr, "help_file", r->help_file);
6734 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6736 if (r->monitor_name) {
6737 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6740 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6742 if (r->default_datatype) {
6743 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6746 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);
6747 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6749 if (r->dependent_files) {
6750 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6753 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);
6754 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6756 if (r->previous_names) {
6757 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6760 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6761 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6762 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6764 if (r->manufacturer_name) {
6765 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6768 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6770 if (r->manufacturer_url) {
6771 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6774 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6776 if (r->hardware_id) {
6777 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6780 ndr_print_ptr(ndr, "provider", r->provider);
6783 ndr_print_string(ndr, "provider", r->provider);
6786 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6788 if (r->print_processor) {
6789 ndr_print_string(ndr, "print_processor", r->print_processor);
6792 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
6794 if (r->vendor_setup) {
6795 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
6798 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);
6799 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
6801 if (r->color_profiles) {
6802 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
6805 ndr_print_ptr(ndr, "inf_path", r->inf_path);
6808 ndr_print_string(ndr, "inf_path", r->inf_path);
6811 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
6812 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);
6813 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6815 if (r->core_driver_dependencies) {
6816 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6819 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
6820 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
6824 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
6826 if (ndr_flags & NDR_SCALARS) {
6827 int level = ndr_push_get_switch_value(ndr, r);
6828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6843 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6847 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6851 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6855 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6858 if (ndr_flags & NDR_BUFFERS) {
6859 int level = ndr_push_get_switch_value(ndr, r);
6863 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6869 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6875 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6881 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6887 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
6893 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6898 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6901 return NDR_ERR_SUCCESS;
6904 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
6908 TALLOC_CTX *_mem_save_info1_0;
6909 TALLOC_CTX *_mem_save_info2_0;
6910 TALLOC_CTX *_mem_save_info3_0;
6911 TALLOC_CTX *_mem_save_info4_0;
6912 TALLOC_CTX *_mem_save_info6_0;
6913 TALLOC_CTX *_mem_save_info8_0;
6914 level = ndr_pull_get_switch_value(ndr, r);
6915 if (ndr_flags & NDR_SCALARS) {
6916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6917 if (_level != level) {
6918 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6922 uint32_t _ptr_info1;
6923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6925 NDR_PULL_ALLOC(ndr, r->info1);
6932 uint32_t _ptr_info2;
6933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6935 NDR_PULL_ALLOC(ndr, r->info2);
6942 uint32_t _ptr_info3;
6943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6945 NDR_PULL_ALLOC(ndr, r->info3);
6952 uint32_t _ptr_info4;
6953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6955 NDR_PULL_ALLOC(ndr, r->info4);
6962 uint32_t _ptr_info6;
6963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
6965 NDR_PULL_ALLOC(ndr, r->info6);
6972 uint32_t _ptr_info8;
6973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
6975 NDR_PULL_ALLOC(ndr, r->info8);
6982 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6985 if (ndr_flags & NDR_BUFFERS) {
6989 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6990 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6991 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6998 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6999 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7000 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7007 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7008 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7009 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
7010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7016 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7017 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7018 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7025 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7026 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7027 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
7028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7034 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7035 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7036 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7042 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7045 return NDR_ERR_SUCCESS;
7048 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
7051 level = ndr_print_get_switch_value(ndr, r);
7052 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
7055 ndr_print_ptr(ndr, "info1", r->info1);
7058 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
7064 ndr_print_ptr(ndr, "info2", r->info2);
7067 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
7073 ndr_print_ptr(ndr, "info3", r->info3);
7076 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
7082 ndr_print_ptr(ndr, "info4", r->info4);
7085 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
7091 ndr_print_ptr(ndr, "info6", r->info6);
7094 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
7100 ndr_print_ptr(ndr, "info8", r->info8);
7103 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
7109 ndr_print_bad_level(ndr, name, level);
7113 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
7115 if (ndr_flags & NDR_SCALARS) {
7116 NDR_CHECK(ndr_push_align(ndr, 4));
7117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7118 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7119 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7121 if (ndr_flags & NDR_BUFFERS) {
7122 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7124 return NDR_ERR_SUCCESS;
7127 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
7129 if (ndr_flags & NDR_SCALARS) {
7130 NDR_CHECK(ndr_pull_align(ndr, 4));
7131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7132 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7133 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7135 if (ndr_flags & NDR_BUFFERS) {
7136 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7138 return NDR_ERR_SUCCESS;
7141 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
7143 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
7145 ndr_print_uint32(ndr, "level", r->level);
7146 ndr_print_set_switch_value(ndr, &r->info, r->level);
7147 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
7151 static enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
7153 if (ndr_flags & NDR_SCALARS) {
7154 NDR_CHECK(ndr_push_align(ndr, 4));
7156 uint32_t _flags_save_string = ndr->flags;
7157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7158 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7159 ndr->flags = _flags_save_string;
7162 if (ndr_flags & NDR_BUFFERS) {
7164 uint32_t _flags_save_string = ndr->flags;
7165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7166 if (r->driver_name) {
7167 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7168 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7170 ndr->flags = _flags_save_string;
7173 return NDR_ERR_SUCCESS;
7176 static enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
7178 uint32_t _ptr_driver_name;
7179 TALLOC_CTX *_mem_save_driver_name_0;
7180 if (ndr_flags & NDR_SCALARS) {
7181 NDR_CHECK(ndr_pull_align(ndr, 4));
7183 uint32_t _flags_save_string = ndr->flags;
7184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7186 if (_ptr_driver_name) {
7187 NDR_PULL_ALLOC(ndr, r->driver_name);
7188 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7190 r->driver_name = NULL;
7192 ndr->flags = _flags_save_string;
7195 if (ndr_flags & NDR_BUFFERS) {
7197 uint32_t _flags_save_string = ndr->flags;
7198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7199 if (r->driver_name) {
7200 uint32_t _relative_save_offset;
7201 _relative_save_offset = ndr->offset;
7202 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7203 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7204 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7205 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7207 ndr->offset = _relative_save_offset;
7209 ndr->flags = _flags_save_string;
7212 return NDR_ERR_SUCCESS;
7215 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
7217 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
7219 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7221 if (r->driver_name) {
7222 ndr_print_string(ndr, "driver_name", r->driver_name);
7228 static enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
7230 if (ndr_flags & NDR_SCALARS) {
7231 NDR_CHECK(ndr_push_align(ndr, 4));
7232 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7234 uint32_t _flags_save_string = ndr->flags;
7235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7236 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7237 ndr->flags = _flags_save_string;
7240 uint32_t _flags_save_string = ndr->flags;
7241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7242 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7243 ndr->flags = _flags_save_string;
7246 uint32_t _flags_save_string = ndr->flags;
7247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7248 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7249 ndr->flags = _flags_save_string;
7252 uint32_t _flags_save_string = ndr->flags;
7253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7254 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7255 ndr->flags = _flags_save_string;
7258 uint32_t _flags_save_string = ndr->flags;
7259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7260 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7261 ndr->flags = _flags_save_string;
7264 if (ndr_flags & NDR_BUFFERS) {
7266 uint32_t _flags_save_string = ndr->flags;
7267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7268 if (r->driver_name) {
7269 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7270 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7272 ndr->flags = _flags_save_string;
7275 uint32_t _flags_save_string = ndr->flags;
7276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7277 if (r->architecture) {
7278 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7279 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7281 ndr->flags = _flags_save_string;
7284 uint32_t _flags_save_string = ndr->flags;
7285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7286 if (r->driver_path) {
7287 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7288 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7290 ndr->flags = _flags_save_string;
7293 uint32_t _flags_save_string = ndr->flags;
7294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7296 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7297 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7299 ndr->flags = _flags_save_string;
7302 uint32_t _flags_save_string = ndr->flags;
7303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7304 if (r->config_file) {
7305 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7306 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7308 ndr->flags = _flags_save_string;
7311 return NDR_ERR_SUCCESS;
7314 static enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
7316 uint32_t _ptr_driver_name;
7317 TALLOC_CTX *_mem_save_driver_name_0;
7318 uint32_t _ptr_architecture;
7319 TALLOC_CTX *_mem_save_architecture_0;
7320 uint32_t _ptr_driver_path;
7321 TALLOC_CTX *_mem_save_driver_path_0;
7322 uint32_t _ptr_data_file;
7323 TALLOC_CTX *_mem_save_data_file_0;
7324 uint32_t _ptr_config_file;
7325 TALLOC_CTX *_mem_save_config_file_0;
7326 if (ndr_flags & NDR_SCALARS) {
7327 NDR_CHECK(ndr_pull_align(ndr, 4));
7328 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7330 uint32_t _flags_save_string = ndr->flags;
7331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7333 if (_ptr_driver_name) {
7334 NDR_PULL_ALLOC(ndr, r->driver_name);
7335 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7337 r->driver_name = NULL;
7339 ndr->flags = _flags_save_string;
7342 uint32_t _flags_save_string = ndr->flags;
7343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7345 if (_ptr_architecture) {
7346 NDR_PULL_ALLOC(ndr, r->architecture);
7347 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7349 r->architecture = NULL;
7351 ndr->flags = _flags_save_string;
7354 uint32_t _flags_save_string = ndr->flags;
7355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7357 if (_ptr_driver_path) {
7358 NDR_PULL_ALLOC(ndr, r->driver_path);
7359 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7361 r->driver_path = NULL;
7363 ndr->flags = _flags_save_string;
7366 uint32_t _flags_save_string = ndr->flags;
7367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7369 if (_ptr_data_file) {
7370 NDR_PULL_ALLOC(ndr, r->data_file);
7371 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7373 r->data_file = NULL;
7375 ndr->flags = _flags_save_string;
7378 uint32_t _flags_save_string = ndr->flags;
7379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7380 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7381 if (_ptr_config_file) {
7382 NDR_PULL_ALLOC(ndr, r->config_file);
7383 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7385 r->config_file = NULL;
7387 ndr->flags = _flags_save_string;
7390 if (ndr_flags & NDR_BUFFERS) {
7392 uint32_t _flags_save_string = ndr->flags;
7393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7394 if (r->driver_name) {
7395 uint32_t _relative_save_offset;
7396 _relative_save_offset = ndr->offset;
7397 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7398 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7399 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7400 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7402 ndr->offset = _relative_save_offset;
7404 ndr->flags = _flags_save_string;
7407 uint32_t _flags_save_string = ndr->flags;
7408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7409 if (r->architecture) {
7410 uint32_t _relative_save_offset;
7411 _relative_save_offset = ndr->offset;
7412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7413 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7414 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7417 ndr->offset = _relative_save_offset;
7419 ndr->flags = _flags_save_string;
7422 uint32_t _flags_save_string = ndr->flags;
7423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7424 if (r->driver_path) {
7425 uint32_t _relative_save_offset;
7426 _relative_save_offset = ndr->offset;
7427 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7428 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7429 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7430 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7432 ndr->offset = _relative_save_offset;
7434 ndr->flags = _flags_save_string;
7437 uint32_t _flags_save_string = ndr->flags;
7438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7440 uint32_t _relative_save_offset;
7441 _relative_save_offset = ndr->offset;
7442 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7443 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7444 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7445 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7447 ndr->offset = _relative_save_offset;
7449 ndr->flags = _flags_save_string;
7452 uint32_t _flags_save_string = ndr->flags;
7453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7454 if (r->config_file) {
7455 uint32_t _relative_save_offset;
7456 _relative_save_offset = ndr->offset;
7457 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7458 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7459 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7460 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7462 ndr->offset = _relative_save_offset;
7464 ndr->flags = _flags_save_string;
7467 return NDR_ERR_SUCCESS;
7470 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
7472 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
7474 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7475 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7477 if (r->driver_name) {
7478 ndr_print_string(ndr, "driver_name", r->driver_name);
7481 ndr_print_ptr(ndr, "architecture", r->architecture);
7483 if (r->architecture) {
7484 ndr_print_string(ndr, "architecture", r->architecture);
7487 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7489 if (r->driver_path) {
7490 ndr_print_string(ndr, "driver_path", r->driver_path);
7493 ndr_print_ptr(ndr, "data_file", r->data_file);
7496 ndr_print_string(ndr, "data_file", r->data_file);
7499 ndr_print_ptr(ndr, "config_file", r->config_file);
7501 if (r->config_file) {
7502 ndr_print_string(ndr, "config_file", r->config_file);
7508 static enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
7510 if (ndr_flags & NDR_SCALARS) {
7511 NDR_CHECK(ndr_push_align(ndr, 4));
7512 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7514 uint32_t _flags_save_string = ndr->flags;
7515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7517 ndr->flags = _flags_save_string;
7520 uint32_t _flags_save_string = ndr->flags;
7521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7522 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7523 ndr->flags = _flags_save_string;
7526 uint32_t _flags_save_string = ndr->flags;
7527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7529 ndr->flags = _flags_save_string;
7532 uint32_t _flags_save_string = ndr->flags;
7533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7534 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7535 ndr->flags = _flags_save_string;
7538 uint32_t _flags_save_string = ndr->flags;
7539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7540 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7541 ndr->flags = _flags_save_string;
7544 uint32_t _flags_save_string = ndr->flags;
7545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7546 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
7547 ndr->flags = _flags_save_string;
7550 uint32_t _flags_save_string_array = ndr->flags;
7551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7552 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
7553 ndr->flags = _flags_save_string_array;
7556 uint32_t _flags_save_string = ndr->flags;
7557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7558 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7559 ndr->flags = _flags_save_string;
7562 uint32_t _flags_save_string = ndr->flags;
7563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7564 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
7565 ndr->flags = _flags_save_string;
7568 if (ndr_flags & NDR_BUFFERS) {
7570 uint32_t _flags_save_string = ndr->flags;
7571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7572 if (r->driver_name) {
7573 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7574 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7576 ndr->flags = _flags_save_string;
7579 uint32_t _flags_save_string = ndr->flags;
7580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7581 if (r->architecture) {
7582 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7583 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7585 ndr->flags = _flags_save_string;
7588 uint32_t _flags_save_string = ndr->flags;
7589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7590 if (r->driver_path) {
7591 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7592 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7594 ndr->flags = _flags_save_string;
7597 uint32_t _flags_save_string = ndr->flags;
7598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7600 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7601 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7603 ndr->flags = _flags_save_string;
7606 uint32_t _flags_save_string = ndr->flags;
7607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7608 if (r->config_file) {
7609 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7612 ndr->flags = _flags_save_string;
7615 uint32_t _flags_save_string = ndr->flags;
7616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7618 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
7619 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
7621 ndr->flags = _flags_save_string;
7624 uint32_t _flags_save_string_array = ndr->flags;
7625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7626 if (r->dependent_files) {
7627 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
7628 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
7630 ndr->flags = _flags_save_string_array;
7633 uint32_t _flags_save_string = ndr->flags;
7634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7635 if (r->monitor_name) {
7636 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7637 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7639 ndr->flags = _flags_save_string;
7642 uint32_t _flags_save_string = ndr->flags;
7643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7644 if (r->default_datatype) {
7645 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
7646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
7648 ndr->flags = _flags_save_string;
7651 return NDR_ERR_SUCCESS;
7654 static enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
7656 uint32_t _ptr_driver_name;
7657 TALLOC_CTX *_mem_save_driver_name_0;
7658 uint32_t _ptr_architecture;
7659 TALLOC_CTX *_mem_save_architecture_0;
7660 uint32_t _ptr_driver_path;
7661 TALLOC_CTX *_mem_save_driver_path_0;
7662 uint32_t _ptr_data_file;
7663 TALLOC_CTX *_mem_save_data_file_0;
7664 uint32_t _ptr_config_file;
7665 TALLOC_CTX *_mem_save_config_file_0;
7666 uint32_t _ptr_help_file;
7667 TALLOC_CTX *_mem_save_help_file_0;
7668 uint32_t _ptr_dependent_files;
7669 TALLOC_CTX *_mem_save_dependent_files_0;
7670 uint32_t _ptr_monitor_name;
7671 TALLOC_CTX *_mem_save_monitor_name_0;
7672 uint32_t _ptr_default_datatype;
7673 TALLOC_CTX *_mem_save_default_datatype_0;
7674 if (ndr_flags & NDR_SCALARS) {
7675 NDR_CHECK(ndr_pull_align(ndr, 4));
7676 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7678 uint32_t _flags_save_string = ndr->flags;
7679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7681 if (_ptr_driver_name) {
7682 NDR_PULL_ALLOC(ndr, r->driver_name);
7683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7685 r->driver_name = NULL;
7687 ndr->flags = _flags_save_string;
7690 uint32_t _flags_save_string = ndr->flags;
7691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7693 if (_ptr_architecture) {
7694 NDR_PULL_ALLOC(ndr, r->architecture);
7695 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7697 r->architecture = NULL;
7699 ndr->flags = _flags_save_string;
7702 uint32_t _flags_save_string = ndr->flags;
7703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7705 if (_ptr_driver_path) {
7706 NDR_PULL_ALLOC(ndr, r->driver_path);
7707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7709 r->driver_path = NULL;
7711 ndr->flags = _flags_save_string;
7714 uint32_t _flags_save_string = ndr->flags;
7715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7717 if (_ptr_data_file) {
7718 NDR_PULL_ALLOC(ndr, r->data_file);
7719 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7721 r->data_file = NULL;
7723 ndr->flags = _flags_save_string;
7726 uint32_t _flags_save_string = ndr->flags;
7727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7729 if (_ptr_config_file) {
7730 NDR_PULL_ALLOC(ndr, r->config_file);
7731 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7733 r->config_file = NULL;
7735 ndr->flags = _flags_save_string;
7738 uint32_t _flags_save_string = ndr->flags;
7739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7741 if (_ptr_help_file) {
7742 NDR_PULL_ALLOC(ndr, r->help_file);
7743 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7745 r->help_file = NULL;
7747 ndr->flags = _flags_save_string;
7750 uint32_t _flags_save_string_array = ndr->flags;
7751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7753 if (_ptr_dependent_files) {
7754 NDR_PULL_ALLOC(ndr, r->dependent_files);
7755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7757 r->dependent_files = NULL;
7759 ndr->flags = _flags_save_string_array;
7762 uint32_t _flags_save_string = ndr->flags;
7763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7765 if (_ptr_monitor_name) {
7766 NDR_PULL_ALLOC(ndr, r->monitor_name);
7767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7769 r->monitor_name = NULL;
7771 ndr->flags = _flags_save_string;
7774 uint32_t _flags_save_string = ndr->flags;
7775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7777 if (_ptr_default_datatype) {
7778 NDR_PULL_ALLOC(ndr, r->default_datatype);
7779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7781 r->default_datatype = NULL;
7783 ndr->flags = _flags_save_string;
7786 if (ndr_flags & NDR_BUFFERS) {
7788 uint32_t _flags_save_string = ndr->flags;
7789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7790 if (r->driver_name) {
7791 uint32_t _relative_save_offset;
7792 _relative_save_offset = ndr->offset;
7793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7794 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7795 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7798 ndr->offset = _relative_save_offset;
7800 ndr->flags = _flags_save_string;
7803 uint32_t _flags_save_string = ndr->flags;
7804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7805 if (r->architecture) {
7806 uint32_t _relative_save_offset;
7807 _relative_save_offset = ndr->offset;
7808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7809 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7810 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7813 ndr->offset = _relative_save_offset;
7815 ndr->flags = _flags_save_string;
7818 uint32_t _flags_save_string = ndr->flags;
7819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7820 if (r->driver_path) {
7821 uint32_t _relative_save_offset;
7822 _relative_save_offset = ndr->offset;
7823 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7824 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7825 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7826 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7828 ndr->offset = _relative_save_offset;
7830 ndr->flags = _flags_save_string;
7833 uint32_t _flags_save_string = ndr->flags;
7834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7836 uint32_t _relative_save_offset;
7837 _relative_save_offset = ndr->offset;
7838 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7839 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7840 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7841 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7843 ndr->offset = _relative_save_offset;
7845 ndr->flags = _flags_save_string;
7848 uint32_t _flags_save_string = ndr->flags;
7849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7850 if (r->config_file) {
7851 uint32_t _relative_save_offset;
7852 _relative_save_offset = ndr->offset;
7853 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7854 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7855 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7856 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7858 ndr->offset = _relative_save_offset;
7860 ndr->flags = _flags_save_string;
7863 uint32_t _flags_save_string = ndr->flags;
7864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7866 uint32_t _relative_save_offset;
7867 _relative_save_offset = ndr->offset;
7868 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7869 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7870 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7871 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7873 ndr->offset = _relative_save_offset;
7875 ndr->flags = _flags_save_string;
7878 uint32_t _flags_save_string_array = ndr->flags;
7879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7880 if (r->dependent_files) {
7881 uint32_t _relative_save_offset;
7882 _relative_save_offset = ndr->offset;
7883 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7884 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7885 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7886 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7888 ndr->offset = _relative_save_offset;
7890 ndr->flags = _flags_save_string_array;
7893 uint32_t _flags_save_string = ndr->flags;
7894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7895 if (r->monitor_name) {
7896 uint32_t _relative_save_offset;
7897 _relative_save_offset = ndr->offset;
7898 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7899 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7900 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7901 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7903 ndr->offset = _relative_save_offset;
7905 ndr->flags = _flags_save_string;
7908 uint32_t _flags_save_string = ndr->flags;
7909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7910 if (r->default_datatype) {
7911 uint32_t _relative_save_offset;
7912 _relative_save_offset = ndr->offset;
7913 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7914 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7915 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7916 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7918 ndr->offset = _relative_save_offset;
7920 ndr->flags = _flags_save_string;
7923 return NDR_ERR_SUCCESS;
7926 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
7928 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
7930 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7931 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7933 if (r->driver_name) {
7934 ndr_print_string(ndr, "driver_name", r->driver_name);
7937 ndr_print_ptr(ndr, "architecture", r->architecture);
7939 if (r->architecture) {
7940 ndr_print_string(ndr, "architecture", r->architecture);
7943 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7945 if (r->driver_path) {
7946 ndr_print_string(ndr, "driver_path", r->driver_path);
7949 ndr_print_ptr(ndr, "data_file", r->data_file);
7952 ndr_print_string(ndr, "data_file", r->data_file);
7955 ndr_print_ptr(ndr, "config_file", r->config_file);
7957 if (r->config_file) {
7958 ndr_print_string(ndr, "config_file", r->config_file);
7961 ndr_print_ptr(ndr, "help_file", r->help_file);
7964 ndr_print_string(ndr, "help_file", r->help_file);
7967 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7969 if (r->dependent_files) {
7970 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7973 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7975 if (r->monitor_name) {
7976 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7979 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7981 if (r->default_datatype) {
7982 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7988 static enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
7990 if (ndr_flags & NDR_SCALARS) {
7991 NDR_CHECK(ndr_push_align(ndr, 4));
7992 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7994 uint32_t _flags_save_string = ndr->flags;
7995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7996 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7997 ndr->flags = _flags_save_string;
8000 uint32_t _flags_save_string = ndr->flags;
8001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8002 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8003 ndr->flags = _flags_save_string;
8006 uint32_t _flags_save_string = ndr->flags;
8007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8008 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8009 ndr->flags = _flags_save_string;
8012 uint32_t _flags_save_string = ndr->flags;
8013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8014 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8015 ndr->flags = _flags_save_string;
8018 uint32_t _flags_save_string = ndr->flags;
8019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8020 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8021 ndr->flags = _flags_save_string;
8024 uint32_t _flags_save_string = ndr->flags;
8025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8027 ndr->flags = _flags_save_string;
8030 uint32_t _flags_save_string_array = ndr->flags;
8031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8033 ndr->flags = _flags_save_string_array;
8036 uint32_t _flags_save_string = ndr->flags;
8037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8039 ndr->flags = _flags_save_string;
8042 uint32_t _flags_save_string = ndr->flags;
8043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8045 ndr->flags = _flags_save_string;
8048 uint32_t _flags_save_string_array = ndr->flags;
8049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8051 ndr->flags = _flags_save_string_array;
8054 if (ndr_flags & NDR_BUFFERS) {
8056 uint32_t _flags_save_string = ndr->flags;
8057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8058 if (r->driver_name) {
8059 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8060 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8062 ndr->flags = _flags_save_string;
8065 uint32_t _flags_save_string = ndr->flags;
8066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8067 if (r->architecture) {
8068 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8069 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8071 ndr->flags = _flags_save_string;
8074 uint32_t _flags_save_string = ndr->flags;
8075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8076 if (r->driver_path) {
8077 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8078 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8080 ndr->flags = _flags_save_string;
8083 uint32_t _flags_save_string = ndr->flags;
8084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8086 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8087 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8089 ndr->flags = _flags_save_string;
8092 uint32_t _flags_save_string = ndr->flags;
8093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8094 if (r->config_file) {
8095 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8096 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8098 ndr->flags = _flags_save_string;
8101 uint32_t _flags_save_string = ndr->flags;
8102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8104 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8105 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8107 ndr->flags = _flags_save_string;
8110 uint32_t _flags_save_string_array = ndr->flags;
8111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8112 if (r->dependent_files) {
8113 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8114 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8116 ndr->flags = _flags_save_string_array;
8119 uint32_t _flags_save_string = ndr->flags;
8120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8121 if (r->monitor_name) {
8122 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8123 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8125 ndr->flags = _flags_save_string;
8128 uint32_t _flags_save_string = ndr->flags;
8129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8130 if (r->default_datatype) {
8131 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8132 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8134 ndr->flags = _flags_save_string;
8137 uint32_t _flags_save_string_array = ndr->flags;
8138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8139 if (r->previous_names) {
8140 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8141 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8143 ndr->flags = _flags_save_string_array;
8146 return NDR_ERR_SUCCESS;
8149 static enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
8151 uint32_t _ptr_driver_name;
8152 TALLOC_CTX *_mem_save_driver_name_0;
8153 uint32_t _ptr_architecture;
8154 TALLOC_CTX *_mem_save_architecture_0;
8155 uint32_t _ptr_driver_path;
8156 TALLOC_CTX *_mem_save_driver_path_0;
8157 uint32_t _ptr_data_file;
8158 TALLOC_CTX *_mem_save_data_file_0;
8159 uint32_t _ptr_config_file;
8160 TALLOC_CTX *_mem_save_config_file_0;
8161 uint32_t _ptr_help_file;
8162 TALLOC_CTX *_mem_save_help_file_0;
8163 uint32_t _ptr_dependent_files;
8164 TALLOC_CTX *_mem_save_dependent_files_0;
8165 uint32_t _ptr_monitor_name;
8166 TALLOC_CTX *_mem_save_monitor_name_0;
8167 uint32_t _ptr_default_datatype;
8168 TALLOC_CTX *_mem_save_default_datatype_0;
8169 uint32_t _ptr_previous_names;
8170 TALLOC_CTX *_mem_save_previous_names_0;
8171 if (ndr_flags & NDR_SCALARS) {
8172 NDR_CHECK(ndr_pull_align(ndr, 4));
8173 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8175 uint32_t _flags_save_string = ndr->flags;
8176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8178 if (_ptr_driver_name) {
8179 NDR_PULL_ALLOC(ndr, r->driver_name);
8180 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8182 r->driver_name = NULL;
8184 ndr->flags = _flags_save_string;
8187 uint32_t _flags_save_string = ndr->flags;
8188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8190 if (_ptr_architecture) {
8191 NDR_PULL_ALLOC(ndr, r->architecture);
8192 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8194 r->architecture = NULL;
8196 ndr->flags = _flags_save_string;
8199 uint32_t _flags_save_string = ndr->flags;
8200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8202 if (_ptr_driver_path) {
8203 NDR_PULL_ALLOC(ndr, r->driver_path);
8204 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8206 r->driver_path = NULL;
8208 ndr->flags = _flags_save_string;
8211 uint32_t _flags_save_string = ndr->flags;
8212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8214 if (_ptr_data_file) {
8215 NDR_PULL_ALLOC(ndr, r->data_file);
8216 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8218 r->data_file = NULL;
8220 ndr->flags = _flags_save_string;
8223 uint32_t _flags_save_string = ndr->flags;
8224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8226 if (_ptr_config_file) {
8227 NDR_PULL_ALLOC(ndr, r->config_file);
8228 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8230 r->config_file = NULL;
8232 ndr->flags = _flags_save_string;
8235 uint32_t _flags_save_string = ndr->flags;
8236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8238 if (_ptr_help_file) {
8239 NDR_PULL_ALLOC(ndr, r->help_file);
8240 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
8242 r->help_file = NULL;
8244 ndr->flags = _flags_save_string;
8247 uint32_t _flags_save_string_array = ndr->flags;
8248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8250 if (_ptr_dependent_files) {
8251 NDR_PULL_ALLOC(ndr, r->dependent_files);
8252 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
8254 r->dependent_files = NULL;
8256 ndr->flags = _flags_save_string_array;
8259 uint32_t _flags_save_string = ndr->flags;
8260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8262 if (_ptr_monitor_name) {
8263 NDR_PULL_ALLOC(ndr, r->monitor_name);
8264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
8266 r->monitor_name = NULL;
8268 ndr->flags = _flags_save_string;
8271 uint32_t _flags_save_string = ndr->flags;
8272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8274 if (_ptr_default_datatype) {
8275 NDR_PULL_ALLOC(ndr, r->default_datatype);
8276 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
8278 r->default_datatype = NULL;
8280 ndr->flags = _flags_save_string;
8283 uint32_t _flags_save_string_array = ndr->flags;
8284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8286 if (_ptr_previous_names) {
8287 NDR_PULL_ALLOC(ndr, r->previous_names);
8288 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
8290 r->previous_names = NULL;
8292 ndr->flags = _flags_save_string_array;
8295 if (ndr_flags & NDR_BUFFERS) {
8297 uint32_t _flags_save_string = ndr->flags;
8298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8299 if (r->driver_name) {
8300 uint32_t _relative_save_offset;
8301 _relative_save_offset = ndr->offset;
8302 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8303 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8304 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8305 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8307 ndr->offset = _relative_save_offset;
8309 ndr->flags = _flags_save_string;
8312 uint32_t _flags_save_string = ndr->flags;
8313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8314 if (r->architecture) {
8315 uint32_t _relative_save_offset;
8316 _relative_save_offset = ndr->offset;
8317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8318 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8319 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8322 ndr->offset = _relative_save_offset;
8324 ndr->flags = _flags_save_string;
8327 uint32_t _flags_save_string = ndr->flags;
8328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8329 if (r->driver_path) {
8330 uint32_t _relative_save_offset;
8331 _relative_save_offset = ndr->offset;
8332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8333 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8334 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8337 ndr->offset = _relative_save_offset;
8339 ndr->flags = _flags_save_string;
8342 uint32_t _flags_save_string = ndr->flags;
8343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8345 uint32_t _relative_save_offset;
8346 _relative_save_offset = ndr->offset;
8347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8348 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8349 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8352 ndr->offset = _relative_save_offset;
8354 ndr->flags = _flags_save_string;
8357 uint32_t _flags_save_string = ndr->flags;
8358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8359 if (r->config_file) {
8360 uint32_t _relative_save_offset;
8361 _relative_save_offset = ndr->offset;
8362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8363 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8364 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8367 ndr->offset = _relative_save_offset;
8369 ndr->flags = _flags_save_string;
8372 uint32_t _flags_save_string = ndr->flags;
8373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8375 uint32_t _relative_save_offset;
8376 _relative_save_offset = ndr->offset;
8377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
8378 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8379 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
8381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8382 ndr->offset = _relative_save_offset;
8384 ndr->flags = _flags_save_string;
8387 uint32_t _flags_save_string_array = ndr->flags;
8388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8389 if (r->dependent_files) {
8390 uint32_t _relative_save_offset;
8391 _relative_save_offset = ndr->offset;
8392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
8393 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8394 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8395 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
8396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8397 ndr->offset = _relative_save_offset;
8399 ndr->flags = _flags_save_string_array;
8402 uint32_t _flags_save_string = ndr->flags;
8403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8404 if (r->monitor_name) {
8405 uint32_t _relative_save_offset;
8406 _relative_save_offset = ndr->offset;
8407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
8408 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8409 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8410 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
8411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8412 ndr->offset = _relative_save_offset;
8414 ndr->flags = _flags_save_string;
8417 uint32_t _flags_save_string = ndr->flags;
8418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8419 if (r->default_datatype) {
8420 uint32_t _relative_save_offset;
8421 _relative_save_offset = ndr->offset;
8422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
8423 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8424 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
8426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8427 ndr->offset = _relative_save_offset;
8429 ndr->flags = _flags_save_string;
8432 uint32_t _flags_save_string_array = ndr->flags;
8433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8434 if (r->previous_names) {
8435 uint32_t _relative_save_offset;
8436 _relative_save_offset = ndr->offset;
8437 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
8438 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8439 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8440 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
8441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8442 ndr->offset = _relative_save_offset;
8444 ndr->flags = _flags_save_string_array;
8447 return NDR_ERR_SUCCESS;
8450 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
8452 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
8454 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8455 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8457 if (r->driver_name) {
8458 ndr_print_string(ndr, "driver_name", r->driver_name);
8461 ndr_print_ptr(ndr, "architecture", r->architecture);
8463 if (r->architecture) {
8464 ndr_print_string(ndr, "architecture", r->architecture);
8467 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8469 if (r->driver_path) {
8470 ndr_print_string(ndr, "driver_path", r->driver_path);
8473 ndr_print_ptr(ndr, "data_file", r->data_file);
8476 ndr_print_string(ndr, "data_file", r->data_file);
8479 ndr_print_ptr(ndr, "config_file", r->config_file);
8481 if (r->config_file) {
8482 ndr_print_string(ndr, "config_file", r->config_file);
8485 ndr_print_ptr(ndr, "help_file", r->help_file);
8488 ndr_print_string(ndr, "help_file", r->help_file);
8491 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8493 if (r->dependent_files) {
8494 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
8497 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8499 if (r->monitor_name) {
8500 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8503 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8505 if (r->default_datatype) {
8506 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8509 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8511 if (r->previous_names) {
8512 ndr_print_string_array(ndr, "previous_names", r->previous_names);
8518 static enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
8520 if (ndr_flags & NDR_SCALARS) {
8521 NDR_CHECK(ndr_push_align(ndr, 4));
8522 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8524 uint32_t _flags_save_string = ndr->flags;
8525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8527 ndr->flags = _flags_save_string;
8530 uint32_t _flags_save_string = ndr->flags;
8531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8533 ndr->flags = _flags_save_string;
8536 uint32_t _flags_save_string = ndr->flags;
8537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8539 ndr->flags = _flags_save_string;
8542 uint32_t _flags_save_string = ndr->flags;
8543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8544 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8545 ndr->flags = _flags_save_string;
8548 uint32_t _flags_save_string = ndr->flags;
8549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8551 ndr->flags = _flags_save_string;
8553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
8554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
8555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
8557 if (ndr_flags & NDR_BUFFERS) {
8559 uint32_t _flags_save_string = ndr->flags;
8560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8561 if (r->driver_name) {
8562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8565 ndr->flags = _flags_save_string;
8568 uint32_t _flags_save_string = ndr->flags;
8569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8570 if (r->architecture) {
8571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8574 ndr->flags = _flags_save_string;
8577 uint32_t _flags_save_string = ndr->flags;
8578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8579 if (r->driver_path) {
8580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8583 ndr->flags = _flags_save_string;
8586 uint32_t _flags_save_string = ndr->flags;
8587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8592 ndr->flags = _flags_save_string;
8595 uint32_t _flags_save_string = ndr->flags;
8596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8597 if (r->config_file) {
8598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8601 ndr->flags = _flags_save_string;
8604 return NDR_ERR_SUCCESS;
8607 static enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
8609 uint32_t _ptr_driver_name;
8610 TALLOC_CTX *_mem_save_driver_name_0;
8611 uint32_t _ptr_architecture;
8612 TALLOC_CTX *_mem_save_architecture_0;
8613 uint32_t _ptr_driver_path;
8614 TALLOC_CTX *_mem_save_driver_path_0;
8615 uint32_t _ptr_data_file;
8616 TALLOC_CTX *_mem_save_data_file_0;
8617 uint32_t _ptr_config_file;
8618 TALLOC_CTX *_mem_save_config_file_0;
8619 if (ndr_flags & NDR_SCALARS) {
8620 NDR_CHECK(ndr_pull_align(ndr, 4));
8621 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8623 uint32_t _flags_save_string = ndr->flags;
8624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8626 if (_ptr_driver_name) {
8627 NDR_PULL_ALLOC(ndr, r->driver_name);
8628 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8630 r->driver_name = NULL;
8632 ndr->flags = _flags_save_string;
8635 uint32_t _flags_save_string = ndr->flags;
8636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8638 if (_ptr_architecture) {
8639 NDR_PULL_ALLOC(ndr, r->architecture);
8640 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8642 r->architecture = NULL;
8644 ndr->flags = _flags_save_string;
8647 uint32_t _flags_save_string = ndr->flags;
8648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8650 if (_ptr_driver_path) {
8651 NDR_PULL_ALLOC(ndr, r->driver_path);
8652 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8654 r->driver_path = NULL;
8656 ndr->flags = _flags_save_string;
8659 uint32_t _flags_save_string = ndr->flags;
8660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8662 if (_ptr_data_file) {
8663 NDR_PULL_ALLOC(ndr, r->data_file);
8664 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8666 r->data_file = NULL;
8668 ndr->flags = _flags_save_string;
8671 uint32_t _flags_save_string = ndr->flags;
8672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8674 if (_ptr_config_file) {
8675 NDR_PULL_ALLOC(ndr, r->config_file);
8676 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8678 r->config_file = NULL;
8680 ndr->flags = _flags_save_string;
8682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
8683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
8684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
8686 if (ndr_flags & NDR_BUFFERS) {
8688 uint32_t _flags_save_string = ndr->flags;
8689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8690 if (r->driver_name) {
8691 uint32_t _relative_save_offset;
8692 _relative_save_offset = ndr->offset;
8693 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8694 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8695 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8696 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8698 ndr->offset = _relative_save_offset;
8700 ndr->flags = _flags_save_string;
8703 uint32_t _flags_save_string = ndr->flags;
8704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8705 if (r->architecture) {
8706 uint32_t _relative_save_offset;
8707 _relative_save_offset = ndr->offset;
8708 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8709 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8710 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8711 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8713 ndr->offset = _relative_save_offset;
8715 ndr->flags = _flags_save_string;
8718 uint32_t _flags_save_string = ndr->flags;
8719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8720 if (r->driver_path) {
8721 uint32_t _relative_save_offset;
8722 _relative_save_offset = ndr->offset;
8723 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8724 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8725 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8726 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8728 ndr->offset = _relative_save_offset;
8730 ndr->flags = _flags_save_string;
8733 uint32_t _flags_save_string = ndr->flags;
8734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8736 uint32_t _relative_save_offset;
8737 _relative_save_offset = ndr->offset;
8738 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8739 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8740 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8741 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8743 ndr->offset = _relative_save_offset;
8745 ndr->flags = _flags_save_string;
8748 uint32_t _flags_save_string = ndr->flags;
8749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8750 if (r->config_file) {
8751 uint32_t _relative_save_offset;
8752 _relative_save_offset = ndr->offset;
8753 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8754 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8755 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8756 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8758 ndr->offset = _relative_save_offset;
8760 ndr->flags = _flags_save_string;
8763 return NDR_ERR_SUCCESS;
8766 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
8768 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
8770 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8771 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8773 if (r->driver_name) {
8774 ndr_print_string(ndr, "driver_name", r->driver_name);
8777 ndr_print_ptr(ndr, "architecture", r->architecture);
8779 if (r->architecture) {
8780 ndr_print_string(ndr, "architecture", r->architecture);
8783 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8785 if (r->driver_path) {
8786 ndr_print_string(ndr, "driver_path", r->driver_path);
8789 ndr_print_ptr(ndr, "data_file", r->data_file);
8792 ndr_print_string(ndr, "data_file", r->data_file);
8795 ndr_print_ptr(ndr, "config_file", r->config_file);
8797 if (r->config_file) {
8798 ndr_print_string(ndr, "config_file", r->config_file);
8801 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
8802 ndr_print_uint32(ndr, "config_version", r->config_version);
8803 ndr_print_uint32(ndr, "driver_version", r->driver_version);
8807 static enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
8809 if (ndr_flags & NDR_SCALARS) {
8810 NDR_CHECK(ndr_push_align(ndr, 8));
8811 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8813 uint32_t _flags_save_string = ndr->flags;
8814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8815 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8816 ndr->flags = _flags_save_string;
8819 uint32_t _flags_save_string = ndr->flags;
8820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8821 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8822 ndr->flags = _flags_save_string;
8825 uint32_t _flags_save_string = ndr->flags;
8826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8827 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8828 ndr->flags = _flags_save_string;
8831 uint32_t _flags_save_string = ndr->flags;
8832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8833 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8834 ndr->flags = _flags_save_string;
8837 uint32_t _flags_save_string = ndr->flags;
8838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8839 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8840 ndr->flags = _flags_save_string;
8843 uint32_t _flags_save_string = ndr->flags;
8844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8845 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8846 ndr->flags = _flags_save_string;
8849 uint32_t _flags_save_string_array = ndr->flags;
8850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8851 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8852 ndr->flags = _flags_save_string_array;
8855 uint32_t _flags_save_string = ndr->flags;
8856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8857 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8858 ndr->flags = _flags_save_string;
8861 uint32_t _flags_save_string = ndr->flags;
8862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8863 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8864 ndr->flags = _flags_save_string;
8867 uint32_t _flags_save_string_array = ndr->flags;
8868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8869 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8870 ndr->flags = _flags_save_string_array;
8872 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
8873 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8875 uint32_t _flags_save_string = ndr->flags;
8876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8877 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
8878 ndr->flags = _flags_save_string;
8881 uint32_t _flags_save_string = ndr->flags;
8882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8883 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
8884 ndr->flags = _flags_save_string;
8887 uint32_t _flags_save_string = ndr->flags;
8888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8889 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
8890 ndr->flags = _flags_save_string;
8893 uint32_t _flags_save_string = ndr->flags;
8894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8895 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
8896 ndr->flags = _flags_save_string;
8899 if (ndr_flags & NDR_BUFFERS) {
8901 uint32_t _flags_save_string = ndr->flags;
8902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8903 if (r->driver_name) {
8904 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8905 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8907 ndr->flags = _flags_save_string;
8910 uint32_t _flags_save_string = ndr->flags;
8911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8912 if (r->architecture) {
8913 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8914 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8916 ndr->flags = _flags_save_string;
8919 uint32_t _flags_save_string = ndr->flags;
8920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8921 if (r->driver_path) {
8922 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8923 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8925 ndr->flags = _flags_save_string;
8928 uint32_t _flags_save_string = ndr->flags;
8929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8931 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8932 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8934 ndr->flags = _flags_save_string;
8937 uint32_t _flags_save_string = ndr->flags;
8938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8939 if (r->config_file) {
8940 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8941 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8943 ndr->flags = _flags_save_string;
8946 uint32_t _flags_save_string = ndr->flags;
8947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8949 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8950 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8952 ndr->flags = _flags_save_string;
8955 uint32_t _flags_save_string_array = ndr->flags;
8956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8957 if (r->dependent_files) {
8958 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8959 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8961 ndr->flags = _flags_save_string_array;
8964 uint32_t _flags_save_string = ndr->flags;
8965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8966 if (r->monitor_name) {
8967 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8968 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8970 ndr->flags = _flags_save_string;
8973 uint32_t _flags_save_string = ndr->flags;
8974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8975 if (r->default_datatype) {
8976 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8977 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8979 ndr->flags = _flags_save_string;
8982 uint32_t _flags_save_string_array = ndr->flags;
8983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8984 if (r->previous_names) {
8985 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8986 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8988 ndr->flags = _flags_save_string_array;
8991 uint32_t _flags_save_string = ndr->flags;
8992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8993 if (r->manufacturer_name) {
8994 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
8995 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
8997 ndr->flags = _flags_save_string;
9000 uint32_t _flags_save_string = ndr->flags;
9001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9002 if (r->manufacturer_url) {
9003 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9004 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9006 ndr->flags = _flags_save_string;
9009 uint32_t _flags_save_string = ndr->flags;
9010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9011 if (r->hardware_id) {
9012 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9013 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9015 ndr->flags = _flags_save_string;
9018 uint32_t _flags_save_string = ndr->flags;
9019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9021 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9022 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9024 ndr->flags = _flags_save_string;
9027 return NDR_ERR_SUCCESS;
9030 static enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
9032 uint32_t _ptr_driver_name;
9033 TALLOC_CTX *_mem_save_driver_name_0;
9034 uint32_t _ptr_architecture;
9035 TALLOC_CTX *_mem_save_architecture_0;
9036 uint32_t _ptr_driver_path;
9037 TALLOC_CTX *_mem_save_driver_path_0;
9038 uint32_t _ptr_data_file;
9039 TALLOC_CTX *_mem_save_data_file_0;
9040 uint32_t _ptr_config_file;
9041 TALLOC_CTX *_mem_save_config_file_0;
9042 uint32_t _ptr_help_file;
9043 TALLOC_CTX *_mem_save_help_file_0;
9044 uint32_t _ptr_dependent_files;
9045 TALLOC_CTX *_mem_save_dependent_files_0;
9046 uint32_t _ptr_monitor_name;
9047 TALLOC_CTX *_mem_save_monitor_name_0;
9048 uint32_t _ptr_default_datatype;
9049 TALLOC_CTX *_mem_save_default_datatype_0;
9050 uint32_t _ptr_previous_names;
9051 TALLOC_CTX *_mem_save_previous_names_0;
9052 uint32_t _ptr_manufacturer_name;
9053 TALLOC_CTX *_mem_save_manufacturer_name_0;
9054 uint32_t _ptr_manufacturer_url;
9055 TALLOC_CTX *_mem_save_manufacturer_url_0;
9056 uint32_t _ptr_hardware_id;
9057 TALLOC_CTX *_mem_save_hardware_id_0;
9058 uint32_t _ptr_provider;
9059 TALLOC_CTX *_mem_save_provider_0;
9060 if (ndr_flags & NDR_SCALARS) {
9061 NDR_CHECK(ndr_pull_align(ndr, 8));
9062 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9064 uint32_t _flags_save_string = ndr->flags;
9065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9067 if (_ptr_driver_name) {
9068 NDR_PULL_ALLOC(ndr, r->driver_name);
9069 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9071 r->driver_name = NULL;
9073 ndr->flags = _flags_save_string;
9076 uint32_t _flags_save_string = ndr->flags;
9077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9079 if (_ptr_architecture) {
9080 NDR_PULL_ALLOC(ndr, r->architecture);
9081 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9083 r->architecture = NULL;
9085 ndr->flags = _flags_save_string;
9088 uint32_t _flags_save_string = ndr->flags;
9089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9091 if (_ptr_driver_path) {
9092 NDR_PULL_ALLOC(ndr, r->driver_path);
9093 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9095 r->driver_path = NULL;
9097 ndr->flags = _flags_save_string;
9100 uint32_t _flags_save_string = ndr->flags;
9101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9103 if (_ptr_data_file) {
9104 NDR_PULL_ALLOC(ndr, r->data_file);
9105 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9107 r->data_file = NULL;
9109 ndr->flags = _flags_save_string;
9112 uint32_t _flags_save_string = ndr->flags;
9113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9115 if (_ptr_config_file) {
9116 NDR_PULL_ALLOC(ndr, r->config_file);
9117 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9119 r->config_file = NULL;
9121 ndr->flags = _flags_save_string;
9124 uint32_t _flags_save_string = ndr->flags;
9125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9127 if (_ptr_help_file) {
9128 NDR_PULL_ALLOC(ndr, r->help_file);
9129 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9131 r->help_file = NULL;
9133 ndr->flags = _flags_save_string;
9136 uint32_t _flags_save_string_array = ndr->flags;
9137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9139 if (_ptr_dependent_files) {
9140 NDR_PULL_ALLOC(ndr, r->dependent_files);
9141 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9143 r->dependent_files = NULL;
9145 ndr->flags = _flags_save_string_array;
9148 uint32_t _flags_save_string = ndr->flags;
9149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9151 if (_ptr_monitor_name) {
9152 NDR_PULL_ALLOC(ndr, r->monitor_name);
9153 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9155 r->monitor_name = NULL;
9157 ndr->flags = _flags_save_string;
9160 uint32_t _flags_save_string = ndr->flags;
9161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9162 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9163 if (_ptr_default_datatype) {
9164 NDR_PULL_ALLOC(ndr, r->default_datatype);
9165 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9167 r->default_datatype = NULL;
9169 ndr->flags = _flags_save_string;
9172 uint32_t _flags_save_string_array = ndr->flags;
9173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9175 if (_ptr_previous_names) {
9176 NDR_PULL_ALLOC(ndr, r->previous_names);
9177 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
9179 r->previous_names = NULL;
9181 ndr->flags = _flags_save_string_array;
9183 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
9184 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9186 uint32_t _flags_save_string = ndr->flags;
9187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9189 if (_ptr_manufacturer_name) {
9190 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9191 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
9193 r->manufacturer_name = NULL;
9195 ndr->flags = _flags_save_string;
9198 uint32_t _flags_save_string = ndr->flags;
9199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9201 if (_ptr_manufacturer_url) {
9202 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9203 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
9205 r->manufacturer_url = NULL;
9207 ndr->flags = _flags_save_string;
9210 uint32_t _flags_save_string = ndr->flags;
9211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9213 if (_ptr_hardware_id) {
9214 NDR_PULL_ALLOC(ndr, r->hardware_id);
9215 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
9217 r->hardware_id = NULL;
9219 ndr->flags = _flags_save_string;
9222 uint32_t _flags_save_string = ndr->flags;
9223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9225 if (_ptr_provider) {
9226 NDR_PULL_ALLOC(ndr, r->provider);
9227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
9231 ndr->flags = _flags_save_string;
9234 if (ndr_flags & NDR_BUFFERS) {
9236 uint32_t _flags_save_string = ndr->flags;
9237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9238 if (r->driver_name) {
9239 uint32_t _relative_save_offset;
9240 _relative_save_offset = ndr->offset;
9241 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9242 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9243 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9244 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9246 ndr->offset = _relative_save_offset;
9248 ndr->flags = _flags_save_string;
9251 uint32_t _flags_save_string = ndr->flags;
9252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9253 if (r->architecture) {
9254 uint32_t _relative_save_offset;
9255 _relative_save_offset = ndr->offset;
9256 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
9257 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9258 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9259 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
9260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9261 ndr->offset = _relative_save_offset;
9263 ndr->flags = _flags_save_string;
9266 uint32_t _flags_save_string = ndr->flags;
9267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9268 if (r->driver_path) {
9269 uint32_t _relative_save_offset;
9270 _relative_save_offset = ndr->offset;
9271 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
9272 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9273 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9274 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
9275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9276 ndr->offset = _relative_save_offset;
9278 ndr->flags = _flags_save_string;
9281 uint32_t _flags_save_string = ndr->flags;
9282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9284 uint32_t _relative_save_offset;
9285 _relative_save_offset = ndr->offset;
9286 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
9287 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9288 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9289 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
9290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9291 ndr->offset = _relative_save_offset;
9293 ndr->flags = _flags_save_string;
9296 uint32_t _flags_save_string = ndr->flags;
9297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9298 if (r->config_file) {
9299 uint32_t _relative_save_offset;
9300 _relative_save_offset = ndr->offset;
9301 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
9302 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9303 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9304 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
9305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9306 ndr->offset = _relative_save_offset;
9308 ndr->flags = _flags_save_string;
9311 uint32_t _flags_save_string = ndr->flags;
9312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9314 uint32_t _relative_save_offset;
9315 _relative_save_offset = ndr->offset;
9316 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
9317 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9318 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9319 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
9320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9321 ndr->offset = _relative_save_offset;
9323 ndr->flags = _flags_save_string;
9326 uint32_t _flags_save_string_array = ndr->flags;
9327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9328 if (r->dependent_files) {
9329 uint32_t _relative_save_offset;
9330 _relative_save_offset = ndr->offset;
9331 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
9332 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9333 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9334 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
9335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9336 ndr->offset = _relative_save_offset;
9338 ndr->flags = _flags_save_string_array;
9341 uint32_t _flags_save_string = ndr->flags;
9342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9343 if (r->monitor_name) {
9344 uint32_t _relative_save_offset;
9345 _relative_save_offset = ndr->offset;
9346 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
9347 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9348 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9349 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
9350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9351 ndr->offset = _relative_save_offset;
9353 ndr->flags = _flags_save_string;
9356 uint32_t _flags_save_string = ndr->flags;
9357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9358 if (r->default_datatype) {
9359 uint32_t _relative_save_offset;
9360 _relative_save_offset = ndr->offset;
9361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
9362 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9363 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
9365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9366 ndr->offset = _relative_save_offset;
9368 ndr->flags = _flags_save_string;
9371 uint32_t _flags_save_string_array = ndr->flags;
9372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9373 if (r->previous_names) {
9374 uint32_t _relative_save_offset;
9375 _relative_save_offset = ndr->offset;
9376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
9377 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9378 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9379 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
9380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9381 ndr->offset = _relative_save_offset;
9383 ndr->flags = _flags_save_string_array;
9386 uint32_t _flags_save_string = ndr->flags;
9387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9388 if (r->manufacturer_name) {
9389 uint32_t _relative_save_offset;
9390 _relative_save_offset = ndr->offset;
9391 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
9392 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9393 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9394 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
9395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9396 ndr->offset = _relative_save_offset;
9398 ndr->flags = _flags_save_string;
9401 uint32_t _flags_save_string = ndr->flags;
9402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9403 if (r->manufacturer_url) {
9404 uint32_t _relative_save_offset;
9405 _relative_save_offset = ndr->offset;
9406 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
9407 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9408 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9409 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
9410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9411 ndr->offset = _relative_save_offset;
9413 ndr->flags = _flags_save_string;
9416 uint32_t _flags_save_string = ndr->flags;
9417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9418 if (r->hardware_id) {
9419 uint32_t _relative_save_offset;
9420 _relative_save_offset = ndr->offset;
9421 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
9422 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9423 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9424 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
9425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9426 ndr->offset = _relative_save_offset;
9428 ndr->flags = _flags_save_string;
9431 uint32_t _flags_save_string = ndr->flags;
9432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9434 uint32_t _relative_save_offset;
9435 _relative_save_offset = ndr->offset;
9436 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
9437 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9438 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9439 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
9440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9441 ndr->offset = _relative_save_offset;
9443 ndr->flags = _flags_save_string;
9446 return NDR_ERR_SUCCESS;
9449 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
9451 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
9453 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9454 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9456 if (r->driver_name) {
9457 ndr_print_string(ndr, "driver_name", r->driver_name);
9460 ndr_print_ptr(ndr, "architecture", r->architecture);
9462 if (r->architecture) {
9463 ndr_print_string(ndr, "architecture", r->architecture);
9466 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9468 if (r->driver_path) {
9469 ndr_print_string(ndr, "driver_path", r->driver_path);
9472 ndr_print_ptr(ndr, "data_file", r->data_file);
9475 ndr_print_string(ndr, "data_file", r->data_file);
9478 ndr_print_ptr(ndr, "config_file", r->config_file);
9480 if (r->config_file) {
9481 ndr_print_string(ndr, "config_file", r->config_file);
9484 ndr_print_ptr(ndr, "help_file", r->help_file);
9487 ndr_print_string(ndr, "help_file", r->help_file);
9490 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9492 if (r->dependent_files) {
9493 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
9496 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9498 if (r->monitor_name) {
9499 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9502 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9504 if (r->default_datatype) {
9505 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9508 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9510 if (r->previous_names) {
9511 ndr_print_string_array(ndr, "previous_names", r->previous_names);
9514 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
9515 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9516 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9518 if (r->manufacturer_name) {
9519 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9522 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9524 if (r->manufacturer_url) {
9525 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9528 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9530 if (r->hardware_id) {
9531 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9534 ndr_print_ptr(ndr, "provider", r->provider);
9537 ndr_print_string(ndr, "provider", r->provider);
9543 static enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
9545 if (ndr_flags & NDR_SCALARS) {
9546 NDR_CHECK(ndr_push_align(ndr, 8));
9547 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9549 uint32_t _flags_save_string = ndr->flags;
9550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9551 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9552 ndr->flags = _flags_save_string;
9555 uint32_t _flags_save_string = ndr->flags;
9556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9557 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9558 ndr->flags = _flags_save_string;
9561 uint32_t _flags_save_string = ndr->flags;
9562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9564 ndr->flags = _flags_save_string;
9567 uint32_t _flags_save_string = ndr->flags;
9568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9570 ndr->flags = _flags_save_string;
9573 uint32_t _flags_save_string = ndr->flags;
9574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9576 ndr->flags = _flags_save_string;
9579 uint32_t _flags_save_string = ndr->flags;
9580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
9582 ndr->flags = _flags_save_string;
9585 uint32_t _flags_save_string = ndr->flags;
9586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
9588 ndr->flags = _flags_save_string;
9591 uint32_t _flags_save_string = ndr->flags;
9592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
9594 ndr->flags = _flags_save_string;
9597 uint32_t _flags_save_string_array = ndr->flags;
9598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
9600 ndr->flags = _flags_save_string_array;
9603 uint32_t _flags_save_string_array = ndr->flags;
9604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
9606 ndr->flags = _flags_save_string_array;
9608 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
9609 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9611 uint32_t _flags_save_string = ndr->flags;
9612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9613 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
9614 ndr->flags = _flags_save_string;
9617 uint32_t _flags_save_string = ndr->flags;
9618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
9620 ndr->flags = _flags_save_string;
9623 uint32_t _flags_save_string = ndr->flags;
9624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9625 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
9626 ndr->flags = _flags_save_string;
9629 uint32_t _flags_save_string = ndr->flags;
9630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9631 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
9632 ndr->flags = _flags_save_string;
9635 uint32_t _flags_save_string = ndr->flags;
9636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
9638 ndr->flags = _flags_save_string;
9641 uint32_t _flags_save_string = ndr->flags;
9642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
9644 ndr->flags = _flags_save_string;
9647 uint32_t _flags_save_string_array = ndr->flags;
9648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9649 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
9650 ndr->flags = _flags_save_string_array;
9653 uint32_t _flags_save_string = ndr->flags;
9654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9655 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
9656 ndr->flags = _flags_save_string;
9658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9660 uint32_t _flags_save_string_array = ndr->flags;
9661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9662 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
9663 ndr->flags = _flags_save_string_array;
9665 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9666 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9668 if (ndr_flags & NDR_BUFFERS) {
9670 uint32_t _flags_save_string = ndr->flags;
9671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9672 if (r->driver_name) {
9673 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9676 ndr->flags = _flags_save_string;
9679 uint32_t _flags_save_string = ndr->flags;
9680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9681 if (r->architecture) {
9682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9685 ndr->flags = _flags_save_string;
9688 uint32_t _flags_save_string = ndr->flags;
9689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9690 if (r->driver_path) {
9691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9694 ndr->flags = _flags_save_string;
9697 uint32_t _flags_save_string = ndr->flags;
9698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9703 ndr->flags = _flags_save_string;
9706 uint32_t _flags_save_string = ndr->flags;
9707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9708 if (r->config_file) {
9709 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9710 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9712 ndr->flags = _flags_save_string;
9715 uint32_t _flags_save_string = ndr->flags;
9716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9718 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
9719 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
9721 ndr->flags = _flags_save_string;
9724 uint32_t _flags_save_string = ndr->flags;
9725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9726 if (r->monitor_name) {
9727 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
9728 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
9730 ndr->flags = _flags_save_string;
9733 uint32_t _flags_save_string = ndr->flags;
9734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9735 if (r->default_datatype) {
9736 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
9737 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
9739 ndr->flags = _flags_save_string;
9742 uint32_t _flags_save_string_array = ndr->flags;
9743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9744 if (r->dependent_files) {
9745 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
9746 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
9748 ndr->flags = _flags_save_string_array;
9751 uint32_t _flags_save_string_array = ndr->flags;
9752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9753 if (r->previous_names) {
9754 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
9755 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
9757 ndr->flags = _flags_save_string_array;
9760 uint32_t _flags_save_string = ndr->flags;
9761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9762 if (r->manufacturer_name) {
9763 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9764 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9766 ndr->flags = _flags_save_string;
9769 uint32_t _flags_save_string = ndr->flags;
9770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9771 if (r->manufacturer_url) {
9772 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9775 ndr->flags = _flags_save_string;
9778 uint32_t _flags_save_string = ndr->flags;
9779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9780 if (r->hardware_id) {
9781 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9782 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9784 ndr->flags = _flags_save_string;
9787 uint32_t _flags_save_string = ndr->flags;
9788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9793 ndr->flags = _flags_save_string;
9796 uint32_t _flags_save_string = ndr->flags;
9797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9798 if (r->print_processor) {
9799 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
9800 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
9802 ndr->flags = _flags_save_string;
9805 uint32_t _flags_save_string = ndr->flags;
9806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9807 if (r->vendor_setup) {
9808 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
9809 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
9811 ndr->flags = _flags_save_string;
9814 uint32_t _flags_save_string_array = ndr->flags;
9815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9816 if (r->color_profiles) {
9817 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
9818 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
9820 ndr->flags = _flags_save_string_array;
9823 uint32_t _flags_save_string = ndr->flags;
9824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9826 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
9827 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
9829 ndr->flags = _flags_save_string;
9832 uint32_t _flags_save_string_array = ndr->flags;
9833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9834 if (r->core_driver_dependencies) {
9835 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
9836 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
9838 ndr->flags = _flags_save_string_array;
9841 return NDR_ERR_SUCCESS;
9844 static enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
9846 uint32_t _ptr_driver_name;
9847 TALLOC_CTX *_mem_save_driver_name_0;
9848 uint32_t _ptr_architecture;
9849 TALLOC_CTX *_mem_save_architecture_0;
9850 uint32_t _ptr_driver_path;
9851 TALLOC_CTX *_mem_save_driver_path_0;
9852 uint32_t _ptr_data_file;
9853 TALLOC_CTX *_mem_save_data_file_0;
9854 uint32_t _ptr_config_file;
9855 TALLOC_CTX *_mem_save_config_file_0;
9856 uint32_t _ptr_help_file;
9857 TALLOC_CTX *_mem_save_help_file_0;
9858 uint32_t _ptr_monitor_name;
9859 TALLOC_CTX *_mem_save_monitor_name_0;
9860 uint32_t _ptr_default_datatype;
9861 TALLOC_CTX *_mem_save_default_datatype_0;
9862 uint32_t _ptr_dependent_files;
9863 TALLOC_CTX *_mem_save_dependent_files_0;
9864 uint32_t _ptr_previous_names;
9865 TALLOC_CTX *_mem_save_previous_names_0;
9866 uint32_t _ptr_manufacturer_name;
9867 TALLOC_CTX *_mem_save_manufacturer_name_0;
9868 uint32_t _ptr_manufacturer_url;
9869 TALLOC_CTX *_mem_save_manufacturer_url_0;
9870 uint32_t _ptr_hardware_id;
9871 TALLOC_CTX *_mem_save_hardware_id_0;
9872 uint32_t _ptr_provider;
9873 TALLOC_CTX *_mem_save_provider_0;
9874 uint32_t _ptr_print_processor;
9875 TALLOC_CTX *_mem_save_print_processor_0;
9876 uint32_t _ptr_vendor_setup;
9877 TALLOC_CTX *_mem_save_vendor_setup_0;
9878 uint32_t _ptr_color_profiles;
9879 TALLOC_CTX *_mem_save_color_profiles_0;
9880 uint32_t _ptr_inf_path;
9881 TALLOC_CTX *_mem_save_inf_path_0;
9882 uint32_t _ptr_core_driver_dependencies;
9883 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9884 if (ndr_flags & NDR_SCALARS) {
9885 NDR_CHECK(ndr_pull_align(ndr, 8));
9886 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9888 uint32_t _flags_save_string = ndr->flags;
9889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9891 if (_ptr_driver_name) {
9892 NDR_PULL_ALLOC(ndr, r->driver_name);
9893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9895 r->driver_name = NULL;
9897 ndr->flags = _flags_save_string;
9900 uint32_t _flags_save_string = ndr->flags;
9901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9903 if (_ptr_architecture) {
9904 NDR_PULL_ALLOC(ndr, r->architecture);
9905 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9907 r->architecture = NULL;
9909 ndr->flags = _flags_save_string;
9912 uint32_t _flags_save_string = ndr->flags;
9913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9915 if (_ptr_driver_path) {
9916 NDR_PULL_ALLOC(ndr, r->driver_path);
9917 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9919 r->driver_path = NULL;
9921 ndr->flags = _flags_save_string;
9924 uint32_t _flags_save_string = ndr->flags;
9925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9927 if (_ptr_data_file) {
9928 NDR_PULL_ALLOC(ndr, r->data_file);
9929 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9931 r->data_file = NULL;
9933 ndr->flags = _flags_save_string;
9936 uint32_t _flags_save_string = ndr->flags;
9937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9939 if (_ptr_config_file) {
9940 NDR_PULL_ALLOC(ndr, r->config_file);
9941 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9943 r->config_file = NULL;
9945 ndr->flags = _flags_save_string;
9948 uint32_t _flags_save_string = ndr->flags;
9949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9951 if (_ptr_help_file) {
9952 NDR_PULL_ALLOC(ndr, r->help_file);
9953 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9955 r->help_file = NULL;
9957 ndr->flags = _flags_save_string;
9960 uint32_t _flags_save_string = ndr->flags;
9961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9963 if (_ptr_monitor_name) {
9964 NDR_PULL_ALLOC(ndr, r->monitor_name);
9965 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9967 r->monitor_name = NULL;
9969 ndr->flags = _flags_save_string;
9972 uint32_t _flags_save_string = ndr->flags;
9973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9975 if (_ptr_default_datatype) {
9976 NDR_PULL_ALLOC(ndr, r->default_datatype);
9977 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9979 r->default_datatype = NULL;
9981 ndr->flags = _flags_save_string;
9984 uint32_t _flags_save_string_array = ndr->flags;
9985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9986 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9987 if (_ptr_dependent_files) {
9988 NDR_PULL_ALLOC(ndr, r->dependent_files);
9989 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9991 r->dependent_files = NULL;
9993 ndr->flags = _flags_save_string_array;
9996 uint32_t _flags_save_string_array = ndr->flags;
9997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9999 if (_ptr_previous_names) {
10000 NDR_PULL_ALLOC(ndr, r->previous_names);
10001 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10003 r->previous_names = NULL;
10005 ndr->flags = _flags_save_string_array;
10007 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
10008 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10010 uint32_t _flags_save_string = ndr->flags;
10011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10013 if (_ptr_manufacturer_name) {
10014 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10015 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
10017 r->manufacturer_name = NULL;
10019 ndr->flags = _flags_save_string;
10022 uint32_t _flags_save_string = ndr->flags;
10023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10025 if (_ptr_manufacturer_url) {
10026 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10027 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
10029 r->manufacturer_url = NULL;
10031 ndr->flags = _flags_save_string;
10034 uint32_t _flags_save_string = ndr->flags;
10035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10037 if (_ptr_hardware_id) {
10038 NDR_PULL_ALLOC(ndr, r->hardware_id);
10039 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
10041 r->hardware_id = NULL;
10043 ndr->flags = _flags_save_string;
10046 uint32_t _flags_save_string = ndr->flags;
10047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10049 if (_ptr_provider) {
10050 NDR_PULL_ALLOC(ndr, r->provider);
10051 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
10053 r->provider = NULL;
10055 ndr->flags = _flags_save_string;
10058 uint32_t _flags_save_string = ndr->flags;
10059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10061 if (_ptr_print_processor) {
10062 NDR_PULL_ALLOC(ndr, r->print_processor);
10063 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
10065 r->print_processor = NULL;
10067 ndr->flags = _flags_save_string;
10070 uint32_t _flags_save_string = ndr->flags;
10071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10073 if (_ptr_vendor_setup) {
10074 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10075 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
10077 r->vendor_setup = NULL;
10079 ndr->flags = _flags_save_string;
10082 uint32_t _flags_save_string_array = ndr->flags;
10083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10085 if (_ptr_color_profiles) {
10086 NDR_PULL_ALLOC(ndr, r->color_profiles);
10087 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
10089 r->color_profiles = NULL;
10091 ndr->flags = _flags_save_string_array;
10094 uint32_t _flags_save_string = ndr->flags;
10095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10097 if (_ptr_inf_path) {
10098 NDR_PULL_ALLOC(ndr, r->inf_path);
10099 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
10101 r->inf_path = NULL;
10103 ndr->flags = _flags_save_string;
10105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10107 uint32_t _flags_save_string_array = ndr->flags;
10108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10110 if (_ptr_core_driver_dependencies) {
10111 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10112 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
10114 r->core_driver_dependencies = NULL;
10116 ndr->flags = _flags_save_string_array;
10118 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10119 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10121 if (ndr_flags & NDR_BUFFERS) {
10123 uint32_t _flags_save_string = ndr->flags;
10124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10125 if (r->driver_name) {
10126 uint32_t _relative_save_offset;
10127 _relative_save_offset = ndr->offset;
10128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10129 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10130 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10133 ndr->offset = _relative_save_offset;
10135 ndr->flags = _flags_save_string;
10138 uint32_t _flags_save_string = ndr->flags;
10139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10140 if (r->architecture) {
10141 uint32_t _relative_save_offset;
10142 _relative_save_offset = ndr->offset;
10143 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10144 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10145 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10146 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10148 ndr->offset = _relative_save_offset;
10150 ndr->flags = _flags_save_string;
10153 uint32_t _flags_save_string = ndr->flags;
10154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10155 if (r->driver_path) {
10156 uint32_t _relative_save_offset;
10157 _relative_save_offset = ndr->offset;
10158 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10159 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10160 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10161 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10163 ndr->offset = _relative_save_offset;
10165 ndr->flags = _flags_save_string;
10168 uint32_t _flags_save_string = ndr->flags;
10169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10170 if (r->data_file) {
10171 uint32_t _relative_save_offset;
10172 _relative_save_offset = ndr->offset;
10173 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10174 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10175 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10176 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10178 ndr->offset = _relative_save_offset;
10180 ndr->flags = _flags_save_string;
10183 uint32_t _flags_save_string = ndr->flags;
10184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10185 if (r->config_file) {
10186 uint32_t _relative_save_offset;
10187 _relative_save_offset = ndr->offset;
10188 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10189 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10190 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10191 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10193 ndr->offset = _relative_save_offset;
10195 ndr->flags = _flags_save_string;
10198 uint32_t _flags_save_string = ndr->flags;
10199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10200 if (r->help_file) {
10201 uint32_t _relative_save_offset;
10202 _relative_save_offset = ndr->offset;
10203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10204 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10205 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10208 ndr->offset = _relative_save_offset;
10210 ndr->flags = _flags_save_string;
10213 uint32_t _flags_save_string = ndr->flags;
10214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10215 if (r->monitor_name) {
10216 uint32_t _relative_save_offset;
10217 _relative_save_offset = ndr->offset;
10218 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10219 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10220 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10221 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10223 ndr->offset = _relative_save_offset;
10225 ndr->flags = _flags_save_string;
10228 uint32_t _flags_save_string = ndr->flags;
10229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10230 if (r->default_datatype) {
10231 uint32_t _relative_save_offset;
10232 _relative_save_offset = ndr->offset;
10233 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10234 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10235 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10236 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10238 ndr->offset = _relative_save_offset;
10240 ndr->flags = _flags_save_string;
10243 uint32_t _flags_save_string_array = ndr->flags;
10244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10245 if (r->dependent_files) {
10246 uint32_t _relative_save_offset;
10247 _relative_save_offset = ndr->offset;
10248 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10249 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10250 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10251 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10253 ndr->offset = _relative_save_offset;
10255 ndr->flags = _flags_save_string_array;
10258 uint32_t _flags_save_string_array = ndr->flags;
10259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10260 if (r->previous_names) {
10261 uint32_t _relative_save_offset;
10262 _relative_save_offset = ndr->offset;
10263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
10264 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10265 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10266 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
10267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10268 ndr->offset = _relative_save_offset;
10270 ndr->flags = _flags_save_string_array;
10273 uint32_t _flags_save_string = ndr->flags;
10274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10275 if (r->manufacturer_name) {
10276 uint32_t _relative_save_offset;
10277 _relative_save_offset = ndr->offset;
10278 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
10279 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10280 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10281 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
10282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10283 ndr->offset = _relative_save_offset;
10285 ndr->flags = _flags_save_string;
10288 uint32_t _flags_save_string = ndr->flags;
10289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10290 if (r->manufacturer_url) {
10291 uint32_t _relative_save_offset;
10292 _relative_save_offset = ndr->offset;
10293 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
10294 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10296 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
10297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10298 ndr->offset = _relative_save_offset;
10300 ndr->flags = _flags_save_string;
10303 uint32_t _flags_save_string = ndr->flags;
10304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10305 if (r->hardware_id) {
10306 uint32_t _relative_save_offset;
10307 _relative_save_offset = ndr->offset;
10308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
10309 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10310 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
10312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10313 ndr->offset = _relative_save_offset;
10315 ndr->flags = _flags_save_string;
10318 uint32_t _flags_save_string = ndr->flags;
10319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10321 uint32_t _relative_save_offset;
10322 _relative_save_offset = ndr->offset;
10323 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
10324 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10325 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10326 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
10327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10328 ndr->offset = _relative_save_offset;
10330 ndr->flags = _flags_save_string;
10333 uint32_t _flags_save_string = ndr->flags;
10334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10335 if (r->print_processor) {
10336 uint32_t _relative_save_offset;
10337 _relative_save_offset = ndr->offset;
10338 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
10339 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10340 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10341 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
10342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10343 ndr->offset = _relative_save_offset;
10345 ndr->flags = _flags_save_string;
10348 uint32_t _flags_save_string = ndr->flags;
10349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10350 if (r->vendor_setup) {
10351 uint32_t _relative_save_offset;
10352 _relative_save_offset = ndr->offset;
10353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
10354 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10355 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
10357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10358 ndr->offset = _relative_save_offset;
10360 ndr->flags = _flags_save_string;
10363 uint32_t _flags_save_string_array = ndr->flags;
10364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10365 if (r->color_profiles) {
10366 uint32_t _relative_save_offset;
10367 _relative_save_offset = ndr->offset;
10368 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
10369 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10370 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10371 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
10372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10373 ndr->offset = _relative_save_offset;
10375 ndr->flags = _flags_save_string_array;
10378 uint32_t _flags_save_string = ndr->flags;
10379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10381 uint32_t _relative_save_offset;
10382 _relative_save_offset = ndr->offset;
10383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
10384 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10385 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10386 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
10387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10388 ndr->offset = _relative_save_offset;
10390 ndr->flags = _flags_save_string;
10393 uint32_t _flags_save_string_array = ndr->flags;
10394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10395 if (r->core_driver_dependencies) {
10396 uint32_t _relative_save_offset;
10397 _relative_save_offset = ndr->offset;
10398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
10399 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10400 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10401 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
10402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10403 ndr->offset = _relative_save_offset;
10405 ndr->flags = _flags_save_string_array;
10408 return NDR_ERR_SUCCESS;
10411 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
10413 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
10415 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10416 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10418 if (r->driver_name) {
10419 ndr_print_string(ndr, "driver_name", r->driver_name);
10422 ndr_print_ptr(ndr, "architecture", r->architecture);
10424 if (r->architecture) {
10425 ndr_print_string(ndr, "architecture", r->architecture);
10428 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10430 if (r->driver_path) {
10431 ndr_print_string(ndr, "driver_path", r->driver_path);
10434 ndr_print_ptr(ndr, "data_file", r->data_file);
10436 if (r->data_file) {
10437 ndr_print_string(ndr, "data_file", r->data_file);
10440 ndr_print_ptr(ndr, "config_file", r->config_file);
10442 if (r->config_file) {
10443 ndr_print_string(ndr, "config_file", r->config_file);
10446 ndr_print_ptr(ndr, "help_file", r->help_file);
10448 if (r->help_file) {
10449 ndr_print_string(ndr, "help_file", r->help_file);
10452 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10454 if (r->monitor_name) {
10455 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10458 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10460 if (r->default_datatype) {
10461 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10464 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10466 if (r->dependent_files) {
10467 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10470 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10472 if (r->previous_names) {
10473 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10476 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
10477 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10478 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10480 if (r->manufacturer_name) {
10481 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10484 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10486 if (r->manufacturer_url) {
10487 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10490 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10492 if (r->hardware_id) {
10493 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10496 ndr_print_ptr(ndr, "provider", r->provider);
10499 ndr_print_string(ndr, "provider", r->provider);
10502 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10504 if (r->print_processor) {
10505 ndr_print_string(ndr, "print_processor", r->print_processor);
10508 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10510 if (r->vendor_setup) {
10511 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10514 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10516 if (r->color_profiles) {
10517 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
10520 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10523 ndr_print_string(ndr, "inf_path", r->inf_path);
10526 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10527 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10529 if (r->core_driver_dependencies) {
10530 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10533 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10534 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10538 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
10540 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10541 if (ndr_flags & NDR_SCALARS) {
10542 int level = ndr_push_get_switch_value(ndr, r);
10545 NDR_CHECK(ndr_push_align(ndr, 4));
10546 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10547 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10551 NDR_CHECK(ndr_push_align(ndr, 4));
10552 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10553 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10557 NDR_CHECK(ndr_push_align(ndr, 4));
10558 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10559 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10563 NDR_CHECK(ndr_push_align(ndr, 4));
10564 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10565 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10569 NDR_CHECK(ndr_push_align(ndr, 4));
10570 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10571 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10575 NDR_CHECK(ndr_push_align(ndr, 8));
10576 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10577 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10581 NDR_CHECK(ndr_push_align(ndr, 8));
10582 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10583 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10591 if (ndr_flags & NDR_BUFFERS) {
10592 int level = ndr_push_get_switch_value(ndr, r);
10593 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10596 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10600 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10604 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10608 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10612 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10616 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10620 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10628 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10629 return NDR_ERR_SUCCESS;
10632 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
10634 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10636 level = ndr_pull_get_switch_value(ndr, r);
10637 if (ndr_flags & NDR_SCALARS) {
10640 NDR_CHECK(ndr_pull_align(ndr, 4));
10641 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10642 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10646 NDR_CHECK(ndr_pull_align(ndr, 4));
10647 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10648 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10652 NDR_CHECK(ndr_pull_align(ndr, 4));
10653 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10654 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10658 NDR_CHECK(ndr_pull_align(ndr, 4));
10659 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10660 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10664 NDR_CHECK(ndr_pull_align(ndr, 4));
10665 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10666 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10670 NDR_CHECK(ndr_pull_align(ndr, 8));
10671 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10672 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10676 NDR_CHECK(ndr_pull_align(ndr, 8));
10677 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10678 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10686 if (ndr_flags & NDR_BUFFERS) {
10687 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10690 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10694 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10698 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10702 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10706 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10710 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10714 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10722 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10723 return NDR_ERR_SUCCESS;
10726 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
10729 level = ndr_print_get_switch_value(ndr, r);
10730 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
10733 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
10737 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
10741 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
10745 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
10749 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
10753 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
10757 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
10766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
10768 if (ndr_flags & NDR_SCALARS) {
10769 NDR_CHECK(ndr_push_align(ndr, 4));
10771 uint32_t _flags_save_string = ndr->flags;
10772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
10774 ndr->flags = _flags_save_string;
10777 if (ndr_flags & NDR_BUFFERS) {
10779 return NDR_ERR_SUCCESS;
10782 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
10784 if (ndr_flags & NDR_SCALARS) {
10785 NDR_CHECK(ndr_pull_align(ndr, 4));
10787 uint32_t _flags_save_string = ndr->flags;
10788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10789 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
10790 ndr->flags = _flags_save_string;
10793 if (ndr_flags & NDR_BUFFERS) {
10795 return NDR_ERR_SUCCESS;
10798 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
10800 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
10802 ndr_print_string(ndr, "directory_name", r->directory_name);
10806 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10808 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
10811 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
10813 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10814 if (ndr_flags & NDR_SCALARS) {
10815 int level = ndr_push_get_switch_value(ndr, r);
10818 NDR_CHECK(ndr_push_align(ndr, 4));
10819 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10820 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10824 NDR_CHECK(ndr_push_align(ndr, 4));
10825 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10826 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10831 if (ndr_flags & NDR_BUFFERS) {
10832 int level = ndr_push_get_switch_value(ndr, r);
10833 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10843 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10844 return NDR_ERR_SUCCESS;
10847 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
10849 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10851 level = ndr_pull_get_switch_value(ndr, r);
10852 if (ndr_flags & NDR_SCALARS) {
10855 NDR_CHECK(ndr_pull_align(ndr, 4));
10856 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10857 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10861 NDR_CHECK(ndr_pull_align(ndr, 4));
10862 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10863 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10868 if (ndr_flags & NDR_BUFFERS) {
10869 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10879 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10880 return NDR_ERR_SUCCESS;
10883 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
10886 level = ndr_print_get_switch_value(ndr, r);
10887 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
10890 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
10894 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
10900 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
10902 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
10905 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
10907 if (ndr_flags & NDR_SCALARS) {
10908 NDR_CHECK(ndr_push_align(ndr, 4));
10910 uint32_t _flags_save_string = ndr->flags;
10911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10912 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
10913 ndr->flags = _flags_save_string;
10916 if (ndr_flags & NDR_BUFFERS) {
10918 uint32_t _flags_save_string = ndr->flags;
10919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10920 if (r->print_processor_name) {
10921 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
10922 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
10924 ndr->flags = _flags_save_string;
10927 return NDR_ERR_SUCCESS;
10930 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
10932 uint32_t _ptr_print_processor_name;
10933 TALLOC_CTX *_mem_save_print_processor_name_0;
10934 if (ndr_flags & NDR_SCALARS) {
10935 NDR_CHECK(ndr_pull_align(ndr, 4));
10937 uint32_t _flags_save_string = ndr->flags;
10938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
10940 if (_ptr_print_processor_name) {
10941 NDR_PULL_ALLOC(ndr, r->print_processor_name);
10942 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
10944 r->print_processor_name = NULL;
10946 ndr->flags = _flags_save_string;
10949 if (ndr_flags & NDR_BUFFERS) {
10951 uint32_t _flags_save_string = ndr->flags;
10952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10953 if (r->print_processor_name) {
10954 uint32_t _relative_save_offset;
10955 _relative_save_offset = ndr->offset;
10956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
10957 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10958 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
10959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
10960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
10961 ndr->offset = _relative_save_offset;
10963 ndr->flags = _flags_save_string;
10966 return NDR_ERR_SUCCESS;
10969 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
10971 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
10973 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
10975 if (r->print_processor_name) {
10976 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
10982 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
10984 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10985 if (ndr_flags & NDR_SCALARS) {
10986 int level = ndr_push_get_switch_value(ndr, r);
10989 NDR_CHECK(ndr_push_align(ndr, 4));
10990 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10991 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
10999 if (ndr_flags & NDR_BUFFERS) {
11000 int level = ndr_push_get_switch_value(ndr, r);
11001 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11004 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11012 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11013 return NDR_ERR_SUCCESS;
11016 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
11018 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11020 level = ndr_pull_get_switch_value(ndr, r);
11021 if (ndr_flags & NDR_SCALARS) {
11024 NDR_CHECK(ndr_pull_align(ndr, 4));
11025 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11026 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11034 if (ndr_flags & NDR_BUFFERS) {
11035 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11038 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11046 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11047 return NDR_ERR_SUCCESS;
11050 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
11053 level = ndr_print_get_switch_value(ndr, r);
11054 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
11057 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
11066 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11068 if (ndr_flags & NDR_SCALARS) {
11069 NDR_CHECK(ndr_push_align(ndr, 4));
11071 uint32_t _flags_save_string = ndr->flags;
11072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11073 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
11074 ndr->flags = _flags_save_string;
11077 if (ndr_flags & NDR_BUFFERS) {
11079 return NDR_ERR_SUCCESS;
11082 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
11084 if (ndr_flags & NDR_SCALARS) {
11085 NDR_CHECK(ndr_pull_align(ndr, 4));
11087 uint32_t _flags_save_string = ndr->flags;
11088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11089 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
11090 ndr->flags = _flags_save_string;
11093 if (ndr_flags & NDR_BUFFERS) {
11095 return NDR_ERR_SUCCESS;
11098 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11100 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
11102 ndr_print_string(ndr, "directory_name", r->directory_name);
11106 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11108 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
11111 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
11113 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11114 if (ndr_flags & NDR_SCALARS) {
11115 int level = ndr_push_get_switch_value(ndr, r);
11118 NDR_CHECK(ndr_push_align(ndr, 4));
11119 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11120 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11128 if (ndr_flags & NDR_BUFFERS) {
11129 int level = ndr_push_get_switch_value(ndr, r);
11130 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11140 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11141 return NDR_ERR_SUCCESS;
11144 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
11146 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11148 level = ndr_pull_get_switch_value(ndr, r);
11149 if (ndr_flags & NDR_SCALARS) {
11152 NDR_CHECK(ndr_pull_align(ndr, 4));
11153 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11154 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11162 if (ndr_flags & NDR_BUFFERS) {
11163 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11173 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11174 return NDR_ERR_SUCCESS;
11177 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
11180 level = ndr_print_get_switch_value(ndr, r);
11181 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
11184 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
11193 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11195 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
11198 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
11200 if (ndr_flags & NDR_SCALARS) {
11201 NDR_CHECK(ndr_push_align(ndr, 4));
11202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
11203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
11204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
11206 if (ndr_flags & NDR_BUFFERS) {
11207 if (r->document_name) {
11208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11213 if (r->output_file) {
11214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11217 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11223 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11226 return NDR_ERR_SUCCESS;
11229 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
11231 uint32_t _ptr_document_name;
11232 TALLOC_CTX *_mem_save_document_name_0;
11233 uint32_t _ptr_output_file;
11234 TALLOC_CTX *_mem_save_output_file_0;
11235 uint32_t _ptr_datatype;
11236 TALLOC_CTX *_mem_save_datatype_0;
11237 if (ndr_flags & NDR_SCALARS) {
11238 NDR_CHECK(ndr_pull_align(ndr, 4));
11239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
11240 if (_ptr_document_name) {
11241 NDR_PULL_ALLOC(ndr, r->document_name);
11243 r->document_name = NULL;
11245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
11246 if (_ptr_output_file) {
11247 NDR_PULL_ALLOC(ndr, r->output_file);
11249 r->output_file = NULL;
11251 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
11252 if (_ptr_datatype) {
11253 NDR_PULL_ALLOC(ndr, r->datatype);
11255 r->datatype = NULL;
11258 if (ndr_flags & NDR_BUFFERS) {
11259 if (r->document_name) {
11260 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11261 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
11262 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
11263 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
11264 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
11265 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));
11267 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
11268 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
11269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
11271 if (r->output_file) {
11272 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11273 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
11274 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
11275 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
11276 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
11277 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));
11279 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
11280 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
11281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
11284 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11285 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
11286 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
11287 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
11288 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
11289 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));
11291 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
11292 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
11293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
11296 return NDR_ERR_SUCCESS;
11299 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
11301 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
11303 ndr_print_ptr(ndr, "document_name", r->document_name);
11305 if (r->document_name) {
11306 ndr_print_string(ndr, "document_name", r->document_name);
11309 ndr_print_ptr(ndr, "output_file", r->output_file);
11311 if (r->output_file) {
11312 ndr_print_string(ndr, "output_file", r->output_file);
11315 ndr_print_ptr(ndr, "datatype", r->datatype);
11318 ndr_print_string(ndr, "datatype", r->datatype);
11324 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
11326 if (ndr_flags & NDR_SCALARS) {
11327 int level = ndr_push_get_switch_value(ndr, r);
11328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11345 if (ndr_flags & NDR_BUFFERS) {
11346 int level = ndr_push_get_switch_value(ndr, r);
11350 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11365 return NDR_ERR_SUCCESS;
11368 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
11372 TALLOC_CTX *_mem_save_info1_0;
11373 level = ndr_pull_get_switch_value(ndr, r);
11374 if (ndr_flags & NDR_SCALARS) {
11375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11376 if (_level != level) {
11377 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11381 uint32_t _ptr_info1;
11382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11384 NDR_PULL_ALLOC(ndr, r->info1);
11401 if (ndr_flags & NDR_BUFFERS) {
11405 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11406 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11407 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11423 return NDR_ERR_SUCCESS;
11426 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
11429 level = ndr_print_get_switch_value(ndr, r);
11430 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
11433 ndr_print_ptr(ndr, "info1", r->info1);
11436 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
11453 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
11455 if (ndr_flags & NDR_SCALARS) {
11456 NDR_CHECK(ndr_push_align(ndr, 4));
11457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
11458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11463 uint32_t _flags_save_string = ndr->flags;
11464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11466 struct ndr_push *_ndr_extra_string;
11467 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11468 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11469 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11471 ndr->flags = _flags_save_string;
11474 if (ndr_flags & NDR_BUFFERS) {
11476 return NDR_ERR_SUCCESS;
11479 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
11481 if (ndr_flags & NDR_SCALARS) {
11482 NDR_CHECK(ndr_pull_align(ndr, 4));
11483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
11489 uint32_t _flags_save_string = ndr->flags;
11490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11492 struct ndr_pull *_ndr_extra_string;
11493 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11494 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11495 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11497 ndr->flags = _flags_save_string;
11500 if (ndr_flags & NDR_BUFFERS) {
11502 return NDR_ERR_SUCCESS;
11505 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
11507 ndr_print_struct(ndr, name, "spoolss_OSVersion");
11509 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);
11510 ndr_print_uint32(ndr, "major", r->major);
11511 ndr_print_uint32(ndr, "minor", r->minor);
11512 ndr_print_uint32(ndr, "build", r->build);
11513 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
11514 ndr_print_string(ndr, "extra_string", r->extra_string);
11518 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
11520 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
11523 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
11525 if (ndr_flags & NDR_SCALARS) {
11526 NDR_CHECK(ndr_push_align(ndr, 4));
11527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
11528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11533 uint32_t _flags_save_string = ndr->flags;
11534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11536 struct ndr_push *_ndr_extra_string;
11537 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11538 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11539 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11541 ndr->flags = _flags_save_string;
11543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
11544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
11546 if (ndr_flags & NDR_BUFFERS) {
11548 return NDR_ERR_SUCCESS;
11551 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
11553 if (ndr_flags & NDR_SCALARS) {
11554 NDR_CHECK(ndr_pull_align(ndr, 4));
11555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
11561 uint32_t _flags_save_string = ndr->flags;
11562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11564 struct ndr_pull *_ndr_extra_string;
11565 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11566 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11567 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11569 ndr->flags = _flags_save_string;
11571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
11572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
11574 if (ndr_flags & NDR_BUFFERS) {
11576 return NDR_ERR_SUCCESS;
11579 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
11581 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
11583 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);
11584 ndr_print_uint32(ndr, "major", r->major);
11585 ndr_print_uint32(ndr, "minor", r->minor);
11586 ndr_print_uint32(ndr, "build", r->build);
11587 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
11588 ndr_print_string(ndr, "extra_string", r->extra_string);
11589 ndr_print_uint32(ndr, "unknown2", r->unknown2);
11590 ndr_print_uint32(ndr, "unknown3", r->unknown3);
11594 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
11596 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
11599 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
11601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11602 return NDR_ERR_SUCCESS;
11605 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
11608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11610 return NDR_ERR_SUCCESS;
11613 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
11615 const char *val = NULL;
11618 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
11619 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
11620 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
11621 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
11622 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
11624 ndr_print_enum(ndr, name, "ENUM", val, r);
11627 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
11629 if (ndr_flags & NDR_SCALARS) {
11630 int level = ndr_push_get_switch_value(ndr, r);
11632 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11635 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11637 uint32_t _flags_save_string = ndr->flags;
11638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11639 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
11640 ndr->flags = _flags_save_string;
11644 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11646 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11648 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11649 ndr->flags = _flags_save_DATA_BLOB;
11653 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
11657 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11659 uint32_t _flags_save_string_array = ndr->flags;
11660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11661 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
11662 ndr->flags = _flags_save_string_array;
11668 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11670 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
11671 ndr->flags = _flags_save_DATA_BLOB;
11677 if (ndr_flags & NDR_BUFFERS) {
11678 int level = ndr_push_get_switch_value(ndr, r);
11680 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11683 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11686 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11689 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11692 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11700 return NDR_ERR_SUCCESS;
11703 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
11706 level = ndr_pull_get_switch_value(ndr, r);
11707 if (ndr_flags & NDR_SCALARS) {
11709 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11712 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11714 uint32_t _flags_save_string = ndr->flags;
11715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
11717 ndr->flags = _flags_save_string;
11721 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11723 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11725 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
11726 ndr->flags = _flags_save_DATA_BLOB;
11730 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
11734 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11736 uint32_t _flags_save_string_array = ndr->flags;
11737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11738 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
11739 ndr->flags = _flags_save_string_array;
11745 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11747 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
11748 ndr->flags = _flags_save_DATA_BLOB;
11754 if (ndr_flags & NDR_BUFFERS) {
11756 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11759 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11762 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11765 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11768 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11776 return NDR_ERR_SUCCESS;
11779 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
11782 level = ndr_print_get_switch_value(ndr, r);
11783 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
11785 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11788 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11789 ndr_print_string(ndr, "string", r->string);
11792 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11793 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
11796 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11797 ndr_print_uint32(ndr, "value", r->value);
11800 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11801 ndr_print_string_array(ndr, "string_array", r->string_array);
11805 ndr_print_DATA_BLOB(ndr, "data", r->data);
11811 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11813 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
11816 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
11818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11819 return NDR_ERR_SUCCESS;
11822 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
11825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11827 return NDR_ERR_SUCCESS;
11830 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
11832 const char *val = NULL;
11835 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
11836 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
11837 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
11839 ndr_print_enum(ndr, name, "ENUM", val, r);
11842 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
11844 if (ndr_flags & NDR_SCALARS) {
11845 NDR_CHECK(ndr_push_align(ndr, 4));
11846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
11847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
11849 if (ndr_flags & NDR_BUFFERS) {
11851 return NDR_ERR_SUCCESS;
11854 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
11856 if (ndr_flags & NDR_SCALARS) {
11857 NDR_CHECK(ndr_pull_align(ndr, 4));
11858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
11859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
11861 if (ndr_flags & NDR_BUFFERS) {
11863 return NDR_ERR_SUCCESS;
11866 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
11868 ndr_print_struct(ndr, name, "spoolss_FormSize");
11870 ndr_print_uint32(ndr, "width", r->width);
11871 ndr_print_uint32(ndr, "height", r->height);
11875 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
11877 if (ndr_flags & NDR_SCALARS) {
11878 NDR_CHECK(ndr_push_align(ndr, 4));
11879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
11880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
11881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
11882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
11884 if (ndr_flags & NDR_BUFFERS) {
11886 return NDR_ERR_SUCCESS;
11889 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
11891 if (ndr_flags & NDR_SCALARS) {
11892 NDR_CHECK(ndr_pull_align(ndr, 4));
11893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
11894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
11895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
11896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
11898 if (ndr_flags & NDR_BUFFERS) {
11900 return NDR_ERR_SUCCESS;
11903 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
11905 ndr_print_struct(ndr, name, "spoolss_FormArea");
11907 ndr_print_uint32(ndr, "left", r->left);
11908 ndr_print_uint32(ndr, "top", r->top);
11909 ndr_print_uint32(ndr, "right", r->right);
11910 ndr_print_uint32(ndr, "bottom", r->bottom);
11914 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
11916 if (ndr_flags & NDR_SCALARS) {
11917 NDR_CHECK(ndr_push_align(ndr, 4));
11918 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
11920 uint32_t _flags_save_string = ndr->flags;
11921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11922 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
11923 ndr->flags = _flags_save_string;
11925 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11926 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11928 if (ndr_flags & NDR_BUFFERS) {
11930 uint32_t _flags_save_string = ndr->flags;
11931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11932 if (r->form_name) {
11933 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
11934 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
11936 ndr->flags = _flags_save_string;
11939 return NDR_ERR_SUCCESS;
11942 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
11944 uint32_t _ptr_form_name;
11945 TALLOC_CTX *_mem_save_form_name_0;
11946 if (ndr_flags & NDR_SCALARS) {
11947 NDR_CHECK(ndr_pull_align(ndr, 4));
11948 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
11950 uint32_t _flags_save_string = ndr->flags;
11951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
11953 if (_ptr_form_name) {
11954 NDR_PULL_ALLOC(ndr, r->form_name);
11955 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
11957 r->form_name = NULL;
11959 ndr->flags = _flags_save_string;
11961 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11962 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11964 if (ndr_flags & NDR_BUFFERS) {
11966 uint32_t _flags_save_string = ndr->flags;
11967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11968 if (r->form_name) {
11969 uint32_t _relative_save_offset;
11970 _relative_save_offset = ndr->offset;
11971 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
11972 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11973 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
11974 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
11975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
11976 ndr->offset = _relative_save_offset;
11978 ndr->flags = _flags_save_string;
11981 return NDR_ERR_SUCCESS;
11984 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
11986 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
11988 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
11989 ndr_print_ptr(ndr, "form_name", r->form_name);
11991 if (r->form_name) {
11992 ndr_print_string(ndr, "form_name", r->form_name);
11995 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
11996 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12000 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
12002 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12003 if (ndr_flags & NDR_SCALARS) {
12004 int level = ndr_push_get_switch_value(ndr, r);
12007 NDR_CHECK(ndr_push_align(ndr, 4));
12008 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12009 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12017 if (ndr_flags & NDR_BUFFERS) {
12018 int level = ndr_push_get_switch_value(ndr, r);
12019 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12022 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12030 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12031 return NDR_ERR_SUCCESS;
12034 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
12036 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12038 level = ndr_pull_get_switch_value(ndr, r);
12039 if (ndr_flags & NDR_SCALARS) {
12042 NDR_CHECK(ndr_pull_align(ndr, 4));
12043 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12044 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12052 if (ndr_flags & NDR_BUFFERS) {
12053 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12056 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12064 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12065 return NDR_ERR_SUCCESS;
12068 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
12071 level = ndr_print_get_switch_value(ndr, r);
12072 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
12075 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
12084 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
12086 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
12089 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
12091 if (ndr_flags & NDR_SCALARS) {
12092 NDR_CHECK(ndr_push_align(ndr, 4));
12093 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
12094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
12095 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12096 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12098 if (ndr_flags & NDR_BUFFERS) {
12099 if (r->form_name) {
12100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12103 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12106 return NDR_ERR_SUCCESS;
12109 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
12111 uint32_t _ptr_form_name;
12112 TALLOC_CTX *_mem_save_form_name_0;
12113 if (ndr_flags & NDR_SCALARS) {
12114 NDR_CHECK(ndr_pull_align(ndr, 4));
12115 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
12116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
12117 if (_ptr_form_name) {
12118 NDR_PULL_ALLOC(ndr, r->form_name);
12120 r->form_name = NULL;
12122 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12123 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12125 if (ndr_flags & NDR_BUFFERS) {
12126 if (r->form_name) {
12127 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12128 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12129 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
12130 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
12131 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
12132 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));
12134 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
12135 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
12136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12139 return NDR_ERR_SUCCESS;
12142 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
12144 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
12146 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12147 ndr_print_ptr(ndr, "form_name", r->form_name);
12149 if (r->form_name) {
12150 ndr_print_string(ndr, "form_name", r->form_name);
12153 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12154 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12158 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
12160 if (ndr_flags & NDR_SCALARS) {
12161 int level = ndr_push_get_switch_value(ndr, r);
12162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
12165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
12169 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12172 if (ndr_flags & NDR_BUFFERS) {
12173 int level = ndr_push_get_switch_value(ndr, r);
12177 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12182 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12185 return NDR_ERR_SUCCESS;
12188 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
12192 TALLOC_CTX *_mem_save_info1_0;
12193 level = ndr_pull_get_switch_value(ndr, r);
12194 if (ndr_flags & NDR_SCALARS) {
12195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12196 if (_level != level) {
12197 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12201 uint32_t _ptr_info1;
12202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
12204 NDR_PULL_ALLOC(ndr, r->info1);
12211 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12214 if (ndr_flags & NDR_BUFFERS) {
12218 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12219 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
12220 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
12226 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12229 return NDR_ERR_SUCCESS;
12232 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
12235 level = ndr_print_get_switch_value(ndr, r);
12236 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
12239 ndr_print_ptr(ndr, "info1", r->info1);
12242 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
12248 ndr_print_bad_level(ndr, name, level);
12252 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
12254 if (ndr_flags & NDR_SCALARS) {
12255 NDR_CHECK(ndr_push_align(ndr, 4));
12257 uint32_t _flags_save_string = ndr->flags;
12258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12260 ndr->flags = _flags_save_string;
12263 if (ndr_flags & NDR_BUFFERS) {
12265 uint32_t _flags_save_string = ndr->flags;
12266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12267 if (r->port_name) {
12268 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12269 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12271 ndr->flags = _flags_save_string;
12274 return NDR_ERR_SUCCESS;
12277 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
12279 uint32_t _ptr_port_name;
12280 TALLOC_CTX *_mem_save_port_name_0;
12281 if (ndr_flags & NDR_SCALARS) {
12282 NDR_CHECK(ndr_pull_align(ndr, 4));
12284 uint32_t _flags_save_string = ndr->flags;
12285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12287 if (_ptr_port_name) {
12288 NDR_PULL_ALLOC(ndr, r->port_name);
12289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12291 r->port_name = NULL;
12293 ndr->flags = _flags_save_string;
12296 if (ndr_flags & NDR_BUFFERS) {
12298 uint32_t _flags_save_string = ndr->flags;
12299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12300 if (r->port_name) {
12301 uint32_t _relative_save_offset;
12302 _relative_save_offset = ndr->offset;
12303 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12304 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12305 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12306 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12308 ndr->offset = _relative_save_offset;
12310 ndr->flags = _flags_save_string;
12313 return NDR_ERR_SUCCESS;
12316 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
12318 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
12320 ndr_print_ptr(ndr, "port_name", r->port_name);
12322 if (r->port_name) {
12323 ndr_print_string(ndr, "port_name", r->port_name);
12329 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12332 return NDR_ERR_SUCCESS;
12335 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12340 return NDR_ERR_SUCCESS;
12343 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
12345 ndr_print_uint32(ndr, name, r);
12347 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
12348 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
12349 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
12350 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
12354 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
12356 if (ndr_flags & NDR_SCALARS) {
12357 NDR_CHECK(ndr_push_align(ndr, 4));
12359 uint32_t _flags_save_string = ndr->flags;
12360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12361 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12368 ndr->flags = _flags_save_string;
12371 uint32_t _flags_save_string = ndr->flags;
12372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12373 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
12374 ndr->flags = _flags_save_string;
12376 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
12377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12379 if (ndr_flags & NDR_BUFFERS) {
12381 uint32_t _flags_save_string = ndr->flags;
12382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12383 if (r->port_name) {
12384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12387 ndr->flags = _flags_save_string;
12390 uint32_t _flags_save_string = ndr->flags;
12391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12392 if (r->monitor_name) {
12393 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12394 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12396 ndr->flags = _flags_save_string;
12399 uint32_t _flags_save_string = ndr->flags;
12400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12401 if (r->description) {
12402 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
12403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
12405 ndr->flags = _flags_save_string;
12408 return NDR_ERR_SUCCESS;
12411 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
12413 uint32_t _ptr_port_name;
12414 TALLOC_CTX *_mem_save_port_name_0;
12415 uint32_t _ptr_monitor_name;
12416 TALLOC_CTX *_mem_save_monitor_name_0;
12417 uint32_t _ptr_description;
12418 TALLOC_CTX *_mem_save_description_0;
12419 if (ndr_flags & NDR_SCALARS) {
12420 NDR_CHECK(ndr_pull_align(ndr, 4));
12422 uint32_t _flags_save_string = ndr->flags;
12423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12425 if (_ptr_port_name) {
12426 NDR_PULL_ALLOC(ndr, r->port_name);
12427 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12429 r->port_name = NULL;
12431 ndr->flags = _flags_save_string;
12434 uint32_t _flags_save_string = ndr->flags;
12435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12437 if (_ptr_monitor_name) {
12438 NDR_PULL_ALLOC(ndr, r->monitor_name);
12439 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12441 r->monitor_name = NULL;
12443 ndr->flags = _flags_save_string;
12446 uint32_t _flags_save_string = ndr->flags;
12447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
12449 if (_ptr_description) {
12450 NDR_PULL_ALLOC(ndr, r->description);
12451 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
12453 r->description = NULL;
12455 ndr->flags = _flags_save_string;
12457 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
12458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12460 if (ndr_flags & NDR_BUFFERS) {
12462 uint32_t _flags_save_string = ndr->flags;
12463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12464 if (r->port_name) {
12465 uint32_t _relative_save_offset;
12466 _relative_save_offset = ndr->offset;
12467 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12468 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12469 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12470 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12472 ndr->offset = _relative_save_offset;
12474 ndr->flags = _flags_save_string;
12477 uint32_t _flags_save_string = ndr->flags;
12478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12479 if (r->monitor_name) {
12480 uint32_t _relative_save_offset;
12481 _relative_save_offset = ndr->offset;
12482 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12483 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12484 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12485 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12487 ndr->offset = _relative_save_offset;
12489 ndr->flags = _flags_save_string;
12492 uint32_t _flags_save_string = ndr->flags;
12493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12494 if (r->description) {
12495 uint32_t _relative_save_offset;
12496 _relative_save_offset = ndr->offset;
12497 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
12498 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
12499 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
12500 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
12501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
12502 ndr->offset = _relative_save_offset;
12504 ndr->flags = _flags_save_string;
12507 return NDR_ERR_SUCCESS;
12510 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
12512 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
12514 ndr_print_ptr(ndr, "port_name", r->port_name);
12516 if (r->port_name) {
12517 ndr_print_string(ndr, "port_name", r->port_name);
12520 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12522 if (r->monitor_name) {
12523 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12526 ndr_print_ptr(ndr, "description", r->description);
12528 if (r->description) {
12529 ndr_print_string(ndr, "description", r->description);
12532 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
12533 ndr_print_uint32(ndr, "reserved", r->reserved);
12537 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
12539 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12540 if (ndr_flags & NDR_SCALARS) {
12541 int level = ndr_push_get_switch_value(ndr, r);
12544 NDR_CHECK(ndr_push_align(ndr, 4));
12545 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12546 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12550 NDR_CHECK(ndr_push_align(ndr, 4));
12551 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12552 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12563 if (ndr_flags & NDR_BUFFERS) {
12564 int level = ndr_push_get_switch_value(ndr, r);
12565 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12568 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12572 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12583 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12584 return NDR_ERR_SUCCESS;
12587 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
12589 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12591 level = ndr_pull_get_switch_value(ndr, r);
12592 if (ndr_flags & NDR_SCALARS) {
12595 NDR_CHECK(ndr_pull_align(ndr, 4));
12596 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12597 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12601 NDR_CHECK(ndr_pull_align(ndr, 4));
12602 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12603 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12614 if (ndr_flags & NDR_BUFFERS) {
12615 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12618 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12622 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12633 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12634 return NDR_ERR_SUCCESS;
12637 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
12640 level = ndr_print_get_switch_value(ndr, r);
12641 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
12644 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
12648 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
12660 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
12662 if (ndr_flags & NDR_SCALARS) {
12663 NDR_CHECK(ndr_push_align(ndr, 4));
12665 uint32_t _flags_save_string = ndr->flags;
12666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12668 ndr->flags = _flags_save_string;
12671 if (ndr_flags & NDR_BUFFERS) {
12673 uint32_t _flags_save_string = ndr->flags;
12674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12675 if (r->monitor_name) {
12676 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12679 ndr->flags = _flags_save_string;
12682 return NDR_ERR_SUCCESS;
12685 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
12687 uint32_t _ptr_monitor_name;
12688 TALLOC_CTX *_mem_save_monitor_name_0;
12689 if (ndr_flags & NDR_SCALARS) {
12690 NDR_CHECK(ndr_pull_align(ndr, 4));
12692 uint32_t _flags_save_string = ndr->flags;
12693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12695 if (_ptr_monitor_name) {
12696 NDR_PULL_ALLOC(ndr, r->monitor_name);
12697 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12699 r->monitor_name = NULL;
12701 ndr->flags = _flags_save_string;
12704 if (ndr_flags & NDR_BUFFERS) {
12706 uint32_t _flags_save_string = ndr->flags;
12707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12708 if (r->monitor_name) {
12709 uint32_t _relative_save_offset;
12710 _relative_save_offset = ndr->offset;
12711 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12712 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12713 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12714 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12716 ndr->offset = _relative_save_offset;
12718 ndr->flags = _flags_save_string;
12721 return NDR_ERR_SUCCESS;
12724 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
12726 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
12728 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12730 if (r->monitor_name) {
12731 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12737 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
12739 if (ndr_flags & NDR_SCALARS) {
12740 NDR_CHECK(ndr_push_align(ndr, 4));
12742 uint32_t _flags_save_string = ndr->flags;
12743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12744 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12745 ndr->flags = _flags_save_string;
12748 uint32_t _flags_save_string = ndr->flags;
12749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12750 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
12751 ndr->flags = _flags_save_string;
12754 uint32_t _flags_save_string = ndr->flags;
12755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12756 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
12757 ndr->flags = _flags_save_string;
12760 if (ndr_flags & NDR_BUFFERS) {
12762 uint32_t _flags_save_string = ndr->flags;
12763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12764 if (r->monitor_name) {
12765 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12766 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12768 ndr->flags = _flags_save_string;
12771 uint32_t _flags_save_string = ndr->flags;
12772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12773 if (r->environment) {
12774 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
12775 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
12777 ndr->flags = _flags_save_string;
12780 uint32_t _flags_save_string = ndr->flags;
12781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12783 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
12784 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
12786 ndr->flags = _flags_save_string;
12789 return NDR_ERR_SUCCESS;
12792 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
12794 uint32_t _ptr_monitor_name;
12795 TALLOC_CTX *_mem_save_monitor_name_0;
12796 uint32_t _ptr_environment;
12797 TALLOC_CTX *_mem_save_environment_0;
12798 uint32_t _ptr_dll_name;
12799 TALLOC_CTX *_mem_save_dll_name_0;
12800 if (ndr_flags & NDR_SCALARS) {
12801 NDR_CHECK(ndr_pull_align(ndr, 4));
12803 uint32_t _flags_save_string = ndr->flags;
12804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12806 if (_ptr_monitor_name) {
12807 NDR_PULL_ALLOC(ndr, r->monitor_name);
12808 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12810 r->monitor_name = NULL;
12812 ndr->flags = _flags_save_string;
12815 uint32_t _flags_save_string = ndr->flags;
12816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
12818 if (_ptr_environment) {
12819 NDR_PULL_ALLOC(ndr, r->environment);
12820 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
12822 r->environment = NULL;
12824 ndr->flags = _flags_save_string;
12827 uint32_t _flags_save_string = ndr->flags;
12828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
12830 if (_ptr_dll_name) {
12831 NDR_PULL_ALLOC(ndr, r->dll_name);
12832 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
12834 r->dll_name = NULL;
12836 ndr->flags = _flags_save_string;
12839 if (ndr_flags & NDR_BUFFERS) {
12841 uint32_t _flags_save_string = ndr->flags;
12842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12843 if (r->monitor_name) {
12844 uint32_t _relative_save_offset;
12845 _relative_save_offset = ndr->offset;
12846 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12847 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12848 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12849 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12851 ndr->offset = _relative_save_offset;
12853 ndr->flags = _flags_save_string;
12856 uint32_t _flags_save_string = ndr->flags;
12857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12858 if (r->environment) {
12859 uint32_t _relative_save_offset;
12860 _relative_save_offset = ndr->offset;
12861 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
12862 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
12863 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
12864 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
12865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
12866 ndr->offset = _relative_save_offset;
12868 ndr->flags = _flags_save_string;
12871 uint32_t _flags_save_string = ndr->flags;
12872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12874 uint32_t _relative_save_offset;
12875 _relative_save_offset = ndr->offset;
12876 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
12877 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12878 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
12879 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
12880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
12881 ndr->offset = _relative_save_offset;
12883 ndr->flags = _flags_save_string;
12886 return NDR_ERR_SUCCESS;
12889 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
12891 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
12893 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12895 if (r->monitor_name) {
12896 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12899 ndr_print_ptr(ndr, "environment", r->environment);
12901 if (r->environment) {
12902 ndr_print_string(ndr, "environment", r->environment);
12905 ndr_print_ptr(ndr, "dll_name", r->dll_name);
12908 ndr_print_string(ndr, "dll_name", r->dll_name);
12914 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
12916 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12917 if (ndr_flags & NDR_SCALARS) {
12918 int level = ndr_push_get_switch_value(ndr, r);
12921 NDR_CHECK(ndr_push_align(ndr, 4));
12922 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12923 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12927 NDR_CHECK(ndr_push_align(ndr, 4));
12928 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12929 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12937 if (ndr_flags & NDR_BUFFERS) {
12938 int level = ndr_push_get_switch_value(ndr, r);
12939 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12942 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12946 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12954 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12955 return NDR_ERR_SUCCESS;
12958 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
12960 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12962 level = ndr_pull_get_switch_value(ndr, r);
12963 if (ndr_flags & NDR_SCALARS) {
12966 NDR_CHECK(ndr_pull_align(ndr, 4));
12967 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12968 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12972 NDR_CHECK(ndr_pull_align(ndr, 4));
12973 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12974 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12982 if (ndr_flags & NDR_BUFFERS) {
12983 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12986 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12990 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12998 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12999 return NDR_ERR_SUCCESS;
13002 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
13005 level = ndr_print_get_switch_value(ndr, r);
13006 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
13009 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
13013 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
13022 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13025 return NDR_ERR_SUCCESS;
13028 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13033 return NDR_ERR_SUCCESS;
13036 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13038 ndr_print_uint32(ndr, name, r);
13040 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
13041 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
13042 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
13043 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
13044 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
13045 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
13046 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
13047 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
13048 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
13049 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
13050 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
13051 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
13052 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
13053 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
13054 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
13055 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
13056 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
13057 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
13058 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
13059 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
13063 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
13065 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13066 return NDR_ERR_SUCCESS;
13069 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
13072 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13074 return NDR_ERR_SUCCESS;
13077 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
13079 const char *val = NULL;
13082 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
13083 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
13084 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
13085 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
13086 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
13087 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
13088 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
13089 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
13090 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
13091 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
13092 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
13093 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
13094 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
13095 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
13096 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
13097 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
13098 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
13099 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
13100 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
13101 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
13102 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
13103 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
13104 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
13105 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
13106 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
13107 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
13109 ndr_print_enum(ndr, name, "ENUM", val, r);
13112 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
13114 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13115 return NDR_ERR_SUCCESS;
13118 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
13121 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13123 return NDR_ERR_SUCCESS;
13126 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
13128 const char *val = NULL;
13131 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
13132 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
13134 ndr_print_enum(ndr, name, "ENUM", val, r);
13137 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
13139 uint32_t cntr_fields_1;
13140 if (ndr_flags & NDR_SCALARS) {
13141 NDR_CHECK(ndr_push_align(ndr, 4));
13142 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13143 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
13144 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
13145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
13146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13147 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
13149 if (ndr_flags & NDR_BUFFERS) {
13151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13152 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13153 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
13157 return NDR_ERR_SUCCESS;
13160 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
13162 uint32_t _ptr_fields;
13163 uint32_t cntr_fields_1;
13164 TALLOC_CTX *_mem_save_fields_0;
13165 TALLOC_CTX *_mem_save_fields_1;
13166 if (ndr_flags & NDR_SCALARS) {
13167 NDR_CHECK(ndr_pull_align(ndr, 4));
13168 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13169 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
13170 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
13171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
13172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13173 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
13175 NDR_PULL_ALLOC(ndr, r->fields);
13180 if (ndr_flags & NDR_BUFFERS) {
13182 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
13183 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13184 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
13185 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
13186 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
13187 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13188 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13189 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
13191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
13192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
13195 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
13198 return NDR_ERR_SUCCESS;
13201 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
13203 uint32_t cntr_fields_1;
13204 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
13206 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13207 ndr_print_uint16(ndr, "u1", r->u1);
13208 ndr_print_uint32(ndr, "u2", r->u2);
13209 ndr_print_uint32(ndr, "u3", r->u3);
13210 ndr_print_uint32(ndr, "count", r->count);
13211 ndr_print_ptr(ndr, "fields", r->fields);
13214 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
13216 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
13218 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
13219 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
13229 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13232 return NDR_ERR_SUCCESS;
13235 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13238 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13240 return NDR_ERR_SUCCESS;
13243 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13245 ndr_print_uint32(ndr, name, r);
13247 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
13251 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
13253 uint32_t cntr_types_1;
13254 if (ndr_flags & NDR_SCALARS) {
13255 NDR_CHECK(ndr_push_align(ndr, 4));
13256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13257 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
13258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13259 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
13261 if (ndr_flags & NDR_BUFFERS) {
13263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13264 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13265 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13267 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13268 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13272 return NDR_ERR_SUCCESS;
13275 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
13277 uint32_t _ptr_types;
13278 uint32_t cntr_types_1;
13279 TALLOC_CTX *_mem_save_types_0;
13280 TALLOC_CTX *_mem_save_types_1;
13281 if (ndr_flags & NDR_SCALARS) {
13282 NDR_CHECK(ndr_pull_align(ndr, 4));
13283 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13284 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
13285 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
13288 NDR_PULL_ALLOC(ndr, r->types);
13293 if (ndr_flags & NDR_BUFFERS) {
13295 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
13296 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13297 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
13298 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
13299 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
13300 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13301 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13302 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13304 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13305 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
13308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
13311 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
13314 return NDR_ERR_SUCCESS;
13317 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
13319 uint32_t cntr_types_1;
13320 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
13322 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13323 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
13324 ndr_print_uint32(ndr, "count", r->count);
13325 ndr_print_ptr(ndr, "types", r->types);
13328 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
13330 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
13332 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
13333 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
13343 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
13345 if (ndr_flags & NDR_SCALARS) {
13346 NDR_CHECK(ndr_push_align(ndr, 4));
13347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
13350 if (ndr_flags & NDR_BUFFERS) {
13352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
13353 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
13356 return NDR_ERR_SUCCESS;
13359 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
13361 uint32_t _ptr_string;
13362 TALLOC_CTX *_mem_save_string_0;
13363 if (ndr_flags & NDR_SCALARS) {
13364 NDR_CHECK(ndr_pull_align(ndr, 4));
13365 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
13368 NDR_PULL_ALLOC(ndr, r->string);
13373 if (ndr_flags & NDR_BUFFERS) {
13375 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
13376 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
13377 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
13378 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
13379 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
13382 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
13385 return NDR_ERR_SUCCESS;
13388 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
13390 ndr_print_struct(ndr, name, "spoolss_NotifyString");
13392 ndr_print_uint32(ndr, "size", r->size);
13393 ndr_print_ptr(ndr, "string", r->string);
13396 ndr_print_string(ndr, "string", r->string);
13402 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
13404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13405 return NDR_ERR_SUCCESS;
13408 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
13411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13413 return NDR_ERR_SUCCESS;
13416 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
13418 const char *val = NULL;
13421 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
13422 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
13423 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
13424 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
13425 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
13427 ndr_print_enum(ndr, name, "ENUM", val, r);
13430 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
13432 if (ndr_flags & NDR_SCALARS) {
13433 int level = ndr_push_get_switch_value(ndr, r);
13434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13437 uint32_t cntr_integer_0;
13438 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
13444 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13448 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
13452 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13456 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13460 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13463 if (ndr_flags & NDR_BUFFERS) {
13464 int level = ndr_push_get_switch_value(ndr, r);
13470 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13475 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
13480 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13484 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13488 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13491 return NDR_ERR_SUCCESS;
13494 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
13498 TALLOC_CTX *_mem_save_devmode_0;
13499 level = ndr_pull_get_switch_value(ndr, r);
13500 if (ndr_flags & NDR_SCALARS) {
13501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13502 if (_level != level) {
13503 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13507 uint32_t cntr_integer_0;
13508 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
13514 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13518 uint32_t _ptr_devmode;
13519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
13520 if (_ptr_devmode) {
13521 NDR_PULL_ALLOC(ndr, r->devmode);
13528 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13532 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13536 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13539 if (ndr_flags & NDR_BUFFERS) {
13545 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13550 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
13551 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
13552 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
13553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
13558 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13562 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13566 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13569 return NDR_ERR_SUCCESS;
13572 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
13575 uint32_t cntr_integer_0;
13576 level = ndr_print_get_switch_value(ndr, r);
13577 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
13580 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
13582 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
13584 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
13585 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
13593 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
13597 ndr_print_ptr(ndr, "devmode", r->devmode);
13600 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
13606 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
13610 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
13614 ndr_print_bad_level(ndr, name, level);
13618 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
13620 if (ndr_flags & NDR_SCALARS) {
13621 NDR_CHECK(ndr_push_align(ndr, 4));
13622 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13623 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
13624 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
13625 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
13626 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
13627 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13629 if (ndr_flags & NDR_BUFFERS) {
13630 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13632 return NDR_ERR_SUCCESS;
13635 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
13637 if (ndr_flags & NDR_SCALARS) {
13638 NDR_CHECK(ndr_pull_align(ndr, 4));
13639 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13640 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
13641 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
13642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
13643 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
13644 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13646 if (ndr_flags & NDR_BUFFERS) {
13647 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13649 return NDR_ERR_SUCCESS;
13652 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
13654 ndr_print_struct(ndr, name, "spoolss_Notify");
13656 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13657 ndr_print_spoolss_Field(ndr, "field", r->field);
13658 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
13659 ndr_print_uint32(ndr, "job_id", r->job_id);
13660 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
13661 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
13665 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
13667 uint32_t cntr_notifies_0;
13668 if (ndr_flags & NDR_SCALARS) {
13669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13670 NDR_CHECK(ndr_push_align(ndr, 4));
13671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13672 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13674 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13675 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13678 if (ndr_flags & NDR_BUFFERS) {
13679 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13680 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13683 return NDR_ERR_SUCCESS;
13686 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
13688 uint32_t cntr_notifies_0;
13689 TALLOC_CTX *_mem_save_notifies_0;
13690 if (ndr_flags & NDR_SCALARS) {
13691 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
13692 NDR_CHECK(ndr_pull_align(ndr, 4));
13693 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13694 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13695 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13696 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
13697 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13698 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13699 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13700 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13704 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
13707 if (ndr_flags & NDR_BUFFERS) {
13708 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13709 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13710 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13711 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13715 return NDR_ERR_SUCCESS;
13718 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
13720 uint32_t cntr_notifies_0;
13721 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
13723 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13724 ndr_print_uint32(ndr, "flags", r->flags);
13725 ndr_print_uint32(ndr, "count", r->count);
13726 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
13728 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
13730 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
13731 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
13739 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
13741 if (ndr_flags & NDR_SCALARS) {
13742 int level = ndr_push_get_switch_value(ndr, r);
13743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13746 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
13750 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13753 if (ndr_flags & NDR_BUFFERS) {
13754 int level = ndr_push_get_switch_value(ndr, r);
13758 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13763 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13766 return NDR_ERR_SUCCESS;
13769 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
13773 TALLOC_CTX *_mem_save_info0_0;
13774 level = ndr_pull_get_switch_value(ndr, r);
13775 if (ndr_flags & NDR_SCALARS) {
13776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13777 if (_level != level) {
13778 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13782 uint32_t _ptr_info0;
13783 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
13785 NDR_PULL_ALLOC(ndr, r->info0);
13792 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13795 if (ndr_flags & NDR_BUFFERS) {
13799 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
13800 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
13801 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
13807 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13810 return NDR_ERR_SUCCESS;
13813 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
13816 level = ndr_print_get_switch_value(ndr, r);
13817 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
13820 ndr_print_ptr(ndr, "info0", r->info0);
13823 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
13829 ndr_print_bad_level(ndr, name, level);
13833 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13836 return NDR_ERR_SUCCESS;
13839 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13842 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13844 return NDR_ERR_SUCCESS;
13847 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13849 ndr_print_uint32(ndr, name, r);
13851 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
13852 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
13853 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
13857 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
13859 if (ndr_flags & NDR_SCALARS) {
13860 NDR_CHECK(ndr_push_align(ndr, 4));
13861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13862 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13865 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13866 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13867 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13869 if (ndr_flags & NDR_BUFFERS) {
13871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13874 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13877 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13878 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13880 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13883 return NDR_ERR_SUCCESS;
13886 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
13888 uint32_t _ptr_client;
13889 TALLOC_CTX *_mem_save_client_0;
13890 uint32_t _ptr_user;
13891 TALLOC_CTX *_mem_save_user_0;
13892 if (ndr_flags & NDR_SCALARS) {
13893 NDR_CHECK(ndr_pull_align(ndr, 4));
13894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
13897 NDR_PULL_ALLOC(ndr, r->client);
13901 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
13903 NDR_PULL_ALLOC(ndr, r->user);
13907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
13908 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
13909 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
13910 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
13912 if (ndr_flags & NDR_BUFFERS) {
13914 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
13915 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
13916 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
13917 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
13918 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
13919 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));
13921 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
13922 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
13923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
13926 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
13927 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
13928 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
13929 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
13930 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
13931 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));
13933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
13934 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
13935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
13938 return NDR_ERR_SUCCESS;
13941 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
13943 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
13945 ndr_print_uint32(ndr, "size", r->size);
13946 ndr_print_ptr(ndr, "client", r->client);
13949 ndr_print_string(ndr, "client", r->client);
13952 ndr_print_ptr(ndr, "user", r->user);
13955 ndr_print_string(ndr, "user", r->user);
13958 ndr_print_uint32(ndr, "build", r->build);
13959 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
13960 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
13961 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
13965 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
13967 if (ndr_flags & NDR_SCALARS) {
13968 NDR_CHECK(ndr_push_align(ndr, 4));
13969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
13971 if (ndr_flags & NDR_BUFFERS) {
13973 return NDR_ERR_SUCCESS;
13976 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
13978 if (ndr_flags & NDR_SCALARS) {
13979 NDR_CHECK(ndr_pull_align(ndr, 4));
13980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
13982 if (ndr_flags & NDR_BUFFERS) {
13984 return NDR_ERR_SUCCESS;
13987 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
13989 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
13991 ndr_print_uint32(ndr, "not_used", r->not_used);
13995 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
13997 if (ndr_flags & NDR_SCALARS) {
13998 NDR_CHECK(ndr_push_align(ndr, 4));
13999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
14000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
14001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
14002 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
14003 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
14004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14005 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
14006 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
14007 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
14008 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
14010 if (ndr_flags & NDR_BUFFERS) {
14012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14015 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14021 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14024 return NDR_ERR_SUCCESS;
14027 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
14029 uint32_t _ptr_client;
14030 TALLOC_CTX *_mem_save_client_0;
14031 uint32_t _ptr_user;
14032 TALLOC_CTX *_mem_save_user_0;
14033 if (ndr_flags & NDR_SCALARS) {
14034 NDR_CHECK(ndr_pull_align(ndr, 4));
14035 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14036 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
14037 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
14038 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
14040 NDR_PULL_ALLOC(ndr, r->client);
14044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
14046 NDR_PULL_ALLOC(ndr, r->user);
14050 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14051 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
14052 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
14053 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
14054 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
14056 if (ndr_flags & NDR_BUFFERS) {
14058 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
14059 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
14060 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
14061 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
14062 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
14063 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));
14065 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
14066 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
14067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
14070 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
14071 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
14072 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
14073 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
14074 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
14075 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));
14077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
14078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
14079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
14082 return NDR_ERR_SUCCESS;
14085 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
14087 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
14089 ndr_print_uint32(ndr, "size", r->size);
14090 ndr_print_uint32(ndr, "flags", r->flags);
14091 ndr_print_uint32(ndr, "size2", r->size2);
14092 ndr_print_ptr(ndr, "client", r->client);
14095 ndr_print_string(ndr, "client", r->client);
14098 ndr_print_ptr(ndr, "user", r->user);
14101 ndr_print_string(ndr, "user", r->user);
14104 ndr_print_uint32(ndr, "build", r->build);
14105 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
14106 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
14107 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
14108 ndr_print_udlong(ndr, "reserved", r->reserved);
14112 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
14114 if (ndr_flags & NDR_SCALARS) {
14115 int level = ndr_push_get_switch_value(ndr, r);
14116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14119 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
14123 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
14127 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
14131 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14134 if (ndr_flags & NDR_BUFFERS) {
14135 int level = ndr_push_get_switch_value(ndr, r);
14139 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14145 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14151 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14156 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14159 return NDR_ERR_SUCCESS;
14162 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
14166 TALLOC_CTX *_mem_save_level1_0;
14167 TALLOC_CTX *_mem_save_level2_0;
14168 TALLOC_CTX *_mem_save_level3_0;
14169 level = ndr_pull_get_switch_value(ndr, r);
14170 if (ndr_flags & NDR_SCALARS) {
14171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14172 if (_level != level) {
14173 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14177 uint32_t _ptr_level1;
14178 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
14180 NDR_PULL_ALLOC(ndr, r->level1);
14187 uint32_t _ptr_level2;
14188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
14190 NDR_PULL_ALLOC(ndr, r->level2);
14197 uint32_t _ptr_level3;
14198 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
14200 NDR_PULL_ALLOC(ndr, r->level3);
14207 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14210 if (ndr_flags & NDR_BUFFERS) {
14214 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14215 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
14216 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
14223 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14224 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
14225 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
14232 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
14233 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
14234 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
14240 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14243 return NDR_ERR_SUCCESS;
14246 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
14249 level = ndr_print_get_switch_value(ndr, r);
14250 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
14253 ndr_print_ptr(ndr, "level1", r->level1);
14256 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
14262 ndr_print_ptr(ndr, "level2", r->level2);
14265 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
14271 ndr_print_ptr(ndr, "level3", r->level3);
14274 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
14280 ndr_print_bad_level(ndr, name, level);
14284 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
14286 if (ndr_flags & NDR_SCALARS) {
14287 NDR_CHECK(ndr_push_align(ndr, 4));
14288 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
14289 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
14290 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14292 if (ndr_flags & NDR_BUFFERS) {
14293 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14295 return NDR_ERR_SUCCESS;
14298 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
14300 if (ndr_flags & NDR_SCALARS) {
14301 NDR_CHECK(ndr_pull_align(ndr, 4));
14302 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
14303 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
14304 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14306 if (ndr_flags & NDR_BUFFERS) {
14307 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14309 return NDR_ERR_SUCCESS;
14312 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
14314 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
14316 ndr_print_uint32(ndr, "level", r->level);
14317 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
14318 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
14322 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14324 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14325 return NDR_ERR_SUCCESS;
14328 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14333 return NDR_ERR_SUCCESS;
14336 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
14338 ndr_print_uint32(ndr, name, r);
14340 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
14341 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
14342 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
14343 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
14344 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
14348 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14351 return NDR_ERR_SUCCESS;
14354 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14359 return NDR_ERR_SUCCESS;
14362 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14364 ndr_print_uint32(ndr, name, r);
14366 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
14367 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
14368 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
14372 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
14374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14375 return NDR_ERR_SUCCESS;
14378 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
14381 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14383 return NDR_ERR_SUCCESS;
14386 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
14388 const char *val = NULL;
14391 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
14392 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
14394 ndr_print_enum(ndr, name, "ENUM", val, r);
14397 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
14399 if (ndr_flags & NDR_SCALARS) {
14400 NDR_CHECK(ndr_push_align(ndr, 4));
14401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
14403 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14409 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14410 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14411 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14417 if (ndr_flags & NDR_BUFFERS) {
14419 return NDR_ERR_SUCCESS;
14422 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
14424 if (ndr_flags & NDR_SCALARS) {
14425 NDR_CHECK(ndr_pull_align(ndr, 4));
14426 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14428 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14431 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14432 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14433 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14434 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14435 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14436 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14437 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14438 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14442 if (ndr_flags & NDR_BUFFERS) {
14444 return NDR_ERR_SUCCESS;
14447 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
14449 ndr_print_struct(ndr, name, "spoolss_PortData1");
14451 ndr_print_string(ndr, "portname", r->portname);
14452 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
14453 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14454 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14455 ndr_print_uint32(ndr, "reserved", r->reserved);
14456 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14457 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14458 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14459 ndr_print_string(ndr, "queue", r->queue);
14460 ndr_print_string(ndr, "ip_address", r->ip_address);
14461 ndr_print_string(ndr, "hardware_address", r->hardware_address);
14462 ndr_print_string(ndr, "device_type", r->device_type);
14463 ndr_print_uint32(ndr, "port_number", r->port_number);
14464 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14465 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14469 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
14471 if (ndr_flags & NDR_SCALARS) {
14472 NDR_CHECK(ndr_push_align(ndr, 4));
14473 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
14475 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14478 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14479 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14481 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14482 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14483 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
14488 if (ndr_flags & NDR_BUFFERS) {
14490 return NDR_ERR_SUCCESS;
14493 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
14495 if (ndr_flags & NDR_SCALARS) {
14496 NDR_CHECK(ndr_pull_align(ndr, 4));
14497 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14498 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14499 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14500 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14502 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14503 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14504 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14505 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14506 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14509 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14510 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
14512 if (ndr_flags & NDR_BUFFERS) {
14514 return NDR_ERR_SUCCESS;
14517 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
14519 ndr_print_struct(ndr, name, "spoolss_PortData2");
14521 ndr_print_string(ndr, "portname", r->portname);
14522 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
14523 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14524 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14525 ndr_print_uint32(ndr, "reserved", r->reserved);
14526 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14527 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14528 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14529 ndr_print_string(ndr, "queue", r->queue);
14530 ndr_print_string(ndr, "device_type", r->device_type);
14531 ndr_print_uint32(ndr, "port_number", r->port_number);
14532 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14533 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14534 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
14538 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
14540 if (ndr_flags & NDR_SCALARS) {
14541 NDR_CHECK(ndr_push_align(ndr, 4));
14543 uint32_t _flags_save_string = ndr->flags;
14544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14545 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
14546 ndr->flags = _flags_save_string;
14549 if (ndr_flags & NDR_BUFFERS) {
14551 return NDR_ERR_SUCCESS;
14554 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
14556 if (ndr_flags & NDR_SCALARS) {
14557 NDR_CHECK(ndr_pull_align(ndr, 4));
14559 uint32_t _flags_save_string = ndr->flags;
14560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14561 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
14562 ndr->flags = _flags_save_string;
14565 if (ndr_flags & NDR_BUFFERS) {
14567 return NDR_ERR_SUCCESS;
14570 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
14572 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
14574 ndr_print_string(ndr, "dll_name", r->dll_name);
14578 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14581 return NDR_ERR_SUCCESS;
14584 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14587 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14589 return NDR_ERR_SUCCESS;
14592 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14594 ndr_print_uint32(ndr, name, r);
14596 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
14597 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
14598 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
14599 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
14600 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
14601 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
14602 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
14603 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
14607 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
14609 if (flags & NDR_IN) {
14610 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
14611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
14612 if (r->in.server) {
14613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14616 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14620 if (r->in.buffer) {
14621 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14625 if (flags & NDR_OUT) {
14626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14628 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
14630 if (r->out.needed == NULL) {
14631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14634 if (r->out.count == NULL) {
14635 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
14638 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14640 return NDR_ERR_SUCCESS;
14643 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
14645 uint32_t _ptr_server;
14646 uint32_t _ptr_buffer;
14647 uint32_t _ptr_info;
14648 TALLOC_CTX *_mem_save_server_0;
14649 TALLOC_CTX *_mem_save_buffer_0;
14650 TALLOC_CTX *_mem_save_info_0;
14651 TALLOC_CTX *_mem_save_needed_0;
14652 TALLOC_CTX *_mem_save_count_0;
14653 if (flags & NDR_IN) {
14654 ZERO_STRUCT(r->out);
14656 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
14657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14659 NDR_PULL_ALLOC(ndr, r->in.server);
14661 r->in.server = NULL;
14663 if (r->in.server) {
14664 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14665 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14666 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14667 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14668 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14669 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));
14671 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14672 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14678 NDR_PULL_ALLOC(ndr, r->in.buffer);
14680 r->in.buffer = NULL;
14682 if (r->in.buffer) {
14683 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14684 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14685 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14688 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14689 NDR_PULL_ALLOC(ndr, r->out.needed);
14690 ZERO_STRUCTP(r->out.needed);
14691 NDR_PULL_ALLOC(ndr, r->out.count);
14692 ZERO_STRUCTP(r->out.count);
14694 if (flags & NDR_OUT) {
14695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14697 NDR_PULL_ALLOC(ndr, r->out.info);
14699 r->out.info = NULL;
14702 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14703 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14704 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
14705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14707 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14708 NDR_PULL_ALLOC(ndr, r->out.needed);
14710 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14711 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14712 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14714 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14715 NDR_PULL_ALLOC(ndr, r->out.count);
14717 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
14718 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
14719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
14720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
14721 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14723 return NDR_ERR_SUCCESS;
14726 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
14728 uint32_t cntr_info_0;
14729 if (flags & NDR_IN) {
14730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14733 if (flags & NDR_OUT) {
14734 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14735 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14736 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14738 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14739 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14742 return NDR_ERR_SUCCESS;
14745 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
14747 uint32_t cntr_info_0;
14748 TALLOC_CTX *_mem_save_info_0;
14749 if (flags & NDR_IN) {
14750 ZERO_STRUCT(r->out);
14752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14755 if (flags & NDR_OUT) {
14756 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
14757 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14758 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14759 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14760 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14761 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14763 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14764 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14768 return NDR_ERR_SUCCESS;
14771 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
14773 uint32_t cntr_info_1;
14774 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
14776 if (flags & NDR_SET_VALUES) {
14777 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14779 if (flags & NDR_IN) {
14780 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
14782 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
14783 ndr_print_ptr(ndr, "server", r->in.server);
14785 if (r->in.server) {
14786 ndr_print_string(ndr, "server", r->in.server);
14789 ndr_print_uint32(ndr, "level", r->in.level);
14790 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14792 if (r->in.buffer) {
14793 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14796 ndr_print_uint32(ndr, "offered", r->in.offered);
14799 if (flags & NDR_OUT) {
14800 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
14802 ndr_print_ptr(ndr, "count", r->out.count);
14804 ndr_print_uint32(ndr, "count", *r->out.count);
14806 ndr_print_ptr(ndr, "info", r->out.info);
14809 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
14811 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
14813 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
14814 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
14815 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
14822 ndr_print_ptr(ndr, "needed", r->out.needed);
14824 ndr_print_uint32(ndr, "needed", *r->out.needed);
14826 ndr_print_WERROR(ndr, "result", r->out.result);
14832 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
14834 if (flags & NDR_IN) {
14835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
14836 if (r->in.printername) {
14837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14840 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
14843 if (r->in.datatype) {
14844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
14845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
14847 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14849 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14850 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
14852 if (flags & NDR_OUT) {
14853 if (r->out.handle == NULL) {
14854 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14856 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14857 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14859 return NDR_ERR_SUCCESS;
14862 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
14864 uint32_t _ptr_printername;
14865 uint32_t _ptr_datatype;
14866 TALLOC_CTX *_mem_save_printername_0;
14867 TALLOC_CTX *_mem_save_datatype_0;
14868 TALLOC_CTX *_mem_save_handle_0;
14869 if (flags & NDR_IN) {
14870 ZERO_STRUCT(r->out);
14872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
14873 if (_ptr_printername) {
14874 NDR_PULL_ALLOC(ndr, r->in.printername);
14876 r->in.printername = NULL;
14878 if (r->in.printername) {
14879 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
14880 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
14881 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
14882 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
14883 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
14884 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));
14886 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
14887 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
14888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
14890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14891 if (_ptr_datatype) {
14892 NDR_PULL_ALLOC(ndr, r->in.datatype);
14894 r->in.datatype = NULL;
14896 if (r->in.datatype) {
14897 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14898 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
14899 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
14900 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
14901 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
14902 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));
14904 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
14905 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
14906 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14908 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14909 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
14910 NDR_PULL_ALLOC(ndr, r->out.handle);
14911 ZERO_STRUCTP(r->out.handle);
14913 if (flags & NDR_OUT) {
14914 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14915 NDR_PULL_ALLOC(ndr, r->out.handle);
14917 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14918 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
14919 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14920 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14921 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14923 return NDR_ERR_SUCCESS;
14926 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
14928 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
14930 if (flags & NDR_SET_VALUES) {
14931 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14933 if (flags & NDR_IN) {
14934 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
14936 ndr_print_ptr(ndr, "printername", r->in.printername);
14938 if (r->in.printername) {
14939 ndr_print_string(ndr, "printername", r->in.printername);
14942 ndr_print_ptr(ndr, "datatype", r->in.datatype);
14944 if (r->in.datatype) {
14945 ndr_print_string(ndr, "datatype", r->in.datatype);
14948 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
14949 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
14952 if (flags & NDR_OUT) {
14953 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
14955 ndr_print_ptr(ndr, "handle", r->out.handle);
14957 ndr_print_policy_handle(ndr, "handle", r->out.handle);
14959 ndr_print_WERROR(ndr, "result", r->out.result);
14965 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
14967 if (flags & NDR_IN) {
14968 if (r->in.handle == NULL) {
14969 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14971 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
14973 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
14975 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14977 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
14979 if (flags & NDR_OUT) {
14980 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14982 return NDR_ERR_SUCCESS;
14985 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
14988 TALLOC_CTX *_mem_save_handle_0;
14989 TALLOC_CTX *_mem_save_ctr_0;
14990 if (flags & NDR_IN) {
14991 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14992 NDR_PULL_ALLOC(ndr, r->in.handle);
14994 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14995 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14996 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14998 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
14999 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
15001 NDR_PULL_ALLOC(ndr, r->in.ctr);
15006 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15007 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
15008 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
15009 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
15011 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
15013 if (flags & NDR_OUT) {
15014 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15016 return NDR_ERR_SUCCESS;
15019 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
15021 ndr_print_struct(ndr, name, "spoolss_SetJob");
15023 if (flags & NDR_SET_VALUES) {
15024 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15026 if (flags & NDR_IN) {
15027 ndr_print_struct(ndr, "in", "spoolss_SetJob");
15029 ndr_print_ptr(ndr, "handle", r->in.handle);
15031 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15033 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15034 ndr_print_ptr(ndr, "ctr", r->in.ctr);
15037 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
15040 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
15043 if (flags & NDR_OUT) {
15044 ndr_print_struct(ndr, "out", "spoolss_SetJob");
15046 ndr_print_WERROR(ndr, "result", r->out.result);
15052 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
15054 if (flags & NDR_IN) {
15055 if (r->in.handle == NULL) {
15056 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15058 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
15060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15061 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15062 if (r->in.buffer) {
15063 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15067 if (flags & NDR_OUT) {
15068 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15071 struct ndr_push *_ndr_info;
15072 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15073 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15074 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15075 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15078 if (r->out.needed == NULL) {
15079 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15082 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15084 return NDR_ERR_SUCCESS;
15087 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
15089 uint32_t _ptr_buffer;
15090 uint32_t _ptr_info;
15091 TALLOC_CTX *_mem_save_handle_0;
15092 TALLOC_CTX *_mem_save_buffer_0;
15093 TALLOC_CTX *_mem_save_info_0;
15094 TALLOC_CTX *_mem_save_needed_0;
15095 if (flags & NDR_IN) {
15096 ZERO_STRUCT(r->out);
15098 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15099 NDR_PULL_ALLOC(ndr, r->in.handle);
15101 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15102 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15103 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
15106 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15109 NDR_PULL_ALLOC(ndr, r->in.buffer);
15111 r->in.buffer = NULL;
15113 if (r->in.buffer) {
15114 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15115 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15116 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15117 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15119 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15120 NDR_PULL_ALLOC(ndr, r->out.needed);
15121 ZERO_STRUCTP(r->out.needed);
15123 if (flags & NDR_OUT) {
15124 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15126 NDR_PULL_ALLOC(ndr, r->out.info);
15128 r->out.info = NULL;
15131 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15132 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15134 struct ndr_pull *_ndr_info;
15135 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15136 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15137 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15138 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15140 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15142 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15143 NDR_PULL_ALLOC(ndr, r->out.needed);
15145 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15146 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15147 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15148 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15149 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15151 return NDR_ERR_SUCCESS;
15154 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
15156 ndr_print_struct(ndr, name, "spoolss_GetJob");
15158 if (flags & NDR_SET_VALUES) {
15159 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15161 if (flags & NDR_IN) {
15162 ndr_print_struct(ndr, "in", "spoolss_GetJob");
15164 ndr_print_ptr(ndr, "handle", r->in.handle);
15166 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15168 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15169 ndr_print_uint32(ndr, "level", r->in.level);
15170 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15172 if (r->in.buffer) {
15173 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15176 ndr_print_uint32(ndr, "offered", r->in.offered);
15179 if (flags & NDR_OUT) {
15180 ndr_print_struct(ndr, "out", "spoolss_GetJob");
15182 ndr_print_ptr(ndr, "info", r->out.info);
15185 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15186 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
15189 ndr_print_ptr(ndr, "needed", r->out.needed);
15191 ndr_print_uint32(ndr, "needed", *r->out.needed);
15193 ndr_print_WERROR(ndr, "result", r->out.result);
15199 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
15201 if (flags & NDR_IN) {
15202 if (r->in.handle == NULL) {
15203 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15205 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
15207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
15208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15209 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15210 if (r->in.buffer) {
15211 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15215 if (flags & NDR_OUT) {
15216 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15218 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15220 if (r->out.needed == NULL) {
15221 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15224 if (r->out.count == NULL) {
15225 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15228 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15230 return NDR_ERR_SUCCESS;
15233 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
15235 uint32_t _ptr_buffer;
15236 uint32_t _ptr_info;
15237 TALLOC_CTX *_mem_save_handle_0;
15238 TALLOC_CTX *_mem_save_buffer_0;
15239 TALLOC_CTX *_mem_save_info_0;
15240 TALLOC_CTX *_mem_save_needed_0;
15241 TALLOC_CTX *_mem_save_count_0;
15242 if (flags & NDR_IN) {
15243 ZERO_STRUCT(r->out);
15245 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15246 NDR_PULL_ALLOC(ndr, r->in.handle);
15248 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15249 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15250 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15252 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
15253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
15254 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15255 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15257 NDR_PULL_ALLOC(ndr, r->in.buffer);
15259 r->in.buffer = NULL;
15261 if (r->in.buffer) {
15262 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15263 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15264 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15267 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15268 NDR_PULL_ALLOC(ndr, r->out.needed);
15269 ZERO_STRUCTP(r->out.needed);
15270 NDR_PULL_ALLOC(ndr, r->out.count);
15271 ZERO_STRUCTP(r->out.count);
15273 if (flags & NDR_OUT) {
15274 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15276 NDR_PULL_ALLOC(ndr, r->out.info);
15278 r->out.info = NULL;
15281 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15282 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15283 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15286 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15287 NDR_PULL_ALLOC(ndr, r->out.needed);
15289 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15290 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15291 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15292 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15293 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15294 NDR_PULL_ALLOC(ndr, r->out.count);
15296 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15297 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15298 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15300 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15302 return NDR_ERR_SUCCESS;
15305 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
15307 uint32_t cntr_info_0;
15308 if (flags & NDR_IN) {
15309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15312 if (flags & NDR_OUT) {
15313 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15314 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15315 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15317 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15318 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15321 return NDR_ERR_SUCCESS;
15324 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
15326 uint32_t cntr_info_0;
15327 TALLOC_CTX *_mem_save_info_0;
15328 if (flags & NDR_IN) {
15329 ZERO_STRUCT(r->out);
15331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15334 if (flags & NDR_OUT) {
15335 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15336 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15337 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15338 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15339 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15340 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15342 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15343 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15347 return NDR_ERR_SUCCESS;
15350 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
15352 uint32_t cntr_info_1;
15353 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
15355 if (flags & NDR_SET_VALUES) {
15356 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15358 if (flags & NDR_IN) {
15359 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
15361 ndr_print_ptr(ndr, "handle", r->in.handle);
15363 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15365 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
15366 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
15367 ndr_print_uint32(ndr, "level", r->in.level);
15368 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15370 if (r->in.buffer) {
15371 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15374 ndr_print_uint32(ndr, "offered", r->in.offered);
15377 if (flags & NDR_OUT) {
15378 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
15380 ndr_print_ptr(ndr, "count", r->out.count);
15382 ndr_print_uint32(ndr, "count", *r->out.count);
15384 ndr_print_ptr(ndr, "info", r->out.info);
15387 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15389 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15391 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15392 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15393 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
15400 ndr_print_ptr(ndr, "needed", r->out.needed);
15402 ndr_print_uint32(ndr, "needed", *r->out.needed);
15404 ndr_print_WERROR(ndr, "result", r->out.result);
15410 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
15412 if (flags & NDR_IN) {
15414 if (flags & NDR_OUT) {
15415 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15417 return NDR_ERR_SUCCESS;
15420 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
15422 if (flags & NDR_IN) {
15424 if (flags & NDR_OUT) {
15425 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15427 return NDR_ERR_SUCCESS;
15430 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
15432 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
15434 if (flags & NDR_SET_VALUES) {
15435 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15437 if (flags & NDR_IN) {
15438 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
15442 if (flags & NDR_OUT) {
15443 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
15445 ndr_print_WERROR(ndr, "result", r->out.result);
15451 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
15453 if (flags & NDR_IN) {
15454 if (r->in.handle == NULL) {
15455 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15457 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15459 if (flags & NDR_OUT) {
15460 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15462 return NDR_ERR_SUCCESS;
15465 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
15467 TALLOC_CTX *_mem_save_handle_0;
15468 if (flags & NDR_IN) {
15469 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15470 NDR_PULL_ALLOC(ndr, r->in.handle);
15472 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15473 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15474 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15477 if (flags & NDR_OUT) {
15478 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15480 return NDR_ERR_SUCCESS;
15483 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
15485 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
15487 if (flags & NDR_SET_VALUES) {
15488 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15490 if (flags & NDR_IN) {
15491 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
15493 ndr_print_ptr(ndr, "handle", r->in.handle);
15495 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15499 if (flags & NDR_OUT) {
15500 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
15502 ndr_print_WERROR(ndr, "result", r->out.result);
15508 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
15510 if (flags & NDR_IN) {
15511 if (r->in.handle == NULL) {
15512 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15514 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15515 if (r->in.info_ctr == NULL) {
15516 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15518 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15519 if (r->in.devmode_ctr == NULL) {
15520 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15522 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15523 if (r->in.secdesc_ctr == NULL) {
15524 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15526 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15527 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
15529 if (flags & NDR_OUT) {
15530 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15532 return NDR_ERR_SUCCESS;
15535 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
15537 TALLOC_CTX *_mem_save_handle_0;
15538 TALLOC_CTX *_mem_save_info_ctr_0;
15539 TALLOC_CTX *_mem_save_devmode_ctr_0;
15540 TALLOC_CTX *_mem_save_secdesc_ctr_0;
15541 if (flags & NDR_IN) {
15542 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15543 NDR_PULL_ALLOC(ndr, r->in.handle);
15545 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15546 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15547 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15549 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15550 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15552 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15553 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15554 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15556 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15557 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
15559 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15560 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
15561 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15563 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15564 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
15566 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15567 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
15568 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15569 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15570 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
15572 if (flags & NDR_OUT) {
15573 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15575 return NDR_ERR_SUCCESS;
15578 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
15580 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
15582 if (flags & NDR_SET_VALUES) {
15583 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15585 if (flags & NDR_IN) {
15586 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
15588 ndr_print_ptr(ndr, "handle", r->in.handle);
15590 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15592 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15594 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15596 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
15598 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
15600 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15602 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15604 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
15607 if (flags & NDR_OUT) {
15608 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
15610 ndr_print_WERROR(ndr, "result", r->out.result);
15616 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
15618 if (flags & NDR_IN) {
15619 if (r->in.handle == NULL) {
15620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15622 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15624 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15625 if (r->in.buffer) {
15626 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15630 if (flags & NDR_OUT) {
15631 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15634 struct ndr_push *_ndr_info;
15635 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15636 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15637 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15638 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15641 if (r->out.needed == NULL) {
15642 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15645 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15647 return NDR_ERR_SUCCESS;
15650 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
15652 uint32_t _ptr_buffer;
15653 uint32_t _ptr_info;
15654 TALLOC_CTX *_mem_save_handle_0;
15655 TALLOC_CTX *_mem_save_buffer_0;
15656 TALLOC_CTX *_mem_save_info_0;
15657 TALLOC_CTX *_mem_save_needed_0;
15658 if (flags & NDR_IN) {
15659 ZERO_STRUCT(r->out);
15661 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15662 NDR_PULL_ALLOC(ndr, r->in.handle);
15664 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15665 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15666 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15667 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15671 NDR_PULL_ALLOC(ndr, r->in.buffer);
15673 r->in.buffer = NULL;
15675 if (r->in.buffer) {
15676 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15677 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15678 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15681 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15682 NDR_PULL_ALLOC(ndr, r->out.needed);
15683 ZERO_STRUCTP(r->out.needed);
15685 if (flags & NDR_OUT) {
15686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15688 NDR_PULL_ALLOC(ndr, r->out.info);
15690 r->out.info = NULL;
15693 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15694 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15696 struct ndr_pull *_ndr_info;
15697 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15698 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15699 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15700 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15704 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15705 NDR_PULL_ALLOC(ndr, r->out.needed);
15707 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15708 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15711 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15713 return NDR_ERR_SUCCESS;
15716 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
15718 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
15720 if (flags & NDR_SET_VALUES) {
15721 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15723 if (flags & NDR_IN) {
15724 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
15726 ndr_print_ptr(ndr, "handle", r->in.handle);
15728 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15730 ndr_print_uint32(ndr, "level", r->in.level);
15731 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15733 if (r->in.buffer) {
15734 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15737 ndr_print_uint32(ndr, "offered", r->in.offered);
15740 if (flags & NDR_OUT) {
15741 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
15743 ndr_print_ptr(ndr, "info", r->out.info);
15746 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15747 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
15750 ndr_print_ptr(ndr, "needed", r->out.needed);
15752 ndr_print_uint32(ndr, "needed", *r->out.needed);
15754 ndr_print_WERROR(ndr, "result", r->out.result);
15760 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
15762 if (flags & NDR_IN) {
15763 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
15764 if (r->in.servername) {
15765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15766 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15767 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15768 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15770 if (r->in.info_ctr == NULL) {
15771 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15773 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15775 if (flags & NDR_OUT) {
15776 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15778 return NDR_ERR_SUCCESS;
15781 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
15783 uint32_t _ptr_servername;
15784 TALLOC_CTX *_mem_save_servername_0;
15785 TALLOC_CTX *_mem_save_info_ctr_0;
15786 if (flags & NDR_IN) {
15787 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
15788 if (_ptr_servername) {
15789 NDR_PULL_ALLOC(ndr, r->in.servername);
15791 r->in.servername = NULL;
15793 if (r->in.servername) {
15794 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
15795 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
15796 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
15797 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
15798 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
15799 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));
15801 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
15802 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
15803 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
15805 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15806 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15808 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15809 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15810 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15813 if (flags & NDR_OUT) {
15814 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15816 return NDR_ERR_SUCCESS;
15819 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
15821 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
15823 if (flags & NDR_SET_VALUES) {
15824 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15826 if (flags & NDR_IN) {
15827 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
15829 ndr_print_ptr(ndr, "servername", r->in.servername);
15831 if (r->in.servername) {
15832 ndr_print_string(ndr, "servername", r->in.servername);
15835 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15837 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15841 if (flags & NDR_OUT) {
15842 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
15844 ndr_print_WERROR(ndr, "result", r->out.result);
15850 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
15852 if (flags & NDR_IN) {
15853 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
15854 if (r->in.server) {
15855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15858 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15860 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
15861 if (r->in.environment) {
15862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15865 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15868 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15869 if (r->in.buffer) {
15870 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15872 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15874 if (flags & NDR_OUT) {
15875 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15877 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15879 if (r->out.needed == NULL) {
15880 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15883 if (r->out.count == NULL) {
15884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15886 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15889 return NDR_ERR_SUCCESS;
15892 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
15894 uint32_t _ptr_server;
15895 uint32_t _ptr_environment;
15896 uint32_t _ptr_buffer;
15897 uint32_t _ptr_info;
15898 TALLOC_CTX *_mem_save_server_0;
15899 TALLOC_CTX *_mem_save_environment_0;
15900 TALLOC_CTX *_mem_save_buffer_0;
15901 TALLOC_CTX *_mem_save_info_0;
15902 TALLOC_CTX *_mem_save_needed_0;
15903 TALLOC_CTX *_mem_save_count_0;
15904 if (flags & NDR_IN) {
15905 ZERO_STRUCT(r->out);
15907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
15909 NDR_PULL_ALLOC(ndr, r->in.server);
15911 r->in.server = NULL;
15913 if (r->in.server) {
15914 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
15915 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
15916 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
15917 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
15918 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
15919 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));
15921 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
15922 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
15923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
15925 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
15926 if (_ptr_environment) {
15927 NDR_PULL_ALLOC(ndr, r->in.environment);
15929 r->in.environment = NULL;
15931 if (r->in.environment) {
15932 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
15933 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
15934 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
15935 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
15936 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
15937 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));
15939 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
15940 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
15941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
15943 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15946 NDR_PULL_ALLOC(ndr, r->in.buffer);
15948 r->in.buffer = NULL;
15950 if (r->in.buffer) {
15951 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15952 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15953 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15957 NDR_PULL_ALLOC(ndr, r->out.needed);
15958 ZERO_STRUCTP(r->out.needed);
15959 NDR_PULL_ALLOC(ndr, r->out.count);
15960 ZERO_STRUCTP(r->out.count);
15962 if (flags & NDR_OUT) {
15963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15965 NDR_PULL_ALLOC(ndr, r->out.info);
15967 r->out.info = NULL;
15970 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15971 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15972 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15973 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15975 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15976 NDR_PULL_ALLOC(ndr, r->out.needed);
15978 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15979 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15981 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15982 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15983 NDR_PULL_ALLOC(ndr, r->out.count);
15985 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15986 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15988 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15989 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15991 return NDR_ERR_SUCCESS;
15994 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
15996 uint32_t cntr_info_0;
15997 if (flags & NDR_IN) {
15998 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16001 if (flags & NDR_OUT) {
16002 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16003 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16004 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16006 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16007 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16010 return NDR_ERR_SUCCESS;
16013 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
16015 uint32_t cntr_info_0;
16016 TALLOC_CTX *_mem_save_info_0;
16017 if (flags & NDR_IN) {
16018 ZERO_STRUCT(r->out);
16020 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16021 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16023 if (flags & NDR_OUT) {
16024 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16025 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16026 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16027 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16028 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16029 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16031 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16032 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16034 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16036 return NDR_ERR_SUCCESS;
16039 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
16041 uint32_t cntr_info_1;
16042 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
16044 if (flags & NDR_SET_VALUES) {
16045 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16047 if (flags & NDR_IN) {
16048 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
16050 ndr_print_ptr(ndr, "server", r->in.server);
16052 if (r->in.server) {
16053 ndr_print_string(ndr, "server", r->in.server);
16056 ndr_print_ptr(ndr, "environment", r->in.environment);
16058 if (r->in.environment) {
16059 ndr_print_string(ndr, "environment", r->in.environment);
16062 ndr_print_uint32(ndr, "level", r->in.level);
16063 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16065 if (r->in.buffer) {
16066 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16069 ndr_print_uint32(ndr, "offered", r->in.offered);
16072 if (flags & NDR_OUT) {
16073 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
16075 ndr_print_ptr(ndr, "count", r->out.count);
16077 ndr_print_uint32(ndr, "count", *r->out.count);
16079 ndr_print_ptr(ndr, "info", r->out.info);
16082 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16084 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16086 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16087 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16088 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
16095 ndr_print_ptr(ndr, "needed", r->out.needed);
16097 ndr_print_uint32(ndr, "needed", *r->out.needed);
16099 ndr_print_WERROR(ndr, "result", r->out.result);
16105 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
16107 if (flags & NDR_IN) {
16109 if (flags & NDR_OUT) {
16110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16112 return NDR_ERR_SUCCESS;
16115 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
16117 if (flags & NDR_IN) {
16119 if (flags & NDR_OUT) {
16120 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16122 return NDR_ERR_SUCCESS;
16125 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
16127 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
16129 if (flags & NDR_SET_VALUES) {
16130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16132 if (flags & NDR_IN) {
16133 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
16137 if (flags & NDR_OUT) {
16138 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
16140 ndr_print_WERROR(ndr, "result", r->out.result);
16146 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16148 if (flags & NDR_IN) {
16149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16150 if (r->in.server) {
16151 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16153 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16154 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16156 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16157 if (r->in.environment) {
16158 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16159 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16160 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16161 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16163 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16164 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16165 if (r->in.buffer) {
16166 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16168 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16170 if (flags & NDR_OUT) {
16171 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16174 struct ndr_push *_ndr_info;
16175 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16176 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16177 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16178 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16181 if (r->out.needed == NULL) {
16182 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16185 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16187 return NDR_ERR_SUCCESS;
16190 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
16192 uint32_t _ptr_server;
16193 uint32_t _ptr_environment;
16194 uint32_t _ptr_buffer;
16195 uint32_t _ptr_info;
16196 TALLOC_CTX *_mem_save_server_0;
16197 TALLOC_CTX *_mem_save_environment_0;
16198 TALLOC_CTX *_mem_save_buffer_0;
16199 TALLOC_CTX *_mem_save_info_0;
16200 TALLOC_CTX *_mem_save_needed_0;
16201 if (flags & NDR_IN) {
16202 ZERO_STRUCT(r->out);
16204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16206 NDR_PULL_ALLOC(ndr, r->in.server);
16208 r->in.server = NULL;
16210 if (r->in.server) {
16211 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16212 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16213 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16214 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16215 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16216 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));
16218 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16219 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16222 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16223 if (_ptr_environment) {
16224 NDR_PULL_ALLOC(ndr, r->in.environment);
16226 r->in.environment = NULL;
16228 if (r->in.environment) {
16229 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16230 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16231 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16232 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16233 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16234 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));
16236 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16237 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16240 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16241 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16243 NDR_PULL_ALLOC(ndr, r->in.buffer);
16245 r->in.buffer = NULL;
16247 if (r->in.buffer) {
16248 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16249 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16250 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16254 NDR_PULL_ALLOC(ndr, r->out.needed);
16255 ZERO_STRUCTP(r->out.needed);
16257 if (flags & NDR_OUT) {
16258 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16260 NDR_PULL_ALLOC(ndr, r->out.info);
16262 r->out.info = NULL;
16265 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16266 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16268 struct ndr_pull *_ndr_info;
16269 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16270 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16271 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16272 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16276 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16277 NDR_PULL_ALLOC(ndr, r->out.needed);
16279 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16280 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16281 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16283 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16285 return NDR_ERR_SUCCESS;
16288 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16290 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
16292 if (flags & NDR_SET_VALUES) {
16293 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16295 if (flags & NDR_IN) {
16296 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
16298 ndr_print_ptr(ndr, "server", r->in.server);
16300 if (r->in.server) {
16301 ndr_print_string(ndr, "server", r->in.server);
16304 ndr_print_ptr(ndr, "environment", r->in.environment);
16306 if (r->in.environment) {
16307 ndr_print_string(ndr, "environment", r->in.environment);
16310 ndr_print_uint32(ndr, "level", r->in.level);
16311 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16313 if (r->in.buffer) {
16314 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16317 ndr_print_uint32(ndr, "offered", r->in.offered);
16320 if (flags & NDR_OUT) {
16321 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
16323 ndr_print_ptr(ndr, "info", r->out.info);
16326 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16327 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
16330 ndr_print_ptr(ndr, "needed", r->out.needed);
16332 ndr_print_uint32(ndr, "needed", *r->out.needed);
16334 ndr_print_WERROR(ndr, "result", r->out.result);
16340 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
16342 if (flags & NDR_IN) {
16343 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16344 if (r->in.server) {
16345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16348 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16352 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16353 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16357 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16359 if (flags & NDR_OUT) {
16360 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16362 return NDR_ERR_SUCCESS;
16365 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
16367 uint32_t _ptr_server;
16368 TALLOC_CTX *_mem_save_server_0;
16369 if (flags & NDR_IN) {
16370 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16372 NDR_PULL_ALLOC(ndr, r->in.server);
16374 r->in.server = NULL;
16376 if (r->in.server) {
16377 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16378 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16379 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16380 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16381 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16382 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));
16384 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16385 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16388 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16389 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16390 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16391 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));
16393 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16394 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16395 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
16396 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
16397 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
16398 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));
16400 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
16401 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
16403 if (flags & NDR_OUT) {
16404 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16406 return NDR_ERR_SUCCESS;
16409 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
16411 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
16413 if (flags & NDR_SET_VALUES) {
16414 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16416 if (flags & NDR_IN) {
16417 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
16419 ndr_print_ptr(ndr, "server", r->in.server);
16421 if (r->in.server) {
16422 ndr_print_string(ndr, "server", r->in.server);
16425 ndr_print_string(ndr, "architecture", r->in.architecture);
16426 ndr_print_string(ndr, "driver", r->in.driver);
16429 if (flags & NDR_OUT) {
16430 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
16432 ndr_print_WERROR(ndr, "result", r->out.result);
16438 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
16440 if (flags & NDR_IN) {
16441 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16442 if (r->in.server) {
16443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16446 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16455 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));
16456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16459 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));
16461 if (flags & NDR_OUT) {
16462 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16464 return NDR_ERR_SUCCESS;
16467 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
16469 uint32_t _ptr_server;
16470 TALLOC_CTX *_mem_save_server_0;
16471 if (flags & NDR_IN) {
16472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16474 NDR_PULL_ALLOC(ndr, r->in.server);
16476 r->in.server = NULL;
16478 if (r->in.server) {
16479 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16480 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16481 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16482 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16483 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16484 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));
16486 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16487 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16490 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16491 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16492 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16493 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));
16495 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16496 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16497 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
16498 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
16499 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
16500 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));
16502 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
16503 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));
16504 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
16505 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
16506 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
16507 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));
16509 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
16510 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));
16512 if (flags & NDR_OUT) {
16513 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16515 return NDR_ERR_SUCCESS;
16518 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
16520 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
16522 if (flags & NDR_SET_VALUES) {
16523 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16525 if (flags & NDR_IN) {
16526 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
16528 ndr_print_ptr(ndr, "server", r->in.server);
16530 if (r->in.server) {
16531 ndr_print_string(ndr, "server", r->in.server);
16534 ndr_print_string(ndr, "architecture", r->in.architecture);
16535 ndr_print_string(ndr, "path_name", r->in.path_name);
16536 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
16539 if (flags & NDR_OUT) {
16540 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
16542 ndr_print_WERROR(ndr, "result", r->out.result);
16548 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
16550 if (flags & NDR_IN) {
16551 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16552 if (r->in.servername) {
16553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16556 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16558 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16559 if (r->in.environment) {
16560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16561 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16563 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16566 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16567 if (r->in.buffer) {
16568 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16570 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16572 if (flags & NDR_OUT) {
16573 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16575 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16577 if (r->out.needed == NULL) {
16578 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16580 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16581 if (r->out.count == NULL) {
16582 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
16585 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16587 return NDR_ERR_SUCCESS;
16590 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
16592 uint32_t _ptr_servername;
16593 uint32_t _ptr_environment;
16594 uint32_t _ptr_buffer;
16595 uint32_t _ptr_info;
16596 TALLOC_CTX *_mem_save_servername_0;
16597 TALLOC_CTX *_mem_save_environment_0;
16598 TALLOC_CTX *_mem_save_buffer_0;
16599 TALLOC_CTX *_mem_save_info_0;
16600 TALLOC_CTX *_mem_save_needed_0;
16601 TALLOC_CTX *_mem_save_count_0;
16602 if (flags & NDR_IN) {
16603 ZERO_STRUCT(r->out);
16605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16606 if (_ptr_servername) {
16607 NDR_PULL_ALLOC(ndr, r->in.servername);
16609 r->in.servername = NULL;
16611 if (r->in.servername) {
16612 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16613 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16614 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16615 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16616 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16617 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));
16619 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16620 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16624 if (_ptr_environment) {
16625 NDR_PULL_ALLOC(ndr, r->in.environment);
16627 r->in.environment = NULL;
16629 if (r->in.environment) {
16630 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16631 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16632 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16633 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16634 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16635 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));
16637 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16641 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16644 NDR_PULL_ALLOC(ndr, r->in.buffer);
16646 r->in.buffer = NULL;
16648 if (r->in.buffer) {
16649 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16650 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16651 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16652 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16654 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16655 NDR_PULL_ALLOC(ndr, r->out.needed);
16656 ZERO_STRUCTP(r->out.needed);
16657 NDR_PULL_ALLOC(ndr, r->out.count);
16658 ZERO_STRUCTP(r->out.count);
16660 if (flags & NDR_OUT) {
16661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16663 NDR_PULL_ALLOC(ndr, r->out.info);
16665 r->out.info = NULL;
16668 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16669 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16670 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16673 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16674 NDR_PULL_ALLOC(ndr, r->out.needed);
16676 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16677 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16679 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16680 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16681 NDR_PULL_ALLOC(ndr, r->out.count);
16683 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16684 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16687 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16689 return NDR_ERR_SUCCESS;
16692 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
16694 uint32_t cntr_info_0;
16695 if (flags & NDR_IN) {
16696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16697 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16699 if (flags & NDR_OUT) {
16700 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16701 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16702 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16704 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16705 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16708 return NDR_ERR_SUCCESS;
16711 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
16713 uint32_t cntr_info_0;
16714 TALLOC_CTX *_mem_save_info_0;
16715 if (flags & NDR_IN) {
16716 ZERO_STRUCT(r->out);
16718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16721 if (flags & NDR_OUT) {
16722 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16723 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16724 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16725 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16726 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16727 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16729 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16730 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16734 return NDR_ERR_SUCCESS;
16737 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
16739 uint32_t cntr_info_1;
16740 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
16742 if (flags & NDR_SET_VALUES) {
16743 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16745 if (flags & NDR_IN) {
16746 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
16748 ndr_print_ptr(ndr, "servername", r->in.servername);
16750 if (r->in.servername) {
16751 ndr_print_string(ndr, "servername", r->in.servername);
16754 ndr_print_ptr(ndr, "environment", r->in.environment);
16756 if (r->in.environment) {
16757 ndr_print_string(ndr, "environment", r->in.environment);
16760 ndr_print_uint32(ndr, "level", r->in.level);
16761 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16763 if (r->in.buffer) {
16764 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16767 ndr_print_uint32(ndr, "offered", r->in.offered);
16770 if (flags & NDR_OUT) {
16771 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
16773 ndr_print_ptr(ndr, "count", r->out.count);
16775 ndr_print_uint32(ndr, "count", *r->out.count);
16777 ndr_print_ptr(ndr, "info", r->out.info);
16780 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16782 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16784 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16785 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16786 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
16793 ndr_print_ptr(ndr, "needed", r->out.needed);
16795 ndr_print_uint32(ndr, "needed", *r->out.needed);
16797 ndr_print_WERROR(ndr, "result", r->out.result);
16803 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16805 if (flags & NDR_IN) {
16806 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16807 if (r->in.server) {
16808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16809 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16811 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16813 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16814 if (r->in.environment) {
16815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16818 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16821 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16822 if (r->in.buffer) {
16823 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16827 if (flags & NDR_OUT) {
16828 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16831 struct ndr_push *_ndr_info;
16832 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16833 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16834 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16835 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16838 if (r->out.needed == NULL) {
16839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16842 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16844 return NDR_ERR_SUCCESS;
16847 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
16849 uint32_t _ptr_server;
16850 uint32_t _ptr_environment;
16851 uint32_t _ptr_buffer;
16852 uint32_t _ptr_info;
16853 TALLOC_CTX *_mem_save_server_0;
16854 TALLOC_CTX *_mem_save_environment_0;
16855 TALLOC_CTX *_mem_save_buffer_0;
16856 TALLOC_CTX *_mem_save_info_0;
16857 TALLOC_CTX *_mem_save_needed_0;
16858 if (flags & NDR_IN) {
16859 ZERO_STRUCT(r->out);
16861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16863 NDR_PULL_ALLOC(ndr, r->in.server);
16865 r->in.server = NULL;
16867 if (r->in.server) {
16868 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16869 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16870 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16871 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16872 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16873 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));
16875 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16876 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16880 if (_ptr_environment) {
16881 NDR_PULL_ALLOC(ndr, r->in.environment);
16883 r->in.environment = NULL;
16885 if (r->in.environment) {
16886 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16887 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16888 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16889 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16890 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16891 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));
16893 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16894 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16895 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16897 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16900 NDR_PULL_ALLOC(ndr, r->in.buffer);
16902 r->in.buffer = NULL;
16904 if (r->in.buffer) {
16905 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16906 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16907 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16911 NDR_PULL_ALLOC(ndr, r->out.needed);
16912 ZERO_STRUCTP(r->out.needed);
16914 if (flags & NDR_OUT) {
16915 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16917 NDR_PULL_ALLOC(ndr, r->out.info);
16919 r->out.info = NULL;
16922 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16923 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16925 struct ndr_pull *_ndr_info;
16926 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16927 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16928 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16929 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16933 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16934 NDR_PULL_ALLOC(ndr, r->out.needed);
16936 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16937 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16939 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16940 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16942 return NDR_ERR_SUCCESS;
16945 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16947 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
16949 if (flags & NDR_SET_VALUES) {
16950 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16952 if (flags & NDR_IN) {
16953 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
16955 ndr_print_ptr(ndr, "server", r->in.server);
16957 if (r->in.server) {
16958 ndr_print_string(ndr, "server", r->in.server);
16961 ndr_print_ptr(ndr, "environment", r->in.environment);
16963 if (r->in.environment) {
16964 ndr_print_string(ndr, "environment", r->in.environment);
16967 ndr_print_uint32(ndr, "level", r->in.level);
16968 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16970 if (r->in.buffer) {
16971 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16974 ndr_print_uint32(ndr, "offered", r->in.offered);
16977 if (flags & NDR_OUT) {
16978 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
16980 ndr_print_ptr(ndr, "info", r->out.info);
16983 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16984 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
16987 ndr_print_ptr(ndr, "needed", r->out.needed);
16989 ndr_print_uint32(ndr, "needed", *r->out.needed);
16991 ndr_print_WERROR(ndr, "result", r->out.result);
16997 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
16999 if (flags & NDR_IN) {
17000 if (r->in.handle == NULL) {
17001 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17003 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17005 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
17006 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17008 if (flags & NDR_OUT) {
17009 if (r->out.job_id == NULL) {
17010 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
17013 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17015 return NDR_ERR_SUCCESS;
17018 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
17020 TALLOC_CTX *_mem_save_handle_0;
17021 TALLOC_CTX *_mem_save_job_id_0;
17022 if (flags & NDR_IN) {
17023 ZERO_STRUCT(r->out);
17025 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17026 NDR_PULL_ALLOC(ndr, r->in.handle);
17028 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17029 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17030 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17033 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
17034 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17035 NDR_PULL_ALLOC(ndr, r->out.job_id);
17036 ZERO_STRUCTP(r->out.job_id);
17038 if (flags & NDR_OUT) {
17039 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17040 NDR_PULL_ALLOC(ndr, r->out.job_id);
17042 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
17043 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
17044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
17045 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
17046 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17048 return NDR_ERR_SUCCESS;
17051 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
17053 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
17055 if (flags & NDR_SET_VALUES) {
17056 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17058 if (flags & NDR_IN) {
17059 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
17061 ndr_print_ptr(ndr, "handle", r->in.handle);
17063 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17065 ndr_print_uint32(ndr, "level", r->in.level);
17066 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
17067 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
17070 if (flags & NDR_OUT) {
17071 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
17073 ndr_print_ptr(ndr, "job_id", r->out.job_id);
17075 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
17077 ndr_print_WERROR(ndr, "result", r->out.result);
17083 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
17085 if (flags & NDR_IN) {
17086 if (r->in.handle == NULL) {
17087 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17089 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17091 if (flags & NDR_OUT) {
17092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17094 return NDR_ERR_SUCCESS;
17097 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
17099 TALLOC_CTX *_mem_save_handle_0;
17100 if (flags & NDR_IN) {
17101 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17102 NDR_PULL_ALLOC(ndr, r->in.handle);
17104 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17105 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17106 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17107 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17109 if (flags & NDR_OUT) {
17110 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17112 return NDR_ERR_SUCCESS;
17115 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
17117 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
17119 if (flags & NDR_SET_VALUES) {
17120 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17122 if (flags & NDR_IN) {
17123 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
17125 ndr_print_ptr(ndr, "handle", r->in.handle);
17127 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17131 if (flags & NDR_OUT) {
17132 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
17134 ndr_print_WERROR(ndr, "result", r->out.result);
17140 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
17142 if (flags & NDR_IN) {
17143 if (r->in.handle == NULL) {
17144 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17146 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17147 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
17150 if (flags & NDR_OUT) {
17151 if (r->out.num_written == NULL) {
17152 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
17155 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17157 return NDR_ERR_SUCCESS;
17160 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
17162 TALLOC_CTX *_mem_save_handle_0;
17163 TALLOC_CTX *_mem_save_num_written_0;
17164 if (flags & NDR_IN) {
17165 ZERO_STRUCT(r->out);
17167 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17168 NDR_PULL_ALLOC(ndr, r->in.handle);
17170 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17171 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17172 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17174 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
17175 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
17176 NDR_PULL_ALLOC(ndr, r->out.num_written);
17177 ZERO_STRUCTP(r->out.num_written);
17179 if (flags & NDR_OUT) {
17180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17181 NDR_PULL_ALLOC(ndr, r->out.num_written);
17183 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
17184 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
17185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
17186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
17187 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17189 return NDR_ERR_SUCCESS;
17192 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
17194 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
17196 if (flags & NDR_SET_VALUES) {
17197 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17199 if (flags & NDR_IN) {
17200 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
17202 ndr_print_ptr(ndr, "handle", r->in.handle);
17204 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17206 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
17207 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
17210 if (flags & NDR_OUT) {
17211 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
17213 ndr_print_ptr(ndr, "num_written", r->out.num_written);
17215 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
17217 ndr_print_WERROR(ndr, "result", r->out.result);
17223 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
17225 if (flags & NDR_IN) {
17226 if (r->in.handle == NULL) {
17227 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17229 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17231 if (flags & NDR_OUT) {
17232 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17234 return NDR_ERR_SUCCESS;
17237 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
17239 TALLOC_CTX *_mem_save_handle_0;
17240 if (flags & NDR_IN) {
17241 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17242 NDR_PULL_ALLOC(ndr, r->in.handle);
17244 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17245 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17246 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17249 if (flags & NDR_OUT) {
17250 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17252 return NDR_ERR_SUCCESS;
17255 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
17257 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
17259 if (flags & NDR_SET_VALUES) {
17260 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17262 if (flags & NDR_IN) {
17263 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
17265 ndr_print_ptr(ndr, "handle", r->in.handle);
17267 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17271 if (flags & NDR_OUT) {
17272 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
17274 ndr_print_WERROR(ndr, "result", r->out.result);
17280 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
17282 if (flags & NDR_IN) {
17283 if (r->in.handle == NULL) {
17284 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17286 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17288 if (flags & NDR_OUT) {
17289 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17291 return NDR_ERR_SUCCESS;
17294 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
17296 TALLOC_CTX *_mem_save_handle_0;
17297 if (flags & NDR_IN) {
17298 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17299 NDR_PULL_ALLOC(ndr, r->in.handle);
17301 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17302 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17303 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17304 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17306 if (flags & NDR_OUT) {
17307 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17309 return NDR_ERR_SUCCESS;
17312 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
17314 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
17316 if (flags & NDR_SET_VALUES) {
17317 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17319 if (flags & NDR_IN) {
17320 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
17322 ndr_print_ptr(ndr, "handle", r->in.handle);
17324 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17328 if (flags & NDR_OUT) {
17329 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
17331 ndr_print_WERROR(ndr, "result", r->out.result);
17337 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
17339 if (flags & NDR_IN) {
17340 if (r->in.handle == NULL) {
17341 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17343 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17346 if (flags & NDR_OUT) {
17347 if (r->out.data == NULL) {
17348 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17351 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
17352 if (r->out._data_size == NULL) {
17353 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
17356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17358 return NDR_ERR_SUCCESS;
17361 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
17363 TALLOC_CTX *_mem_save_handle_0;
17364 TALLOC_CTX *_mem_save__data_size_0;
17365 if (flags & NDR_IN) {
17366 ZERO_STRUCT(r->out);
17368 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17369 NDR_PULL_ALLOC(ndr, r->in.handle);
17371 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17372 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17373 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17374 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
17376 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
17377 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
17378 NDR_PULL_ALLOC(ndr, r->out._data_size);
17379 ZERO_STRUCTP(r->out._data_size);
17381 if (flags & NDR_OUT) {
17382 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
17383 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17384 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
17386 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
17387 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17388 NDR_PULL_ALLOC(ndr, r->out._data_size);
17390 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
17391 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
17392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
17393 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
17394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17396 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
17399 return NDR_ERR_SUCCESS;
17402 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
17404 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
17406 if (flags & NDR_SET_VALUES) {
17407 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17409 if (flags & NDR_IN) {
17410 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
17412 ndr_print_ptr(ndr, "handle", r->in.handle);
17414 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17416 ndr_print_uint32(ndr, "data_size", r->in.data_size);
17419 if (flags & NDR_OUT) {
17420 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
17422 ndr_print_ptr(ndr, "data", r->out.data);
17424 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
17426 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
17428 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
17430 ndr_print_WERROR(ndr, "result", r->out.result);
17436 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
17438 if (flags & NDR_IN) {
17439 if (r->in.handle == NULL) {
17440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17442 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17444 if (flags & NDR_OUT) {
17445 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17447 return NDR_ERR_SUCCESS;
17450 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
17452 TALLOC_CTX *_mem_save_handle_0;
17453 if (flags & NDR_IN) {
17454 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17455 NDR_PULL_ALLOC(ndr, r->in.handle);
17457 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17458 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17459 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17462 if (flags & NDR_OUT) {
17463 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17465 return NDR_ERR_SUCCESS;
17468 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
17470 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
17472 if (flags & NDR_SET_VALUES) {
17473 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17475 if (flags & NDR_IN) {
17476 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
17478 ndr_print_ptr(ndr, "handle", r->in.handle);
17480 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17484 if (flags & NDR_OUT) {
17485 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
17487 ndr_print_WERROR(ndr, "result", r->out.result);
17493 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
17495 if (flags & NDR_IN) {
17496 if (r->in.handle == NULL) {
17497 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17499 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17500 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17501 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17502 if (r->in.buffer) {
17503 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17504 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
17506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17508 if (flags & NDR_OUT) {
17509 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
17510 if (r->out.buffer) {
17511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17512 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
17514 if (r->out.needed == NULL) {
17515 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17518 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17520 return NDR_ERR_SUCCESS;
17523 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
17525 uint32_t _ptr_buffer;
17526 TALLOC_CTX *_mem_save_handle_0;
17527 TALLOC_CTX *_mem_save_buffer_0;
17528 TALLOC_CTX *_mem_save_needed_0;
17529 if (flags & NDR_IN) {
17530 ZERO_STRUCT(r->out);
17532 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17533 NDR_PULL_ALLOC(ndr, r->in.handle);
17535 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17536 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17537 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17540 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17542 NDR_PULL_ALLOC(ndr, r->in.buffer);
17544 r->in.buffer = NULL;
17546 if (r->in.buffer) {
17547 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17548 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17549 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
17550 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
17551 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
17552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17554 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17555 NDR_PULL_ALLOC(ndr, r->out.needed);
17556 ZERO_STRUCTP(r->out.needed);
17557 if (r->in.buffer) {
17558 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
17561 if (flags & NDR_OUT) {
17562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17564 NDR_PULL_ALLOC(ndr, r->out.buffer);
17566 r->out.buffer = NULL;
17568 if (r->out.buffer) {
17569 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17570 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
17571 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
17572 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
17573 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
17574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17576 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17577 NDR_PULL_ALLOC(ndr, r->out.needed);
17579 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17580 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17581 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17582 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17583 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17584 if (r->out.buffer) {
17585 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
17588 return NDR_ERR_SUCCESS;
17591 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
17593 ndr_print_struct(ndr, name, "spoolss_AddJob");
17595 if (flags & NDR_SET_VALUES) {
17596 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17598 if (flags & NDR_IN) {
17599 ndr_print_struct(ndr, "in", "spoolss_AddJob");
17601 ndr_print_ptr(ndr, "handle", r->in.handle);
17603 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17605 ndr_print_uint32(ndr, "level", r->in.level);
17606 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17608 if (r->in.buffer) {
17609 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
17612 ndr_print_uint32(ndr, "offered", r->in.offered);
17615 if (flags & NDR_OUT) {
17616 ndr_print_struct(ndr, "out", "spoolss_AddJob");
17618 ndr_print_ptr(ndr, "buffer", r->out.buffer);
17620 if (r->out.buffer) {
17621 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
17624 ndr_print_ptr(ndr, "needed", r->out.needed);
17626 ndr_print_uint32(ndr, "needed", *r->out.needed);
17628 ndr_print_WERROR(ndr, "result", r->out.result);
17634 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
17636 if (flags & NDR_IN) {
17637 if (r->in.handle == NULL) {
17638 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17640 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
17643 if (flags & NDR_OUT) {
17644 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17646 return NDR_ERR_SUCCESS;
17649 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
17651 TALLOC_CTX *_mem_save_handle_0;
17652 if (flags & NDR_IN) {
17653 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17654 NDR_PULL_ALLOC(ndr, r->in.handle);
17656 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17657 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17658 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17659 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
17662 if (flags & NDR_OUT) {
17663 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17665 return NDR_ERR_SUCCESS;
17668 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
17670 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
17672 if (flags & NDR_SET_VALUES) {
17673 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17675 if (flags & NDR_IN) {
17676 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
17678 ndr_print_ptr(ndr, "handle", r->in.handle);
17680 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17682 ndr_print_uint32(ndr, "jobid", r->in.jobid);
17685 if (flags & NDR_OUT) {
17686 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
17688 ndr_print_WERROR(ndr, "result", r->out.result);
17694 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
17696 if (flags & NDR_IN) {
17697 if (r->in.handle == NULL) {
17698 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17700 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17701 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17702 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17704 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));
17705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17707 if (flags & NDR_OUT) {
17708 if (r->out.type == NULL) {
17709 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17711 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
17712 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
17713 if (r->out.needed == NULL) {
17714 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17717 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17719 return NDR_ERR_SUCCESS;
17722 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
17724 TALLOC_CTX *_mem_save_handle_0;
17725 TALLOC_CTX *_mem_save_type_0;
17726 TALLOC_CTX *_mem_save_needed_0;
17727 if (flags & NDR_IN) {
17728 ZERO_STRUCT(r->out);
17730 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17731 NDR_PULL_ALLOC(ndr, r->in.handle);
17733 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17734 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17735 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17737 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17738 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17739 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17740 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));
17742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17743 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));
17744 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17745 NDR_PULL_ALLOC(ndr, r->out.type);
17746 ZERO_STRUCTP(r->out.type);
17747 NDR_PULL_ALLOC(ndr, r->out.needed);
17748 ZERO_STRUCTP(r->out.needed);
17750 if (flags & NDR_OUT) {
17751 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17752 NDR_PULL_ALLOC(ndr, r->out.type);
17754 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
17755 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
17756 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
17757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
17758 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
17759 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17760 NDR_PULL_ALLOC(ndr, r->out.needed);
17762 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17763 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17765 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17766 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17768 return NDR_ERR_SUCCESS;
17771 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
17773 if (flags & NDR_IN) {
17774 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17776 if (flags & NDR_OUT) {
17777 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17778 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17780 return NDR_ERR_SUCCESS;
17783 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
17785 if (flags & NDR_IN) {
17786 ZERO_STRUCT(r->out);
17788 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17790 if (flags & NDR_OUT) {
17791 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
17792 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17794 return NDR_ERR_SUCCESS;
17797 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
17799 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
17801 if (flags & NDR_SET_VALUES) {
17802 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17804 if (flags & NDR_IN) {
17805 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
17807 ndr_print_ptr(ndr, "handle", r->in.handle);
17809 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17811 ndr_print_string(ndr, "value_name", r->in.value_name);
17812 ndr_print_uint32(ndr, "offered", r->in.offered);
17815 if (flags & NDR_OUT) {
17816 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
17818 ndr_print_ptr(ndr, "type", r->out.type);
17820 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
17822 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
17823 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
17824 ndr_print_ptr(ndr, "needed", r->out.needed);
17826 ndr_print_uint32(ndr, "needed", *r->out.needed);
17828 ndr_print_WERROR(ndr, "result", r->out.result);
17834 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
17836 if (flags & NDR_IN) {
17837 if (r->in.handle == NULL) {
17838 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17840 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17842 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17844 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));
17845 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17846 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
17849 if (flags & NDR_OUT) {
17850 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17852 return NDR_ERR_SUCCESS;
17855 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
17857 if (flags & NDR_IN) {
17858 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17860 if (flags & NDR_OUT) {
17861 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17862 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17864 return NDR_ERR_SUCCESS;
17867 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
17869 TALLOC_CTX *_mem_save_handle_0;
17870 if (flags & NDR_IN) {
17871 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17872 NDR_PULL_ALLOC(ndr, r->in.handle);
17874 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17875 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17876 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17878 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17879 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17880 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17881 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));
17883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17884 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));
17885 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17887 struct ndr_pull *_ndr_data;
17888 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
17889 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
17890 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
17891 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
17893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
17895 if (flags & NDR_OUT) {
17896 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17898 return NDR_ERR_SUCCESS;
17901 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
17903 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
17905 if (flags & NDR_SET_VALUES) {
17906 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17908 if (flags & NDR_IN) {
17909 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
17911 ndr_print_ptr(ndr, "handle", r->in.handle);
17913 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17915 ndr_print_string(ndr, "value_name", r->in.value_name);
17916 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
17917 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
17918 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
17919 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);
17922 if (flags & NDR_OUT) {
17923 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
17925 ndr_print_WERROR(ndr, "result", r->out.result);
17931 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
17933 if (flags & NDR_IN) {
17935 if (flags & NDR_OUT) {
17936 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17938 return NDR_ERR_SUCCESS;
17941 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
17943 if (flags & NDR_IN) {
17945 if (flags & NDR_OUT) {
17946 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17948 return NDR_ERR_SUCCESS;
17951 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
17953 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
17955 if (flags & NDR_SET_VALUES) {
17956 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17958 if (flags & NDR_IN) {
17959 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
17963 if (flags & NDR_OUT) {
17964 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
17966 ndr_print_WERROR(ndr, "result", r->out.result);
17972 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
17974 if (flags & NDR_IN) {
17975 if (r->in.handle == NULL) {
17976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17978 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17980 if (flags & NDR_OUT) {
17981 if (r->out.handle == NULL) {
17982 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17984 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17985 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17987 return NDR_ERR_SUCCESS;
17990 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
17992 TALLOC_CTX *_mem_save_handle_0;
17993 if (flags & NDR_IN) {
17994 ZERO_STRUCT(r->out);
17996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17997 NDR_PULL_ALLOC(ndr, r->in.handle);
17999 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18000 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18001 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18003 NDR_PULL_ALLOC(ndr, r->out.handle);
18004 *r->out.handle = *r->in.handle;
18006 if (flags & NDR_OUT) {
18007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18008 NDR_PULL_ALLOC(ndr, r->out.handle);
18010 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18011 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18012 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18014 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18016 return NDR_ERR_SUCCESS;
18019 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
18021 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
18023 if (flags & NDR_SET_VALUES) {
18024 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18026 if (flags & NDR_IN) {
18027 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
18029 ndr_print_ptr(ndr, "handle", r->in.handle);
18031 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18035 if (flags & NDR_OUT) {
18036 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
18038 ndr_print_ptr(ndr, "handle", r->out.handle);
18040 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18042 ndr_print_WERROR(ndr, "result", r->out.result);
18048 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
18050 if (flags & NDR_IN) {
18051 if (r->in.handle == NULL) {
18052 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18054 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18056 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18057 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18059 if (flags & NDR_OUT) {
18060 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18062 return NDR_ERR_SUCCESS;
18065 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
18067 TALLOC_CTX *_mem_save_handle_0;
18068 if (flags & NDR_IN) {
18069 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18070 NDR_PULL_ALLOC(ndr, r->in.handle);
18072 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18073 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18074 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
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_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
18088 ndr_print_struct(ndr, name, "spoolss_AddForm");
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_AddForm");
18096 ndr_print_ptr(ndr, "handle", r->in.handle);
18098 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18100 ndr_print_uint32(ndr, "level", r->in.level);
18101 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18102 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18105 if (flags & NDR_OUT) {
18106 ndr_print_struct(ndr, "out", "spoolss_AddForm");
18108 ndr_print_WERROR(ndr, "result", r->out.result);
18114 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
18116 if (flags & NDR_IN) {
18117 if (r->in.handle == NULL) {
18118 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18120 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18124 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));
18126 if (flags & NDR_OUT) {
18127 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18129 return NDR_ERR_SUCCESS;
18132 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
18134 TALLOC_CTX *_mem_save_handle_0;
18135 if (flags & NDR_IN) {
18136 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18137 NDR_PULL_ALLOC(ndr, r->in.handle);
18139 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18140 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18141 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18142 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18143 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18144 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18145 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18146 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));
18148 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18149 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));
18151 if (flags & NDR_OUT) {
18152 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18154 return NDR_ERR_SUCCESS;
18157 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
18159 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
18161 if (flags & NDR_SET_VALUES) {
18162 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18164 if (flags & NDR_IN) {
18165 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
18167 ndr_print_ptr(ndr, "handle", r->in.handle);
18169 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18171 ndr_print_string(ndr, "form_name", r->in.form_name);
18174 if (flags & NDR_OUT) {
18175 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
18177 ndr_print_WERROR(ndr, "result", r->out.result);
18183 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
18185 if (flags & NDR_IN) {
18186 if (r->in.handle == NULL) {
18187 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18189 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18192 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18193 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));
18194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18196 if (r->in.buffer) {
18197 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18201 if (flags & NDR_OUT) {
18202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18205 struct ndr_push *_ndr_info;
18206 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18207 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18208 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18209 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18212 if (r->out.needed == NULL) {
18213 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18216 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18218 return NDR_ERR_SUCCESS;
18221 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
18223 uint32_t _ptr_buffer;
18224 uint32_t _ptr_info;
18225 TALLOC_CTX *_mem_save_handle_0;
18226 TALLOC_CTX *_mem_save_buffer_0;
18227 TALLOC_CTX *_mem_save_info_0;
18228 TALLOC_CTX *_mem_save_needed_0;
18229 if (flags & NDR_IN) {
18230 ZERO_STRUCT(r->out);
18232 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18233 NDR_PULL_ALLOC(ndr, r->in.handle);
18235 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18236 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18237 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18238 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18239 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18240 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18241 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18242 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));
18244 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18245 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));
18246 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18247 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18249 NDR_PULL_ALLOC(ndr, r->in.buffer);
18251 r->in.buffer = NULL;
18253 if (r->in.buffer) {
18254 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18255 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18256 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18260 NDR_PULL_ALLOC(ndr, r->out.needed);
18261 ZERO_STRUCTP(r->out.needed);
18263 if (flags & NDR_OUT) {
18264 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18266 NDR_PULL_ALLOC(ndr, r->out.info);
18268 r->out.info = NULL;
18271 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18272 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18274 struct ndr_pull *_ndr_info;
18275 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18276 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18277 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18278 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18282 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18283 NDR_PULL_ALLOC(ndr, r->out.needed);
18285 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18286 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18288 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18289 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18291 return NDR_ERR_SUCCESS;
18294 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
18296 ndr_print_struct(ndr, name, "spoolss_GetForm");
18298 if (flags & NDR_SET_VALUES) {
18299 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18301 if (flags & NDR_IN) {
18302 ndr_print_struct(ndr, "in", "spoolss_GetForm");
18304 ndr_print_ptr(ndr, "handle", r->in.handle);
18306 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18308 ndr_print_string(ndr, "form_name", r->in.form_name);
18309 ndr_print_uint32(ndr, "level", r->in.level);
18310 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18312 if (r->in.buffer) {
18313 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18316 ndr_print_uint32(ndr, "offered", r->in.offered);
18319 if (flags & NDR_OUT) {
18320 ndr_print_struct(ndr, "out", "spoolss_GetForm");
18322 ndr_print_ptr(ndr, "info", r->out.info);
18325 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18326 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
18329 ndr_print_ptr(ndr, "needed", r->out.needed);
18331 ndr_print_uint32(ndr, "needed", *r->out.needed);
18333 ndr_print_WERROR(ndr, "result", r->out.result);
18339 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
18341 if (flags & NDR_IN) {
18342 if (r->in.handle == NULL) {
18343 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18345 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18346 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18349 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));
18350 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18351 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18352 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18354 if (flags & NDR_OUT) {
18355 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18357 return NDR_ERR_SUCCESS;
18360 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
18362 TALLOC_CTX *_mem_save_handle_0;
18363 if (flags & NDR_IN) {
18364 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18365 NDR_PULL_ALLOC(ndr, r->in.handle);
18367 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18368 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18369 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18371 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18372 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18373 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18374 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));
18376 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18377 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));
18378 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18379 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18380 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18382 if (flags & NDR_OUT) {
18383 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18385 return NDR_ERR_SUCCESS;
18388 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
18390 ndr_print_struct(ndr, name, "spoolss_SetForm");
18392 if (flags & NDR_SET_VALUES) {
18393 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18395 if (flags & NDR_IN) {
18396 ndr_print_struct(ndr, "in", "spoolss_SetForm");
18398 ndr_print_ptr(ndr, "handle", r->in.handle);
18400 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18402 ndr_print_string(ndr, "form_name", r->in.form_name);
18403 ndr_print_uint32(ndr, "level", r->in.level);
18404 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18405 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18408 if (flags & NDR_OUT) {
18409 ndr_print_struct(ndr, "out", "spoolss_SetForm");
18411 ndr_print_WERROR(ndr, "result", r->out.result);
18417 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
18419 if (flags & NDR_IN) {
18420 if (r->in.handle == NULL) {
18421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18423 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18425 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18426 if (r->in.buffer) {
18427 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18431 if (flags & NDR_OUT) {
18432 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18434 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18436 if (r->out.needed == NULL) {
18437 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18440 if (r->out.count == NULL) {
18441 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18444 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18446 return NDR_ERR_SUCCESS;
18449 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
18451 uint32_t _ptr_buffer;
18452 uint32_t _ptr_info;
18453 TALLOC_CTX *_mem_save_handle_0;
18454 TALLOC_CTX *_mem_save_buffer_0;
18455 TALLOC_CTX *_mem_save_info_0;
18456 TALLOC_CTX *_mem_save_needed_0;
18457 TALLOC_CTX *_mem_save_count_0;
18458 if (flags & NDR_IN) {
18459 ZERO_STRUCT(r->out);
18461 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18462 NDR_PULL_ALLOC(ndr, r->in.handle);
18464 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18465 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18466 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18468 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18469 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18471 NDR_PULL_ALLOC(ndr, r->in.buffer);
18473 r->in.buffer = NULL;
18475 if (r->in.buffer) {
18476 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18477 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18478 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18479 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18481 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18482 NDR_PULL_ALLOC(ndr, r->out.needed);
18483 ZERO_STRUCTP(r->out.needed);
18484 NDR_PULL_ALLOC(ndr, r->out.count);
18485 ZERO_STRUCTP(r->out.count);
18487 if (flags & NDR_OUT) {
18488 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18490 NDR_PULL_ALLOC(ndr, r->out.info);
18492 r->out.info = NULL;
18495 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18496 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18497 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18501 NDR_PULL_ALLOC(ndr, r->out.needed);
18503 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18504 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18507 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18508 NDR_PULL_ALLOC(ndr, r->out.count);
18510 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18511 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18512 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18514 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18516 return NDR_ERR_SUCCESS;
18519 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
18521 uint32_t cntr_info_0;
18522 if (flags & NDR_IN) {
18523 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18524 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18526 if (flags & NDR_OUT) {
18527 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18528 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18529 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18531 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18532 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18535 return NDR_ERR_SUCCESS;
18538 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
18540 uint32_t cntr_info_0;
18541 TALLOC_CTX *_mem_save_info_0;
18542 if (flags & NDR_IN) {
18543 ZERO_STRUCT(r->out);
18545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18546 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18548 if (flags & NDR_OUT) {
18549 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18550 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18551 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18552 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18553 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18554 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18556 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18557 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18561 return NDR_ERR_SUCCESS;
18564 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
18566 uint32_t cntr_info_1;
18567 ndr_print_struct(ndr, name, "spoolss_EnumForms");
18569 if (flags & NDR_SET_VALUES) {
18570 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18572 if (flags & NDR_IN) {
18573 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
18575 ndr_print_ptr(ndr, "handle", r->in.handle);
18577 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18579 ndr_print_uint32(ndr, "level", r->in.level);
18580 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18582 if (r->in.buffer) {
18583 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18586 ndr_print_uint32(ndr, "offered", r->in.offered);
18589 if (flags & NDR_OUT) {
18590 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
18592 ndr_print_ptr(ndr, "count", r->out.count);
18594 ndr_print_uint32(ndr, "count", *r->out.count);
18596 ndr_print_ptr(ndr, "info", r->out.info);
18599 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18601 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18603 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18604 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18605 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
18612 ndr_print_ptr(ndr, "needed", r->out.needed);
18614 ndr_print_uint32(ndr, "needed", *r->out.needed);
18616 ndr_print_WERROR(ndr, "result", r->out.result);
18622 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
18624 if (flags & NDR_IN) {
18625 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18626 if (r->in.servername) {
18627 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18628 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18630 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18632 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18633 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18634 if (r->in.buffer) {
18635 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18639 if (flags & NDR_OUT) {
18640 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18642 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18644 if (r->out.needed == NULL) {
18645 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18648 if (r->out.count == NULL) {
18649 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18652 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18654 return NDR_ERR_SUCCESS;
18657 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
18659 uint32_t _ptr_servername;
18660 uint32_t _ptr_buffer;
18661 uint32_t _ptr_info;
18662 TALLOC_CTX *_mem_save_servername_0;
18663 TALLOC_CTX *_mem_save_buffer_0;
18664 TALLOC_CTX *_mem_save_info_0;
18665 TALLOC_CTX *_mem_save_needed_0;
18666 TALLOC_CTX *_mem_save_count_0;
18667 if (flags & NDR_IN) {
18668 ZERO_STRUCT(r->out);
18670 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18671 if (_ptr_servername) {
18672 NDR_PULL_ALLOC(ndr, r->in.servername);
18674 r->in.servername = NULL;
18676 if (r->in.servername) {
18677 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18678 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18679 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18680 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18681 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18682 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));
18684 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18685 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18688 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18689 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18691 NDR_PULL_ALLOC(ndr, r->in.buffer);
18693 r->in.buffer = NULL;
18695 if (r->in.buffer) {
18696 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18697 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18698 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18699 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18702 NDR_PULL_ALLOC(ndr, r->out.needed);
18703 ZERO_STRUCTP(r->out.needed);
18704 NDR_PULL_ALLOC(ndr, r->out.count);
18705 ZERO_STRUCTP(r->out.count);
18707 if (flags & NDR_OUT) {
18708 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18710 NDR_PULL_ALLOC(ndr, r->out.info);
18712 r->out.info = NULL;
18715 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18716 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18717 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18720 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18721 NDR_PULL_ALLOC(ndr, r->out.needed);
18723 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18724 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18727 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18728 NDR_PULL_ALLOC(ndr, r->out.count);
18730 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18731 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18734 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18736 return NDR_ERR_SUCCESS;
18739 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
18741 uint32_t cntr_info_0;
18742 if (flags & NDR_IN) {
18743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18746 if (flags & NDR_OUT) {
18747 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18748 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18749 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18751 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18752 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18755 return NDR_ERR_SUCCESS;
18758 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
18760 uint32_t cntr_info_0;
18761 TALLOC_CTX *_mem_save_info_0;
18762 if (flags & NDR_IN) {
18763 ZERO_STRUCT(r->out);
18765 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18766 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18768 if (flags & NDR_OUT) {
18769 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18770 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18771 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18772 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18773 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18774 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18776 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18777 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18779 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18781 return NDR_ERR_SUCCESS;
18784 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
18786 uint32_t cntr_info_1;
18787 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
18789 if (flags & NDR_SET_VALUES) {
18790 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18792 if (flags & NDR_IN) {
18793 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
18795 ndr_print_ptr(ndr, "servername", r->in.servername);
18797 if (r->in.servername) {
18798 ndr_print_string(ndr, "servername", r->in.servername);
18801 ndr_print_uint32(ndr, "level", r->in.level);
18802 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18804 if (r->in.buffer) {
18805 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18808 ndr_print_uint32(ndr, "offered", r->in.offered);
18811 if (flags & NDR_OUT) {
18812 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
18814 ndr_print_ptr(ndr, "count", r->out.count);
18816 ndr_print_uint32(ndr, "count", *r->out.count);
18818 ndr_print_ptr(ndr, "info", r->out.info);
18821 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18823 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18825 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18826 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18827 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
18834 ndr_print_ptr(ndr, "needed", r->out.needed);
18836 ndr_print_uint32(ndr, "needed", *r->out.needed);
18838 ndr_print_WERROR(ndr, "result", r->out.result);
18844 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
18846 if (flags & NDR_IN) {
18847 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18848 if (r->in.servername) {
18849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18852 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18855 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18856 if (r->in.buffer) {
18857 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18861 if (flags & NDR_OUT) {
18862 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18864 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18866 if (r->out.needed == NULL) {
18867 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18870 if (r->out.count == NULL) {
18871 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18873 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18874 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18876 return NDR_ERR_SUCCESS;
18879 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
18881 uint32_t _ptr_servername;
18882 uint32_t _ptr_buffer;
18883 uint32_t _ptr_info;
18884 TALLOC_CTX *_mem_save_servername_0;
18885 TALLOC_CTX *_mem_save_buffer_0;
18886 TALLOC_CTX *_mem_save_info_0;
18887 TALLOC_CTX *_mem_save_needed_0;
18888 TALLOC_CTX *_mem_save_count_0;
18889 if (flags & NDR_IN) {
18890 ZERO_STRUCT(r->out);
18892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18893 if (_ptr_servername) {
18894 NDR_PULL_ALLOC(ndr, r->in.servername);
18896 r->in.servername = NULL;
18898 if (r->in.servername) {
18899 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18900 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18901 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18902 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18903 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18904 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));
18906 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18907 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18908 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18910 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18913 NDR_PULL_ALLOC(ndr, r->in.buffer);
18915 r->in.buffer = NULL;
18917 if (r->in.buffer) {
18918 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18919 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18920 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18924 NDR_PULL_ALLOC(ndr, r->out.needed);
18925 ZERO_STRUCTP(r->out.needed);
18926 NDR_PULL_ALLOC(ndr, r->out.count);
18927 ZERO_STRUCTP(r->out.count);
18929 if (flags & NDR_OUT) {
18930 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18932 NDR_PULL_ALLOC(ndr, r->out.info);
18934 r->out.info = NULL;
18937 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18938 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18939 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18942 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18943 NDR_PULL_ALLOC(ndr, r->out.needed);
18945 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18946 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18949 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18950 NDR_PULL_ALLOC(ndr, r->out.count);
18952 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18953 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18954 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18956 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18958 return NDR_ERR_SUCCESS;
18961 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
18963 uint32_t cntr_info_0;
18964 if (flags & NDR_IN) {
18965 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18966 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18968 if (flags & NDR_OUT) {
18969 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18970 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18971 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18973 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18974 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18977 return NDR_ERR_SUCCESS;
18980 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
18982 uint32_t cntr_info_0;
18983 TALLOC_CTX *_mem_save_info_0;
18984 if (flags & NDR_IN) {
18985 ZERO_STRUCT(r->out);
18987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18988 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18990 if (flags & NDR_OUT) {
18991 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18992 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18993 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18994 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18995 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18996 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18998 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18999 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19003 return NDR_ERR_SUCCESS;
19006 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
19008 uint32_t cntr_info_1;
19009 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
19011 if (flags & NDR_SET_VALUES) {
19012 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19014 if (flags & NDR_IN) {
19015 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
19017 ndr_print_ptr(ndr, "servername", r->in.servername);
19019 if (r->in.servername) {
19020 ndr_print_string(ndr, "servername", r->in.servername);
19023 ndr_print_uint32(ndr, "level", r->in.level);
19024 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19026 if (r->in.buffer) {
19027 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19030 ndr_print_uint32(ndr, "offered", r->in.offered);
19033 if (flags & NDR_OUT) {
19034 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
19036 ndr_print_ptr(ndr, "count", r->out.count);
19038 ndr_print_uint32(ndr, "count", *r->out.count);
19040 ndr_print_ptr(ndr, "info", r->out.info);
19043 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19045 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19047 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19048 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19049 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
19056 ndr_print_ptr(ndr, "needed", r->out.needed);
19058 ndr_print_uint32(ndr, "needed", *r->out.needed);
19060 ndr_print_WERROR(ndr, "result", r->out.result);
19066 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
19068 if (flags & NDR_IN) {
19069 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
19070 if (r->in.server_name) {
19071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19074 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));
19076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
19077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19080 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));
19082 if (flags & NDR_OUT) {
19083 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19085 return NDR_ERR_SUCCESS;
19088 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
19090 uint32_t _ptr_server_name;
19091 TALLOC_CTX *_mem_save_server_name_0;
19092 if (flags & NDR_IN) {
19093 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
19094 if (_ptr_server_name) {
19095 NDR_PULL_ALLOC(ndr, r->in.server_name);
19097 r->in.server_name = NULL;
19099 if (r->in.server_name) {
19100 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19101 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
19102 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
19103 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
19104 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
19105 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));
19107 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
19108 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));
19109 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
19111 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
19112 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
19113 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
19114 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
19115 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));
19117 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
19118 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));
19120 if (flags & NDR_OUT) {
19121 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19123 return NDR_ERR_SUCCESS;
19126 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
19128 ndr_print_struct(ndr, name, "spoolss_AddPort");
19130 if (flags & NDR_SET_VALUES) {
19131 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19133 if (flags & NDR_IN) {
19134 ndr_print_struct(ndr, "in", "spoolss_AddPort");
19136 ndr_print_ptr(ndr, "server_name", r->in.server_name);
19138 if (r->in.server_name) {
19139 ndr_print_string(ndr, "server_name", r->in.server_name);
19142 ndr_print_uint32(ndr, "unknown", r->in.unknown);
19143 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
19146 if (flags & NDR_OUT) {
19147 ndr_print_struct(ndr, "out", "spoolss_AddPort");
19149 ndr_print_WERROR(ndr, "result", r->out.result);
19155 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
19157 if (flags & NDR_IN) {
19159 if (flags & NDR_OUT) {
19160 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19162 return NDR_ERR_SUCCESS;
19165 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
19167 if (flags & NDR_IN) {
19169 if (flags & NDR_OUT) {
19170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19172 return NDR_ERR_SUCCESS;
19175 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
19177 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
19179 if (flags & NDR_SET_VALUES) {
19180 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19182 if (flags & NDR_IN) {
19183 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
19187 if (flags & NDR_OUT) {
19188 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
19190 ndr_print_WERROR(ndr, "result", r->out.result);
19196 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
19198 if (flags & NDR_IN) {
19200 if (flags & NDR_OUT) {
19201 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19203 return NDR_ERR_SUCCESS;
19206 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
19208 if (flags & NDR_IN) {
19210 if (flags & NDR_OUT) {
19211 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19213 return NDR_ERR_SUCCESS;
19216 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
19218 ndr_print_struct(ndr, name, "spoolss_DeletePort");
19220 if (flags & NDR_SET_VALUES) {
19221 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19223 if (flags & NDR_IN) {
19224 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
19228 if (flags & NDR_OUT) {
19229 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
19231 ndr_print_WERROR(ndr, "result", r->out.result);
19237 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
19239 if (flags & NDR_IN) {
19241 if (flags & NDR_OUT) {
19242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19244 return NDR_ERR_SUCCESS;
19247 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
19249 if (flags & NDR_IN) {
19251 if (flags & NDR_OUT) {
19252 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19254 return NDR_ERR_SUCCESS;
19257 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
19259 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
19261 if (flags & NDR_SET_VALUES) {
19262 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19264 if (flags & NDR_IN) {
19265 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
19269 if (flags & NDR_OUT) {
19270 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
19272 ndr_print_WERROR(ndr, "result", r->out.result);
19278 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19280 if (flags & NDR_IN) {
19282 if (flags & NDR_OUT) {
19283 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19285 return NDR_ERR_SUCCESS;
19288 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
19290 if (flags & NDR_IN) {
19292 if (flags & NDR_OUT) {
19293 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19295 return NDR_ERR_SUCCESS;
19298 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19300 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
19302 if (flags & NDR_SET_VALUES) {
19303 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19305 if (flags & NDR_IN) {
19306 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
19310 if (flags & NDR_OUT) {
19311 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
19313 ndr_print_WERROR(ndr, "result", r->out.result);
19319 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
19321 if (flags & NDR_IN) {
19323 if (flags & NDR_OUT) {
19324 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19326 return NDR_ERR_SUCCESS;
19329 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
19331 if (flags & NDR_IN) {
19333 if (flags & NDR_OUT) {
19334 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19336 return NDR_ERR_SUCCESS;
19339 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
19341 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
19343 if (flags & NDR_SET_VALUES) {
19344 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19346 if (flags & NDR_IN) {
19347 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
19351 if (flags & NDR_OUT) {
19352 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
19354 ndr_print_WERROR(ndr, "result", r->out.result);
19360 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
19362 if (flags & NDR_IN) {
19364 if (flags & NDR_OUT) {
19365 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19367 return NDR_ERR_SUCCESS;
19370 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
19372 if (flags & NDR_IN) {
19374 if (flags & NDR_OUT) {
19375 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19377 return NDR_ERR_SUCCESS;
19380 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
19382 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
19384 if (flags & NDR_SET_VALUES) {
19385 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19387 if (flags & NDR_IN) {
19388 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
19392 if (flags & NDR_OUT) {
19393 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
19395 ndr_print_WERROR(ndr, "result", r->out.result);
19401 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
19403 if (flags & NDR_IN) {
19405 if (flags & NDR_OUT) {
19406 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19408 return NDR_ERR_SUCCESS;
19411 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
19413 if (flags & NDR_IN) {
19415 if (flags & NDR_OUT) {
19416 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19418 return NDR_ERR_SUCCESS;
19421 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
19423 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
19425 if (flags & NDR_SET_VALUES) {
19426 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19428 if (flags & NDR_IN) {
19429 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
19433 if (flags & NDR_OUT) {
19434 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
19436 ndr_print_WERROR(ndr, "result", r->out.result);
19442 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
19444 if (flags & NDR_IN) {
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_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
19454 if (flags & NDR_IN) {
19456 if (flags & NDR_OUT) {
19457 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19459 return NDR_ERR_SUCCESS;
19462 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
19464 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
19466 if (flags & NDR_SET_VALUES) {
19467 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19469 if (flags & NDR_IN) {
19470 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
19474 if (flags & NDR_OUT) {
19475 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
19477 ndr_print_WERROR(ndr, "result", r->out.result);
19483 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
19485 if (flags & NDR_IN) {
19487 if (flags & NDR_OUT) {
19488 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19490 return NDR_ERR_SUCCESS;
19493 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
19495 if (flags & NDR_IN) {
19497 if (flags & NDR_OUT) {
19498 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19500 return NDR_ERR_SUCCESS;
19503 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
19505 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
19507 if (flags & NDR_SET_VALUES) {
19508 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19510 if (flags & NDR_IN) {
19511 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
19515 if (flags & NDR_OUT) {
19516 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
19518 ndr_print_WERROR(ndr, "result", r->out.result);
19524 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
19526 if (flags & NDR_IN) {
19528 if (flags & NDR_OUT) {
19529 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19531 return NDR_ERR_SUCCESS;
19534 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
19536 if (flags & NDR_IN) {
19538 if (flags & NDR_OUT) {
19539 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19541 return NDR_ERR_SUCCESS;
19544 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
19546 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
19548 if (flags & NDR_SET_VALUES) {
19549 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19551 if (flags & NDR_IN) {
19552 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
19556 if (flags & NDR_OUT) {
19557 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
19559 ndr_print_WERROR(ndr, "result", r->out.result);
19565 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
19567 if (flags & NDR_IN) {
19569 if (flags & NDR_OUT) {
19570 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19572 return NDR_ERR_SUCCESS;
19575 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
19577 if (flags & NDR_IN) {
19579 if (flags & NDR_OUT) {
19580 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19582 return NDR_ERR_SUCCESS;
19585 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
19587 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
19589 if (flags & NDR_SET_VALUES) {
19590 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19592 if (flags & NDR_IN) {
19593 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
19597 if (flags & NDR_OUT) {
19598 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
19600 ndr_print_WERROR(ndr, "result", r->out.result);
19606 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
19608 if (flags & NDR_IN) {
19610 if (flags & NDR_OUT) {
19611 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19613 return NDR_ERR_SUCCESS;
19616 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
19618 if (flags & NDR_IN) {
19620 if (flags & NDR_OUT) {
19621 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19623 return NDR_ERR_SUCCESS;
19626 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
19628 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
19630 if (flags & NDR_SET_VALUES) {
19631 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19633 if (flags & NDR_IN) {
19634 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
19638 if (flags & NDR_OUT) {
19639 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
19641 ndr_print_WERROR(ndr, "result", r->out.result);
19647 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
19649 if (flags & NDR_IN) {
19651 if (flags & NDR_OUT) {
19652 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19654 return NDR_ERR_SUCCESS;
19657 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
19659 if (flags & NDR_IN) {
19661 if (flags & NDR_OUT) {
19662 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19664 return NDR_ERR_SUCCESS;
19667 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
19669 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
19671 if (flags & NDR_SET_VALUES) {
19672 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19674 if (flags & NDR_IN) {
19675 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
19679 if (flags & NDR_OUT) {
19680 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
19682 ndr_print_WERROR(ndr, "result", r->out.result);
19688 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19690 if (flags & NDR_IN) {
19692 if (flags & NDR_OUT) {
19693 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19695 return NDR_ERR_SUCCESS;
19698 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
19700 if (flags & NDR_IN) {
19702 if (flags & NDR_OUT) {
19703 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19705 return NDR_ERR_SUCCESS;
19708 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19710 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
19712 if (flags & NDR_SET_VALUES) {
19713 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19715 if (flags & NDR_IN) {
19716 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
19720 if (flags & NDR_OUT) {
19721 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
19723 ndr_print_WERROR(ndr, "result", r->out.result);
19729 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
19731 if (flags & NDR_IN) {
19732 if (r->in.handle == NULL) {
19733 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19735 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19736 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
19737 if (r->in.data_type) {
19738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19741 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));
19743 if (r->in.devmode_ctr == NULL) {
19744 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19746 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19748 if (flags & NDR_OUT) {
19749 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19751 return NDR_ERR_SUCCESS;
19754 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
19756 uint32_t _ptr_data_type;
19757 TALLOC_CTX *_mem_save_handle_0;
19758 TALLOC_CTX *_mem_save_data_type_0;
19759 TALLOC_CTX *_mem_save_devmode_ctr_0;
19760 if (flags & NDR_IN) {
19761 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19762 NDR_PULL_ALLOC(ndr, r->in.handle);
19764 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19765 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19766 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19768 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
19769 if (_ptr_data_type) {
19770 NDR_PULL_ALLOC(ndr, r->in.data_type);
19772 r->in.data_type = NULL;
19774 if (r->in.data_type) {
19775 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
19776 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
19777 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
19778 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
19779 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
19780 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));
19782 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
19783 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));
19784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
19786 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19787 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19789 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19790 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19791 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19792 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
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_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
19802 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
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_ResetPrinter");
19810 ndr_print_ptr(ndr, "handle", r->in.handle);
19812 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19814 ndr_print_ptr(ndr, "data_type", r->in.data_type);
19816 if (r->in.data_type) {
19817 ndr_print_string(ndr, "data_type", r->in.data_type);
19820 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19822 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19826 if (flags & NDR_OUT) {
19827 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
19829 ndr_print_WERROR(ndr, "result", r->out.result);
19835 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
19837 if (flags & NDR_IN) {
19838 if (r->in.handle == NULL) {
19839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19841 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
19843 if (r->in.architecture) {
19844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19847 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19850 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19851 if (r->in.buffer) {
19852 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
19856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
19858 if (flags & NDR_OUT) {
19859 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19861 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19863 if (r->out.needed == NULL) {
19864 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19867 if (r->out.server_major_version == NULL) {
19868 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
19871 if (r->out.server_minor_version == NULL) {
19872 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19874 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
19875 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19877 return NDR_ERR_SUCCESS;
19880 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
19882 uint32_t _ptr_architecture;
19883 uint32_t _ptr_buffer;
19884 uint32_t _ptr_info;
19885 TALLOC_CTX *_mem_save_handle_0;
19886 TALLOC_CTX *_mem_save_architecture_0;
19887 TALLOC_CTX *_mem_save_buffer_0;
19888 TALLOC_CTX *_mem_save_info_0;
19889 TALLOC_CTX *_mem_save_needed_0;
19890 TALLOC_CTX *_mem_save_server_major_version_0;
19891 TALLOC_CTX *_mem_save_server_minor_version_0;
19892 if (flags & NDR_IN) {
19893 ZERO_STRUCT(r->out);
19895 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19896 NDR_PULL_ALLOC(ndr, r->in.handle);
19898 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19899 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19900 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19901 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
19903 if (_ptr_architecture) {
19904 NDR_PULL_ALLOC(ndr, r->in.architecture);
19906 r->in.architecture = NULL;
19908 if (r->in.architecture) {
19909 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
19910 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
19911 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
19912 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
19913 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
19914 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));
19916 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
19917 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
19918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
19920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19921 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19923 NDR_PULL_ALLOC(ndr, r->in.buffer);
19925 r->in.buffer = NULL;
19927 if (r->in.buffer) {
19928 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19929 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19930 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19931 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19934 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
19935 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
19936 NDR_PULL_ALLOC(ndr, r->out.needed);
19937 ZERO_STRUCTP(r->out.needed);
19938 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19939 ZERO_STRUCTP(r->out.server_major_version);
19940 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19941 ZERO_STRUCTP(r->out.server_minor_version);
19943 if (flags & NDR_OUT) {
19944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19946 NDR_PULL_ALLOC(ndr, r->out.info);
19948 r->out.info = NULL;
19951 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19952 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19953 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19956 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19957 NDR_PULL_ALLOC(ndr, r->out.needed);
19959 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19960 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19961 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19962 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19963 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19964 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19966 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19967 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
19968 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
19969 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
19970 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19971 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19973 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19974 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
19975 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
19976 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
19977 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19979 return NDR_ERR_SUCCESS;
19982 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
19984 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
19986 if (flags & NDR_SET_VALUES) {
19987 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19989 if (flags & NDR_IN) {
19990 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
19992 ndr_print_ptr(ndr, "handle", r->in.handle);
19994 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19996 ndr_print_ptr(ndr, "architecture", r->in.architecture);
19998 if (r->in.architecture) {
19999 ndr_print_string(ndr, "architecture", r->in.architecture);
20002 ndr_print_uint32(ndr, "level", r->in.level);
20003 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20005 if (r->in.buffer) {
20006 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20009 ndr_print_uint32(ndr, "offered", r->in.offered);
20010 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
20011 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
20014 if (flags & NDR_OUT) {
20015 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
20017 ndr_print_ptr(ndr, "info", r->out.info);
20020 ndr_print_DATA_BLOB(ndr, "info", *r->out.info);
20023 ndr_print_ptr(ndr, "needed", r->out.needed);
20025 ndr_print_uint32(ndr, "needed", *r->out.needed);
20027 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
20029 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
20031 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
20033 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
20035 ndr_print_WERROR(ndr, "result", r->out.result);
20041 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20043 if (flags & NDR_IN) {
20045 if (flags & NDR_OUT) {
20046 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20048 return NDR_ERR_SUCCESS;
20051 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
20053 if (flags & NDR_IN) {
20055 if (flags & NDR_OUT) {
20056 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20058 return NDR_ERR_SUCCESS;
20061 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20063 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
20065 if (flags & NDR_SET_VALUES) {
20066 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20068 if (flags & NDR_IN) {
20069 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
20073 if (flags & NDR_OUT) {
20074 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
20076 ndr_print_WERROR(ndr, "result", r->out.result);
20082 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20084 if (flags & NDR_IN) {
20086 if (flags & NDR_OUT) {
20087 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20089 return NDR_ERR_SUCCESS;
20092 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
20094 if (flags & NDR_IN) {
20096 if (flags & NDR_OUT) {
20097 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20099 return NDR_ERR_SUCCESS;
20102 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20104 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
20106 if (flags & NDR_SET_VALUES) {
20107 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20109 if (flags & NDR_IN) {
20110 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
20114 if (flags & NDR_OUT) {
20115 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
20117 ndr_print_WERROR(ndr, "result", r->out.result);
20123 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
20125 if (flags & NDR_IN) {
20126 if (r->in.handle == NULL) {
20127 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20129 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20131 if (flags & NDR_OUT) {
20132 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20134 return NDR_ERR_SUCCESS;
20137 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
20139 TALLOC_CTX *_mem_save_handle_0;
20140 if (flags & NDR_IN) {
20141 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20142 NDR_PULL_ALLOC(ndr, r->in.handle);
20144 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20145 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20146 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20149 if (flags & NDR_OUT) {
20150 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20152 return NDR_ERR_SUCCESS;
20155 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
20157 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
20159 if (flags & NDR_SET_VALUES) {
20160 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20162 if (flags & NDR_IN) {
20163 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
20165 ndr_print_ptr(ndr, "handle", r->in.handle);
20167 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20171 if (flags & NDR_OUT) {
20172 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
20174 ndr_print_WERROR(ndr, "result", r->out.result);
20180 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20182 if (flags & NDR_IN) {
20184 if (flags & NDR_OUT) {
20185 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20187 return NDR_ERR_SUCCESS;
20190 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20192 if (flags & NDR_IN) {
20194 if (flags & NDR_OUT) {
20195 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20197 return NDR_ERR_SUCCESS;
20200 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20202 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20204 if (flags & NDR_SET_VALUES) {
20205 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20207 if (flags & NDR_IN) {
20208 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20212 if (flags & NDR_OUT) {
20213 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20215 ndr_print_WERROR(ndr, "result", r->out.result);
20221 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
20223 if (flags & NDR_IN) {
20224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20227 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));
20228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20229 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
20230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20232 if (r->in.buffer) {
20233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20234 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20237 if (flags & NDR_OUT) {
20238 if (r->out.handle == NULL) {
20239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20241 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20244 return NDR_ERR_SUCCESS;
20247 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
20249 uint32_t _ptr_buffer;
20250 TALLOC_CTX *_mem_save_buffer_0;
20251 TALLOC_CTX *_mem_save_handle_0;
20252 if (flags & NDR_IN) {
20253 ZERO_STRUCT(r->out);
20255 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
20256 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
20257 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
20258 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));
20260 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
20261 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));
20262 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20263 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
20264 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20265 if (r->in.bufsize > 512) {
20266 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20270 NDR_PULL_ALLOC(ndr, r->in.buffer);
20272 r->in.buffer = NULL;
20274 if (r->in.buffer) {
20275 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20276 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20277 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20278 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20279 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20282 NDR_PULL_ALLOC(ndr, r->out.handle);
20283 ZERO_STRUCTP(r->out.handle);
20284 if (r->in.buffer) {
20285 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20288 if (flags & NDR_OUT) {
20289 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20290 NDR_PULL_ALLOC(ndr, r->out.handle);
20292 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20293 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20294 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20296 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20298 return NDR_ERR_SUCCESS;
20301 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
20303 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
20305 if (flags & NDR_SET_VALUES) {
20306 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20308 if (flags & NDR_IN) {
20309 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
20311 ndr_print_string(ndr, "server_name", r->in.server_name);
20312 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20313 ndr_print_winreg_Type(ndr, "type", r->in.type);
20314 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20315 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20317 if (r->in.buffer) {
20318 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20323 if (flags & NDR_OUT) {
20324 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
20326 ndr_print_ptr(ndr, "handle", r->out.handle);
20328 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20330 ndr_print_WERROR(ndr, "result", r->out.result);
20336 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
20338 if (flags & NDR_IN) {
20339 if (r->in.handle == NULL) {
20340 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20342 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20343 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20345 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20346 if (r->in.buffer) {
20347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20348 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20351 if (flags & NDR_OUT) {
20352 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20354 return NDR_ERR_SUCCESS;
20357 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
20359 uint32_t _ptr_buffer;
20360 TALLOC_CTX *_mem_save_handle_0;
20361 TALLOC_CTX *_mem_save_buffer_0;
20362 if (flags & NDR_IN) {
20363 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20364 NDR_PULL_ALLOC(ndr, r->in.handle);
20366 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20367 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20368 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20370 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20371 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20372 if (r->in.bufsize > 512) {
20373 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20375 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20377 NDR_PULL_ALLOC(ndr, r->in.buffer);
20379 r->in.buffer = NULL;
20381 if (r->in.buffer) {
20382 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20383 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20384 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20385 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20386 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20389 if (r->in.buffer) {
20390 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20393 if (flags & NDR_OUT) {
20394 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20396 return NDR_ERR_SUCCESS;
20399 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
20401 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
20403 if (flags & NDR_SET_VALUES) {
20404 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20406 if (flags & NDR_IN) {
20407 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
20409 ndr_print_ptr(ndr, "handle", r->in.handle);
20411 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20413 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20414 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20415 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20417 if (r->in.buffer) {
20418 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20423 if (flags & NDR_OUT) {
20424 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
20426 ndr_print_WERROR(ndr, "result", r->out.result);
20432 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
20434 if (flags & NDR_IN) {
20435 if (r->in.handle == NULL) {
20436 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20438 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20440 if (flags & NDR_OUT) {
20441 if (r->out.handle == NULL) {
20442 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20444 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20445 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20447 return NDR_ERR_SUCCESS;
20450 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
20452 TALLOC_CTX *_mem_save_handle_0;
20453 if (flags & NDR_IN) {
20454 ZERO_STRUCT(r->out);
20456 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20457 NDR_PULL_ALLOC(ndr, r->in.handle);
20459 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20460 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20461 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20462 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20463 NDR_PULL_ALLOC(ndr, r->out.handle);
20464 *r->out.handle = *r->in.handle;
20466 if (flags & NDR_OUT) {
20467 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20468 NDR_PULL_ALLOC(ndr, r->out.handle);
20470 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20471 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20472 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20474 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20476 return NDR_ERR_SUCCESS;
20479 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
20481 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
20483 if (flags & NDR_SET_VALUES) {
20484 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20486 if (flags & NDR_IN) {
20487 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
20489 ndr_print_ptr(ndr, "handle", r->in.handle);
20491 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20495 if (flags & NDR_OUT) {
20496 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
20498 ndr_print_ptr(ndr, "handle", r->out.handle);
20500 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20502 ndr_print_WERROR(ndr, "result", r->out.result);
20508 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
20510 if (flags & NDR_IN) {
20512 if (flags & NDR_OUT) {
20513 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20515 return NDR_ERR_SUCCESS;
20518 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
20520 if (flags & NDR_IN) {
20522 if (flags & NDR_OUT) {
20523 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20525 return NDR_ERR_SUCCESS;
20528 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
20530 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
20532 if (flags & NDR_SET_VALUES) {
20533 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20535 if (flags & NDR_IN) {
20536 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
20540 if (flags & NDR_OUT) {
20541 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
20543 ndr_print_WERROR(ndr, "result", r->out.result);
20549 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20551 if (flags & NDR_IN) {
20553 if (flags & NDR_OUT) {
20554 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20556 return NDR_ERR_SUCCESS;
20559 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20561 if (flags & NDR_IN) {
20563 if (flags & NDR_OUT) {
20564 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20566 return NDR_ERR_SUCCESS;
20569 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20571 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
20573 if (flags & NDR_SET_VALUES) {
20574 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20576 if (flags & NDR_IN) {
20577 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
20581 if (flags & NDR_OUT) {
20582 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
20584 ndr_print_WERROR(ndr, "result", r->out.result);
20590 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
20592 if (flags & NDR_IN) {
20594 if (flags & NDR_OUT) {
20595 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20597 return NDR_ERR_SUCCESS;
20600 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
20602 if (flags & NDR_IN) {
20604 if (flags & NDR_OUT) {
20605 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20607 return NDR_ERR_SUCCESS;
20610 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
20612 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
20614 if (flags & NDR_SET_VALUES) {
20615 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20617 if (flags & NDR_IN) {
20618 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
20622 if (flags & NDR_OUT) {
20623 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
20625 ndr_print_WERROR(ndr, "result", r->out.result);
20631 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
20633 if (flags & NDR_IN) {
20635 if (flags & NDR_OUT) {
20636 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20638 return NDR_ERR_SUCCESS;
20641 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
20643 if (flags & NDR_IN) {
20645 if (flags & NDR_OUT) {
20646 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20648 return NDR_ERR_SUCCESS;
20651 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
20653 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
20655 if (flags & NDR_SET_VALUES) {
20656 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20658 if (flags & NDR_IN) {
20659 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
20663 if (flags & NDR_OUT) {
20664 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
20666 ndr_print_WERROR(ndr, "result", r->out.result);
20672 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20674 if (flags & NDR_IN) {
20675 if (r->in.handle == NULL) {
20676 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20678 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20679 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
20681 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
20682 if (r->in.local_machine) {
20683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20686 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));
20688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20689 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
20690 if (r->in.notify_options) {
20691 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20694 if (flags & NDR_OUT) {
20695 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20697 return NDR_ERR_SUCCESS;
20700 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20702 uint32_t _ptr_local_machine;
20703 uint32_t _ptr_notify_options;
20704 TALLOC_CTX *_mem_save_handle_0;
20705 TALLOC_CTX *_mem_save_local_machine_0;
20706 TALLOC_CTX *_mem_save_notify_options_0;
20707 if (flags & NDR_IN) {
20708 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20709 NDR_PULL_ALLOC(ndr, r->in.handle);
20711 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20712 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20713 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20715 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20716 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
20717 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
20718 if (_ptr_local_machine) {
20719 NDR_PULL_ALLOC(ndr, r->in.local_machine);
20721 r->in.local_machine = NULL;
20723 if (r->in.local_machine) {
20724 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
20725 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
20726 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
20727 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
20728 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
20729 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));
20731 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
20732 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));
20733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
20735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20736 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
20737 if (_ptr_notify_options) {
20738 NDR_PULL_ALLOC(ndr, r->in.notify_options);
20740 r->in.notify_options = NULL;
20742 if (r->in.notify_options) {
20743 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20744 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
20745 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
20749 if (flags & NDR_OUT) {
20750 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20752 return NDR_ERR_SUCCESS;
20755 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20757 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20759 if (flags & NDR_SET_VALUES) {
20760 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20762 if (flags & NDR_IN) {
20763 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20765 ndr_print_ptr(ndr, "handle", r->in.handle);
20767 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20769 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20770 ndr_print_uint32(ndr, "options", r->in.options);
20771 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
20773 if (r->in.local_machine) {
20774 ndr_print_string(ndr, "local_machine", r->in.local_machine);
20777 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20778 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
20780 if (r->in.notify_options) {
20781 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
20786 if (flags & NDR_OUT) {
20787 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20789 ndr_print_WERROR(ndr, "result", r->out.result);
20795 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20797 if (flags & NDR_IN) {
20798 if (r->in.handle == NULL) {
20799 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20801 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
20803 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20804 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
20805 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20806 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20808 if (flags & NDR_OUT) {
20809 if (r->out.reply_result == NULL) {
20810 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20812 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
20813 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20815 return NDR_ERR_SUCCESS;
20818 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
20820 TALLOC_CTX *_mem_save_handle_0;
20821 TALLOC_CTX *_mem_save_reply_result_0;
20822 if (flags & NDR_IN) {
20823 ZERO_STRUCT(r->out);
20825 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20826 NDR_PULL_ALLOC(ndr, r->in.handle);
20828 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20829 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20830 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20831 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20832 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
20833 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20834 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
20835 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20836 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20837 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20838 ZERO_STRUCTP(r->out.reply_result);
20840 if (flags & NDR_OUT) {
20841 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20842 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20844 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
20845 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
20846 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
20847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
20848 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20850 return NDR_ERR_SUCCESS;
20853 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20855 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
20857 if (flags & NDR_SET_VALUES) {
20858 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20860 if (flags & NDR_IN) {
20861 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
20863 ndr_print_ptr(ndr, "handle", r->in.handle);
20865 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20867 ndr_print_uint32(ndr, "color", r->in.color);
20868 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20869 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
20870 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
20871 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
20874 if (flags & NDR_OUT) {
20875 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
20877 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
20879 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
20881 ndr_print_WERROR(ndr, "result", r->out.result);
20887 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20889 if (flags & NDR_IN) {
20890 if (r->in.handle == NULL) {
20891 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20893 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20894 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
20895 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
20896 if (r->in.options) {
20897 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20900 if (flags & NDR_OUT) {
20901 if (r->out.info == NULL) {
20902 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20904 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
20905 if (*r->out.info) {
20906 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20908 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20910 return NDR_ERR_SUCCESS;
20913 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
20915 uint32_t _ptr_options;
20916 uint32_t _ptr_info;
20917 TALLOC_CTX *_mem_save_handle_0;
20918 TALLOC_CTX *_mem_save_options_0;
20919 TALLOC_CTX *_mem_save_info_0;
20920 TALLOC_CTX *_mem_save_info_1;
20921 if (flags & NDR_IN) {
20922 ZERO_STRUCT(r->out);
20924 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20925 NDR_PULL_ALLOC(ndr, r->in.handle);
20927 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20928 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20929 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
20932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
20933 if (_ptr_options) {
20934 NDR_PULL_ALLOC(ndr, r->in.options);
20936 r->in.options = NULL;
20938 if (r->in.options) {
20939 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20940 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
20941 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
20944 NDR_PULL_ALLOC(ndr, r->out.info);
20945 ZERO_STRUCTP(r->out.info);
20947 if (flags & NDR_OUT) {
20948 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20949 NDR_PULL_ALLOC(ndr, r->out.info);
20951 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20952 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
20953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20955 NDR_PULL_ALLOC(ndr, *r->out.info);
20957 *r->out.info = NULL;
20959 if (*r->out.info) {
20960 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
20961 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
20962 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
20965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
20966 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20968 return NDR_ERR_SUCCESS;
20971 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20973 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
20975 if (flags & NDR_SET_VALUES) {
20976 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20978 if (flags & NDR_IN) {
20979 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
20981 ndr_print_ptr(ndr, "handle", r->in.handle);
20983 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20985 ndr_print_uint32(ndr, "change_low", r->in.change_low);
20986 ndr_print_ptr(ndr, "options", r->in.options);
20988 if (r->in.options) {
20989 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
20994 if (flags & NDR_OUT) {
20995 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
20997 ndr_print_ptr(ndr, "info", r->out.info);
20999 ndr_print_ptr(ndr, "info", *r->out.info);
21001 if (*r->out.info) {
21002 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
21006 ndr_print_WERROR(ndr, "result", r->out.result);
21012 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
21014 if (flags & NDR_IN) {
21016 if (flags & NDR_OUT) {
21017 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21019 return NDR_ERR_SUCCESS;
21022 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
21024 if (flags & NDR_IN) {
21026 if (flags & NDR_OUT) {
21027 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21029 return NDR_ERR_SUCCESS;
21032 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
21034 ndr_print_struct(ndr, name, "spoolss_44");
21036 if (flags & NDR_SET_VALUES) {
21037 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21039 if (flags & NDR_IN) {
21040 ndr_print_struct(ndr, "in", "spoolss_44");
21044 if (flags & NDR_OUT) {
21045 ndr_print_struct(ndr, "out", "spoolss_44");
21047 ndr_print_WERROR(ndr, "result", r->out.result);
21053 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
21055 if (flags & NDR_IN) {
21056 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
21057 if (r->in.printername) {
21058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21061 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21063 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
21064 if (r->in.datatype) {
21065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21066 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21067 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21068 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21070 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21071 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
21072 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21073 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21074 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21076 if (flags & NDR_OUT) {
21077 if (r->out.handle == NULL) {
21078 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21080 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21081 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21083 return NDR_ERR_SUCCESS;
21086 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
21088 uint32_t _ptr_printername;
21089 uint32_t _ptr_datatype;
21090 TALLOC_CTX *_mem_save_printername_0;
21091 TALLOC_CTX *_mem_save_datatype_0;
21092 TALLOC_CTX *_mem_save_handle_0;
21093 if (flags & NDR_IN) {
21094 ZERO_STRUCT(r->out);
21096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
21097 if (_ptr_printername) {
21098 NDR_PULL_ALLOC(ndr, r->in.printername);
21100 r->in.printername = NULL;
21102 if (r->in.printername) {
21103 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21104 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
21105 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
21106 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
21107 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
21108 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));
21110 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
21111 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
21112 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
21114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
21115 if (_ptr_datatype) {
21116 NDR_PULL_ALLOC(ndr, r->in.datatype);
21118 r->in.datatype = NULL;
21120 if (r->in.datatype) {
21121 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
21122 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
21123 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
21124 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
21125 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
21126 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));
21128 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
21129 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
21130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
21132 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21133 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
21134 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21135 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21136 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21137 NDR_PULL_ALLOC(ndr, r->out.handle);
21138 ZERO_STRUCTP(r->out.handle);
21140 if (flags & NDR_OUT) {
21141 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21142 NDR_PULL_ALLOC(ndr, r->out.handle);
21144 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21145 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21146 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21148 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21150 return NDR_ERR_SUCCESS;
21153 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
21155 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
21157 if (flags & NDR_SET_VALUES) {
21158 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21160 if (flags & NDR_IN) {
21161 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
21163 ndr_print_ptr(ndr, "printername", r->in.printername);
21165 if (r->in.printername) {
21166 ndr_print_string(ndr, "printername", r->in.printername);
21169 ndr_print_ptr(ndr, "datatype", r->in.datatype);
21171 if (r->in.datatype) {
21172 ndr_print_string(ndr, "datatype", r->in.datatype);
21175 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
21176 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
21177 ndr_print_uint32(ndr, "level", r->in.level);
21178 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
21179 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
21182 if (flags & NDR_OUT) {
21183 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
21185 ndr_print_ptr(ndr, "handle", r->out.handle);
21187 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21189 ndr_print_WERROR(ndr, "result", r->out.result);
21195 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
21197 if (flags & NDR_IN) {
21198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21199 if (r->in.server) {
21200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21202 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21203 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21205 if (r->in.info_ctr == NULL) {
21206 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21208 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21209 if (r->in.devmode_ctr == NULL) {
21210 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21212 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21213 if (r->in.secdesc_ctr == NULL) {
21214 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21216 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21217 if (r->in.userlevel_ctr == NULL) {
21218 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21220 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21222 if (flags & NDR_OUT) {
21223 if (r->out.handle == NULL) {
21224 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21226 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21227 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21229 return NDR_ERR_SUCCESS;
21232 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
21234 uint32_t _ptr_server;
21235 TALLOC_CTX *_mem_save_server_0;
21236 TALLOC_CTX *_mem_save_info_ctr_0;
21237 TALLOC_CTX *_mem_save_devmode_ctr_0;
21238 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21239 TALLOC_CTX *_mem_save_userlevel_ctr_0;
21240 TALLOC_CTX *_mem_save_handle_0;
21241 if (flags & NDR_IN) {
21242 ZERO_STRUCT(r->out);
21244 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21246 NDR_PULL_ALLOC(ndr, r->in.server);
21248 r->in.server = NULL;
21250 if (r->in.server) {
21251 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21252 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21253 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21254 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21255 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21256 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));
21258 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21259 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21262 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21263 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21265 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21266 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21267 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21268 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21269 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21270 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21272 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21273 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21274 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21276 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21277 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21279 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21280 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21281 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21283 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21284 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
21286 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21287 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
21288 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21289 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21290 NDR_PULL_ALLOC(ndr, r->out.handle);
21291 ZERO_STRUCTP(r->out.handle);
21293 if (flags & NDR_OUT) {
21294 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21295 NDR_PULL_ALLOC(ndr, r->out.handle);
21297 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21298 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21299 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21301 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21303 return NDR_ERR_SUCCESS;
21306 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
21308 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
21310 if (flags & NDR_SET_VALUES) {
21311 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21313 if (flags & NDR_IN) {
21314 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
21316 ndr_print_ptr(ndr, "server", r->in.server);
21318 if (r->in.server) {
21319 ndr_print_string(ndr, "server", r->in.server);
21322 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21324 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21326 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21328 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21330 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21332 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21334 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21336 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21340 if (flags & NDR_OUT) {
21341 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
21343 ndr_print_ptr(ndr, "handle", r->out.handle);
21345 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21347 ndr_print_WERROR(ndr, "result", r->out.result);
21353 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
21355 if (flags & NDR_IN) {
21357 if (flags & NDR_OUT) {
21358 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21360 return NDR_ERR_SUCCESS;
21363 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
21365 if (flags & NDR_IN) {
21367 if (flags & NDR_OUT) {
21368 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21370 return NDR_ERR_SUCCESS;
21373 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
21375 ndr_print_struct(ndr, name, "spoolss_47");
21377 if (flags & NDR_SET_VALUES) {
21378 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21380 if (flags & NDR_IN) {
21381 ndr_print_struct(ndr, "in", "spoolss_47");
21385 if (flags & NDR_OUT) {
21386 ndr_print_struct(ndr, "out", "spoolss_47");
21388 ndr_print_WERROR(ndr, "result", r->out.result);
21394 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
21396 if (flags & NDR_IN) {
21397 if (r->in.handle == NULL) {
21398 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21400 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
21402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
21403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
21405 if (flags & NDR_OUT) {
21406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
21407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
21408 if (r->out.value_needed == NULL) {
21409 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
21412 if (r->out.printerdata_type == NULL) {
21413 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21415 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
21416 if (r->out.buffer == NULL) {
21417 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21419 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
21420 if (r->out.data_needed == NULL) {
21421 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
21424 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21426 return NDR_ERR_SUCCESS;
21429 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
21431 TALLOC_CTX *_mem_save_handle_0;
21432 TALLOC_CTX *_mem_save_value_needed_0;
21433 TALLOC_CTX *_mem_save_printerdata_type_0;
21434 TALLOC_CTX *_mem_save_buffer_0;
21435 TALLOC_CTX *_mem_save_data_needed_0;
21436 if (flags & NDR_IN) {
21437 ZERO_STRUCT(r->out);
21439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21440 NDR_PULL_ALLOC(ndr, r->in.handle);
21442 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21443 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21444 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21446 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
21447 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
21448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
21449 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21450 ZERO_STRUCTP(r->out.value_needed);
21451 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21452 ZERO_STRUCTP(r->out.printerdata_type);
21453 NDR_PULL_ALLOC(ndr, r->out.buffer);
21454 ZERO_STRUCTP(r->out.buffer);
21455 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21456 ZERO_STRUCTP(r->out.data_needed);
21458 if (flags & NDR_OUT) {
21459 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
21460 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));
21461 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21462 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21464 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21465 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
21466 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
21467 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
21468 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21469 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21471 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21472 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
21473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
21474 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
21475 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21476 NDR_PULL_ALLOC(ndr, r->out.buffer);
21478 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21479 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
21480 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
21481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
21482 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21483 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21485 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21486 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
21487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
21488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
21489 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21490 if (r->out.value_name) {
21491 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
21494 return NDR_ERR_SUCCESS;
21497 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
21499 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
21501 if (flags & NDR_SET_VALUES) {
21502 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21504 if (flags & NDR_IN) {
21505 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
21507 ndr_print_ptr(ndr, "handle", r->in.handle);
21509 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21511 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
21512 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
21513 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
21516 if (flags & NDR_OUT) {
21517 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
21519 ndr_print_string(ndr, "value_name", r->out.value_name);
21520 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
21522 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
21524 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
21526 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
21528 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21530 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
21532 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
21534 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
21536 ndr_print_WERROR(ndr, "result", r->out.result);
21542 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
21544 if (flags & NDR_IN) {
21545 if (r->in.handle == NULL) {
21546 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21548 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21549 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21550 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21551 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21552 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));
21554 if (flags & NDR_OUT) {
21555 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21557 return NDR_ERR_SUCCESS;
21560 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
21562 TALLOC_CTX *_mem_save_handle_0;
21563 if (flags & NDR_IN) {
21564 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21565 NDR_PULL_ALLOC(ndr, r->in.handle);
21567 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21568 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21569 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21570 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21571 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21572 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21573 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21574 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));
21576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21577 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));
21579 if (flags & NDR_OUT) {
21580 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21582 return NDR_ERR_SUCCESS;
21585 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
21587 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
21589 if (flags & NDR_SET_VALUES) {
21590 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21592 if (flags & NDR_IN) {
21593 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
21595 ndr_print_ptr(ndr, "handle", r->in.handle);
21597 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21599 ndr_print_string(ndr, "value_name", r->in.value_name);
21602 if (flags & NDR_OUT) {
21603 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
21605 ndr_print_WERROR(ndr, "result", r->out.result);
21611 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
21613 if (flags & NDR_IN) {
21615 if (flags & NDR_OUT) {
21616 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21618 return NDR_ERR_SUCCESS;
21621 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
21623 if (flags & NDR_IN) {
21625 if (flags & NDR_OUT) {
21626 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21628 return NDR_ERR_SUCCESS;
21631 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
21633 ndr_print_struct(ndr, name, "spoolss_4a");
21635 if (flags & NDR_SET_VALUES) {
21636 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21638 if (flags & NDR_IN) {
21639 ndr_print_struct(ndr, "in", "spoolss_4a");
21643 if (flags & NDR_OUT) {
21644 ndr_print_struct(ndr, "out", "spoolss_4a");
21646 ndr_print_WERROR(ndr, "result", r->out.result);
21652 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
21654 if (flags & NDR_IN) {
21656 if (flags & NDR_OUT) {
21657 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21659 return NDR_ERR_SUCCESS;
21662 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
21664 if (flags & NDR_IN) {
21666 if (flags & NDR_OUT) {
21667 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21669 return NDR_ERR_SUCCESS;
21672 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
21674 ndr_print_struct(ndr, name, "spoolss_4b");
21676 if (flags & NDR_SET_VALUES) {
21677 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21679 if (flags & NDR_IN) {
21680 ndr_print_struct(ndr, "in", "spoolss_4b");
21684 if (flags & NDR_OUT) {
21685 ndr_print_struct(ndr, "out", "spoolss_4b");
21687 ndr_print_WERROR(ndr, "result", r->out.result);
21693 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
21695 if (flags & NDR_IN) {
21697 if (flags & NDR_OUT) {
21698 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21700 return NDR_ERR_SUCCESS;
21703 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
21705 if (flags & NDR_IN) {
21707 if (flags & NDR_OUT) {
21708 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21710 return NDR_ERR_SUCCESS;
21713 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
21715 ndr_print_struct(ndr, name, "spoolss_4c");
21717 if (flags & NDR_SET_VALUES) {
21718 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21720 if (flags & NDR_IN) {
21721 ndr_print_struct(ndr, "in", "spoolss_4c");
21725 if (flags & NDR_OUT) {
21726 ndr_print_struct(ndr, "out", "spoolss_4c");
21728 ndr_print_WERROR(ndr, "result", r->out.result);
21734 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
21736 if (flags & NDR_IN) {
21737 if (r->in.handle == NULL) {
21738 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21740 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21743 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21744 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));
21745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21748 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));
21749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
21750 if (r->in.buffer == NULL) {
21751 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21754 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21757 if (flags & NDR_OUT) {
21758 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21760 return NDR_ERR_SUCCESS;
21763 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
21765 TALLOC_CTX *_mem_save_handle_0;
21766 if (flags & NDR_IN) {
21767 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21768 NDR_PULL_ALLOC(ndr, r->in.handle);
21770 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21771 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21772 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21773 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21774 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21775 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21776 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21777 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));
21779 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21780 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));
21781 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21782 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21783 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21784 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));
21786 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21787 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));
21788 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
21789 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21790 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21791 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21793 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21794 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21795 if (r->in.buffer) {
21796 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21799 if (flags & NDR_OUT) {
21800 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21802 return NDR_ERR_SUCCESS;
21805 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
21807 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
21809 if (flags & NDR_SET_VALUES) {
21810 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21812 if (flags & NDR_IN) {
21813 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
21815 ndr_print_ptr(ndr, "handle", r->in.handle);
21817 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21819 ndr_print_string(ndr, "key_name", r->in.key_name);
21820 ndr_print_string(ndr, "value_name", r->in.value_name);
21821 ndr_print_uint32(ndr, "type", r->in.type);
21822 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21824 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21826 ndr_print_uint32(ndr, "offered", r->in.offered);
21829 if (flags & NDR_OUT) {
21830 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
21832 ndr_print_WERROR(ndr, "result", r->out.result);
21838 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
21840 if (flags & NDR_IN) {
21841 if (r->in.handle == NULL) {
21842 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21844 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21848 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));
21849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21852 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));
21853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21855 if (flags & NDR_OUT) {
21856 if (r->out.type == NULL) {
21857 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
21860 if (r->out.buffer == NULL) {
21861 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21864 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21865 if (r->out.needed == NULL) {
21866 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21869 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21871 return NDR_ERR_SUCCESS;
21874 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
21876 TALLOC_CTX *_mem_save_handle_0;
21877 TALLOC_CTX *_mem_save_type_0;
21878 TALLOC_CTX *_mem_save_needed_0;
21879 if (flags & NDR_IN) {
21880 ZERO_STRUCT(r->out);
21882 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21883 NDR_PULL_ALLOC(ndr, r->in.handle);
21885 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21886 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21887 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21889 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21890 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21891 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21892 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));
21894 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21895 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));
21896 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21897 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21898 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21899 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));
21901 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21902 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));
21903 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21904 NDR_PULL_ALLOC(ndr, r->out.type);
21905 ZERO_STRUCTP(r->out.type);
21906 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
21907 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
21908 NDR_PULL_ALLOC(ndr, r->out.needed);
21909 ZERO_STRUCTP(r->out.needed);
21911 if (flags & NDR_OUT) {
21912 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21913 NDR_PULL_ALLOC(ndr, r->out.type);
21915 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21916 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
21918 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21919 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21920 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21921 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21923 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21924 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21925 NDR_PULL_ALLOC(ndr, r->out.needed);
21927 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21928 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21929 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21931 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21932 if (r->out.buffer) {
21933 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21936 return NDR_ERR_SUCCESS;
21939 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
21941 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
21943 if (flags & NDR_SET_VALUES) {
21944 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21946 if (flags & NDR_IN) {
21947 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
21949 ndr_print_ptr(ndr, "handle", r->in.handle);
21951 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21953 ndr_print_string(ndr, "key_name", r->in.key_name);
21954 ndr_print_string(ndr, "value_name", r->in.value_name);
21955 ndr_print_uint32(ndr, "offered", r->in.offered);
21958 if (flags & NDR_OUT) {
21959 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
21961 ndr_print_ptr(ndr, "type", r->out.type);
21963 ndr_print_uint32(ndr, "type", *r->out.type);
21965 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21967 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21969 ndr_print_ptr(ndr, "needed", r->out.needed);
21971 ndr_print_uint32(ndr, "needed", *r->out.needed);
21973 ndr_print_WERROR(ndr, "result", r->out.result);
21979 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
21981 if (flags & NDR_IN) {
21982 if (r->in.handle == NULL) {
21983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21985 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21988 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21989 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));
21990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21992 if (flags & NDR_OUT) {
21993 if (r->out.buffer == NULL) {
21994 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21997 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21998 if (r->out.needed == NULL) {
21999 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22002 if (r->out.count == NULL) {
22003 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22006 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22008 return NDR_ERR_SUCCESS;
22011 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
22013 TALLOC_CTX *_mem_save_handle_0;
22014 TALLOC_CTX *_mem_save_needed_0;
22015 TALLOC_CTX *_mem_save_count_0;
22016 if (flags & NDR_IN) {
22017 ZERO_STRUCT(r->out);
22019 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22020 NDR_PULL_ALLOC(ndr, r->in.handle);
22022 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22023 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22024 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22026 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22027 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22028 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22029 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));
22031 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22032 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));
22033 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22034 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
22035 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
22036 NDR_PULL_ALLOC(ndr, r->out.needed);
22037 ZERO_STRUCTP(r->out.needed);
22038 NDR_PULL_ALLOC(ndr, r->out.count);
22039 ZERO_STRUCTP(r->out.count);
22041 if (flags & NDR_OUT) {
22042 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22043 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22044 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22046 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22047 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22048 NDR_PULL_ALLOC(ndr, r->out.needed);
22050 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22051 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22052 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22053 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22054 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22055 NDR_PULL_ALLOC(ndr, r->out.count);
22057 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22058 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22059 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22062 if (r->out.buffer) {
22063 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22066 return NDR_ERR_SUCCESS;
22069 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
22071 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
22073 if (flags & NDR_SET_VALUES) {
22074 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22076 if (flags & NDR_IN) {
22077 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
22079 ndr_print_ptr(ndr, "handle", r->in.handle);
22081 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22083 ndr_print_string(ndr, "key_name", r->in.key_name);
22084 ndr_print_uint32(ndr, "offered", r->in.offered);
22087 if (flags & NDR_OUT) {
22088 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
22090 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22092 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22094 ndr_print_ptr(ndr, "needed", r->out.needed);
22096 ndr_print_uint32(ndr, "needed", *r->out.needed);
22098 ndr_print_ptr(ndr, "count", r->out.count);
22100 ndr_print_uint32(ndr, "count", *r->out.count);
22102 ndr_print_WERROR(ndr, "result", r->out.result);
22108 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
22110 uint32_t cntr_key_buffer_1;
22111 if (flags & NDR_IN) {
22112 if (r->in.handle == NULL) {
22113 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22115 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22119 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));
22120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
22122 if (flags & NDR_OUT) {
22123 if (r->out.key_buffer == NULL) {
22124 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22126 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
22127 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22128 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
22130 if (r->out.needed == NULL) {
22131 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22134 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22136 return NDR_ERR_SUCCESS;
22139 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
22141 uint32_t cntr_key_buffer_1;
22142 TALLOC_CTX *_mem_save_handle_0;
22143 TALLOC_CTX *_mem_save_key_buffer_1;
22144 TALLOC_CTX *_mem_save_needed_0;
22145 if (flags & NDR_IN) {
22146 ZERO_STRUCT(r->out);
22148 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22149 NDR_PULL_ALLOC(ndr, r->in.handle);
22151 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22152 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22153 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22155 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22156 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22157 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22158 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));
22160 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22161 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));
22162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
22163 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
22164 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
22165 NDR_PULL_ALLOC(ndr, r->out.needed);
22166 ZERO_STRUCTP(r->out.needed);
22168 if (flags & NDR_OUT) {
22169 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
22170 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22171 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
22173 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
22174 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
22175 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22176 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
22178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
22179 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22180 NDR_PULL_ALLOC(ndr, r->out.needed);
22182 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22183 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22184 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22185 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22186 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22187 if (r->out.key_buffer) {
22188 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
22191 return NDR_ERR_SUCCESS;
22194 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
22196 uint32_t cntr_key_buffer_1;
22197 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
22199 if (flags & NDR_SET_VALUES) {
22200 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22202 if (flags & NDR_IN) {
22203 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
22205 ndr_print_ptr(ndr, "handle", r->in.handle);
22207 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22209 ndr_print_string(ndr, "key_name", r->in.key_name);
22210 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
22213 if (flags & NDR_OUT) {
22214 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
22216 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
22218 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
22220 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
22222 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
22223 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
22229 ndr_print_ptr(ndr, "needed", r->out.needed);
22231 ndr_print_uint32(ndr, "needed", *r->out.needed);
22233 ndr_print_WERROR(ndr, "result", r->out.result);
22239 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
22241 if (flags & NDR_IN) {
22242 if (r->in.handle == NULL) {
22243 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22245 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22246 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22249 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));
22250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22253 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));
22255 if (flags & NDR_OUT) {
22256 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22258 return NDR_ERR_SUCCESS;
22261 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
22263 TALLOC_CTX *_mem_save_handle_0;
22264 if (flags & NDR_IN) {
22265 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22266 NDR_PULL_ALLOC(ndr, r->in.handle);
22268 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22269 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22270 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22272 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22273 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22274 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22275 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));
22277 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22278 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));
22279 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22280 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22281 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22282 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));
22284 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22285 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));
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_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
22295 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
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_DeletePrinterDataEx");
22303 ndr_print_ptr(ndr, "handle", r->in.handle);
22305 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22307 ndr_print_string(ndr, "key_name", r->in.key_name);
22308 ndr_print_string(ndr, "value_name", r->in.value_name);
22311 if (flags & NDR_OUT) {
22312 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
22314 ndr_print_WERROR(ndr, "result", r->out.result);
22320 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
22322 if (flags & NDR_IN) {
22323 if (r->in.handle == NULL) {
22324 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22326 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22330 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));
22332 if (flags & NDR_OUT) {
22333 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22335 return NDR_ERR_SUCCESS;
22338 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
22340 TALLOC_CTX *_mem_save_handle_0;
22341 if (flags & NDR_IN) {
22342 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22343 NDR_PULL_ALLOC(ndr, r->in.handle);
22345 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22346 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22347 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22348 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22349 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22350 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22351 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22352 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));
22354 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22355 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));
22357 if (flags & NDR_OUT) {
22358 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22360 return NDR_ERR_SUCCESS;
22363 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
22365 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
22367 if (flags & NDR_SET_VALUES) {
22368 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22370 if (flags & NDR_IN) {
22371 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
22373 ndr_print_ptr(ndr, "handle", r->in.handle);
22375 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22377 ndr_print_string(ndr, "key_name", r->in.key_name);
22380 if (flags & NDR_OUT) {
22381 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
22383 ndr_print_WERROR(ndr, "result", r->out.result);
22389 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
22391 if (flags & NDR_IN) {
22393 if (flags & NDR_OUT) {
22394 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22396 return NDR_ERR_SUCCESS;
22399 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
22401 if (flags & NDR_IN) {
22403 if (flags & NDR_OUT) {
22404 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22406 return NDR_ERR_SUCCESS;
22409 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
22411 ndr_print_struct(ndr, name, "spoolss_53");
22413 if (flags & NDR_SET_VALUES) {
22414 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22416 if (flags & NDR_IN) {
22417 ndr_print_struct(ndr, "in", "spoolss_53");
22421 if (flags & NDR_OUT) {
22422 ndr_print_struct(ndr, "out", "spoolss_53");
22424 ndr_print_WERROR(ndr, "result", r->out.result);
22430 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22432 if (flags & NDR_IN) {
22433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22434 if (r->in.server) {
22435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22438 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22443 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22447 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22448 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
22449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
22451 if (flags & NDR_OUT) {
22452 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22454 return NDR_ERR_SUCCESS;
22457 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
22459 uint32_t _ptr_server;
22460 TALLOC_CTX *_mem_save_server_0;
22461 if (flags & NDR_IN) {
22462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22464 NDR_PULL_ALLOC(ndr, r->in.server);
22466 r->in.server = NULL;
22468 if (r->in.server) {
22469 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22470 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22471 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22472 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22473 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22474 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));
22476 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22477 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22480 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22481 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22482 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22483 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));
22485 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22486 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22487 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22488 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22489 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22490 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));
22492 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22493 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22494 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
22495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
22497 if (flags & NDR_OUT) {
22498 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22500 return NDR_ERR_SUCCESS;
22503 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22505 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
22507 if (flags & NDR_SET_VALUES) {
22508 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22510 if (flags & NDR_IN) {
22511 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
22513 ndr_print_ptr(ndr, "server", r->in.server);
22515 if (r->in.server) {
22516 ndr_print_string(ndr, "server", r->in.server);
22519 ndr_print_string(ndr, "architecture", r->in.architecture);
22520 ndr_print_string(ndr, "driver", r->in.driver);
22521 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
22522 ndr_print_uint32(ndr, "version", r->in.version);
22525 if (flags & NDR_OUT) {
22526 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
22528 ndr_print_WERROR(ndr, "result", r->out.result);
22534 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
22536 if (flags & NDR_IN) {
22538 if (flags & NDR_OUT) {
22539 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22541 return NDR_ERR_SUCCESS;
22544 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
22546 if (flags & NDR_IN) {
22548 if (flags & NDR_OUT) {
22549 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22551 return NDR_ERR_SUCCESS;
22554 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
22556 ndr_print_struct(ndr, name, "spoolss_55");
22558 if (flags & NDR_SET_VALUES) {
22559 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22561 if (flags & NDR_IN) {
22562 ndr_print_struct(ndr, "in", "spoolss_55");
22566 if (flags & NDR_OUT) {
22567 ndr_print_struct(ndr, "out", "spoolss_55");
22569 ndr_print_WERROR(ndr, "result", r->out.result);
22575 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
22577 if (flags & NDR_IN) {
22579 if (flags & NDR_OUT) {
22580 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22582 return NDR_ERR_SUCCESS;
22585 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
22587 if (flags & NDR_IN) {
22589 if (flags & NDR_OUT) {
22590 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22592 return NDR_ERR_SUCCESS;
22595 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
22597 ndr_print_struct(ndr, name, "spoolss_56");
22599 if (flags & NDR_SET_VALUES) {
22600 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22602 if (flags & NDR_IN) {
22603 ndr_print_struct(ndr, "in", "spoolss_56");
22607 if (flags & NDR_OUT) {
22608 ndr_print_struct(ndr, "out", "spoolss_56");
22610 ndr_print_WERROR(ndr, "result", r->out.result);
22616 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
22618 if (flags & NDR_IN) {
22620 if (flags & NDR_OUT) {
22621 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22623 return NDR_ERR_SUCCESS;
22626 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
22628 if (flags & NDR_IN) {
22630 if (flags & NDR_OUT) {
22631 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22633 return NDR_ERR_SUCCESS;
22636 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
22638 ndr_print_struct(ndr, name, "spoolss_57");
22640 if (flags & NDR_SET_VALUES) {
22641 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22643 if (flags & NDR_IN) {
22644 ndr_print_struct(ndr, "in", "spoolss_57");
22648 if (flags & NDR_OUT) {
22649 ndr_print_struct(ndr, "out", "spoolss_57");
22651 ndr_print_WERROR(ndr, "result", r->out.result);
22657 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
22659 if (flags & NDR_IN) {
22660 if (r->in.handle == NULL) {
22661 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22663 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22667 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));
22668 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
22669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
22670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22671 if (r->in.status_code == NULL) {
22672 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
22676 if (flags & NDR_OUT) {
22677 if (r->out.out_data == NULL) {
22678 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22681 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
22682 if (r->out.needed == NULL) {
22683 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22686 if (r->out.status_code == NULL) {
22687 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22689 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
22690 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22692 return NDR_ERR_SUCCESS;
22695 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
22697 TALLOC_CTX *_mem_save_handle_0;
22698 TALLOC_CTX *_mem_save_needed_0;
22699 TALLOC_CTX *_mem_save_status_code_0;
22700 if (flags & NDR_IN) {
22701 ZERO_STRUCT(r->out);
22703 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22704 NDR_PULL_ALLOC(ndr, r->in.handle);
22706 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22707 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22708 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22709 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22710 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
22711 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
22712 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
22713 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));
22715 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
22716 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));
22717 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
22718 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
22719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
22720 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22721 NDR_PULL_ALLOC(ndr, r->in.status_code);
22723 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22724 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
22725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
22726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22727 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
22728 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
22729 NDR_PULL_ALLOC(ndr, r->out.needed);
22730 ZERO_STRUCTP(r->out.needed);
22731 NDR_PULL_ALLOC(ndr, r->out.status_code);
22732 *r->out.status_code = *r->in.status_code;
22734 if (flags & NDR_OUT) {
22735 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
22736 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22737 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
22739 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
22740 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22741 NDR_PULL_ALLOC(ndr, r->out.needed);
22743 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22744 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22746 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22747 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22748 NDR_PULL_ALLOC(ndr, r->out.status_code);
22750 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22751 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
22752 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
22753 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22754 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22755 if (r->out.out_data) {
22756 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
22759 return NDR_ERR_SUCCESS;
22762 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
22764 ndr_print_struct(ndr, name, "spoolss_XcvData");
22766 if (flags & NDR_SET_VALUES) {
22767 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22769 if (flags & NDR_IN) {
22770 ndr_print_struct(ndr, "in", "spoolss_XcvData");
22772 ndr_print_ptr(ndr, "handle", r->in.handle);
22774 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22776 ndr_print_string(ndr, "function_name", r->in.function_name);
22777 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
22778 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
22779 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
22780 ndr_print_ptr(ndr, "status_code", r->in.status_code);
22782 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
22786 if (flags & NDR_OUT) {
22787 ndr_print_struct(ndr, "out", "spoolss_XcvData");
22789 ndr_print_ptr(ndr, "out_data", r->out.out_data);
22791 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
22793 ndr_print_ptr(ndr, "needed", r->out.needed);
22795 ndr_print_uint32(ndr, "needed", *r->out.needed);
22797 ndr_print_ptr(ndr, "status_code", r->out.status_code);
22799 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
22801 ndr_print_WERROR(ndr, "result", r->out.result);
22807 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
22809 if (flags & NDR_IN) {
22810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22811 if (r->in.servername) {
22812 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22814 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22815 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22817 if (r->in.info_ctr == NULL) {
22818 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22820 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22821 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
22823 if (flags & NDR_OUT) {
22824 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22826 return NDR_ERR_SUCCESS;
22829 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
22831 uint32_t _ptr_servername;
22832 TALLOC_CTX *_mem_save_servername_0;
22833 TALLOC_CTX *_mem_save_info_ctr_0;
22834 if (flags & NDR_IN) {
22835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22836 if (_ptr_servername) {
22837 NDR_PULL_ALLOC(ndr, r->in.servername);
22839 r->in.servername = NULL;
22841 if (r->in.servername) {
22842 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22843 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22844 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22845 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22846 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22847 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));
22849 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22850 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22851 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22853 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22854 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
22856 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
22857 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
22858 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
22860 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
22862 if (flags & NDR_OUT) {
22863 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22865 return NDR_ERR_SUCCESS;
22868 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
22870 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
22872 if (flags & NDR_SET_VALUES) {
22873 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22875 if (flags & NDR_IN) {
22876 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
22878 ndr_print_ptr(ndr, "servername", r->in.servername);
22880 if (r->in.servername) {
22881 ndr_print_string(ndr, "servername", r->in.servername);
22884 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
22886 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
22888 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
22891 if (flags & NDR_OUT) {
22892 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
22894 ndr_print_WERROR(ndr, "result", r->out.result);
22900 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
22902 if (flags & NDR_IN) {
22904 if (flags & NDR_OUT) {
22905 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22907 return NDR_ERR_SUCCESS;
22910 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
22912 if (flags & NDR_IN) {
22914 if (flags & NDR_OUT) {
22915 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22917 return NDR_ERR_SUCCESS;
22920 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
22922 ndr_print_struct(ndr, name, "spoolss_5a");
22924 if (flags & NDR_SET_VALUES) {
22925 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22927 if (flags & NDR_IN) {
22928 ndr_print_struct(ndr, "in", "spoolss_5a");
22932 if (flags & NDR_OUT) {
22933 ndr_print_struct(ndr, "out", "spoolss_5a");
22935 ndr_print_WERROR(ndr, "result", r->out.result);
22941 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
22943 if (flags & NDR_IN) {
22945 if (flags & NDR_OUT) {
22946 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22948 return NDR_ERR_SUCCESS;
22951 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
22953 if (flags & NDR_IN) {
22955 if (flags & NDR_OUT) {
22956 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22958 return NDR_ERR_SUCCESS;
22961 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
22963 ndr_print_struct(ndr, name, "spoolss_5b");
22965 if (flags & NDR_SET_VALUES) {
22966 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22968 if (flags & NDR_IN) {
22969 ndr_print_struct(ndr, "in", "spoolss_5b");
22973 if (flags & NDR_OUT) {
22974 ndr_print_struct(ndr, "out", "spoolss_5b");
22976 ndr_print_WERROR(ndr, "result", r->out.result);
22982 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
22984 if (flags & NDR_IN) {
22986 if (flags & NDR_OUT) {
22987 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22989 return NDR_ERR_SUCCESS;
22992 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
22994 if (flags & NDR_IN) {
22996 if (flags & NDR_OUT) {
22997 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22999 return NDR_ERR_SUCCESS;
23002 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
23004 ndr_print_struct(ndr, name, "spoolss_5c");
23006 if (flags & NDR_SET_VALUES) {
23007 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23009 if (flags & NDR_IN) {
23010 ndr_print_struct(ndr, "in", "spoolss_5c");
23014 if (flags & NDR_OUT) {
23015 ndr_print_struct(ndr, "out", "spoolss_5c");
23017 ndr_print_WERROR(ndr, "result", r->out.result);
23023 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
23025 if (flags & NDR_IN) {
23027 if (flags & NDR_OUT) {
23028 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23030 return NDR_ERR_SUCCESS;
23033 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
23035 if (flags & NDR_IN) {
23037 if (flags & NDR_OUT) {
23038 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23040 return NDR_ERR_SUCCESS;
23043 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
23045 ndr_print_struct(ndr, name, "spoolss_5d");
23047 if (flags & NDR_SET_VALUES) {
23048 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23050 if (flags & NDR_IN) {
23051 ndr_print_struct(ndr, "in", "spoolss_5d");
23055 if (flags & NDR_OUT) {
23056 ndr_print_struct(ndr, "out", "spoolss_5d");
23058 ndr_print_WERROR(ndr, "result", r->out.result);
23064 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
23066 if (flags & NDR_IN) {
23068 if (flags & NDR_OUT) {
23069 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23071 return NDR_ERR_SUCCESS;
23074 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
23076 if (flags & NDR_IN) {
23078 if (flags & NDR_OUT) {
23079 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23081 return NDR_ERR_SUCCESS;
23084 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
23086 ndr_print_struct(ndr, name, "spoolss_5e");
23088 if (flags & NDR_SET_VALUES) {
23089 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23091 if (flags & NDR_IN) {
23092 ndr_print_struct(ndr, "in", "spoolss_5e");
23096 if (flags & NDR_OUT) {
23097 ndr_print_struct(ndr, "out", "spoolss_5e");
23099 ndr_print_WERROR(ndr, "result", r->out.result);
23105 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
23107 if (flags & NDR_IN) {
23109 if (flags & NDR_OUT) {
23110 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23112 return NDR_ERR_SUCCESS;
23115 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
23117 if (flags & NDR_IN) {
23119 if (flags & NDR_OUT) {
23120 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23122 return NDR_ERR_SUCCESS;
23125 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
23127 ndr_print_struct(ndr, name, "spoolss_5f");
23129 if (flags & NDR_SET_VALUES) {
23130 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23132 if (flags & NDR_IN) {
23133 ndr_print_struct(ndr, "in", "spoolss_5f");
23137 if (flags & NDR_OUT) {
23138 ndr_print_struct(ndr, "out", "spoolss_5f");
23140 ndr_print_WERROR(ndr, "result", r->out.result);
23146 static const struct ndr_interface_call spoolss_calls[] = {
23148 "spoolss_EnumPrinters",
23149 sizeof(struct spoolss_EnumPrinters),
23150 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
23151 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
23152 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
23156 "spoolss_OpenPrinter",
23157 sizeof(struct spoolss_OpenPrinter),
23158 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
23159 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
23160 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
23165 sizeof(struct spoolss_SetJob),
23166 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
23167 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
23168 (ndr_print_function_t) ndr_print_spoolss_SetJob,
23173 sizeof(struct spoolss_GetJob),
23174 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
23175 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
23176 (ndr_print_function_t) ndr_print_spoolss_GetJob,
23180 "spoolss_EnumJobs",
23181 sizeof(struct spoolss_EnumJobs),
23182 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
23183 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
23184 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
23188 "spoolss_AddPrinter",
23189 sizeof(struct spoolss_AddPrinter),
23190 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
23191 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
23192 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
23196 "spoolss_DeletePrinter",
23197 sizeof(struct spoolss_DeletePrinter),
23198 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
23199 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
23200 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
23204 "spoolss_SetPrinter",
23205 sizeof(struct spoolss_SetPrinter),
23206 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
23207 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
23208 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
23212 "spoolss_GetPrinter",
23213 sizeof(struct spoolss_GetPrinter),
23214 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
23215 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
23216 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
23220 "spoolss_AddPrinterDriver",
23221 sizeof(struct spoolss_AddPrinterDriver),
23222 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
23223 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
23224 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
23228 "spoolss_EnumPrinterDrivers",
23229 sizeof(struct spoolss_EnumPrinterDrivers),
23230 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
23231 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
23232 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
23236 "spoolss_GetPrinterDriver",
23237 sizeof(struct spoolss_GetPrinterDriver),
23238 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
23239 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
23240 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
23244 "spoolss_GetPrinterDriverDirectory",
23245 sizeof(struct spoolss_GetPrinterDriverDirectory),
23246 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
23247 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
23248 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
23252 "spoolss_DeletePrinterDriver",
23253 sizeof(struct spoolss_DeletePrinterDriver),
23254 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
23255 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
23256 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
23260 "spoolss_AddPrintProcessor",
23261 sizeof(struct spoolss_AddPrintProcessor),
23262 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
23263 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
23264 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
23268 "spoolss_EnumPrintProcessors",
23269 sizeof(struct spoolss_EnumPrintProcessors),
23270 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
23271 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
23272 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
23276 "spoolss_GetPrintProcessorDirectory",
23277 sizeof(struct spoolss_GetPrintProcessorDirectory),
23278 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
23279 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
23280 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
23284 "spoolss_StartDocPrinter",
23285 sizeof(struct spoolss_StartDocPrinter),
23286 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
23287 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
23288 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
23292 "spoolss_StartPagePrinter",
23293 sizeof(struct spoolss_StartPagePrinter),
23294 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
23295 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
23296 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
23300 "spoolss_WritePrinter",
23301 sizeof(struct spoolss_WritePrinter),
23302 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
23303 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
23304 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
23308 "spoolss_EndPagePrinter",
23309 sizeof(struct spoolss_EndPagePrinter),
23310 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
23311 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
23312 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
23316 "spoolss_AbortPrinter",
23317 sizeof(struct spoolss_AbortPrinter),
23318 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
23319 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
23320 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
23324 "spoolss_ReadPrinter",
23325 sizeof(struct spoolss_ReadPrinter),
23326 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
23327 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
23328 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
23332 "spoolss_EndDocPrinter",
23333 sizeof(struct spoolss_EndDocPrinter),
23334 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
23335 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
23336 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
23341 sizeof(struct spoolss_AddJob),
23342 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
23343 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
23344 (ndr_print_function_t) ndr_print_spoolss_AddJob,
23348 "spoolss_ScheduleJob",
23349 sizeof(struct spoolss_ScheduleJob),
23350 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
23351 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
23352 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
23356 "spoolss_GetPrinterData",
23357 sizeof(struct spoolss_GetPrinterData),
23358 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
23359 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
23360 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
23364 "spoolss_SetPrinterData",
23365 sizeof(struct spoolss_SetPrinterData),
23366 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
23367 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
23368 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
23372 "spoolss_WaitForPrinterChange",
23373 sizeof(struct spoolss_WaitForPrinterChange),
23374 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
23375 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
23376 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
23380 "spoolss_ClosePrinter",
23381 sizeof(struct spoolss_ClosePrinter),
23382 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
23383 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
23384 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
23389 sizeof(struct spoolss_AddForm),
23390 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
23391 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
23392 (ndr_print_function_t) ndr_print_spoolss_AddForm,
23396 "spoolss_DeleteForm",
23397 sizeof(struct spoolss_DeleteForm),
23398 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
23399 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
23400 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
23405 sizeof(struct spoolss_GetForm),
23406 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
23407 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
23408 (ndr_print_function_t) ndr_print_spoolss_GetForm,
23413 sizeof(struct spoolss_SetForm),
23414 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
23415 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
23416 (ndr_print_function_t) ndr_print_spoolss_SetForm,
23420 "spoolss_EnumForms",
23421 sizeof(struct spoolss_EnumForms),
23422 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
23423 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
23424 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
23428 "spoolss_EnumPorts",
23429 sizeof(struct spoolss_EnumPorts),
23430 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
23431 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
23432 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
23436 "spoolss_EnumMonitors",
23437 sizeof(struct spoolss_EnumMonitors),
23438 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
23439 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
23440 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
23445 sizeof(struct spoolss_AddPort),
23446 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
23447 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
23448 (ndr_print_function_t) ndr_print_spoolss_AddPort,
23452 "spoolss_ConfigurePort",
23453 sizeof(struct spoolss_ConfigurePort),
23454 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
23455 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
23456 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
23460 "spoolss_DeletePort",
23461 sizeof(struct spoolss_DeletePort),
23462 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
23463 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
23464 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
23468 "spoolss_CreatePrinterIC",
23469 sizeof(struct spoolss_CreatePrinterIC),
23470 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
23471 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
23472 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
23476 "spoolss_PlayGDIScriptOnPrinterIC",
23477 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
23478 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
23479 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
23480 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
23484 "spoolss_DeletePrinterIC",
23485 sizeof(struct spoolss_DeletePrinterIC),
23486 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
23487 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
23488 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
23492 "spoolss_AddPrinterConnection",
23493 sizeof(struct spoolss_AddPrinterConnection),
23494 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
23495 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
23496 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
23500 "spoolss_DeletePrinterConnection",
23501 sizeof(struct spoolss_DeletePrinterConnection),
23502 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
23503 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
23504 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
23508 "spoolss_PrinterMessageBox",
23509 sizeof(struct spoolss_PrinterMessageBox),
23510 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
23511 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
23512 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
23516 "spoolss_AddMonitor",
23517 sizeof(struct spoolss_AddMonitor),
23518 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
23519 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
23520 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
23524 "spoolss_DeleteMonitor",
23525 sizeof(struct spoolss_DeleteMonitor),
23526 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
23527 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
23528 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
23532 "spoolss_DeletePrintProcessor",
23533 sizeof(struct spoolss_DeletePrintProcessor),
23534 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
23535 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
23536 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
23540 "spoolss_AddPrintProvidor",
23541 sizeof(struct spoolss_AddPrintProvidor),
23542 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
23543 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
23544 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
23548 "spoolss_DeletePrintProvidor",
23549 sizeof(struct spoolss_DeletePrintProvidor),
23550 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
23551 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
23552 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
23556 "spoolss_EnumPrintProcDataTypes",
23557 sizeof(struct spoolss_EnumPrintProcDataTypes),
23558 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
23559 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
23560 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
23564 "spoolss_ResetPrinter",
23565 sizeof(struct spoolss_ResetPrinter),
23566 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
23567 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
23568 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
23572 "spoolss_GetPrinterDriver2",
23573 sizeof(struct spoolss_GetPrinterDriver2),
23574 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
23575 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
23576 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
23580 "spoolss_FindFirstPrinterChangeNotification",
23581 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
23582 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
23583 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
23584 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
23588 "spoolss_FindNextPrinterChangeNotification",
23589 sizeof(struct spoolss_FindNextPrinterChangeNotification),
23590 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
23591 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
23592 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
23596 "spoolss_FindClosePrinterNotify",
23597 sizeof(struct spoolss_FindClosePrinterNotify),
23598 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
23599 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
23600 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
23604 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
23605 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
23606 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23607 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23608 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23612 "spoolss_ReplyOpenPrinter",
23613 sizeof(struct spoolss_ReplyOpenPrinter),
23614 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
23615 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
23616 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
23620 "spoolss_RouterReplyPrinter",
23621 sizeof(struct spoolss_RouterReplyPrinter),
23622 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
23623 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
23624 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
23628 "spoolss_ReplyClosePrinter",
23629 sizeof(struct spoolss_ReplyClosePrinter),
23630 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
23631 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
23632 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
23636 "spoolss_AddPortEx",
23637 sizeof(struct spoolss_AddPortEx),
23638 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
23639 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
23640 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
23644 "spoolss_RouterFindFirstPrinterChangeNotification",
23645 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
23646 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
23647 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
23648 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
23652 "spoolss_SpoolerInit",
23653 sizeof(struct spoolss_SpoolerInit),
23654 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
23655 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
23656 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
23660 "spoolss_ResetPrinterEx",
23661 sizeof(struct spoolss_ResetPrinterEx),
23662 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
23663 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
23664 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
23668 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
23669 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
23670 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23671 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23672 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23676 "spoolss_RouterReplyPrinterEx",
23677 sizeof(struct spoolss_RouterReplyPrinterEx),
23678 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
23679 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
23680 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
23684 "spoolss_RouterRefreshPrinterChangeNotify",
23685 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
23686 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
23687 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
23688 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
23693 sizeof(struct spoolss_44),
23694 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
23695 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
23696 (ndr_print_function_t) ndr_print_spoolss_44,
23700 "spoolss_OpenPrinterEx",
23701 sizeof(struct spoolss_OpenPrinterEx),
23702 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
23703 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
23704 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
23708 "spoolss_AddPrinterEx",
23709 sizeof(struct spoolss_AddPrinterEx),
23710 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
23711 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
23712 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
23717 sizeof(struct spoolss_47),
23718 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
23719 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
23720 (ndr_print_function_t) ndr_print_spoolss_47,
23724 "spoolss_EnumPrinterData",
23725 sizeof(struct spoolss_EnumPrinterData),
23726 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
23727 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
23728 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
23732 "spoolss_DeletePrinterData",
23733 sizeof(struct spoolss_DeletePrinterData),
23734 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
23735 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
23736 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
23741 sizeof(struct spoolss_4a),
23742 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
23743 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
23744 (ndr_print_function_t) ndr_print_spoolss_4a,
23749 sizeof(struct spoolss_4b),
23750 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
23751 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
23752 (ndr_print_function_t) ndr_print_spoolss_4b,
23757 sizeof(struct spoolss_4c),
23758 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
23759 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
23760 (ndr_print_function_t) ndr_print_spoolss_4c,
23764 "spoolss_SetPrinterDataEx",
23765 sizeof(struct spoolss_SetPrinterDataEx),
23766 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
23767 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
23768 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
23772 "spoolss_GetPrinterDataEx",
23773 sizeof(struct spoolss_GetPrinterDataEx),
23774 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
23775 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
23776 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
23780 "spoolss_EnumPrinterDataEx",
23781 sizeof(struct spoolss_EnumPrinterDataEx),
23782 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
23783 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
23784 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
23788 "spoolss_EnumPrinterKey",
23789 sizeof(struct spoolss_EnumPrinterKey),
23790 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
23791 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
23792 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
23796 "spoolss_DeletePrinterDataEx",
23797 sizeof(struct spoolss_DeletePrinterDataEx),
23798 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
23799 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
23800 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
23804 "spoolss_DeletePrinterKey",
23805 sizeof(struct spoolss_DeletePrinterKey),
23806 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
23807 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
23808 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
23813 sizeof(struct spoolss_53),
23814 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
23815 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
23816 (ndr_print_function_t) ndr_print_spoolss_53,
23820 "spoolss_DeletePrinterDriverEx",
23821 sizeof(struct spoolss_DeletePrinterDriverEx),
23822 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
23823 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
23824 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
23829 sizeof(struct spoolss_55),
23830 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
23831 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
23832 (ndr_print_function_t) ndr_print_spoolss_55,
23837 sizeof(struct spoolss_56),
23838 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
23839 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
23840 (ndr_print_function_t) ndr_print_spoolss_56,
23845 sizeof(struct spoolss_57),
23846 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
23847 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
23848 (ndr_print_function_t) ndr_print_spoolss_57,
23853 sizeof(struct spoolss_XcvData),
23854 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
23855 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
23856 (ndr_print_function_t) ndr_print_spoolss_XcvData,
23860 "spoolss_AddPrinterDriverEx",
23861 sizeof(struct spoolss_AddPrinterDriverEx),
23862 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
23863 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
23864 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
23869 sizeof(struct spoolss_5a),
23870 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
23871 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
23872 (ndr_print_function_t) ndr_print_spoolss_5a,
23877 sizeof(struct spoolss_5b),
23878 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
23879 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
23880 (ndr_print_function_t) ndr_print_spoolss_5b,
23885 sizeof(struct spoolss_5c),
23886 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
23887 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
23888 (ndr_print_function_t) ndr_print_spoolss_5c,
23893 sizeof(struct spoolss_5d),
23894 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
23895 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
23896 (ndr_print_function_t) ndr_print_spoolss_5d,
23901 sizeof(struct spoolss_5e),
23902 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
23903 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
23904 (ndr_print_function_t) ndr_print_spoolss_5e,
23909 sizeof(struct spoolss_5f),
23910 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
23911 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
23912 (ndr_print_function_t) ndr_print_spoolss_5f,
23915 { NULL, 0, NULL, NULL, NULL, false }
23918 static const char * const spoolss_endpoint_strings[] = {
23919 "ncacn_np:[\\pipe\\spoolss]",
23922 static const struct ndr_interface_string_array spoolss_endpoints = {
23924 .names = spoolss_endpoint_strings
23927 static const char * const spoolss_authservice_strings[] = {
23931 static const struct ndr_interface_string_array spoolss_authservices = {
23933 .names = spoolss_authservice_strings
23937 const struct ndr_interface_table ndr_table_spoolss = {
23940 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
23941 NDR_SPOOLSS_VERSION
23943 .helpstring = NDR_SPOOLSS_HELPSTRING,
23945 .calls = spoolss_calls,
23946 .endpoints = &spoolss_endpoints,
23947 .authservices = &spoolss_authservices