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 _PUBLIC_ 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 _PUBLIC_ 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_date));
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_date));
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_date", r->driver_date);
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_date));
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_date));
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_date", r->driver_date);
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 _PUBLIC_ 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 _PUBLIC_ 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 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo1(const struct spoolss_DriverInfo1 *r, struct smb_iconv_convenience *ic, int flags)
7230 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo1, ic);
7233 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
7235 if (ndr_flags & NDR_SCALARS) {
7236 NDR_CHECK(ndr_push_align(ndr, 4));
7237 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7239 uint32_t _flags_save_string = ndr->flags;
7240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7242 ndr->flags = _flags_save_string;
7245 uint32_t _flags_save_string = ndr->flags;
7246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7248 ndr->flags = _flags_save_string;
7251 uint32_t _flags_save_string = ndr->flags;
7252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7253 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7254 ndr->flags = _flags_save_string;
7257 uint32_t _flags_save_string = ndr->flags;
7258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7260 ndr->flags = _flags_save_string;
7263 uint32_t _flags_save_string = ndr->flags;
7264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7265 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7266 ndr->flags = _flags_save_string;
7269 if (ndr_flags & NDR_BUFFERS) {
7271 uint32_t _flags_save_string = ndr->flags;
7272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7273 if (r->driver_name) {
7274 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7275 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7277 ndr->flags = _flags_save_string;
7280 uint32_t _flags_save_string = ndr->flags;
7281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7282 if (r->architecture) {
7283 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7284 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7286 ndr->flags = _flags_save_string;
7289 uint32_t _flags_save_string = ndr->flags;
7290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7291 if (r->driver_path) {
7292 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7293 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7295 ndr->flags = _flags_save_string;
7298 uint32_t _flags_save_string = ndr->flags;
7299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7301 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7302 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7304 ndr->flags = _flags_save_string;
7307 uint32_t _flags_save_string = ndr->flags;
7308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7309 if (r->config_file) {
7310 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7311 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7313 ndr->flags = _flags_save_string;
7316 return NDR_ERR_SUCCESS;
7319 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
7321 uint32_t _ptr_driver_name;
7322 TALLOC_CTX *_mem_save_driver_name_0;
7323 uint32_t _ptr_architecture;
7324 TALLOC_CTX *_mem_save_architecture_0;
7325 uint32_t _ptr_driver_path;
7326 TALLOC_CTX *_mem_save_driver_path_0;
7327 uint32_t _ptr_data_file;
7328 TALLOC_CTX *_mem_save_data_file_0;
7329 uint32_t _ptr_config_file;
7330 TALLOC_CTX *_mem_save_config_file_0;
7331 if (ndr_flags & NDR_SCALARS) {
7332 NDR_CHECK(ndr_pull_align(ndr, 4));
7333 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7335 uint32_t _flags_save_string = ndr->flags;
7336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7337 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7338 if (_ptr_driver_name) {
7339 NDR_PULL_ALLOC(ndr, r->driver_name);
7340 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7342 r->driver_name = NULL;
7344 ndr->flags = _flags_save_string;
7347 uint32_t _flags_save_string = ndr->flags;
7348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7350 if (_ptr_architecture) {
7351 NDR_PULL_ALLOC(ndr, r->architecture);
7352 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7354 r->architecture = NULL;
7356 ndr->flags = _flags_save_string;
7359 uint32_t _flags_save_string = ndr->flags;
7360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7362 if (_ptr_driver_path) {
7363 NDR_PULL_ALLOC(ndr, r->driver_path);
7364 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7366 r->driver_path = NULL;
7368 ndr->flags = _flags_save_string;
7371 uint32_t _flags_save_string = ndr->flags;
7372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7374 if (_ptr_data_file) {
7375 NDR_PULL_ALLOC(ndr, r->data_file);
7376 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7378 r->data_file = NULL;
7380 ndr->flags = _flags_save_string;
7383 uint32_t _flags_save_string = ndr->flags;
7384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7386 if (_ptr_config_file) {
7387 NDR_PULL_ALLOC(ndr, r->config_file);
7388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7390 r->config_file = NULL;
7392 ndr->flags = _flags_save_string;
7395 if (ndr_flags & NDR_BUFFERS) {
7397 uint32_t _flags_save_string = ndr->flags;
7398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7399 if (r->driver_name) {
7400 uint32_t _relative_save_offset;
7401 _relative_save_offset = ndr->offset;
7402 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7403 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7404 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7405 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7407 ndr->offset = _relative_save_offset;
7409 ndr->flags = _flags_save_string;
7412 uint32_t _flags_save_string = ndr->flags;
7413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7414 if (r->architecture) {
7415 uint32_t _relative_save_offset;
7416 _relative_save_offset = ndr->offset;
7417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7418 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7419 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7420 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7422 ndr->offset = _relative_save_offset;
7424 ndr->flags = _flags_save_string;
7427 uint32_t _flags_save_string = ndr->flags;
7428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7429 if (r->driver_path) {
7430 uint32_t _relative_save_offset;
7431 _relative_save_offset = ndr->offset;
7432 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7433 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7434 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7435 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7437 ndr->offset = _relative_save_offset;
7439 ndr->flags = _flags_save_string;
7442 uint32_t _flags_save_string = ndr->flags;
7443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7445 uint32_t _relative_save_offset;
7446 _relative_save_offset = ndr->offset;
7447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7448 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7449 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7452 ndr->offset = _relative_save_offset;
7454 ndr->flags = _flags_save_string;
7457 uint32_t _flags_save_string = ndr->flags;
7458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7459 if (r->config_file) {
7460 uint32_t _relative_save_offset;
7461 _relative_save_offset = ndr->offset;
7462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7463 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7464 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7467 ndr->offset = _relative_save_offset;
7469 ndr->flags = _flags_save_string;
7472 return NDR_ERR_SUCCESS;
7475 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
7477 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
7479 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7480 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7482 if (r->driver_name) {
7483 ndr_print_string(ndr, "driver_name", r->driver_name);
7486 ndr_print_ptr(ndr, "architecture", r->architecture);
7488 if (r->architecture) {
7489 ndr_print_string(ndr, "architecture", r->architecture);
7492 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7494 if (r->driver_path) {
7495 ndr_print_string(ndr, "driver_path", r->driver_path);
7498 ndr_print_ptr(ndr, "data_file", r->data_file);
7501 ndr_print_string(ndr, "data_file", r->data_file);
7504 ndr_print_ptr(ndr, "config_file", r->config_file);
7506 if (r->config_file) {
7507 ndr_print_string(ndr, "config_file", r->config_file);
7513 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo2(const struct spoolss_DriverInfo2 *r, struct smb_iconv_convenience *ic, int flags)
7515 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo2, ic);
7518 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
7520 if (ndr_flags & NDR_SCALARS) {
7521 NDR_CHECK(ndr_push_align(ndr, 4));
7522 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7524 uint32_t _flags_save_string = ndr->flags;
7525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7527 ndr->flags = _flags_save_string;
7530 uint32_t _flags_save_string = ndr->flags;
7531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7533 ndr->flags = _flags_save_string;
7536 uint32_t _flags_save_string = ndr->flags;
7537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7539 ndr->flags = _flags_save_string;
7542 uint32_t _flags_save_string = ndr->flags;
7543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7544 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7545 ndr->flags = _flags_save_string;
7548 uint32_t _flags_save_string = ndr->flags;
7549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7551 ndr->flags = _flags_save_string;
7554 uint32_t _flags_save_string = ndr->flags;
7555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7556 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
7557 ndr->flags = _flags_save_string;
7560 uint32_t _flags_save_string_array = ndr->flags;
7561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7562 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
7563 ndr->flags = _flags_save_string_array;
7566 uint32_t _flags_save_string = ndr->flags;
7567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7568 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7569 ndr->flags = _flags_save_string;
7572 uint32_t _flags_save_string = ndr->flags;
7573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7574 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
7575 ndr->flags = _flags_save_string;
7578 if (ndr_flags & NDR_BUFFERS) {
7580 uint32_t _flags_save_string = ndr->flags;
7581 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7582 if (r->driver_name) {
7583 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7584 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7586 ndr->flags = _flags_save_string;
7589 uint32_t _flags_save_string = ndr->flags;
7590 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7591 if (r->architecture) {
7592 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7593 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7595 ndr->flags = _flags_save_string;
7598 uint32_t _flags_save_string = ndr->flags;
7599 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7600 if (r->driver_path) {
7601 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7602 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7604 ndr->flags = _flags_save_string;
7607 uint32_t _flags_save_string = ndr->flags;
7608 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7610 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7611 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7613 ndr->flags = _flags_save_string;
7616 uint32_t _flags_save_string = ndr->flags;
7617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7618 if (r->config_file) {
7619 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7622 ndr->flags = _flags_save_string;
7625 uint32_t _flags_save_string = ndr->flags;
7626 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7628 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
7629 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
7631 ndr->flags = _flags_save_string;
7634 uint32_t _flags_save_string_array = ndr->flags;
7635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7636 if (r->dependent_files) {
7637 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
7638 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
7640 ndr->flags = _flags_save_string_array;
7643 uint32_t _flags_save_string = ndr->flags;
7644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7645 if (r->monitor_name) {
7646 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7647 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7649 ndr->flags = _flags_save_string;
7652 uint32_t _flags_save_string = ndr->flags;
7653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7654 if (r->default_datatype) {
7655 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
7656 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
7658 ndr->flags = _flags_save_string;
7661 return NDR_ERR_SUCCESS;
7664 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
7666 uint32_t _ptr_driver_name;
7667 TALLOC_CTX *_mem_save_driver_name_0;
7668 uint32_t _ptr_architecture;
7669 TALLOC_CTX *_mem_save_architecture_0;
7670 uint32_t _ptr_driver_path;
7671 TALLOC_CTX *_mem_save_driver_path_0;
7672 uint32_t _ptr_data_file;
7673 TALLOC_CTX *_mem_save_data_file_0;
7674 uint32_t _ptr_config_file;
7675 TALLOC_CTX *_mem_save_config_file_0;
7676 uint32_t _ptr_help_file;
7677 TALLOC_CTX *_mem_save_help_file_0;
7678 uint32_t _ptr_dependent_files;
7679 TALLOC_CTX *_mem_save_dependent_files_0;
7680 uint32_t _ptr_monitor_name;
7681 TALLOC_CTX *_mem_save_monitor_name_0;
7682 uint32_t _ptr_default_datatype;
7683 TALLOC_CTX *_mem_save_default_datatype_0;
7684 if (ndr_flags & NDR_SCALARS) {
7685 NDR_CHECK(ndr_pull_align(ndr, 4));
7686 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7688 uint32_t _flags_save_string = ndr->flags;
7689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7691 if (_ptr_driver_name) {
7692 NDR_PULL_ALLOC(ndr, r->driver_name);
7693 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7695 r->driver_name = NULL;
7697 ndr->flags = _flags_save_string;
7700 uint32_t _flags_save_string = ndr->flags;
7701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7702 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7703 if (_ptr_architecture) {
7704 NDR_PULL_ALLOC(ndr, r->architecture);
7705 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7707 r->architecture = NULL;
7709 ndr->flags = _flags_save_string;
7712 uint32_t _flags_save_string = ndr->flags;
7713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7715 if (_ptr_driver_path) {
7716 NDR_PULL_ALLOC(ndr, r->driver_path);
7717 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7719 r->driver_path = NULL;
7721 ndr->flags = _flags_save_string;
7724 uint32_t _flags_save_string = ndr->flags;
7725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7727 if (_ptr_data_file) {
7728 NDR_PULL_ALLOC(ndr, r->data_file);
7729 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7731 r->data_file = NULL;
7733 ndr->flags = _flags_save_string;
7736 uint32_t _flags_save_string = ndr->flags;
7737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7738 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7739 if (_ptr_config_file) {
7740 NDR_PULL_ALLOC(ndr, r->config_file);
7741 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7743 r->config_file = NULL;
7745 ndr->flags = _flags_save_string;
7748 uint32_t _flags_save_string = ndr->flags;
7749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7751 if (_ptr_help_file) {
7752 NDR_PULL_ALLOC(ndr, r->help_file);
7753 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7755 r->help_file = NULL;
7757 ndr->flags = _flags_save_string;
7760 uint32_t _flags_save_string_array = ndr->flags;
7761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7763 if (_ptr_dependent_files) {
7764 NDR_PULL_ALLOC(ndr, r->dependent_files);
7765 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7767 r->dependent_files = NULL;
7769 ndr->flags = _flags_save_string_array;
7772 uint32_t _flags_save_string = ndr->flags;
7773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7774 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7775 if (_ptr_monitor_name) {
7776 NDR_PULL_ALLOC(ndr, r->monitor_name);
7777 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7779 r->monitor_name = NULL;
7781 ndr->flags = _flags_save_string;
7784 uint32_t _flags_save_string = ndr->flags;
7785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7786 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7787 if (_ptr_default_datatype) {
7788 NDR_PULL_ALLOC(ndr, r->default_datatype);
7789 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7791 r->default_datatype = NULL;
7793 ndr->flags = _flags_save_string;
7796 if (ndr_flags & NDR_BUFFERS) {
7798 uint32_t _flags_save_string = ndr->flags;
7799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7800 if (r->driver_name) {
7801 uint32_t _relative_save_offset;
7802 _relative_save_offset = ndr->offset;
7803 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7804 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7805 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7806 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7808 ndr->offset = _relative_save_offset;
7810 ndr->flags = _flags_save_string;
7813 uint32_t _flags_save_string = ndr->flags;
7814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7815 if (r->architecture) {
7816 uint32_t _relative_save_offset;
7817 _relative_save_offset = ndr->offset;
7818 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7819 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7820 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7821 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7822 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7823 ndr->offset = _relative_save_offset;
7825 ndr->flags = _flags_save_string;
7828 uint32_t _flags_save_string = ndr->flags;
7829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7830 if (r->driver_path) {
7831 uint32_t _relative_save_offset;
7832 _relative_save_offset = ndr->offset;
7833 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7834 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7835 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7836 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7837 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7838 ndr->offset = _relative_save_offset;
7840 ndr->flags = _flags_save_string;
7843 uint32_t _flags_save_string = ndr->flags;
7844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7846 uint32_t _relative_save_offset;
7847 _relative_save_offset = ndr->offset;
7848 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7849 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7850 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7851 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7852 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7853 ndr->offset = _relative_save_offset;
7855 ndr->flags = _flags_save_string;
7858 uint32_t _flags_save_string = ndr->flags;
7859 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7860 if (r->config_file) {
7861 uint32_t _relative_save_offset;
7862 _relative_save_offset = ndr->offset;
7863 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7864 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7865 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7866 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7867 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7868 ndr->offset = _relative_save_offset;
7870 ndr->flags = _flags_save_string;
7873 uint32_t _flags_save_string = ndr->flags;
7874 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7876 uint32_t _relative_save_offset;
7877 _relative_save_offset = ndr->offset;
7878 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7879 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7880 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7881 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7882 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7883 ndr->offset = _relative_save_offset;
7885 ndr->flags = _flags_save_string;
7888 uint32_t _flags_save_string_array = ndr->flags;
7889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7890 if (r->dependent_files) {
7891 uint32_t _relative_save_offset;
7892 _relative_save_offset = ndr->offset;
7893 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7894 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7895 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7896 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7898 ndr->offset = _relative_save_offset;
7900 ndr->flags = _flags_save_string_array;
7903 uint32_t _flags_save_string = ndr->flags;
7904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7905 if (r->monitor_name) {
7906 uint32_t _relative_save_offset;
7907 _relative_save_offset = ndr->offset;
7908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7909 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7910 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7913 ndr->offset = _relative_save_offset;
7915 ndr->flags = _flags_save_string;
7918 uint32_t _flags_save_string = ndr->flags;
7919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7920 if (r->default_datatype) {
7921 uint32_t _relative_save_offset;
7922 _relative_save_offset = ndr->offset;
7923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7924 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7925 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7928 ndr->offset = _relative_save_offset;
7930 ndr->flags = _flags_save_string;
7933 return NDR_ERR_SUCCESS;
7936 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
7938 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
7940 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7941 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7943 if (r->driver_name) {
7944 ndr_print_string(ndr, "driver_name", r->driver_name);
7947 ndr_print_ptr(ndr, "architecture", r->architecture);
7949 if (r->architecture) {
7950 ndr_print_string(ndr, "architecture", r->architecture);
7953 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7955 if (r->driver_path) {
7956 ndr_print_string(ndr, "driver_path", r->driver_path);
7959 ndr_print_ptr(ndr, "data_file", r->data_file);
7962 ndr_print_string(ndr, "data_file", r->data_file);
7965 ndr_print_ptr(ndr, "config_file", r->config_file);
7967 if (r->config_file) {
7968 ndr_print_string(ndr, "config_file", r->config_file);
7971 ndr_print_ptr(ndr, "help_file", r->help_file);
7974 ndr_print_string(ndr, "help_file", r->help_file);
7977 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7979 if (r->dependent_files) {
7980 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7983 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7985 if (r->monitor_name) {
7986 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7989 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7991 if (r->default_datatype) {
7992 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7998 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo3(const struct spoolss_DriverInfo3 *r, struct smb_iconv_convenience *ic, int flags)
8000 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo3, ic);
8003 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
8005 if (ndr_flags & NDR_SCALARS) {
8006 NDR_CHECK(ndr_push_align(ndr, 4));
8007 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8009 uint32_t _flags_save_string = ndr->flags;
8010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8011 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8012 ndr->flags = _flags_save_string;
8015 uint32_t _flags_save_string = ndr->flags;
8016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8017 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8018 ndr->flags = _flags_save_string;
8021 uint32_t _flags_save_string = ndr->flags;
8022 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8023 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8024 ndr->flags = _flags_save_string;
8027 uint32_t _flags_save_string = ndr->flags;
8028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8029 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8030 ndr->flags = _flags_save_string;
8033 uint32_t _flags_save_string = ndr->flags;
8034 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8035 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8036 ndr->flags = _flags_save_string;
8039 uint32_t _flags_save_string = ndr->flags;
8040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8041 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8042 ndr->flags = _flags_save_string;
8045 uint32_t _flags_save_string_array = ndr->flags;
8046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8047 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8048 ndr->flags = _flags_save_string_array;
8051 uint32_t _flags_save_string = ndr->flags;
8052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8053 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8054 ndr->flags = _flags_save_string;
8057 uint32_t _flags_save_string = ndr->flags;
8058 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8059 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8060 ndr->flags = _flags_save_string;
8063 uint32_t _flags_save_string_array = ndr->flags;
8064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8065 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8066 ndr->flags = _flags_save_string_array;
8069 if (ndr_flags & NDR_BUFFERS) {
8071 uint32_t _flags_save_string = ndr->flags;
8072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8073 if (r->driver_name) {
8074 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8075 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8077 ndr->flags = _flags_save_string;
8080 uint32_t _flags_save_string = ndr->flags;
8081 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8082 if (r->architecture) {
8083 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8084 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8086 ndr->flags = _flags_save_string;
8089 uint32_t _flags_save_string = ndr->flags;
8090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8091 if (r->driver_path) {
8092 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8093 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8095 ndr->flags = _flags_save_string;
8098 uint32_t _flags_save_string = ndr->flags;
8099 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8101 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8102 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8104 ndr->flags = _flags_save_string;
8107 uint32_t _flags_save_string = ndr->flags;
8108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8109 if (r->config_file) {
8110 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8111 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8113 ndr->flags = _flags_save_string;
8116 uint32_t _flags_save_string = ndr->flags;
8117 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8119 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8120 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8122 ndr->flags = _flags_save_string;
8125 uint32_t _flags_save_string_array = ndr->flags;
8126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8127 if (r->dependent_files) {
8128 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8129 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8131 ndr->flags = _flags_save_string_array;
8134 uint32_t _flags_save_string = ndr->flags;
8135 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8136 if (r->monitor_name) {
8137 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8138 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8140 ndr->flags = _flags_save_string;
8143 uint32_t _flags_save_string = ndr->flags;
8144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8145 if (r->default_datatype) {
8146 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8147 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8149 ndr->flags = _flags_save_string;
8152 uint32_t _flags_save_string_array = ndr->flags;
8153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8154 if (r->previous_names) {
8155 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8156 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8158 ndr->flags = _flags_save_string_array;
8161 return NDR_ERR_SUCCESS;
8164 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
8166 uint32_t _ptr_driver_name;
8167 TALLOC_CTX *_mem_save_driver_name_0;
8168 uint32_t _ptr_architecture;
8169 TALLOC_CTX *_mem_save_architecture_0;
8170 uint32_t _ptr_driver_path;
8171 TALLOC_CTX *_mem_save_driver_path_0;
8172 uint32_t _ptr_data_file;
8173 TALLOC_CTX *_mem_save_data_file_0;
8174 uint32_t _ptr_config_file;
8175 TALLOC_CTX *_mem_save_config_file_0;
8176 uint32_t _ptr_help_file;
8177 TALLOC_CTX *_mem_save_help_file_0;
8178 uint32_t _ptr_dependent_files;
8179 TALLOC_CTX *_mem_save_dependent_files_0;
8180 uint32_t _ptr_monitor_name;
8181 TALLOC_CTX *_mem_save_monitor_name_0;
8182 uint32_t _ptr_default_datatype;
8183 TALLOC_CTX *_mem_save_default_datatype_0;
8184 uint32_t _ptr_previous_names;
8185 TALLOC_CTX *_mem_save_previous_names_0;
8186 if (ndr_flags & NDR_SCALARS) {
8187 NDR_CHECK(ndr_pull_align(ndr, 4));
8188 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8190 uint32_t _flags_save_string = ndr->flags;
8191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8193 if (_ptr_driver_name) {
8194 NDR_PULL_ALLOC(ndr, r->driver_name);
8195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8197 r->driver_name = NULL;
8199 ndr->flags = _flags_save_string;
8202 uint32_t _flags_save_string = ndr->flags;
8203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8205 if (_ptr_architecture) {
8206 NDR_PULL_ALLOC(ndr, r->architecture);
8207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8209 r->architecture = NULL;
8211 ndr->flags = _flags_save_string;
8214 uint32_t _flags_save_string = ndr->flags;
8215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8217 if (_ptr_driver_path) {
8218 NDR_PULL_ALLOC(ndr, r->driver_path);
8219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8221 r->driver_path = NULL;
8223 ndr->flags = _flags_save_string;
8226 uint32_t _flags_save_string = ndr->flags;
8227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8229 if (_ptr_data_file) {
8230 NDR_PULL_ALLOC(ndr, r->data_file);
8231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8233 r->data_file = NULL;
8235 ndr->flags = _flags_save_string;
8238 uint32_t _flags_save_string = ndr->flags;
8239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8241 if (_ptr_config_file) {
8242 NDR_PULL_ALLOC(ndr, r->config_file);
8243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8245 r->config_file = NULL;
8247 ndr->flags = _flags_save_string;
8250 uint32_t _flags_save_string = ndr->flags;
8251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8253 if (_ptr_help_file) {
8254 NDR_PULL_ALLOC(ndr, r->help_file);
8255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
8257 r->help_file = NULL;
8259 ndr->flags = _flags_save_string;
8262 uint32_t _flags_save_string_array = ndr->flags;
8263 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8264 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8265 if (_ptr_dependent_files) {
8266 NDR_PULL_ALLOC(ndr, r->dependent_files);
8267 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
8269 r->dependent_files = NULL;
8271 ndr->flags = _flags_save_string_array;
8274 uint32_t _flags_save_string = ndr->flags;
8275 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8276 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8277 if (_ptr_monitor_name) {
8278 NDR_PULL_ALLOC(ndr, r->monitor_name);
8279 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
8281 r->monitor_name = NULL;
8283 ndr->flags = _flags_save_string;
8286 uint32_t _flags_save_string = ndr->flags;
8287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8288 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8289 if (_ptr_default_datatype) {
8290 NDR_PULL_ALLOC(ndr, r->default_datatype);
8291 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
8293 r->default_datatype = NULL;
8295 ndr->flags = _flags_save_string;
8298 uint32_t _flags_save_string_array = ndr->flags;
8299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8300 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8301 if (_ptr_previous_names) {
8302 NDR_PULL_ALLOC(ndr, r->previous_names);
8303 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
8305 r->previous_names = NULL;
8307 ndr->flags = _flags_save_string_array;
8310 if (ndr_flags & NDR_BUFFERS) {
8312 uint32_t _flags_save_string = ndr->flags;
8313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8314 if (r->driver_name) {
8315 uint32_t _relative_save_offset;
8316 _relative_save_offset = ndr->offset;
8317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8318 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8319 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_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->architecture) {
8330 uint32_t _relative_save_offset;
8331 _relative_save_offset = ndr->offset;
8332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8333 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8334 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_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);
8344 if (r->driver_path) {
8345 uint32_t _relative_save_offset;
8346 _relative_save_offset = ndr->offset;
8347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8348 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8349 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_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);
8360 uint32_t _relative_save_offset;
8361 _relative_save_offset = ndr->offset;
8362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8363 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8364 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_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);
8374 if (r->config_file) {
8375 uint32_t _relative_save_offset;
8376 _relative_save_offset = ndr->offset;
8377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8378 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8379 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8382 ndr->offset = _relative_save_offset;
8384 ndr->flags = _flags_save_string;
8387 uint32_t _flags_save_string = ndr->flags;
8388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8390 uint32_t _relative_save_offset;
8391 _relative_save_offset = ndr->offset;
8392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
8393 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8394 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8395 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
8396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8397 ndr->offset = _relative_save_offset;
8399 ndr->flags = _flags_save_string;
8402 uint32_t _flags_save_string_array = ndr->flags;
8403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8404 if (r->dependent_files) {
8405 uint32_t _relative_save_offset;
8406 _relative_save_offset = ndr->offset;
8407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
8408 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8409 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8410 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
8411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8412 ndr->offset = _relative_save_offset;
8414 ndr->flags = _flags_save_string_array;
8417 uint32_t _flags_save_string = ndr->flags;
8418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8419 if (r->monitor_name) {
8420 uint32_t _relative_save_offset;
8421 _relative_save_offset = ndr->offset;
8422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
8423 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8424 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
8426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8427 ndr->offset = _relative_save_offset;
8429 ndr->flags = _flags_save_string;
8432 uint32_t _flags_save_string = ndr->flags;
8433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8434 if (r->default_datatype) {
8435 uint32_t _relative_save_offset;
8436 _relative_save_offset = ndr->offset;
8437 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
8438 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8439 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8440 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
8441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8442 ndr->offset = _relative_save_offset;
8444 ndr->flags = _flags_save_string;
8447 uint32_t _flags_save_string_array = ndr->flags;
8448 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8449 if (r->previous_names) {
8450 uint32_t _relative_save_offset;
8451 _relative_save_offset = ndr->offset;
8452 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
8453 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8454 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8455 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
8456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8457 ndr->offset = _relative_save_offset;
8459 ndr->flags = _flags_save_string_array;
8462 return NDR_ERR_SUCCESS;
8465 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
8467 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
8469 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8470 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8472 if (r->driver_name) {
8473 ndr_print_string(ndr, "driver_name", r->driver_name);
8476 ndr_print_ptr(ndr, "architecture", r->architecture);
8478 if (r->architecture) {
8479 ndr_print_string(ndr, "architecture", r->architecture);
8482 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8484 if (r->driver_path) {
8485 ndr_print_string(ndr, "driver_path", r->driver_path);
8488 ndr_print_ptr(ndr, "data_file", r->data_file);
8491 ndr_print_string(ndr, "data_file", r->data_file);
8494 ndr_print_ptr(ndr, "config_file", r->config_file);
8496 if (r->config_file) {
8497 ndr_print_string(ndr, "config_file", r->config_file);
8500 ndr_print_ptr(ndr, "help_file", r->help_file);
8503 ndr_print_string(ndr, "help_file", r->help_file);
8506 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8508 if (r->dependent_files) {
8509 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
8512 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8514 if (r->monitor_name) {
8515 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8518 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8520 if (r->default_datatype) {
8521 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8524 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8526 if (r->previous_names) {
8527 ndr_print_string_array(ndr, "previous_names", r->previous_names);
8533 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo4(const struct spoolss_DriverInfo4 *r, struct smb_iconv_convenience *ic, int flags)
8535 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo4, ic);
8538 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
8540 if (ndr_flags & NDR_SCALARS) {
8541 NDR_CHECK(ndr_push_align(ndr, 4));
8542 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8544 uint32_t _flags_save_string = ndr->flags;
8545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8546 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8547 ndr->flags = _flags_save_string;
8550 uint32_t _flags_save_string = ndr->flags;
8551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8552 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8553 ndr->flags = _flags_save_string;
8556 uint32_t _flags_save_string = ndr->flags;
8557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8558 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8559 ndr->flags = _flags_save_string;
8562 uint32_t _flags_save_string = ndr->flags;
8563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8564 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
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 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8571 ndr->flags = _flags_save_string;
8573 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
8574 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
8575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
8577 if (ndr_flags & NDR_BUFFERS) {
8579 uint32_t _flags_save_string = ndr->flags;
8580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8581 if (r->driver_name) {
8582 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8583 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8585 ndr->flags = _flags_save_string;
8588 uint32_t _flags_save_string = ndr->flags;
8589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8590 if (r->architecture) {
8591 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8592 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8594 ndr->flags = _flags_save_string;
8597 uint32_t _flags_save_string = ndr->flags;
8598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8599 if (r->driver_path) {
8600 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8601 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8603 ndr->flags = _flags_save_string;
8606 uint32_t _flags_save_string = ndr->flags;
8607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8609 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8612 ndr->flags = _flags_save_string;
8615 uint32_t _flags_save_string = ndr->flags;
8616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8617 if (r->config_file) {
8618 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8619 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8621 ndr->flags = _flags_save_string;
8624 return NDR_ERR_SUCCESS;
8627 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
8629 uint32_t _ptr_driver_name;
8630 TALLOC_CTX *_mem_save_driver_name_0;
8631 uint32_t _ptr_architecture;
8632 TALLOC_CTX *_mem_save_architecture_0;
8633 uint32_t _ptr_driver_path;
8634 TALLOC_CTX *_mem_save_driver_path_0;
8635 uint32_t _ptr_data_file;
8636 TALLOC_CTX *_mem_save_data_file_0;
8637 uint32_t _ptr_config_file;
8638 TALLOC_CTX *_mem_save_config_file_0;
8639 if (ndr_flags & NDR_SCALARS) {
8640 NDR_CHECK(ndr_pull_align(ndr, 4));
8641 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8643 uint32_t _flags_save_string = ndr->flags;
8644 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8645 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8646 if (_ptr_driver_name) {
8647 NDR_PULL_ALLOC(ndr, r->driver_name);
8648 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8650 r->driver_name = NULL;
8652 ndr->flags = _flags_save_string;
8655 uint32_t _flags_save_string = ndr->flags;
8656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8657 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8658 if (_ptr_architecture) {
8659 NDR_PULL_ALLOC(ndr, r->architecture);
8660 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8662 r->architecture = NULL;
8664 ndr->flags = _flags_save_string;
8667 uint32_t _flags_save_string = ndr->flags;
8668 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8669 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8670 if (_ptr_driver_path) {
8671 NDR_PULL_ALLOC(ndr, r->driver_path);
8672 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8674 r->driver_path = NULL;
8676 ndr->flags = _flags_save_string;
8679 uint32_t _flags_save_string = ndr->flags;
8680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8681 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8682 if (_ptr_data_file) {
8683 NDR_PULL_ALLOC(ndr, r->data_file);
8684 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8686 r->data_file = NULL;
8688 ndr->flags = _flags_save_string;
8691 uint32_t _flags_save_string = ndr->flags;
8692 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8693 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8694 if (_ptr_config_file) {
8695 NDR_PULL_ALLOC(ndr, r->config_file);
8696 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8698 r->config_file = NULL;
8700 ndr->flags = _flags_save_string;
8702 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
8703 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
8704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
8706 if (ndr_flags & NDR_BUFFERS) {
8708 uint32_t _flags_save_string = ndr->flags;
8709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8710 if (r->driver_name) {
8711 uint32_t _relative_save_offset;
8712 _relative_save_offset = ndr->offset;
8713 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8714 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8715 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8718 ndr->offset = _relative_save_offset;
8720 ndr->flags = _flags_save_string;
8723 uint32_t _flags_save_string = ndr->flags;
8724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8725 if (r->architecture) {
8726 uint32_t _relative_save_offset;
8727 _relative_save_offset = ndr->offset;
8728 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8729 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8730 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8731 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8733 ndr->offset = _relative_save_offset;
8735 ndr->flags = _flags_save_string;
8738 uint32_t _flags_save_string = ndr->flags;
8739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8740 if (r->driver_path) {
8741 uint32_t _relative_save_offset;
8742 _relative_save_offset = ndr->offset;
8743 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8744 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8745 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8746 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8748 ndr->offset = _relative_save_offset;
8750 ndr->flags = _flags_save_string;
8753 uint32_t _flags_save_string = ndr->flags;
8754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8756 uint32_t _relative_save_offset;
8757 _relative_save_offset = ndr->offset;
8758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8759 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8760 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8763 ndr->offset = _relative_save_offset;
8765 ndr->flags = _flags_save_string;
8768 uint32_t _flags_save_string = ndr->flags;
8769 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8770 if (r->config_file) {
8771 uint32_t _relative_save_offset;
8772 _relative_save_offset = ndr->offset;
8773 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8774 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8775 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8776 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8777 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8778 ndr->offset = _relative_save_offset;
8780 ndr->flags = _flags_save_string;
8783 return NDR_ERR_SUCCESS;
8786 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
8788 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
8790 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8791 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8793 if (r->driver_name) {
8794 ndr_print_string(ndr, "driver_name", r->driver_name);
8797 ndr_print_ptr(ndr, "architecture", r->architecture);
8799 if (r->architecture) {
8800 ndr_print_string(ndr, "architecture", r->architecture);
8803 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8805 if (r->driver_path) {
8806 ndr_print_string(ndr, "driver_path", r->driver_path);
8809 ndr_print_ptr(ndr, "data_file", r->data_file);
8812 ndr_print_string(ndr, "data_file", r->data_file);
8815 ndr_print_ptr(ndr, "config_file", r->config_file);
8817 if (r->config_file) {
8818 ndr_print_string(ndr, "config_file", r->config_file);
8821 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
8822 ndr_print_uint32(ndr, "config_version", r->config_version);
8823 ndr_print_uint32(ndr, "driver_version", r->driver_version);
8827 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo5(const struct spoolss_DriverInfo5 *r, struct smb_iconv_convenience *ic, int flags)
8829 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo5, ic);
8832 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
8834 if (ndr_flags & NDR_SCALARS) {
8835 NDR_CHECK(ndr_push_align(ndr, 8));
8836 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8838 uint32_t _flags_save_string = ndr->flags;
8839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8840 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8841 ndr->flags = _flags_save_string;
8844 uint32_t _flags_save_string = ndr->flags;
8845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8846 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8847 ndr->flags = _flags_save_string;
8850 uint32_t _flags_save_string = ndr->flags;
8851 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8852 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8853 ndr->flags = _flags_save_string;
8856 uint32_t _flags_save_string = ndr->flags;
8857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8858 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8859 ndr->flags = _flags_save_string;
8862 uint32_t _flags_save_string = ndr->flags;
8863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8864 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8865 ndr->flags = _flags_save_string;
8868 uint32_t _flags_save_string = ndr->flags;
8869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8870 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8871 ndr->flags = _flags_save_string;
8874 uint32_t _flags_save_string_array = ndr->flags;
8875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8876 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8877 ndr->flags = _flags_save_string_array;
8880 uint32_t _flags_save_string = ndr->flags;
8881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8882 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8883 ndr->flags = _flags_save_string;
8886 uint32_t _flags_save_string = ndr->flags;
8887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8888 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8889 ndr->flags = _flags_save_string;
8892 uint32_t _flags_save_string_array = ndr->flags;
8893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8895 ndr->flags = _flags_save_string_array;
8897 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
8898 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8900 uint32_t _flags_save_string = ndr->flags;
8901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8902 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
8903 ndr->flags = _flags_save_string;
8906 uint32_t _flags_save_string = ndr->flags;
8907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8908 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
8909 ndr->flags = _flags_save_string;
8912 uint32_t _flags_save_string = ndr->flags;
8913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8914 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
8915 ndr->flags = _flags_save_string;
8918 uint32_t _flags_save_string = ndr->flags;
8919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8920 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
8921 ndr->flags = _flags_save_string;
8924 if (ndr_flags & NDR_BUFFERS) {
8926 uint32_t _flags_save_string = ndr->flags;
8927 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8928 if (r->driver_name) {
8929 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8930 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8932 ndr->flags = _flags_save_string;
8935 uint32_t _flags_save_string = ndr->flags;
8936 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8937 if (r->architecture) {
8938 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8939 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8941 ndr->flags = _flags_save_string;
8944 uint32_t _flags_save_string = ndr->flags;
8945 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8946 if (r->driver_path) {
8947 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8948 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8950 ndr->flags = _flags_save_string;
8953 uint32_t _flags_save_string = ndr->flags;
8954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8956 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8957 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8959 ndr->flags = _flags_save_string;
8962 uint32_t _flags_save_string = ndr->flags;
8963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8964 if (r->config_file) {
8965 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8966 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8968 ndr->flags = _flags_save_string;
8971 uint32_t _flags_save_string = ndr->flags;
8972 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8974 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8975 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8977 ndr->flags = _flags_save_string;
8980 uint32_t _flags_save_string_array = ndr->flags;
8981 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8982 if (r->dependent_files) {
8983 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8984 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8986 ndr->flags = _flags_save_string_array;
8989 uint32_t _flags_save_string = ndr->flags;
8990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8991 if (r->monitor_name) {
8992 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8993 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8995 ndr->flags = _flags_save_string;
8998 uint32_t _flags_save_string = ndr->flags;
8999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9000 if (r->default_datatype) {
9001 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
9002 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
9004 ndr->flags = _flags_save_string;
9007 uint32_t _flags_save_string_array = ndr->flags;
9008 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9009 if (r->previous_names) {
9010 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
9011 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
9013 ndr->flags = _flags_save_string_array;
9016 uint32_t _flags_save_string = ndr->flags;
9017 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9018 if (r->manufacturer_name) {
9019 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9020 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9022 ndr->flags = _flags_save_string;
9025 uint32_t _flags_save_string = ndr->flags;
9026 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9027 if (r->manufacturer_url) {
9028 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9029 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9031 ndr->flags = _flags_save_string;
9034 uint32_t _flags_save_string = ndr->flags;
9035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9036 if (r->hardware_id) {
9037 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9038 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9040 ndr->flags = _flags_save_string;
9043 uint32_t _flags_save_string = ndr->flags;
9044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9046 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9047 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9049 ndr->flags = _flags_save_string;
9052 return NDR_ERR_SUCCESS;
9055 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
9057 uint32_t _ptr_driver_name;
9058 TALLOC_CTX *_mem_save_driver_name_0;
9059 uint32_t _ptr_architecture;
9060 TALLOC_CTX *_mem_save_architecture_0;
9061 uint32_t _ptr_driver_path;
9062 TALLOC_CTX *_mem_save_driver_path_0;
9063 uint32_t _ptr_data_file;
9064 TALLOC_CTX *_mem_save_data_file_0;
9065 uint32_t _ptr_config_file;
9066 TALLOC_CTX *_mem_save_config_file_0;
9067 uint32_t _ptr_help_file;
9068 TALLOC_CTX *_mem_save_help_file_0;
9069 uint32_t _ptr_dependent_files;
9070 TALLOC_CTX *_mem_save_dependent_files_0;
9071 uint32_t _ptr_monitor_name;
9072 TALLOC_CTX *_mem_save_monitor_name_0;
9073 uint32_t _ptr_default_datatype;
9074 TALLOC_CTX *_mem_save_default_datatype_0;
9075 uint32_t _ptr_previous_names;
9076 TALLOC_CTX *_mem_save_previous_names_0;
9077 uint32_t _ptr_manufacturer_name;
9078 TALLOC_CTX *_mem_save_manufacturer_name_0;
9079 uint32_t _ptr_manufacturer_url;
9080 TALLOC_CTX *_mem_save_manufacturer_url_0;
9081 uint32_t _ptr_hardware_id;
9082 TALLOC_CTX *_mem_save_hardware_id_0;
9083 uint32_t _ptr_provider;
9084 TALLOC_CTX *_mem_save_provider_0;
9085 if (ndr_flags & NDR_SCALARS) {
9086 NDR_CHECK(ndr_pull_align(ndr, 8));
9087 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9089 uint32_t _flags_save_string = ndr->flags;
9090 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9091 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9092 if (_ptr_driver_name) {
9093 NDR_PULL_ALLOC(ndr, r->driver_name);
9094 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9096 r->driver_name = NULL;
9098 ndr->flags = _flags_save_string;
9101 uint32_t _flags_save_string = ndr->flags;
9102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9103 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9104 if (_ptr_architecture) {
9105 NDR_PULL_ALLOC(ndr, r->architecture);
9106 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9108 r->architecture = NULL;
9110 ndr->flags = _flags_save_string;
9113 uint32_t _flags_save_string = ndr->flags;
9114 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9115 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9116 if (_ptr_driver_path) {
9117 NDR_PULL_ALLOC(ndr, r->driver_path);
9118 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9120 r->driver_path = NULL;
9122 ndr->flags = _flags_save_string;
9125 uint32_t _flags_save_string = ndr->flags;
9126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9128 if (_ptr_data_file) {
9129 NDR_PULL_ALLOC(ndr, r->data_file);
9130 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9132 r->data_file = NULL;
9134 ndr->flags = _flags_save_string;
9137 uint32_t _flags_save_string = ndr->flags;
9138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9140 if (_ptr_config_file) {
9141 NDR_PULL_ALLOC(ndr, r->config_file);
9142 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9144 r->config_file = NULL;
9146 ndr->flags = _flags_save_string;
9149 uint32_t _flags_save_string = ndr->flags;
9150 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9152 if (_ptr_help_file) {
9153 NDR_PULL_ALLOC(ndr, r->help_file);
9154 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9156 r->help_file = NULL;
9158 ndr->flags = _flags_save_string;
9161 uint32_t _flags_save_string_array = ndr->flags;
9162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9164 if (_ptr_dependent_files) {
9165 NDR_PULL_ALLOC(ndr, r->dependent_files);
9166 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9168 r->dependent_files = NULL;
9170 ndr->flags = _flags_save_string_array;
9173 uint32_t _flags_save_string = ndr->flags;
9174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9175 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9176 if (_ptr_monitor_name) {
9177 NDR_PULL_ALLOC(ndr, r->monitor_name);
9178 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9180 r->monitor_name = NULL;
9182 ndr->flags = _flags_save_string;
9185 uint32_t _flags_save_string = ndr->flags;
9186 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9187 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9188 if (_ptr_default_datatype) {
9189 NDR_PULL_ALLOC(ndr, r->default_datatype);
9190 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9192 r->default_datatype = NULL;
9194 ndr->flags = _flags_save_string;
9197 uint32_t _flags_save_string_array = ndr->flags;
9198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9199 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9200 if (_ptr_previous_names) {
9201 NDR_PULL_ALLOC(ndr, r->previous_names);
9202 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
9204 r->previous_names = NULL;
9206 ndr->flags = _flags_save_string_array;
9208 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
9209 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9211 uint32_t _flags_save_string = ndr->flags;
9212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9214 if (_ptr_manufacturer_name) {
9215 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9216 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
9218 r->manufacturer_name = NULL;
9220 ndr->flags = _flags_save_string;
9223 uint32_t _flags_save_string = ndr->flags;
9224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9226 if (_ptr_manufacturer_url) {
9227 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9228 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
9230 r->manufacturer_url = NULL;
9232 ndr->flags = _flags_save_string;
9235 uint32_t _flags_save_string = ndr->flags;
9236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9238 if (_ptr_hardware_id) {
9239 NDR_PULL_ALLOC(ndr, r->hardware_id);
9240 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
9242 r->hardware_id = NULL;
9244 ndr->flags = _flags_save_string;
9247 uint32_t _flags_save_string = ndr->flags;
9248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9250 if (_ptr_provider) {
9251 NDR_PULL_ALLOC(ndr, r->provider);
9252 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
9256 ndr->flags = _flags_save_string;
9259 if (ndr_flags & NDR_BUFFERS) {
9261 uint32_t _flags_save_string = ndr->flags;
9262 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9263 if (r->driver_name) {
9264 uint32_t _relative_save_offset;
9265 _relative_save_offset = ndr->offset;
9266 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9267 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9268 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9269 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9271 ndr->offset = _relative_save_offset;
9273 ndr->flags = _flags_save_string;
9276 uint32_t _flags_save_string = ndr->flags;
9277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9278 if (r->architecture) {
9279 uint32_t _relative_save_offset;
9280 _relative_save_offset = ndr->offset;
9281 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
9282 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9283 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9284 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
9285 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9286 ndr->offset = _relative_save_offset;
9288 ndr->flags = _flags_save_string;
9291 uint32_t _flags_save_string = ndr->flags;
9292 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9293 if (r->driver_path) {
9294 uint32_t _relative_save_offset;
9295 _relative_save_offset = ndr->offset;
9296 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
9297 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9298 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9299 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
9300 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9301 ndr->offset = _relative_save_offset;
9303 ndr->flags = _flags_save_string;
9306 uint32_t _flags_save_string = ndr->flags;
9307 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9309 uint32_t _relative_save_offset;
9310 _relative_save_offset = ndr->offset;
9311 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
9312 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9313 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9314 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
9315 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9316 ndr->offset = _relative_save_offset;
9318 ndr->flags = _flags_save_string;
9321 uint32_t _flags_save_string = ndr->flags;
9322 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9323 if (r->config_file) {
9324 uint32_t _relative_save_offset;
9325 _relative_save_offset = ndr->offset;
9326 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
9327 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9328 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9329 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
9330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9331 ndr->offset = _relative_save_offset;
9333 ndr->flags = _flags_save_string;
9336 uint32_t _flags_save_string = ndr->flags;
9337 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9339 uint32_t _relative_save_offset;
9340 _relative_save_offset = ndr->offset;
9341 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
9342 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9343 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9344 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
9345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9346 ndr->offset = _relative_save_offset;
9348 ndr->flags = _flags_save_string;
9351 uint32_t _flags_save_string_array = ndr->flags;
9352 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9353 if (r->dependent_files) {
9354 uint32_t _relative_save_offset;
9355 _relative_save_offset = ndr->offset;
9356 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
9357 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9358 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9359 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
9360 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9361 ndr->offset = _relative_save_offset;
9363 ndr->flags = _flags_save_string_array;
9366 uint32_t _flags_save_string = ndr->flags;
9367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9368 if (r->monitor_name) {
9369 uint32_t _relative_save_offset;
9370 _relative_save_offset = ndr->offset;
9371 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
9372 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9373 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9374 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
9375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9376 ndr->offset = _relative_save_offset;
9378 ndr->flags = _flags_save_string;
9381 uint32_t _flags_save_string = ndr->flags;
9382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9383 if (r->default_datatype) {
9384 uint32_t _relative_save_offset;
9385 _relative_save_offset = ndr->offset;
9386 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
9387 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9388 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9389 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
9390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9391 ndr->offset = _relative_save_offset;
9393 ndr->flags = _flags_save_string;
9396 uint32_t _flags_save_string_array = ndr->flags;
9397 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9398 if (r->previous_names) {
9399 uint32_t _relative_save_offset;
9400 _relative_save_offset = ndr->offset;
9401 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
9402 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9403 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9404 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
9405 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9406 ndr->offset = _relative_save_offset;
9408 ndr->flags = _flags_save_string_array;
9411 uint32_t _flags_save_string = ndr->flags;
9412 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9413 if (r->manufacturer_name) {
9414 uint32_t _relative_save_offset;
9415 _relative_save_offset = ndr->offset;
9416 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
9417 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9418 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9419 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
9420 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9421 ndr->offset = _relative_save_offset;
9423 ndr->flags = _flags_save_string;
9426 uint32_t _flags_save_string = ndr->flags;
9427 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9428 if (r->manufacturer_url) {
9429 uint32_t _relative_save_offset;
9430 _relative_save_offset = ndr->offset;
9431 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
9432 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9433 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9434 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
9435 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9436 ndr->offset = _relative_save_offset;
9438 ndr->flags = _flags_save_string;
9441 uint32_t _flags_save_string = ndr->flags;
9442 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9443 if (r->hardware_id) {
9444 uint32_t _relative_save_offset;
9445 _relative_save_offset = ndr->offset;
9446 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
9447 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9448 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9449 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
9450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9451 ndr->offset = _relative_save_offset;
9453 ndr->flags = _flags_save_string;
9456 uint32_t _flags_save_string = ndr->flags;
9457 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9459 uint32_t _relative_save_offset;
9460 _relative_save_offset = ndr->offset;
9461 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
9462 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9463 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9464 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
9465 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9466 ndr->offset = _relative_save_offset;
9468 ndr->flags = _flags_save_string;
9471 return NDR_ERR_SUCCESS;
9474 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
9476 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
9478 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9479 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9481 if (r->driver_name) {
9482 ndr_print_string(ndr, "driver_name", r->driver_name);
9485 ndr_print_ptr(ndr, "architecture", r->architecture);
9487 if (r->architecture) {
9488 ndr_print_string(ndr, "architecture", r->architecture);
9491 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9493 if (r->driver_path) {
9494 ndr_print_string(ndr, "driver_path", r->driver_path);
9497 ndr_print_ptr(ndr, "data_file", r->data_file);
9500 ndr_print_string(ndr, "data_file", r->data_file);
9503 ndr_print_ptr(ndr, "config_file", r->config_file);
9505 if (r->config_file) {
9506 ndr_print_string(ndr, "config_file", r->config_file);
9509 ndr_print_ptr(ndr, "help_file", r->help_file);
9512 ndr_print_string(ndr, "help_file", r->help_file);
9515 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9517 if (r->dependent_files) {
9518 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
9521 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9523 if (r->monitor_name) {
9524 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9527 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9529 if (r->default_datatype) {
9530 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9533 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9535 if (r->previous_names) {
9536 ndr_print_string_array(ndr, "previous_names", r->previous_names);
9539 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
9540 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9541 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9543 if (r->manufacturer_name) {
9544 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9547 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9549 if (r->manufacturer_url) {
9550 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9553 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9555 if (r->hardware_id) {
9556 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9559 ndr_print_ptr(ndr, "provider", r->provider);
9562 ndr_print_string(ndr, "provider", r->provider);
9568 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo6(const struct spoolss_DriverInfo6 *r, struct smb_iconv_convenience *ic, int flags)
9570 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo6, ic);
9573 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
9575 if (ndr_flags & NDR_SCALARS) {
9576 NDR_CHECK(ndr_push_align(ndr, 8));
9577 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
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->driver_name));
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->architecture));
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->driver_path));
9594 ndr->flags = _flags_save_string;
9597 uint32_t _flags_save_string = ndr->flags;
9598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9600 ndr->flags = _flags_save_string;
9603 uint32_t _flags_save_string = ndr->flags;
9604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9606 ndr->flags = _flags_save_string;
9609 uint32_t _flags_save_string = ndr->flags;
9610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9611 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
9612 ndr->flags = _flags_save_string;
9615 uint32_t _flags_save_string = ndr->flags;
9616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9617 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
9618 ndr->flags = _flags_save_string;
9621 uint32_t _flags_save_string = ndr->flags;
9622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9623 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
9624 ndr->flags = _flags_save_string;
9627 uint32_t _flags_save_string_array = ndr->flags;
9628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
9630 ndr->flags = _flags_save_string_array;
9633 uint32_t _flags_save_string_array = ndr->flags;
9634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9635 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
9636 ndr->flags = _flags_save_string_array;
9638 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_date));
9639 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
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->manufacturer_name));
9644 ndr->flags = _flags_save_string;
9647 uint32_t _flags_save_string = ndr->flags;
9648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9649 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
9650 ndr->flags = _flags_save_string;
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->hardware_id));
9656 ndr->flags = _flags_save_string;
9659 uint32_t _flags_save_string = ndr->flags;
9660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9661 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
9662 ndr->flags = _flags_save_string;
9665 uint32_t _flags_save_string = ndr->flags;
9666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
9668 ndr->flags = _flags_save_string;
9671 uint32_t _flags_save_string = ndr->flags;
9672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9673 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
9674 ndr->flags = _flags_save_string;
9677 uint32_t _flags_save_string_array = ndr->flags;
9678 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9679 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
9680 ndr->flags = _flags_save_string_array;
9683 uint32_t _flags_save_string = ndr->flags;
9684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9685 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
9686 ndr->flags = _flags_save_string;
9688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9690 uint32_t _flags_save_string_array = ndr->flags;
9691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9692 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
9693 ndr->flags = _flags_save_string_array;
9695 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9696 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9698 if (ndr_flags & NDR_BUFFERS) {
9700 uint32_t _flags_save_string = ndr->flags;
9701 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9702 if (r->driver_name) {
9703 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9704 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9706 ndr->flags = _flags_save_string;
9709 uint32_t _flags_save_string = ndr->flags;
9710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9711 if (r->architecture) {
9712 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9713 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9715 ndr->flags = _flags_save_string;
9718 uint32_t _flags_save_string = ndr->flags;
9719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9720 if (r->driver_path) {
9721 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9722 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9724 ndr->flags = _flags_save_string;
9727 uint32_t _flags_save_string = ndr->flags;
9728 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9730 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9731 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9733 ndr->flags = _flags_save_string;
9736 uint32_t _flags_save_string = ndr->flags;
9737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9738 if (r->config_file) {
9739 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9740 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9742 ndr->flags = _flags_save_string;
9745 uint32_t _flags_save_string = ndr->flags;
9746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9748 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
9749 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
9751 ndr->flags = _flags_save_string;
9754 uint32_t _flags_save_string = ndr->flags;
9755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9756 if (r->monitor_name) {
9757 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
9758 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
9760 ndr->flags = _flags_save_string;
9763 uint32_t _flags_save_string = ndr->flags;
9764 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9765 if (r->default_datatype) {
9766 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
9767 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
9769 ndr->flags = _flags_save_string;
9772 uint32_t _flags_save_string_array = ndr->flags;
9773 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9774 if (r->dependent_files) {
9775 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
9776 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
9778 ndr->flags = _flags_save_string_array;
9781 uint32_t _flags_save_string_array = ndr->flags;
9782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9783 if (r->previous_names) {
9784 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
9785 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
9787 ndr->flags = _flags_save_string_array;
9790 uint32_t _flags_save_string = ndr->flags;
9791 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9792 if (r->manufacturer_name) {
9793 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9794 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9796 ndr->flags = _flags_save_string;
9799 uint32_t _flags_save_string = ndr->flags;
9800 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9801 if (r->manufacturer_url) {
9802 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9803 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9805 ndr->flags = _flags_save_string;
9808 uint32_t _flags_save_string = ndr->flags;
9809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9810 if (r->hardware_id) {
9811 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9812 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9814 ndr->flags = _flags_save_string;
9817 uint32_t _flags_save_string = ndr->flags;
9818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9820 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9821 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9823 ndr->flags = _flags_save_string;
9826 uint32_t _flags_save_string = ndr->flags;
9827 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9828 if (r->print_processor) {
9829 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
9830 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
9832 ndr->flags = _flags_save_string;
9835 uint32_t _flags_save_string = ndr->flags;
9836 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9837 if (r->vendor_setup) {
9838 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
9839 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
9841 ndr->flags = _flags_save_string;
9844 uint32_t _flags_save_string_array = ndr->flags;
9845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9846 if (r->color_profiles) {
9847 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
9848 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
9850 ndr->flags = _flags_save_string_array;
9853 uint32_t _flags_save_string = ndr->flags;
9854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9856 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
9857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
9859 ndr->flags = _flags_save_string;
9862 uint32_t _flags_save_string_array = ndr->flags;
9863 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9864 if (r->core_driver_dependencies) {
9865 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
9866 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
9868 ndr->flags = _flags_save_string_array;
9871 return NDR_ERR_SUCCESS;
9874 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
9876 uint32_t _ptr_driver_name;
9877 TALLOC_CTX *_mem_save_driver_name_0;
9878 uint32_t _ptr_architecture;
9879 TALLOC_CTX *_mem_save_architecture_0;
9880 uint32_t _ptr_driver_path;
9881 TALLOC_CTX *_mem_save_driver_path_0;
9882 uint32_t _ptr_data_file;
9883 TALLOC_CTX *_mem_save_data_file_0;
9884 uint32_t _ptr_config_file;
9885 TALLOC_CTX *_mem_save_config_file_0;
9886 uint32_t _ptr_help_file;
9887 TALLOC_CTX *_mem_save_help_file_0;
9888 uint32_t _ptr_monitor_name;
9889 TALLOC_CTX *_mem_save_monitor_name_0;
9890 uint32_t _ptr_default_datatype;
9891 TALLOC_CTX *_mem_save_default_datatype_0;
9892 uint32_t _ptr_dependent_files;
9893 TALLOC_CTX *_mem_save_dependent_files_0;
9894 uint32_t _ptr_previous_names;
9895 TALLOC_CTX *_mem_save_previous_names_0;
9896 uint32_t _ptr_manufacturer_name;
9897 TALLOC_CTX *_mem_save_manufacturer_name_0;
9898 uint32_t _ptr_manufacturer_url;
9899 TALLOC_CTX *_mem_save_manufacturer_url_0;
9900 uint32_t _ptr_hardware_id;
9901 TALLOC_CTX *_mem_save_hardware_id_0;
9902 uint32_t _ptr_provider;
9903 TALLOC_CTX *_mem_save_provider_0;
9904 uint32_t _ptr_print_processor;
9905 TALLOC_CTX *_mem_save_print_processor_0;
9906 uint32_t _ptr_vendor_setup;
9907 TALLOC_CTX *_mem_save_vendor_setup_0;
9908 uint32_t _ptr_color_profiles;
9909 TALLOC_CTX *_mem_save_color_profiles_0;
9910 uint32_t _ptr_inf_path;
9911 TALLOC_CTX *_mem_save_inf_path_0;
9912 uint32_t _ptr_core_driver_dependencies;
9913 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9914 if (ndr_flags & NDR_SCALARS) {
9915 NDR_CHECK(ndr_pull_align(ndr, 8));
9916 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9918 uint32_t _flags_save_string = ndr->flags;
9919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9920 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9921 if (_ptr_driver_name) {
9922 NDR_PULL_ALLOC(ndr, r->driver_name);
9923 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9925 r->driver_name = NULL;
9927 ndr->flags = _flags_save_string;
9930 uint32_t _flags_save_string = ndr->flags;
9931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9932 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9933 if (_ptr_architecture) {
9934 NDR_PULL_ALLOC(ndr, r->architecture);
9935 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9937 r->architecture = NULL;
9939 ndr->flags = _flags_save_string;
9942 uint32_t _flags_save_string = ndr->flags;
9943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9944 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9945 if (_ptr_driver_path) {
9946 NDR_PULL_ALLOC(ndr, r->driver_path);
9947 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9949 r->driver_path = NULL;
9951 ndr->flags = _flags_save_string;
9954 uint32_t _flags_save_string = ndr->flags;
9955 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9957 if (_ptr_data_file) {
9958 NDR_PULL_ALLOC(ndr, r->data_file);
9959 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9961 r->data_file = NULL;
9963 ndr->flags = _flags_save_string;
9966 uint32_t _flags_save_string = ndr->flags;
9967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9968 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9969 if (_ptr_config_file) {
9970 NDR_PULL_ALLOC(ndr, r->config_file);
9971 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9973 r->config_file = NULL;
9975 ndr->flags = _flags_save_string;
9978 uint32_t _flags_save_string = ndr->flags;
9979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9980 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9981 if (_ptr_help_file) {
9982 NDR_PULL_ALLOC(ndr, r->help_file);
9983 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9985 r->help_file = NULL;
9987 ndr->flags = _flags_save_string;
9990 uint32_t _flags_save_string = ndr->flags;
9991 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9993 if (_ptr_monitor_name) {
9994 NDR_PULL_ALLOC(ndr, r->monitor_name);
9995 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9997 r->monitor_name = NULL;
9999 ndr->flags = _flags_save_string;
10002 uint32_t _flags_save_string = ndr->flags;
10003 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10004 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
10005 if (_ptr_default_datatype) {
10006 NDR_PULL_ALLOC(ndr, r->default_datatype);
10007 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
10009 r->default_datatype = NULL;
10011 ndr->flags = _flags_save_string;
10014 uint32_t _flags_save_string_array = ndr->flags;
10015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10016 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
10017 if (_ptr_dependent_files) {
10018 NDR_PULL_ALLOC(ndr, r->dependent_files);
10019 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
10021 r->dependent_files = NULL;
10023 ndr->flags = _flags_save_string_array;
10026 uint32_t _flags_save_string_array = ndr->flags;
10027 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10028 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10029 if (_ptr_previous_names) {
10030 NDR_PULL_ALLOC(ndr, r->previous_names);
10031 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10033 r->previous_names = NULL;
10035 ndr->flags = _flags_save_string_array;
10037 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_date));
10038 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10040 uint32_t _flags_save_string = ndr->flags;
10041 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10042 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10043 if (_ptr_manufacturer_name) {
10044 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10045 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
10047 r->manufacturer_name = NULL;
10049 ndr->flags = _flags_save_string;
10052 uint32_t _flags_save_string = ndr->flags;
10053 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10055 if (_ptr_manufacturer_url) {
10056 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10057 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
10059 r->manufacturer_url = NULL;
10061 ndr->flags = _flags_save_string;
10064 uint32_t _flags_save_string = ndr->flags;
10065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10067 if (_ptr_hardware_id) {
10068 NDR_PULL_ALLOC(ndr, r->hardware_id);
10069 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
10071 r->hardware_id = NULL;
10073 ndr->flags = _flags_save_string;
10076 uint32_t _flags_save_string = ndr->flags;
10077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10079 if (_ptr_provider) {
10080 NDR_PULL_ALLOC(ndr, r->provider);
10081 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
10083 r->provider = NULL;
10085 ndr->flags = _flags_save_string;
10088 uint32_t _flags_save_string = ndr->flags;
10089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10091 if (_ptr_print_processor) {
10092 NDR_PULL_ALLOC(ndr, r->print_processor);
10093 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
10095 r->print_processor = NULL;
10097 ndr->flags = _flags_save_string;
10100 uint32_t _flags_save_string = ndr->flags;
10101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10103 if (_ptr_vendor_setup) {
10104 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10105 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
10107 r->vendor_setup = NULL;
10109 ndr->flags = _flags_save_string;
10112 uint32_t _flags_save_string_array = ndr->flags;
10113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10115 if (_ptr_color_profiles) {
10116 NDR_PULL_ALLOC(ndr, r->color_profiles);
10117 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
10119 r->color_profiles = NULL;
10121 ndr->flags = _flags_save_string_array;
10124 uint32_t _flags_save_string = ndr->flags;
10125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10127 if (_ptr_inf_path) {
10128 NDR_PULL_ALLOC(ndr, r->inf_path);
10129 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
10131 r->inf_path = NULL;
10133 ndr->flags = _flags_save_string;
10135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10137 uint32_t _flags_save_string_array = ndr->flags;
10138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10140 if (_ptr_core_driver_dependencies) {
10141 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10142 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
10144 r->core_driver_dependencies = NULL;
10146 ndr->flags = _flags_save_string_array;
10148 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10149 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10151 if (ndr_flags & NDR_BUFFERS) {
10153 uint32_t _flags_save_string = ndr->flags;
10154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10155 if (r->driver_name) {
10156 uint32_t _relative_save_offset;
10157 _relative_save_offset = ndr->offset;
10158 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10159 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10160 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10161 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_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->architecture) {
10171 uint32_t _relative_save_offset;
10172 _relative_save_offset = ndr->offset;
10173 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10174 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10175 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10176 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_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->driver_path) {
10186 uint32_t _relative_save_offset;
10187 _relative_save_offset = ndr->offset;
10188 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10189 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10190 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10191 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_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->data_file) {
10201 uint32_t _relative_save_offset;
10202 _relative_save_offset = ndr->offset;
10203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10204 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10205 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_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->config_file) {
10216 uint32_t _relative_save_offset;
10217 _relative_save_offset = ndr->offset;
10218 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10219 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10220 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10221 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_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->help_file) {
10231 uint32_t _relative_save_offset;
10232 _relative_save_offset = ndr->offset;
10233 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10234 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10235 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10236 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10238 ndr->offset = _relative_save_offset;
10240 ndr->flags = _flags_save_string;
10243 uint32_t _flags_save_string = ndr->flags;
10244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10245 if (r->monitor_name) {
10246 uint32_t _relative_save_offset;
10247 _relative_save_offset = ndr->offset;
10248 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10249 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10250 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10251 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10253 ndr->offset = _relative_save_offset;
10255 ndr->flags = _flags_save_string;
10258 uint32_t _flags_save_string = ndr->flags;
10259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10260 if (r->default_datatype) {
10261 uint32_t _relative_save_offset;
10262 _relative_save_offset = ndr->offset;
10263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10264 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10265 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10266 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10268 ndr->offset = _relative_save_offset;
10270 ndr->flags = _flags_save_string;
10273 uint32_t _flags_save_string_array = ndr->flags;
10274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10275 if (r->dependent_files) {
10276 uint32_t _relative_save_offset;
10277 _relative_save_offset = ndr->offset;
10278 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10279 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10280 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10281 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10283 ndr->offset = _relative_save_offset;
10285 ndr->flags = _flags_save_string_array;
10288 uint32_t _flags_save_string_array = ndr->flags;
10289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10290 if (r->previous_names) {
10291 uint32_t _relative_save_offset;
10292 _relative_save_offset = ndr->offset;
10293 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
10294 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10296 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
10297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10298 ndr->offset = _relative_save_offset;
10300 ndr->flags = _flags_save_string_array;
10303 uint32_t _flags_save_string = ndr->flags;
10304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10305 if (r->manufacturer_name) {
10306 uint32_t _relative_save_offset;
10307 _relative_save_offset = ndr->offset;
10308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
10309 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10310 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
10312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_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);
10320 if (r->manufacturer_url) {
10321 uint32_t _relative_save_offset;
10322 _relative_save_offset = ndr->offset;
10323 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
10324 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10325 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10326 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
10327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_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->hardware_id) {
10336 uint32_t _relative_save_offset;
10337 _relative_save_offset = ndr->offset;
10338 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
10339 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10340 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10341 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
10342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_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);
10351 uint32_t _relative_save_offset;
10352 _relative_save_offset = ndr->offset;
10353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
10354 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10355 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
10357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10358 ndr->offset = _relative_save_offset;
10360 ndr->flags = _flags_save_string;
10363 uint32_t _flags_save_string = ndr->flags;
10364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10365 if (r->print_processor) {
10366 uint32_t _relative_save_offset;
10367 _relative_save_offset = ndr->offset;
10368 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
10369 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10370 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10371 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
10372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10373 ndr->offset = _relative_save_offset;
10375 ndr->flags = _flags_save_string;
10378 uint32_t _flags_save_string = ndr->flags;
10379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10380 if (r->vendor_setup) {
10381 uint32_t _relative_save_offset;
10382 _relative_save_offset = ndr->offset;
10383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
10384 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10385 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10386 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
10387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_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->color_profiles) {
10396 uint32_t _relative_save_offset;
10397 _relative_save_offset = ndr->offset;
10398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
10399 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10400 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10401 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
10402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10403 ndr->offset = _relative_save_offset;
10405 ndr->flags = _flags_save_string_array;
10408 uint32_t _flags_save_string = ndr->flags;
10409 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10411 uint32_t _relative_save_offset;
10412 _relative_save_offset = ndr->offset;
10413 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
10414 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10415 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10416 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
10417 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10418 ndr->offset = _relative_save_offset;
10420 ndr->flags = _flags_save_string;
10423 uint32_t _flags_save_string_array = ndr->flags;
10424 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10425 if (r->core_driver_dependencies) {
10426 uint32_t _relative_save_offset;
10427 _relative_save_offset = ndr->offset;
10428 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
10429 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10430 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10431 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
10432 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10433 ndr->offset = _relative_save_offset;
10435 ndr->flags = _flags_save_string_array;
10438 return NDR_ERR_SUCCESS;
10441 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
10443 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
10445 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10446 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10448 if (r->driver_name) {
10449 ndr_print_string(ndr, "driver_name", r->driver_name);
10452 ndr_print_ptr(ndr, "architecture", r->architecture);
10454 if (r->architecture) {
10455 ndr_print_string(ndr, "architecture", r->architecture);
10458 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10460 if (r->driver_path) {
10461 ndr_print_string(ndr, "driver_path", r->driver_path);
10464 ndr_print_ptr(ndr, "data_file", r->data_file);
10466 if (r->data_file) {
10467 ndr_print_string(ndr, "data_file", r->data_file);
10470 ndr_print_ptr(ndr, "config_file", r->config_file);
10472 if (r->config_file) {
10473 ndr_print_string(ndr, "config_file", r->config_file);
10476 ndr_print_ptr(ndr, "help_file", r->help_file);
10478 if (r->help_file) {
10479 ndr_print_string(ndr, "help_file", r->help_file);
10482 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10484 if (r->monitor_name) {
10485 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10488 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10490 if (r->default_datatype) {
10491 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10494 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10496 if (r->dependent_files) {
10497 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10500 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10502 if (r->previous_names) {
10503 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10506 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10507 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10508 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10510 if (r->manufacturer_name) {
10511 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10514 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10516 if (r->manufacturer_url) {
10517 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10520 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10522 if (r->hardware_id) {
10523 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10526 ndr_print_ptr(ndr, "provider", r->provider);
10529 ndr_print_string(ndr, "provider", r->provider);
10532 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10534 if (r->print_processor) {
10535 ndr_print_string(ndr, "print_processor", r->print_processor);
10538 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10540 if (r->vendor_setup) {
10541 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10544 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10546 if (r->color_profiles) {
10547 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
10550 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10553 ndr_print_string(ndr, "inf_path", r->inf_path);
10556 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10557 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10559 if (r->core_driver_dependencies) {
10560 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10563 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10564 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10568 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo8(const struct spoolss_DriverInfo8 *r, struct smb_iconv_convenience *ic, int flags)
10570 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo8, ic);
10573 static enum ndr_err_code ndr_push_spoolss_DriverFileType(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverFileType r)
10575 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
10576 return NDR_ERR_SUCCESS;
10579 static enum ndr_err_code ndr_pull_spoolss_DriverFileType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverFileType *r)
10582 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
10584 return NDR_ERR_SUCCESS;
10587 _PUBLIC_ void ndr_print_spoolss_DriverFileType(struct ndr_print *ndr, const char *name, enum spoolss_DriverFileType r)
10589 const char *val = NULL;
10592 case SPOOLSS_DRIVER_FILE_TYPE_RENDERING: val = "SPOOLSS_DRIVER_FILE_TYPE_RENDERING"; break;
10593 case SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION: val = "SPOOLSS_DRIVER_FILE_TYPE_CONFIGURATION"; break;
10594 case SPOOLSS_DRIVER_FILE_TYPE_DATA: val = "SPOOLSS_DRIVER_FILE_TYPE_DATA"; break;
10595 case SPOOLSS_DRIVER_FILE_TYPE_HELP: val = "SPOOLSS_DRIVER_FILE_TYPE_HELP"; break;
10596 case SPOOLSS_DRIVER_FILE_TYPE_OTHER: val = "SPOOLSS_DRIVER_FILE_TYPE_OTHER"; break;
10598 ndr_print_enum(ndr, name, "ENUM", val, r);
10601 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverFileInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverFileInfo *r)
10603 if (ndr_flags & NDR_SCALARS) {
10604 NDR_CHECK(ndr_push_align(ndr, 4));
10606 uint32_t _flags_save_string = ndr->flags;
10607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10608 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->file_name));
10609 ndr->flags = _flags_save_string;
10611 NDR_CHECK(ndr_push_spoolss_DriverFileType(ndr, NDR_SCALARS, r->file_type));
10612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->file_version));
10614 if (ndr_flags & NDR_BUFFERS) {
10616 uint32_t _flags_save_string = ndr->flags;
10617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10618 if (r->file_name) {
10619 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->file_name));
10620 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->file_name));
10622 ndr->flags = _flags_save_string;
10625 return NDR_ERR_SUCCESS;
10628 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverFileInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverFileInfo *r)
10630 uint32_t _ptr_file_name;
10631 TALLOC_CTX *_mem_save_file_name_0;
10632 if (ndr_flags & NDR_SCALARS) {
10633 NDR_CHECK(ndr_pull_align(ndr, 4));
10635 uint32_t _flags_save_string = ndr->flags;
10636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_file_name));
10638 if (_ptr_file_name) {
10639 NDR_PULL_ALLOC(ndr, r->file_name);
10640 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->file_name, _ptr_file_name));
10642 r->file_name = NULL;
10644 ndr->flags = _flags_save_string;
10646 NDR_CHECK(ndr_pull_spoolss_DriverFileType(ndr, NDR_SCALARS, &r->file_type));
10647 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->file_version));
10649 if (ndr_flags & NDR_BUFFERS) {
10651 uint32_t _flags_save_string = ndr->flags;
10652 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10653 if (r->file_name) {
10654 uint32_t _relative_save_offset;
10655 _relative_save_offset = ndr->offset;
10656 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->file_name));
10657 _mem_save_file_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10658 NDR_PULL_SET_MEM_CTX(ndr, r->file_name, 0);
10659 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->file_name));
10660 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_file_name_0, 0);
10661 ndr->offset = _relative_save_offset;
10663 ndr->flags = _flags_save_string;
10666 return NDR_ERR_SUCCESS;
10669 _PUBLIC_ void ndr_print_spoolss_DriverFileInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DriverFileInfo *r)
10671 ndr_print_struct(ndr, name, "spoolss_DriverFileInfo");
10673 ndr_print_ptr(ndr, "file_name", r->file_name);
10675 if (r->file_name) {
10676 ndr_print_string(ndr, "file_name", r->file_name);
10679 ndr_print_spoolss_DriverFileType(ndr, "file_type", r->file_type);
10680 ndr_print_uint32(ndr, "file_version", r->file_version);
10684 _PUBLIC_ void ndr_print_spoolss_DriverInfo101(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo101 *r)
10686 uint32_t cntr_file_info_1;
10687 ndr_print_struct(ndr, name, "spoolss_DriverInfo101");
10689 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10690 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10692 if (r->driver_name) {
10693 ndr_print_string(ndr, "driver_name", r->driver_name);
10696 ndr_print_ptr(ndr, "architecture", r->architecture);
10698 if (r->architecture) {
10699 ndr_print_string(ndr, "architecture", r->architecture);
10702 ndr_print_ptr(ndr, "file_info", r->file_info);
10704 if (r->file_info) {
10705 ndr->print(ndr, "%s: ARRAY(%d)", "file_info", (int)r->file_count);
10707 for (cntr_file_info_1=0;cntr_file_info_1<r->file_count;cntr_file_info_1++) {
10709 if (asprintf(&idx_1, "[%d]", cntr_file_info_1) != -1) {
10710 ndr_print_spoolss_DriverFileInfo(ndr, "file_info", &r->file_info[cntr_file_info_1]);
10717 ndr_print_uint32(ndr, "file_count", r->file_count);
10718 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10720 if (r->monitor_name) {
10721 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10724 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10726 if (r->default_datatype) {
10727 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10730 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10732 if (r->previous_names) {
10733 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10736 ndr_print_NTTIME(ndr, "driver_date", r->driver_date);
10737 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10738 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10740 if (r->manufacturer_name) {
10741 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10744 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10746 if (r->manufacturer_url) {
10747 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10750 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10752 if (r->hardware_id) {
10753 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10756 ndr_print_ptr(ndr, "provider", r->provider);
10759 ndr_print_string(ndr, "provider", r->provider);
10765 _PUBLIC_ size_t ndr_size_spoolss_DriverInfo101(const struct spoolss_DriverInfo101 *r, struct smb_iconv_convenience *ic, int flags)
10767 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverInfo101, ic);
10770 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
10772 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10773 if (ndr_flags & NDR_SCALARS) {
10774 int level = ndr_push_get_switch_value(ndr, r);
10777 NDR_CHECK(ndr_push_align(ndr, 4));
10778 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10779 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10783 NDR_CHECK(ndr_push_align(ndr, 4));
10784 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10785 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10789 NDR_CHECK(ndr_push_align(ndr, 4));
10790 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10791 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10795 NDR_CHECK(ndr_push_align(ndr, 4));
10796 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10797 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10801 NDR_CHECK(ndr_push_align(ndr, 4));
10802 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10803 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10807 NDR_CHECK(ndr_push_align(ndr, 8));
10808 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10809 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10813 NDR_CHECK(ndr_push_align(ndr, 8));
10814 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10815 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10819 NDR_CHECK(ndr_push_align(ndr, 8));
10820 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10821 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
10829 if (ndr_flags & NDR_BUFFERS) {
10830 int level = ndr_push_get_switch_value(ndr, r);
10831 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10834 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10838 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10842 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10846 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10850 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10854 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10858 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10862 NDR_CHECK(ndr_push_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
10870 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10871 return NDR_ERR_SUCCESS;
10874 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
10876 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10878 level = ndr_pull_get_switch_value(ndr, r);
10879 if (ndr_flags & NDR_SCALARS) {
10882 NDR_CHECK(ndr_pull_align(ndr, 4));
10883 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10884 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10888 NDR_CHECK(ndr_pull_align(ndr, 4));
10889 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10890 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10894 NDR_CHECK(ndr_pull_align(ndr, 4));
10895 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10896 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10900 NDR_CHECK(ndr_pull_align(ndr, 4));
10901 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10902 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10906 NDR_CHECK(ndr_pull_align(ndr, 4));
10907 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10908 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10912 NDR_CHECK(ndr_pull_align(ndr, 8));
10913 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10914 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10918 NDR_CHECK(ndr_pull_align(ndr, 8));
10919 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10920 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10924 NDR_CHECK(ndr_pull_align(ndr, 8));
10925 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10926 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_SCALARS, &r->info101));
10934 if (ndr_flags & NDR_BUFFERS) {
10935 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10938 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10942 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10946 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10950 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10954 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10958 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10962 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10966 NDR_CHECK(ndr_pull_spoolss_DriverInfo101(ndr, NDR_BUFFERS, &r->info101));
10974 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10975 return NDR_ERR_SUCCESS;
10978 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
10981 level = ndr_print_get_switch_value(ndr, r);
10982 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
10985 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
10989 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
10993 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
10997 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
11001 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
11005 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
11009 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
11013 ndr_print_spoolss_DriverInfo101(ndr, "info101", &r->info101);
11022 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
11024 if (ndr_flags & NDR_SCALARS) {
11025 NDR_CHECK(ndr_push_align(ndr, 4));
11027 uint32_t _flags_save_string = ndr->flags;
11028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11029 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
11030 ndr->flags = _flags_save_string;
11033 if (ndr_flags & NDR_BUFFERS) {
11035 return NDR_ERR_SUCCESS;
11038 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
11040 if (ndr_flags & NDR_SCALARS) {
11041 NDR_CHECK(ndr_pull_align(ndr, 4));
11043 uint32_t _flags_save_string = ndr->flags;
11044 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11045 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
11046 ndr->flags = _flags_save_string;
11049 if (ndr_flags & NDR_BUFFERS) {
11051 return NDR_ERR_SUCCESS;
11054 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
11056 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
11058 ndr_print_string(ndr, "directory_name", r->directory_name);
11062 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11064 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
11067 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
11069 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11070 if (ndr_flags & NDR_SCALARS) {
11071 int level = ndr_push_get_switch_value(ndr, r);
11074 NDR_CHECK(ndr_push_align(ndr, 4));
11075 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11076 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11080 NDR_CHECK(ndr_push_align(ndr, 4));
11081 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11082 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11087 if (ndr_flags & NDR_BUFFERS) {
11088 int level = ndr_push_get_switch_value(ndr, r);
11089 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11099 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11100 return NDR_ERR_SUCCESS;
11103 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
11105 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11107 level = ndr_pull_get_switch_value(ndr, r);
11108 if (ndr_flags & NDR_SCALARS) {
11111 NDR_CHECK(ndr_pull_align(ndr, 4));
11112 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11113 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11117 NDR_CHECK(ndr_pull_align(ndr, 4));
11118 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11119 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11124 if (ndr_flags & NDR_BUFFERS) {
11125 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11135 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11136 return NDR_ERR_SUCCESS;
11139 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
11142 level = ndr_print_get_switch_value(ndr, r);
11143 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
11146 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
11150 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
11156 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11158 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
11161 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
11163 if (ndr_flags & NDR_SCALARS) {
11164 NDR_CHECK(ndr_push_align(ndr, 4));
11166 uint32_t _flags_save_string = ndr->flags;
11167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11168 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
11169 ndr->flags = _flags_save_string;
11172 if (ndr_flags & NDR_BUFFERS) {
11174 uint32_t _flags_save_string = ndr->flags;
11175 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11176 if (r->print_processor_name) {
11177 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
11178 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
11180 ndr->flags = _flags_save_string;
11183 return NDR_ERR_SUCCESS;
11186 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
11188 uint32_t _ptr_print_processor_name;
11189 TALLOC_CTX *_mem_save_print_processor_name_0;
11190 if (ndr_flags & NDR_SCALARS) {
11191 NDR_CHECK(ndr_pull_align(ndr, 4));
11193 uint32_t _flags_save_string = ndr->flags;
11194 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11195 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
11196 if (_ptr_print_processor_name) {
11197 NDR_PULL_ALLOC(ndr, r->print_processor_name);
11198 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
11200 r->print_processor_name = NULL;
11202 ndr->flags = _flags_save_string;
11205 if (ndr_flags & NDR_BUFFERS) {
11207 uint32_t _flags_save_string = ndr->flags;
11208 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11209 if (r->print_processor_name) {
11210 uint32_t _relative_save_offset;
11211 _relative_save_offset = ndr->offset;
11212 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
11213 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11214 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
11215 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
11216 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
11217 ndr->offset = _relative_save_offset;
11219 ndr->flags = _flags_save_string;
11222 return NDR_ERR_SUCCESS;
11225 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
11227 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
11229 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
11231 if (r->print_processor_name) {
11232 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
11238 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
11240 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11241 if (ndr_flags & NDR_SCALARS) {
11242 int level = ndr_push_get_switch_value(ndr, r);
11245 NDR_CHECK(ndr_push_align(ndr, 4));
11246 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11247 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11255 if (ndr_flags & NDR_BUFFERS) {
11256 int level = ndr_push_get_switch_value(ndr, r);
11257 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11260 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11268 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11269 return NDR_ERR_SUCCESS;
11272 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
11274 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11276 level = ndr_pull_get_switch_value(ndr, r);
11277 if (ndr_flags & NDR_SCALARS) {
11280 NDR_CHECK(ndr_pull_align(ndr, 4));
11281 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11282 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11290 if (ndr_flags & NDR_BUFFERS) {
11291 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11294 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11302 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11303 return NDR_ERR_SUCCESS;
11306 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
11309 level = ndr_print_get_switch_value(ndr, r);
11310 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
11313 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
11322 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11324 if (ndr_flags & NDR_SCALARS) {
11325 NDR_CHECK(ndr_push_align(ndr, 4));
11327 uint32_t _flags_save_string = ndr->flags;
11328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11329 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
11330 ndr->flags = _flags_save_string;
11333 if (ndr_flags & NDR_BUFFERS) {
11335 return NDR_ERR_SUCCESS;
11338 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
11340 if (ndr_flags & NDR_SCALARS) {
11341 NDR_CHECK(ndr_pull_align(ndr, 4));
11343 uint32_t _flags_save_string = ndr->flags;
11344 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11345 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
11346 ndr->flags = _flags_save_string;
11349 if (ndr_flags & NDR_BUFFERS) {
11351 return NDR_ERR_SUCCESS;
11354 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11356 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
11358 ndr_print_string(ndr, "directory_name", r->directory_name);
11362 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11364 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
11367 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
11369 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11370 if (ndr_flags & NDR_SCALARS) {
11371 int level = ndr_push_get_switch_value(ndr, r);
11374 NDR_CHECK(ndr_push_align(ndr, 4));
11375 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11376 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11384 if (ndr_flags & NDR_BUFFERS) {
11385 int level = ndr_push_get_switch_value(ndr, r);
11386 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11396 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11397 return NDR_ERR_SUCCESS;
11400 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
11402 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11404 level = ndr_pull_get_switch_value(ndr, r);
11405 if (ndr_flags & NDR_SCALARS) {
11408 NDR_CHECK(ndr_pull_align(ndr, 4));
11409 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11410 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11418 if (ndr_flags & NDR_BUFFERS) {
11419 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11429 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11430 return NDR_ERR_SUCCESS;
11433 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
11436 level = ndr_print_get_switch_value(ndr, r);
11437 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
11440 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
11449 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11451 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
11454 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
11456 if (ndr_flags & NDR_SCALARS) {
11457 NDR_CHECK(ndr_push_align(ndr, 4));
11458 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
11459 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
11460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
11462 if (ndr_flags & NDR_BUFFERS) {
11463 if (r->document_name) {
11464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11467 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11469 if (r->output_file) {
11470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11473 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11477 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11478 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11479 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11482 return NDR_ERR_SUCCESS;
11485 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
11487 uint32_t _ptr_document_name;
11488 TALLOC_CTX *_mem_save_document_name_0;
11489 uint32_t _ptr_output_file;
11490 TALLOC_CTX *_mem_save_output_file_0;
11491 uint32_t _ptr_datatype;
11492 TALLOC_CTX *_mem_save_datatype_0;
11493 if (ndr_flags & NDR_SCALARS) {
11494 NDR_CHECK(ndr_pull_align(ndr, 4));
11495 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
11496 if (_ptr_document_name) {
11497 NDR_PULL_ALLOC(ndr, r->document_name);
11499 r->document_name = NULL;
11501 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
11502 if (_ptr_output_file) {
11503 NDR_PULL_ALLOC(ndr, r->output_file);
11505 r->output_file = NULL;
11507 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
11508 if (_ptr_datatype) {
11509 NDR_PULL_ALLOC(ndr, r->datatype);
11511 r->datatype = NULL;
11514 if (ndr_flags & NDR_BUFFERS) {
11515 if (r->document_name) {
11516 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11517 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
11518 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
11519 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
11520 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
11521 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));
11523 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
11524 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
11525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
11527 if (r->output_file) {
11528 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11529 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
11530 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
11531 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
11532 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
11533 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));
11535 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
11536 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
11537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
11540 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11541 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
11542 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
11543 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
11544 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
11545 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));
11547 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
11548 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
11549 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
11552 return NDR_ERR_SUCCESS;
11555 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
11557 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
11559 ndr_print_ptr(ndr, "document_name", r->document_name);
11561 if (r->document_name) {
11562 ndr_print_string(ndr, "document_name", r->document_name);
11565 ndr_print_ptr(ndr, "output_file", r->output_file);
11567 if (r->output_file) {
11568 ndr_print_string(ndr, "output_file", r->output_file);
11571 ndr_print_ptr(ndr, "datatype", r->datatype);
11574 ndr_print_string(ndr, "datatype", r->datatype);
11580 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
11582 if (ndr_flags & NDR_SCALARS) {
11583 int level = ndr_push_get_switch_value(ndr, r);
11584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11587 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11601 if (ndr_flags & NDR_BUFFERS) {
11602 int level = ndr_push_get_switch_value(ndr, r);
11606 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11621 return NDR_ERR_SUCCESS;
11624 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
11628 TALLOC_CTX *_mem_save_info1_0;
11629 level = ndr_pull_get_switch_value(ndr, r);
11630 if (ndr_flags & NDR_SCALARS) {
11631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11632 if (_level != level) {
11633 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11637 uint32_t _ptr_info1;
11638 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11640 NDR_PULL_ALLOC(ndr, r->info1);
11657 if (ndr_flags & NDR_BUFFERS) {
11661 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11662 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11663 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11664 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11679 return NDR_ERR_SUCCESS;
11682 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
11685 level = ndr_print_get_switch_value(ndr, r);
11686 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
11689 ndr_print_ptr(ndr, "info1", r->info1);
11692 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
11709 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
11711 if (ndr_flags & NDR_SCALARS) {
11712 NDR_CHECK(ndr_push_align(ndr, 4));
11713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
11714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11719 uint32_t _flags_save_string = ndr->flags;
11720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11722 struct ndr_push *_ndr_extra_string;
11723 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11724 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11725 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11727 ndr->flags = _flags_save_string;
11730 if (ndr_flags & NDR_BUFFERS) {
11732 return NDR_ERR_SUCCESS;
11735 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
11737 if (ndr_flags & NDR_SCALARS) {
11738 NDR_CHECK(ndr_pull_align(ndr, 4));
11739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11740 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11741 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
11745 uint32_t _flags_save_string = ndr->flags;
11746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11748 struct ndr_pull *_ndr_extra_string;
11749 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11750 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11751 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11753 ndr->flags = _flags_save_string;
11756 if (ndr_flags & NDR_BUFFERS) {
11758 return NDR_ERR_SUCCESS;
11761 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
11763 ndr_print_struct(ndr, name, "spoolss_OSVersion");
11765 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);
11766 ndr_print_uint32(ndr, "major", r->major);
11767 ndr_print_uint32(ndr, "minor", r->minor);
11768 ndr_print_uint32(ndr, "build", r->build);
11769 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
11770 ndr_print_string(ndr, "extra_string", r->extra_string);
11774 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
11776 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
11779 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
11781 if (ndr_flags & NDR_SCALARS) {
11782 NDR_CHECK(ndr_push_align(ndr, 4));
11783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
11784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11785 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11789 uint32_t _flags_save_string = ndr->flags;
11790 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11792 struct ndr_push *_ndr_extra_string;
11793 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11794 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11795 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11797 ndr->flags = _flags_save_string;
11799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
11800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
11802 if (ndr_flags & NDR_BUFFERS) {
11804 return NDR_ERR_SUCCESS;
11807 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
11809 if (ndr_flags & NDR_SCALARS) {
11810 NDR_CHECK(ndr_pull_align(ndr, 4));
11811 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11812 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11815 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
11817 uint32_t _flags_save_string = ndr->flags;
11818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11820 struct ndr_pull *_ndr_extra_string;
11821 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11822 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11823 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11825 ndr->flags = _flags_save_string;
11827 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
11828 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
11830 if (ndr_flags & NDR_BUFFERS) {
11832 return NDR_ERR_SUCCESS;
11835 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
11837 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
11839 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);
11840 ndr_print_uint32(ndr, "major", r->major);
11841 ndr_print_uint32(ndr, "minor", r->minor);
11842 ndr_print_uint32(ndr, "build", r->build);
11843 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
11844 ndr_print_string(ndr, "extra_string", r->extra_string);
11845 ndr_print_uint32(ndr, "unknown2", r->unknown2);
11846 ndr_print_uint32(ndr, "unknown3", r->unknown3);
11850 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
11852 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
11855 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
11857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11858 return NDR_ERR_SUCCESS;
11861 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
11864 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11866 return NDR_ERR_SUCCESS;
11869 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
11871 const char *val = NULL;
11874 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
11875 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
11876 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
11877 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
11878 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
11880 ndr_print_enum(ndr, name, "ENUM", val, r);
11883 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
11885 if (ndr_flags & NDR_SCALARS) {
11886 int level = ndr_push_get_switch_value(ndr, r);
11888 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11891 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11893 uint32_t _flags_save_string = ndr->flags;
11894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11895 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
11896 ndr->flags = _flags_save_string;
11900 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11902 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11903 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11904 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11905 ndr->flags = _flags_save_DATA_BLOB;
11909 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
11913 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11915 uint32_t _flags_save_string_array = ndr->flags;
11916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11917 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
11918 ndr->flags = _flags_save_string_array;
11924 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11926 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
11927 ndr->flags = _flags_save_DATA_BLOB;
11933 if (ndr_flags & NDR_BUFFERS) {
11934 int level = ndr_push_get_switch_value(ndr, r);
11936 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11939 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11942 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11945 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11948 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11956 return NDR_ERR_SUCCESS;
11959 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
11962 level = ndr_pull_get_switch_value(ndr, r);
11963 if (ndr_flags & NDR_SCALARS) {
11965 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11968 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11970 uint32_t _flags_save_string = ndr->flags;
11971 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11972 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
11973 ndr->flags = _flags_save_string;
11977 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11979 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11981 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
11982 ndr->flags = _flags_save_DATA_BLOB;
11986 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11987 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
11990 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11992 uint32_t _flags_save_string_array = ndr->flags;
11993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11994 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
11995 ndr->flags = _flags_save_string_array;
12001 uint32_t _flags_save_DATA_BLOB = ndr->flags;
12002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
12003 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
12004 ndr->flags = _flags_save_DATA_BLOB;
12010 if (ndr_flags & NDR_BUFFERS) {
12012 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
12015 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
12018 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
12021 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
12024 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
12032 return NDR_ERR_SUCCESS;
12035 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
12038 level = ndr_print_get_switch_value(ndr, r);
12039 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
12041 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
12044 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
12045 ndr_print_string(ndr, "string", r->string);
12048 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
12049 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
12052 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
12053 ndr_print_uint32(ndr, "value", r->value);
12056 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
12057 ndr_print_string_array(ndr, "string_array", r->string_array);
12061 ndr_print_DATA_BLOB(ndr, "data", r->data);
12067 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
12069 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
12072 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
12074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12075 return NDR_ERR_SUCCESS;
12078 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
12081 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12083 return NDR_ERR_SUCCESS;
12086 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
12088 const char *val = NULL;
12091 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
12092 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
12093 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
12095 ndr_print_enum(ndr, name, "ENUM", val, r);
12098 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
12100 if (ndr_flags & NDR_SCALARS) {
12101 NDR_CHECK(ndr_push_align(ndr, 4));
12102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
12103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
12105 if (ndr_flags & NDR_BUFFERS) {
12107 return NDR_ERR_SUCCESS;
12110 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
12112 if (ndr_flags & NDR_SCALARS) {
12113 NDR_CHECK(ndr_pull_align(ndr, 4));
12114 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
12115 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
12117 if (ndr_flags & NDR_BUFFERS) {
12119 return NDR_ERR_SUCCESS;
12122 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
12124 ndr_print_struct(ndr, name, "spoolss_FormSize");
12126 ndr_print_uint32(ndr, "width", r->width);
12127 ndr_print_uint32(ndr, "height", r->height);
12131 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
12133 if (ndr_flags & NDR_SCALARS) {
12134 NDR_CHECK(ndr_push_align(ndr, 4));
12135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
12136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
12137 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
12138 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
12140 if (ndr_flags & NDR_BUFFERS) {
12142 return NDR_ERR_SUCCESS;
12145 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
12147 if (ndr_flags & NDR_SCALARS) {
12148 NDR_CHECK(ndr_pull_align(ndr, 4));
12149 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
12150 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
12151 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
12152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
12154 if (ndr_flags & NDR_BUFFERS) {
12156 return NDR_ERR_SUCCESS;
12159 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
12161 ndr_print_struct(ndr, name, "spoolss_FormArea");
12163 ndr_print_uint32(ndr, "left", r->left);
12164 ndr_print_uint32(ndr, "top", r->top);
12165 ndr_print_uint32(ndr, "right", r->right);
12166 ndr_print_uint32(ndr, "bottom", r->bottom);
12170 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
12172 if (ndr_flags & NDR_SCALARS) {
12173 NDR_CHECK(ndr_push_align(ndr, 4));
12174 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
12176 uint32_t _flags_save_string = ndr->flags;
12177 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12178 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
12179 ndr->flags = _flags_save_string;
12181 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12182 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12184 if (ndr_flags & NDR_BUFFERS) {
12186 uint32_t _flags_save_string = ndr->flags;
12187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12188 if (r->form_name) {
12189 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
12190 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
12192 ndr->flags = _flags_save_string;
12195 return NDR_ERR_SUCCESS;
12198 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
12200 uint32_t _ptr_form_name;
12201 TALLOC_CTX *_mem_save_form_name_0;
12202 if (ndr_flags & NDR_SCALARS) {
12203 NDR_CHECK(ndr_pull_align(ndr, 4));
12204 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
12206 uint32_t _flags_save_string = ndr->flags;
12207 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12208 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
12209 if (_ptr_form_name) {
12210 NDR_PULL_ALLOC(ndr, r->form_name);
12211 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
12213 r->form_name = NULL;
12215 ndr->flags = _flags_save_string;
12217 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12218 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12220 if (ndr_flags & NDR_BUFFERS) {
12222 uint32_t _flags_save_string = ndr->flags;
12223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12224 if (r->form_name) {
12225 uint32_t _relative_save_offset;
12226 _relative_save_offset = ndr->offset;
12227 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
12228 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12229 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12230 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
12231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12232 ndr->offset = _relative_save_offset;
12234 ndr->flags = _flags_save_string;
12237 return NDR_ERR_SUCCESS;
12240 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
12242 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
12244 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12245 ndr_print_ptr(ndr, "form_name", r->form_name);
12247 if (r->form_name) {
12248 ndr_print_string(ndr, "form_name", r->form_name);
12251 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12252 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12256 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
12258 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12259 if (ndr_flags & NDR_SCALARS) {
12260 int level = ndr_push_get_switch_value(ndr, r);
12263 NDR_CHECK(ndr_push_align(ndr, 4));
12264 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12265 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12273 if (ndr_flags & NDR_BUFFERS) {
12274 int level = ndr_push_get_switch_value(ndr, r);
12275 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12278 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12286 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12287 return NDR_ERR_SUCCESS;
12290 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
12292 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12294 level = ndr_pull_get_switch_value(ndr, r);
12295 if (ndr_flags & NDR_SCALARS) {
12298 NDR_CHECK(ndr_pull_align(ndr, 4));
12299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12300 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12308 if (ndr_flags & NDR_BUFFERS) {
12309 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12312 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12320 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12321 return NDR_ERR_SUCCESS;
12324 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
12327 level = ndr_print_get_switch_value(ndr, r);
12328 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
12331 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
12340 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
12342 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
12345 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
12347 if (ndr_flags & NDR_SCALARS) {
12348 NDR_CHECK(ndr_push_align(ndr, 4));
12349 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
12350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
12351 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12352 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12354 if (ndr_flags & NDR_BUFFERS) {
12355 if (r->form_name) {
12356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12359 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12362 return NDR_ERR_SUCCESS;
12365 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
12367 uint32_t _ptr_form_name;
12368 TALLOC_CTX *_mem_save_form_name_0;
12369 if (ndr_flags & NDR_SCALARS) {
12370 NDR_CHECK(ndr_pull_align(ndr, 4));
12371 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
12372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
12373 if (_ptr_form_name) {
12374 NDR_PULL_ALLOC(ndr, r->form_name);
12376 r->form_name = NULL;
12378 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12379 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12381 if (ndr_flags & NDR_BUFFERS) {
12382 if (r->form_name) {
12383 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12384 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12385 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
12386 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
12387 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
12388 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));
12390 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
12391 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
12392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12395 return NDR_ERR_SUCCESS;
12398 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
12400 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
12402 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12403 ndr_print_ptr(ndr, "form_name", r->form_name);
12405 if (r->form_name) {
12406 ndr_print_string(ndr, "form_name", r->form_name);
12409 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12410 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12414 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
12416 if (ndr_flags & NDR_SCALARS) {
12417 int level = ndr_push_get_switch_value(ndr, r);
12418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
12421 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
12425 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12428 if (ndr_flags & NDR_BUFFERS) {
12429 int level = ndr_push_get_switch_value(ndr, r);
12433 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12438 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12441 return NDR_ERR_SUCCESS;
12444 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
12448 TALLOC_CTX *_mem_save_info1_0;
12449 level = ndr_pull_get_switch_value(ndr, r);
12450 if (ndr_flags & NDR_SCALARS) {
12451 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12452 if (_level != level) {
12453 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12457 uint32_t _ptr_info1;
12458 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
12460 NDR_PULL_ALLOC(ndr, r->info1);
12467 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12470 if (ndr_flags & NDR_BUFFERS) {
12474 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12475 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
12476 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12477 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
12482 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12485 return NDR_ERR_SUCCESS;
12488 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
12491 level = ndr_print_get_switch_value(ndr, r);
12492 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
12495 ndr_print_ptr(ndr, "info1", r->info1);
12498 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
12504 ndr_print_bad_level(ndr, name, level);
12508 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
12510 if (ndr_flags & NDR_SCALARS) {
12511 NDR_CHECK(ndr_push_align(ndr, 4));
12513 uint32_t _flags_save_string = ndr->flags;
12514 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12515 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12516 ndr->flags = _flags_save_string;
12519 if (ndr_flags & NDR_BUFFERS) {
12521 uint32_t _flags_save_string = ndr->flags;
12522 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12523 if (r->port_name) {
12524 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12525 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12527 ndr->flags = _flags_save_string;
12530 return NDR_ERR_SUCCESS;
12533 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
12535 uint32_t _ptr_port_name;
12536 TALLOC_CTX *_mem_save_port_name_0;
12537 if (ndr_flags & NDR_SCALARS) {
12538 NDR_CHECK(ndr_pull_align(ndr, 4));
12540 uint32_t _flags_save_string = ndr->flags;
12541 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12543 if (_ptr_port_name) {
12544 NDR_PULL_ALLOC(ndr, r->port_name);
12545 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12547 r->port_name = NULL;
12549 ndr->flags = _flags_save_string;
12552 if (ndr_flags & NDR_BUFFERS) {
12554 uint32_t _flags_save_string = ndr->flags;
12555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12556 if (r->port_name) {
12557 uint32_t _relative_save_offset;
12558 _relative_save_offset = ndr->offset;
12559 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12560 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12561 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12562 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12564 ndr->offset = _relative_save_offset;
12566 ndr->flags = _flags_save_string;
12569 return NDR_ERR_SUCCESS;
12572 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
12574 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
12576 ndr_print_ptr(ndr, "port_name", r->port_name);
12578 if (r->port_name) {
12579 ndr_print_string(ndr, "port_name", r->port_name);
12585 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12587 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12588 return NDR_ERR_SUCCESS;
12591 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12594 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12596 return NDR_ERR_SUCCESS;
12599 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
12601 ndr_print_uint32(ndr, name, r);
12603 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
12604 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
12605 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
12606 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
12610 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
12612 if (ndr_flags & NDR_SCALARS) {
12613 NDR_CHECK(ndr_push_align(ndr, 4));
12615 uint32_t _flags_save_string = ndr->flags;
12616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12617 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12618 ndr->flags = _flags_save_string;
12621 uint32_t _flags_save_string = ndr->flags;
12622 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12623 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12624 ndr->flags = _flags_save_string;
12627 uint32_t _flags_save_string = ndr->flags;
12628 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
12630 ndr->flags = _flags_save_string;
12632 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
12633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12635 if (ndr_flags & NDR_BUFFERS) {
12637 uint32_t _flags_save_string = ndr->flags;
12638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12639 if (r->port_name) {
12640 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12641 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12643 ndr->flags = _flags_save_string;
12646 uint32_t _flags_save_string = ndr->flags;
12647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12648 if (r->monitor_name) {
12649 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12650 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12652 ndr->flags = _flags_save_string;
12655 uint32_t _flags_save_string = ndr->flags;
12656 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12657 if (r->description) {
12658 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
12659 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
12661 ndr->flags = _flags_save_string;
12664 return NDR_ERR_SUCCESS;
12667 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
12669 uint32_t _ptr_port_name;
12670 TALLOC_CTX *_mem_save_port_name_0;
12671 uint32_t _ptr_monitor_name;
12672 TALLOC_CTX *_mem_save_monitor_name_0;
12673 uint32_t _ptr_description;
12674 TALLOC_CTX *_mem_save_description_0;
12675 if (ndr_flags & NDR_SCALARS) {
12676 NDR_CHECK(ndr_pull_align(ndr, 4));
12678 uint32_t _flags_save_string = ndr->flags;
12679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12681 if (_ptr_port_name) {
12682 NDR_PULL_ALLOC(ndr, r->port_name);
12683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12685 r->port_name = NULL;
12687 ndr->flags = _flags_save_string;
12690 uint32_t _flags_save_string = ndr->flags;
12691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12693 if (_ptr_monitor_name) {
12694 NDR_PULL_ALLOC(ndr, r->monitor_name);
12695 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12697 r->monitor_name = NULL;
12699 ndr->flags = _flags_save_string;
12702 uint32_t _flags_save_string = ndr->flags;
12703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
12705 if (_ptr_description) {
12706 NDR_PULL_ALLOC(ndr, r->description);
12707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
12709 r->description = NULL;
12711 ndr->flags = _flags_save_string;
12713 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
12714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12716 if (ndr_flags & NDR_BUFFERS) {
12718 uint32_t _flags_save_string = ndr->flags;
12719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12720 if (r->port_name) {
12721 uint32_t _relative_save_offset;
12722 _relative_save_offset = ndr->offset;
12723 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12724 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12725 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12726 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12728 ndr->offset = _relative_save_offset;
12730 ndr->flags = _flags_save_string;
12733 uint32_t _flags_save_string = ndr->flags;
12734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12735 if (r->monitor_name) {
12736 uint32_t _relative_save_offset;
12737 _relative_save_offset = ndr->offset;
12738 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12739 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12740 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12741 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12743 ndr->offset = _relative_save_offset;
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 if (r->description) {
12751 uint32_t _relative_save_offset;
12752 _relative_save_offset = ndr->offset;
12753 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
12754 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
12755 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
12756 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
12757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
12758 ndr->offset = _relative_save_offset;
12760 ndr->flags = _flags_save_string;
12763 return NDR_ERR_SUCCESS;
12766 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
12768 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
12770 ndr_print_ptr(ndr, "port_name", r->port_name);
12772 if (r->port_name) {
12773 ndr_print_string(ndr, "port_name", r->port_name);
12776 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12778 if (r->monitor_name) {
12779 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12782 ndr_print_ptr(ndr, "description", r->description);
12784 if (r->description) {
12785 ndr_print_string(ndr, "description", r->description);
12788 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
12789 ndr_print_uint32(ndr, "reserved", r->reserved);
12793 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
12795 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12796 if (ndr_flags & NDR_SCALARS) {
12797 int level = ndr_push_get_switch_value(ndr, r);
12800 NDR_CHECK(ndr_push_align(ndr, 4));
12801 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12802 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12806 NDR_CHECK(ndr_push_align(ndr, 4));
12807 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12808 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12819 if (ndr_flags & NDR_BUFFERS) {
12820 int level = ndr_push_get_switch_value(ndr, r);
12821 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12824 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12828 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12839 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12840 return NDR_ERR_SUCCESS;
12843 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
12845 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12847 level = ndr_pull_get_switch_value(ndr, r);
12848 if (ndr_flags & NDR_SCALARS) {
12851 NDR_CHECK(ndr_pull_align(ndr, 4));
12852 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12853 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12857 NDR_CHECK(ndr_pull_align(ndr, 4));
12858 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12859 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12870 if (ndr_flags & NDR_BUFFERS) {
12871 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12874 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12878 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12889 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12890 return NDR_ERR_SUCCESS;
12893 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
12896 level = ndr_print_get_switch_value(ndr, r);
12897 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
12900 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
12904 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
12916 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
12918 if (ndr_flags & NDR_SCALARS) {
12919 NDR_CHECK(ndr_push_align(ndr, 4));
12921 uint32_t _flags_save_string = ndr->flags;
12922 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12923 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12924 ndr->flags = _flags_save_string;
12927 if (ndr_flags & NDR_BUFFERS) {
12929 uint32_t _flags_save_string = ndr->flags;
12930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12931 if (r->monitor_name) {
12932 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12933 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12935 ndr->flags = _flags_save_string;
12938 return NDR_ERR_SUCCESS;
12941 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
12943 uint32_t _ptr_monitor_name;
12944 TALLOC_CTX *_mem_save_monitor_name_0;
12945 if (ndr_flags & NDR_SCALARS) {
12946 NDR_CHECK(ndr_pull_align(ndr, 4));
12948 uint32_t _flags_save_string = ndr->flags;
12949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12951 if (_ptr_monitor_name) {
12952 NDR_PULL_ALLOC(ndr, r->monitor_name);
12953 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12955 r->monitor_name = NULL;
12957 ndr->flags = _flags_save_string;
12960 if (ndr_flags & NDR_BUFFERS) {
12962 uint32_t _flags_save_string = ndr->flags;
12963 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12964 if (r->monitor_name) {
12965 uint32_t _relative_save_offset;
12966 _relative_save_offset = ndr->offset;
12967 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12968 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12969 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12970 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12972 ndr->offset = _relative_save_offset;
12974 ndr->flags = _flags_save_string;
12977 return NDR_ERR_SUCCESS;
12980 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
12982 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
12984 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12986 if (r->monitor_name) {
12987 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12993 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
12995 if (ndr_flags & NDR_SCALARS) {
12996 NDR_CHECK(ndr_push_align(ndr, 4));
12998 uint32_t _flags_save_string = ndr->flags;
12999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13000 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
13001 ndr->flags = _flags_save_string;
13004 uint32_t _flags_save_string = ndr->flags;
13005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13006 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
13007 ndr->flags = _flags_save_string;
13010 uint32_t _flags_save_string = ndr->flags;
13011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13012 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
13013 ndr->flags = _flags_save_string;
13016 if (ndr_flags & NDR_BUFFERS) {
13018 uint32_t _flags_save_string = ndr->flags;
13019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13020 if (r->monitor_name) {
13021 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
13022 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
13024 ndr->flags = _flags_save_string;
13027 uint32_t _flags_save_string = ndr->flags;
13028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13029 if (r->environment) {
13030 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
13031 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
13033 ndr->flags = _flags_save_string;
13036 uint32_t _flags_save_string = ndr->flags;
13037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13039 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
13040 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
13042 ndr->flags = _flags_save_string;
13045 return NDR_ERR_SUCCESS;
13048 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
13050 uint32_t _ptr_monitor_name;
13051 TALLOC_CTX *_mem_save_monitor_name_0;
13052 uint32_t _ptr_environment;
13053 TALLOC_CTX *_mem_save_environment_0;
13054 uint32_t _ptr_dll_name;
13055 TALLOC_CTX *_mem_save_dll_name_0;
13056 if (ndr_flags & NDR_SCALARS) {
13057 NDR_CHECK(ndr_pull_align(ndr, 4));
13059 uint32_t _flags_save_string = ndr->flags;
13060 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13061 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
13062 if (_ptr_monitor_name) {
13063 NDR_PULL_ALLOC(ndr, r->monitor_name);
13064 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
13066 r->monitor_name = NULL;
13068 ndr->flags = _flags_save_string;
13071 uint32_t _flags_save_string = ndr->flags;
13072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
13074 if (_ptr_environment) {
13075 NDR_PULL_ALLOC(ndr, r->environment);
13076 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
13078 r->environment = NULL;
13080 ndr->flags = _flags_save_string;
13083 uint32_t _flags_save_string = ndr->flags;
13084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13085 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
13086 if (_ptr_dll_name) {
13087 NDR_PULL_ALLOC(ndr, r->dll_name);
13088 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
13090 r->dll_name = NULL;
13092 ndr->flags = _flags_save_string;
13095 if (ndr_flags & NDR_BUFFERS) {
13097 uint32_t _flags_save_string = ndr->flags;
13098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13099 if (r->monitor_name) {
13100 uint32_t _relative_save_offset;
13101 _relative_save_offset = ndr->offset;
13102 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
13103 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13104 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
13105 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
13106 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
13107 ndr->offset = _relative_save_offset;
13109 ndr->flags = _flags_save_string;
13112 uint32_t _flags_save_string = ndr->flags;
13113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13114 if (r->environment) {
13115 uint32_t _relative_save_offset;
13116 _relative_save_offset = ndr->offset;
13117 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
13118 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
13119 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
13120 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
13121 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
13122 ndr->offset = _relative_save_offset;
13124 ndr->flags = _flags_save_string;
13127 uint32_t _flags_save_string = ndr->flags;
13128 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
13130 uint32_t _relative_save_offset;
13131 _relative_save_offset = ndr->offset;
13132 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
13133 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
13134 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
13135 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
13136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
13137 ndr->offset = _relative_save_offset;
13139 ndr->flags = _flags_save_string;
13142 return NDR_ERR_SUCCESS;
13145 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
13147 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
13149 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
13151 if (r->monitor_name) {
13152 ndr_print_string(ndr, "monitor_name", r->monitor_name);
13155 ndr_print_ptr(ndr, "environment", r->environment);
13157 if (r->environment) {
13158 ndr_print_string(ndr, "environment", r->environment);
13161 ndr_print_ptr(ndr, "dll_name", r->dll_name);
13164 ndr_print_string(ndr, "dll_name", r->dll_name);
13170 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
13172 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
13173 if (ndr_flags & NDR_SCALARS) {
13174 int level = ndr_push_get_switch_value(ndr, r);
13177 NDR_CHECK(ndr_push_align(ndr, 4));
13178 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13179 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
13183 NDR_CHECK(ndr_push_align(ndr, 4));
13184 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
13185 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
13193 if (ndr_flags & NDR_BUFFERS) {
13194 int level = ndr_push_get_switch_value(ndr, r);
13195 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
13198 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
13202 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
13210 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
13211 return NDR_ERR_SUCCESS;
13214 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
13216 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
13218 level = ndr_pull_get_switch_value(ndr, r);
13219 if (ndr_flags & NDR_SCALARS) {
13222 NDR_CHECK(ndr_pull_align(ndr, 4));
13223 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13224 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
13228 NDR_CHECK(ndr_pull_align(ndr, 4));
13229 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
13230 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
13238 if (ndr_flags & NDR_BUFFERS) {
13239 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
13242 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
13246 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
13254 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
13255 return NDR_ERR_SUCCESS;
13258 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
13261 level = ndr_print_get_switch_value(ndr, r);
13262 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
13265 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
13269 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
13278 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13281 return NDR_ERR_SUCCESS;
13284 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13287 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13289 return NDR_ERR_SUCCESS;
13292 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13294 ndr_print_uint32(ndr, name, r);
13296 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
13297 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
13298 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
13299 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
13300 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
13301 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
13302 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
13303 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
13304 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
13305 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
13306 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
13307 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
13308 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
13309 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
13310 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
13311 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
13312 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
13313 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
13314 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
13315 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
13316 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
13320 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
13322 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13323 return NDR_ERR_SUCCESS;
13326 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
13329 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13331 return NDR_ERR_SUCCESS;
13334 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
13336 const char *val = NULL;
13339 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
13340 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
13341 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
13342 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
13343 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
13344 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
13345 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
13346 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
13347 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
13348 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
13349 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
13350 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
13351 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
13352 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
13353 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
13354 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
13355 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
13356 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
13357 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
13358 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
13359 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
13360 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
13361 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
13362 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
13363 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
13364 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
13366 ndr_print_enum(ndr, name, "ENUM", val, r);
13369 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
13371 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13372 return NDR_ERR_SUCCESS;
13375 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
13378 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13380 return NDR_ERR_SUCCESS;
13383 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
13385 const char *val = NULL;
13388 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
13389 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
13391 ndr_print_enum(ndr, name, "ENUM", val, r);
13394 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
13396 uint32_t cntr_fields_1;
13397 if (ndr_flags & NDR_SCALARS) {
13398 NDR_CHECK(ndr_push_align(ndr, 4));
13399 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13400 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
13401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
13402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
13403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13404 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
13406 if (ndr_flags & NDR_BUFFERS) {
13408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13409 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13410 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
13414 return NDR_ERR_SUCCESS;
13417 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
13419 uint32_t _ptr_fields;
13420 uint32_t cntr_fields_1;
13421 TALLOC_CTX *_mem_save_fields_0;
13422 TALLOC_CTX *_mem_save_fields_1;
13423 if (ndr_flags & NDR_SCALARS) {
13424 NDR_CHECK(ndr_pull_align(ndr, 4));
13425 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13426 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
13427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
13428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
13429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
13432 NDR_PULL_ALLOC(ndr, r->fields);
13437 if (ndr_flags & NDR_BUFFERS) {
13439 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
13440 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13441 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
13442 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
13443 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
13444 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13445 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13446 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
13448 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
13449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
13452 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
13455 return NDR_ERR_SUCCESS;
13458 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
13460 uint32_t cntr_fields_1;
13461 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
13463 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13464 ndr_print_uint16(ndr, "u1", r->u1);
13465 ndr_print_uint32(ndr, "u2", r->u2);
13466 ndr_print_uint32(ndr, "u3", r->u3);
13467 ndr_print_uint32(ndr, "count", r->count);
13468 ndr_print_ptr(ndr, "fields", r->fields);
13471 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
13473 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
13475 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
13476 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
13486 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13489 return NDR_ERR_SUCCESS;
13492 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13495 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13497 return NDR_ERR_SUCCESS;
13500 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13502 ndr_print_uint32(ndr, name, r);
13504 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
13508 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
13510 uint32_t cntr_types_1;
13511 if (ndr_flags & NDR_SCALARS) {
13512 NDR_CHECK(ndr_push_align(ndr, 4));
13513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13514 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
13515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13516 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
13518 if (ndr_flags & NDR_BUFFERS) {
13520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13521 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13522 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13524 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13525 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13529 return NDR_ERR_SUCCESS;
13532 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
13534 uint32_t _ptr_types;
13535 uint32_t cntr_types_1;
13536 TALLOC_CTX *_mem_save_types_0;
13537 TALLOC_CTX *_mem_save_types_1;
13538 if (ndr_flags & NDR_SCALARS) {
13539 NDR_CHECK(ndr_pull_align(ndr, 4));
13540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13541 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
13542 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13543 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
13545 NDR_PULL_ALLOC(ndr, r->types);
13550 if (ndr_flags & NDR_BUFFERS) {
13552 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
13553 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13554 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
13555 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
13556 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
13557 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13558 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13559 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13561 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13562 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
13565 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
13568 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
13571 return NDR_ERR_SUCCESS;
13574 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
13576 uint32_t cntr_types_1;
13577 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
13579 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13580 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
13581 ndr_print_uint32(ndr, "count", r->count);
13582 ndr_print_ptr(ndr, "types", r->types);
13585 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
13587 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
13589 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
13590 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
13600 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
13602 if (ndr_flags & NDR_SCALARS) {
13603 NDR_CHECK(ndr_push_align(ndr, 4));
13604 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13605 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
13607 if (ndr_flags & NDR_BUFFERS) {
13609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
13610 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
13613 return NDR_ERR_SUCCESS;
13616 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
13618 uint32_t _ptr_string;
13619 TALLOC_CTX *_mem_save_string_0;
13620 if (ndr_flags & NDR_SCALARS) {
13621 NDR_CHECK(ndr_pull_align(ndr, 4));
13622 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
13625 NDR_PULL_ALLOC(ndr, r->string);
13630 if (ndr_flags & NDR_BUFFERS) {
13632 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
13633 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
13634 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
13635 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
13636 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
13639 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
13642 return NDR_ERR_SUCCESS;
13645 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
13647 ndr_print_struct(ndr, name, "spoolss_NotifyString");
13649 ndr_print_uint32(ndr, "size", r->size);
13650 ndr_print_ptr(ndr, "string", r->string);
13653 ndr_print_string(ndr, "string", r->string);
13659 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
13661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13662 return NDR_ERR_SUCCESS;
13665 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
13668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13670 return NDR_ERR_SUCCESS;
13673 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
13675 const char *val = NULL;
13678 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
13679 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
13680 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
13681 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
13682 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
13684 ndr_print_enum(ndr, name, "ENUM", val, r);
13687 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
13689 if (ndr_flags & NDR_SCALARS) {
13690 int level = ndr_push_get_switch_value(ndr, r);
13691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13694 uint32_t cntr_integer_0;
13695 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
13701 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13705 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
13709 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13713 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13717 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13720 if (ndr_flags & NDR_BUFFERS) {
13721 int level = ndr_push_get_switch_value(ndr, r);
13727 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13731 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
13735 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13739 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13743 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13746 return NDR_ERR_SUCCESS;
13749 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
13753 level = ndr_pull_get_switch_value(ndr, r);
13754 if (ndr_flags & NDR_SCALARS) {
13755 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13756 if (_level != level) {
13757 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13761 uint32_t cntr_integer_0;
13762 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
13768 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13772 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
13776 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13780 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13784 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13787 if (ndr_flags & NDR_BUFFERS) {
13793 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13797 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
13801 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13805 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13809 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13812 return NDR_ERR_SUCCESS;
13815 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
13818 uint32_t cntr_integer_0;
13819 level = ndr_print_get_switch_value(ndr, r);
13820 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
13823 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
13825 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
13827 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
13828 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
13836 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
13840 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
13844 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
13848 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
13852 ndr_print_bad_level(ndr, name, level);
13856 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
13858 if (ndr_flags & NDR_SCALARS) {
13859 NDR_CHECK(ndr_push_align(ndr, 4));
13860 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13861 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
13862 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
13863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
13864 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
13865 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13867 if (ndr_flags & NDR_BUFFERS) {
13868 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13870 return NDR_ERR_SUCCESS;
13873 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
13875 if (ndr_flags & NDR_SCALARS) {
13876 NDR_CHECK(ndr_pull_align(ndr, 4));
13877 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13878 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
13879 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
13880 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
13881 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
13882 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13884 if (ndr_flags & NDR_BUFFERS) {
13885 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13887 return NDR_ERR_SUCCESS;
13890 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
13892 ndr_print_struct(ndr, name, "spoolss_Notify");
13894 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13895 ndr_print_spoolss_Field(ndr, "field", r->field);
13896 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
13897 ndr_print_uint32(ndr, "job_id", r->job_id);
13898 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
13899 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
13903 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
13905 uint32_t cntr_notifies_0;
13906 if (ndr_flags & NDR_SCALARS) {
13907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13908 NDR_CHECK(ndr_push_align(ndr, 4));
13909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13912 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13913 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13916 if (ndr_flags & NDR_BUFFERS) {
13917 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13918 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13921 return NDR_ERR_SUCCESS;
13924 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
13926 uint32_t cntr_notifies_0;
13927 TALLOC_CTX *_mem_save_notifies_0;
13928 if (ndr_flags & NDR_SCALARS) {
13929 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
13930 NDR_CHECK(ndr_pull_align(ndr, 4));
13931 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13932 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13933 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13934 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
13935 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13936 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13937 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13938 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13942 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
13945 if (ndr_flags & NDR_BUFFERS) {
13946 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13947 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13948 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13949 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13953 return NDR_ERR_SUCCESS;
13956 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
13958 uint32_t cntr_notifies_0;
13959 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
13961 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13962 ndr_print_uint32(ndr, "flags", r->flags);
13963 ndr_print_uint32(ndr, "count", r->count);
13964 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
13966 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
13968 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
13969 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
13977 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
13979 if (ndr_flags & NDR_SCALARS) {
13980 int level = ndr_push_get_switch_value(ndr, r);
13981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13984 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
13988 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13991 if (ndr_flags & NDR_BUFFERS) {
13992 int level = ndr_push_get_switch_value(ndr, r);
13996 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
14001 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14004 return NDR_ERR_SUCCESS;
14007 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
14011 TALLOC_CTX *_mem_save_info0_0;
14012 level = ndr_pull_get_switch_value(ndr, r);
14013 if (ndr_flags & NDR_SCALARS) {
14014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14015 if (_level != level) {
14016 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14020 uint32_t _ptr_info0;
14021 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
14023 NDR_PULL_ALLOC(ndr, r->info0);
14030 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14033 if (ndr_flags & NDR_BUFFERS) {
14037 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
14038 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
14039 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
14040 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
14045 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14048 return NDR_ERR_SUCCESS;
14051 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
14054 level = ndr_print_get_switch_value(ndr, r);
14055 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
14058 ndr_print_ptr(ndr, "info0", r->info0);
14061 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
14067 ndr_print_bad_level(ndr, name, level);
14071 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14073 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14074 return NDR_ERR_SUCCESS;
14077 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14080 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14082 return NDR_ERR_SUCCESS;
14085 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14087 ndr_print_uint32(ndr, name, r);
14089 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
14090 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
14091 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
14095 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
14097 if (ndr_flags & NDR_SCALARS) {
14098 NDR_CHECK(ndr_push_align(ndr, 4));
14099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
14100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
14101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
14102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14103 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
14104 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
14105 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
14107 if (ndr_flags & NDR_BUFFERS) {
14109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14112 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14116 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14118 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14121 return NDR_ERR_SUCCESS;
14124 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
14126 uint32_t _ptr_client;
14127 TALLOC_CTX *_mem_save_client_0;
14128 uint32_t _ptr_user;
14129 TALLOC_CTX *_mem_save_user_0;
14130 if (ndr_flags & NDR_SCALARS) {
14131 NDR_CHECK(ndr_pull_align(ndr, 4));
14132 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
14135 NDR_PULL_ALLOC(ndr, r->client);
14139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
14141 NDR_PULL_ALLOC(ndr, r->user);
14145 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14146 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
14147 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
14148 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
14150 if (ndr_flags & NDR_BUFFERS) {
14152 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
14153 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
14154 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
14155 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
14156 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
14157 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));
14159 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
14160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
14161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
14164 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
14165 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
14166 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
14167 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
14168 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
14169 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));
14171 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
14172 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
14173 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
14176 return NDR_ERR_SUCCESS;
14179 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
14181 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
14183 ndr_print_uint32(ndr, "size", r->size);
14184 ndr_print_ptr(ndr, "client", r->client);
14187 ndr_print_string(ndr, "client", r->client);
14190 ndr_print_ptr(ndr, "user", r->user);
14193 ndr_print_string(ndr, "user", r->user);
14196 ndr_print_uint32(ndr, "build", r->build);
14197 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
14198 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
14199 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
14203 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
14205 if (ndr_flags & NDR_SCALARS) {
14206 NDR_CHECK(ndr_push_align(ndr, 4));
14207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
14209 if (ndr_flags & NDR_BUFFERS) {
14211 return NDR_ERR_SUCCESS;
14214 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
14216 if (ndr_flags & NDR_SCALARS) {
14217 NDR_CHECK(ndr_pull_align(ndr, 4));
14218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
14220 if (ndr_flags & NDR_BUFFERS) {
14222 return NDR_ERR_SUCCESS;
14225 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
14227 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
14229 ndr_print_uint32(ndr, "not_used", r->not_used);
14233 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
14235 if (ndr_flags & NDR_SCALARS) {
14236 NDR_CHECK(ndr_push_align(ndr, 4));
14237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
14238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
14239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
14240 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
14241 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
14242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
14243 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
14244 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
14245 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
14246 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
14248 if (ndr_flags & NDR_BUFFERS) {
14250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
14253 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14258 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14259 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14262 return NDR_ERR_SUCCESS;
14265 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
14267 uint32_t _ptr_client;
14268 TALLOC_CTX *_mem_save_client_0;
14269 uint32_t _ptr_user;
14270 TALLOC_CTX *_mem_save_user_0;
14271 if (ndr_flags & NDR_SCALARS) {
14272 NDR_CHECK(ndr_pull_align(ndr, 4));
14273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14274 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
14275 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
14276 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
14278 NDR_PULL_ALLOC(ndr, r->client);
14282 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
14284 NDR_PULL_ALLOC(ndr, r->user);
14288 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14289 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
14290 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
14291 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
14292 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
14294 if (ndr_flags & NDR_BUFFERS) {
14296 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
14297 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
14298 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
14299 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
14300 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
14301 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));
14303 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
14304 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
14305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
14308 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
14309 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
14310 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
14311 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
14312 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
14313 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));
14315 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
14316 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
14317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
14320 return NDR_ERR_SUCCESS;
14323 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
14325 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
14327 ndr_print_uint32(ndr, "size", r->size);
14328 ndr_print_uint32(ndr, "flags", r->flags);
14329 ndr_print_uint32(ndr, "size2", r->size2);
14330 ndr_print_ptr(ndr, "client", r->client);
14333 ndr_print_string(ndr, "client", r->client);
14336 ndr_print_ptr(ndr, "user", r->user);
14339 ndr_print_string(ndr, "user", r->user);
14342 ndr_print_uint32(ndr, "build", r->build);
14343 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
14344 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
14345 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
14346 ndr_print_udlong(ndr, "reserved", r->reserved);
14350 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
14352 if (ndr_flags & NDR_SCALARS) {
14353 int level = ndr_push_get_switch_value(ndr, r);
14354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
14361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
14365 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
14369 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14372 if (ndr_flags & NDR_BUFFERS) {
14373 int level = ndr_push_get_switch_value(ndr, r);
14377 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14383 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14389 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14394 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14397 return NDR_ERR_SUCCESS;
14400 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
14404 TALLOC_CTX *_mem_save_level1_0;
14405 TALLOC_CTX *_mem_save_level2_0;
14406 TALLOC_CTX *_mem_save_level3_0;
14407 level = ndr_pull_get_switch_value(ndr, r);
14408 if (ndr_flags & NDR_SCALARS) {
14409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14410 if (_level != level) {
14411 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14415 uint32_t _ptr_level1;
14416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
14418 NDR_PULL_ALLOC(ndr, r->level1);
14425 uint32_t _ptr_level2;
14426 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
14428 NDR_PULL_ALLOC(ndr, r->level2);
14435 uint32_t _ptr_level3;
14436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
14438 NDR_PULL_ALLOC(ndr, r->level3);
14445 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14448 if (ndr_flags & NDR_BUFFERS) {
14452 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14453 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
14454 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
14461 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14462 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
14463 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
14470 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
14471 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
14472 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14473 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
14478 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14481 return NDR_ERR_SUCCESS;
14484 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
14487 level = ndr_print_get_switch_value(ndr, r);
14488 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
14491 ndr_print_ptr(ndr, "level1", r->level1);
14494 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
14500 ndr_print_ptr(ndr, "level2", r->level2);
14503 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
14509 ndr_print_ptr(ndr, "level3", r->level3);
14512 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
14518 ndr_print_bad_level(ndr, name, level);
14522 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
14524 if (ndr_flags & NDR_SCALARS) {
14525 NDR_CHECK(ndr_push_align(ndr, 4));
14526 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
14527 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
14528 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14530 if (ndr_flags & NDR_BUFFERS) {
14531 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14533 return NDR_ERR_SUCCESS;
14536 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
14538 if (ndr_flags & NDR_SCALARS) {
14539 NDR_CHECK(ndr_pull_align(ndr, 4));
14540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
14541 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
14542 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14544 if (ndr_flags & NDR_BUFFERS) {
14545 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14547 return NDR_ERR_SUCCESS;
14550 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
14552 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
14554 ndr_print_uint32(ndr, "level", r->level);
14555 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
14556 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
14560 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14563 return NDR_ERR_SUCCESS;
14566 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14571 return NDR_ERR_SUCCESS;
14574 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
14576 ndr_print_uint32(ndr, name, r);
14578 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
14579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
14580 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
14581 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
14582 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
14586 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14589 return NDR_ERR_SUCCESS;
14592 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14595 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14597 return NDR_ERR_SUCCESS;
14600 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14602 ndr_print_uint32(ndr, name, r);
14604 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
14605 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
14606 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
14610 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
14612 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14613 return NDR_ERR_SUCCESS;
14616 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
14619 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14621 return NDR_ERR_SUCCESS;
14624 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
14626 const char *val = NULL;
14629 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
14630 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
14632 ndr_print_enum(ndr, name, "ENUM", val, r);
14635 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
14637 if (ndr_flags & NDR_SCALARS) {
14638 NDR_CHECK(ndr_push_align(ndr, 4));
14639 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
14641 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14642 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14644 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14645 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14647 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14648 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14649 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14650 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14655 if (ndr_flags & NDR_BUFFERS) {
14657 return NDR_ERR_SUCCESS;
14660 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
14662 if (ndr_flags & NDR_SCALARS) {
14663 NDR_CHECK(ndr_pull_align(ndr, 4));
14664 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14665 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14666 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14668 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14669 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14670 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14671 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14672 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14673 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14674 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14675 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14677 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14678 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14680 if (ndr_flags & NDR_BUFFERS) {
14682 return NDR_ERR_SUCCESS;
14685 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
14687 ndr_print_struct(ndr, name, "spoolss_PortData1");
14689 ndr_print_string(ndr, "portname", r->portname);
14690 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
14691 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14692 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14693 ndr_print_uint32(ndr, "reserved", r->reserved);
14694 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14695 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14696 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14697 ndr_print_string(ndr, "queue", r->queue);
14698 ndr_print_string(ndr, "ip_address", r->ip_address);
14699 ndr_print_string(ndr, "hardware_address", r->hardware_address);
14700 ndr_print_string(ndr, "device_type", r->device_type);
14701 ndr_print_uint32(ndr, "port_number", r->port_number);
14702 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14703 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14707 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
14709 if (ndr_flags & NDR_SCALARS) {
14710 NDR_CHECK(ndr_push_align(ndr, 4));
14711 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
14713 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14716 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14717 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14720 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
14726 if (ndr_flags & NDR_BUFFERS) {
14728 return NDR_ERR_SUCCESS;
14731 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
14733 if (ndr_flags & NDR_SCALARS) {
14734 NDR_CHECK(ndr_pull_align(ndr, 4));
14735 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14736 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14737 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14739 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14740 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14741 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14742 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14744 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14745 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14746 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
14750 if (ndr_flags & NDR_BUFFERS) {
14752 return NDR_ERR_SUCCESS;
14755 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
14757 ndr_print_struct(ndr, name, "spoolss_PortData2");
14759 ndr_print_string(ndr, "portname", r->portname);
14760 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
14761 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14762 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14763 ndr_print_uint32(ndr, "reserved", r->reserved);
14764 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14765 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14766 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14767 ndr_print_string(ndr, "queue", r->queue);
14768 ndr_print_string(ndr, "device_type", r->device_type);
14769 ndr_print_uint32(ndr, "port_number", r->port_number);
14770 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14771 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14772 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
14776 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
14778 if (ndr_flags & NDR_SCALARS) {
14779 NDR_CHECK(ndr_push_align(ndr, 4));
14781 uint32_t _flags_save_string = ndr->flags;
14782 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14783 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
14784 ndr->flags = _flags_save_string;
14787 if (ndr_flags & NDR_BUFFERS) {
14789 return NDR_ERR_SUCCESS;
14792 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
14794 if (ndr_flags & NDR_SCALARS) {
14795 NDR_CHECK(ndr_pull_align(ndr, 4));
14797 uint32_t _flags_save_string = ndr->flags;
14798 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14799 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
14800 ndr->flags = _flags_save_string;
14803 if (ndr_flags & NDR_BUFFERS) {
14805 return NDR_ERR_SUCCESS;
14808 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
14810 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
14812 ndr_print_string(ndr, "dll_name", r->dll_name);
14816 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14819 return NDR_ERR_SUCCESS;
14822 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14827 return NDR_ERR_SUCCESS;
14830 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14832 ndr_print_uint32(ndr, name, r);
14834 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
14835 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
14836 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
14837 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
14838 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
14839 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
14840 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
14841 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
14845 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
14847 if (flags & NDR_IN) {
14848 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
14849 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
14850 if (r->in.server) {
14851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14854 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14857 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14858 if (r->in.buffer) {
14859 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14863 if (flags & NDR_OUT) {
14864 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14866 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
14868 if (r->out.needed == NULL) {
14869 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14871 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14872 if (r->out.count == NULL) {
14873 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
14876 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14878 return NDR_ERR_SUCCESS;
14881 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
14883 uint32_t _ptr_server;
14884 uint32_t _ptr_buffer;
14885 uint32_t _ptr_info;
14886 TALLOC_CTX *_mem_save_server_0;
14887 TALLOC_CTX *_mem_save_buffer_0;
14888 TALLOC_CTX *_mem_save_info_0;
14889 TALLOC_CTX *_mem_save_needed_0;
14890 TALLOC_CTX *_mem_save_count_0;
14891 if (flags & NDR_IN) {
14892 ZERO_STRUCT(r->out);
14894 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
14895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14897 NDR_PULL_ALLOC(ndr, r->in.server);
14899 r->in.server = NULL;
14901 if (r->in.server) {
14902 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14903 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14904 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14905 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14906 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14907 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));
14909 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14910 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14911 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14916 NDR_PULL_ALLOC(ndr, r->in.buffer);
14918 r->in.buffer = NULL;
14920 if (r->in.buffer) {
14921 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14922 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14923 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14927 NDR_PULL_ALLOC(ndr, r->out.needed);
14928 ZERO_STRUCTP(r->out.needed);
14929 NDR_PULL_ALLOC(ndr, r->out.count);
14930 ZERO_STRUCTP(r->out.count);
14932 if (flags & NDR_OUT) {
14933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14935 NDR_PULL_ALLOC(ndr, r->out.info);
14937 r->out.info = NULL;
14940 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14941 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14942 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
14943 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14945 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14946 NDR_PULL_ALLOC(ndr, r->out.needed);
14948 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14949 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14952 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14953 NDR_PULL_ALLOC(ndr, r->out.count);
14955 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
14956 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
14957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
14958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
14959 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14961 return NDR_ERR_SUCCESS;
14964 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
14966 uint32_t cntr_info_0;
14967 if (flags & NDR_IN) {
14968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14971 if (flags & NDR_OUT) {
14972 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14973 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14974 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14976 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14977 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14980 return NDR_ERR_SUCCESS;
14983 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
14985 uint32_t cntr_info_0;
14986 TALLOC_CTX *_mem_save_info_0;
14987 if (flags & NDR_IN) {
14988 ZERO_STRUCT(r->out);
14990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14993 if (flags & NDR_OUT) {
14994 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
14995 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14996 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14997 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14998 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14999 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15001 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15002 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15006 return NDR_ERR_SUCCESS;
15009 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
15011 uint32_t cntr_info_1;
15012 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
15014 if (flags & NDR_SET_VALUES) {
15015 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15017 if (flags & NDR_IN) {
15018 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
15020 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
15021 ndr_print_ptr(ndr, "server", r->in.server);
15023 if (r->in.server) {
15024 ndr_print_string(ndr, "server", r->in.server);
15027 ndr_print_uint32(ndr, "level", r->in.level);
15028 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15030 if (r->in.buffer) {
15031 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15034 ndr_print_uint32(ndr, "offered", r->in.offered);
15037 if (flags & NDR_OUT) {
15038 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
15040 ndr_print_ptr(ndr, "count", r->out.count);
15042 ndr_print_uint32(ndr, "count", *r->out.count);
15044 ndr_print_ptr(ndr, "info", r->out.info);
15047 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15049 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15051 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15052 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15053 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
15060 ndr_print_ptr(ndr, "needed", r->out.needed);
15062 ndr_print_uint32(ndr, "needed", *r->out.needed);
15064 ndr_print_WERROR(ndr, "result", r->out.result);
15070 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
15072 if (flags & NDR_IN) {
15073 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
15074 if (r->in.printername) {
15075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
15076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
15078 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15080 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
15081 if (r->in.datatype) {
15082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
15083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
15085 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15087 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
15088 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
15090 if (flags & NDR_OUT) {
15091 if (r->out.handle == NULL) {
15092 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15094 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
15095 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15097 return NDR_ERR_SUCCESS;
15100 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
15102 uint32_t _ptr_printername;
15103 uint32_t _ptr_datatype;
15104 TALLOC_CTX *_mem_save_printername_0;
15105 TALLOC_CTX *_mem_save_datatype_0;
15106 TALLOC_CTX *_mem_save_handle_0;
15107 if (flags & NDR_IN) {
15108 ZERO_STRUCT(r->out);
15110 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
15111 if (_ptr_printername) {
15112 NDR_PULL_ALLOC(ndr, r->in.printername);
15114 r->in.printername = NULL;
15116 if (r->in.printername) {
15117 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
15118 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
15119 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
15120 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
15121 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
15122 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));
15124 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
15125 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
15126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
15128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
15129 if (_ptr_datatype) {
15130 NDR_PULL_ALLOC(ndr, r->in.datatype);
15132 r->in.datatype = NULL;
15134 if (r->in.datatype) {
15135 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
15136 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
15137 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
15138 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
15139 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
15140 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));
15142 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
15143 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
15144 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
15146 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
15147 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
15148 NDR_PULL_ALLOC(ndr, r->out.handle);
15149 ZERO_STRUCTP(r->out.handle);
15151 if (flags & NDR_OUT) {
15152 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15153 NDR_PULL_ALLOC(ndr, r->out.handle);
15155 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15156 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
15157 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
15158 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15159 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15161 return NDR_ERR_SUCCESS;
15164 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
15166 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
15168 if (flags & NDR_SET_VALUES) {
15169 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15171 if (flags & NDR_IN) {
15172 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
15174 ndr_print_ptr(ndr, "printername", r->in.printername);
15176 if (r->in.printername) {
15177 ndr_print_string(ndr, "printername", r->in.printername);
15180 ndr_print_ptr(ndr, "datatype", r->in.datatype);
15182 if (r->in.datatype) {
15183 ndr_print_string(ndr, "datatype", r->in.datatype);
15186 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
15187 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
15190 if (flags & NDR_OUT) {
15191 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
15193 ndr_print_ptr(ndr, "handle", r->out.handle);
15195 ndr_print_policy_handle(ndr, "handle", r->out.handle);
15197 ndr_print_WERROR(ndr, "result", r->out.result);
15203 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
15205 if (flags & NDR_IN) {
15206 if (r->in.handle == NULL) {
15207 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15209 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
15211 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
15213 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
15215 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
15217 if (flags & NDR_OUT) {
15218 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15220 return NDR_ERR_SUCCESS;
15223 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
15226 TALLOC_CTX *_mem_save_handle_0;
15227 TALLOC_CTX *_mem_save_ctr_0;
15228 if (flags & NDR_IN) {
15229 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15230 NDR_PULL_ALLOC(ndr, r->in.handle);
15232 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15233 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15234 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15235 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
15237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
15239 NDR_PULL_ALLOC(ndr, r->in.ctr);
15244 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15245 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
15246 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
15247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
15249 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
15251 if (flags & NDR_OUT) {
15252 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15254 return NDR_ERR_SUCCESS;
15257 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
15259 ndr_print_struct(ndr, name, "spoolss_SetJob");
15261 if (flags & NDR_SET_VALUES) {
15262 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15264 if (flags & NDR_IN) {
15265 ndr_print_struct(ndr, "in", "spoolss_SetJob");
15267 ndr_print_ptr(ndr, "handle", r->in.handle);
15269 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15271 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15272 ndr_print_ptr(ndr, "ctr", r->in.ctr);
15275 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
15278 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
15281 if (flags & NDR_OUT) {
15282 ndr_print_struct(ndr, "out", "spoolss_SetJob");
15284 ndr_print_WERROR(ndr, "result", r->out.result);
15290 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
15292 if (flags & NDR_IN) {
15293 if (r->in.handle == NULL) {
15294 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15296 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
15298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15299 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15300 if (r->in.buffer) {
15301 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15305 if (flags & NDR_OUT) {
15306 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15309 struct ndr_push *_ndr_info;
15310 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15311 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15312 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15313 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15316 if (r->out.needed == NULL) {
15317 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15319 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15320 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15322 return NDR_ERR_SUCCESS;
15325 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
15327 uint32_t _ptr_buffer;
15328 uint32_t _ptr_info;
15329 TALLOC_CTX *_mem_save_handle_0;
15330 TALLOC_CTX *_mem_save_buffer_0;
15331 TALLOC_CTX *_mem_save_info_0;
15332 TALLOC_CTX *_mem_save_needed_0;
15333 if (flags & NDR_IN) {
15334 ZERO_STRUCT(r->out);
15336 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15337 NDR_PULL_ALLOC(ndr, r->in.handle);
15339 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15340 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15341 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
15344 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15345 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15347 NDR_PULL_ALLOC(ndr, r->in.buffer);
15349 r->in.buffer = NULL;
15351 if (r->in.buffer) {
15352 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15353 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15354 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15358 NDR_PULL_ALLOC(ndr, r->out.needed);
15359 ZERO_STRUCTP(r->out.needed);
15361 if (flags & NDR_OUT) {
15362 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15364 NDR_PULL_ALLOC(ndr, r->out.info);
15366 r->out.info = NULL;
15369 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15370 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15372 struct ndr_pull *_ndr_info;
15373 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15374 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15375 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15376 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15378 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15380 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15381 NDR_PULL_ALLOC(ndr, r->out.needed);
15383 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15384 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15385 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15387 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15389 return NDR_ERR_SUCCESS;
15392 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
15394 ndr_print_struct(ndr, name, "spoolss_GetJob");
15396 if (flags & NDR_SET_VALUES) {
15397 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15399 if (flags & NDR_IN) {
15400 ndr_print_struct(ndr, "in", "spoolss_GetJob");
15402 ndr_print_ptr(ndr, "handle", r->in.handle);
15404 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15406 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15407 ndr_print_uint32(ndr, "level", r->in.level);
15408 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15410 if (r->in.buffer) {
15411 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15414 ndr_print_uint32(ndr, "offered", r->in.offered);
15417 if (flags & NDR_OUT) {
15418 ndr_print_struct(ndr, "out", "spoolss_GetJob");
15420 ndr_print_ptr(ndr, "info", r->out.info);
15423 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15424 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
15427 ndr_print_ptr(ndr, "needed", r->out.needed);
15429 ndr_print_uint32(ndr, "needed", *r->out.needed);
15431 ndr_print_WERROR(ndr, "result", r->out.result);
15437 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
15439 if (flags & NDR_IN) {
15440 if (r->in.handle == NULL) {
15441 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15443 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
15445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
15446 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15447 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15448 if (r->in.buffer) {
15449 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15453 if (flags & NDR_OUT) {
15454 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15456 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15458 if (r->out.needed == NULL) {
15459 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15462 if (r->out.count == NULL) {
15463 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15466 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15468 return NDR_ERR_SUCCESS;
15471 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
15473 uint32_t _ptr_buffer;
15474 uint32_t _ptr_info;
15475 TALLOC_CTX *_mem_save_handle_0;
15476 TALLOC_CTX *_mem_save_buffer_0;
15477 TALLOC_CTX *_mem_save_info_0;
15478 TALLOC_CTX *_mem_save_needed_0;
15479 TALLOC_CTX *_mem_save_count_0;
15480 if (flags & NDR_IN) {
15481 ZERO_STRUCT(r->out);
15483 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15484 NDR_PULL_ALLOC(ndr, r->in.handle);
15486 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15487 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15488 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
15491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
15492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15495 NDR_PULL_ALLOC(ndr, r->in.buffer);
15497 r->in.buffer = NULL;
15499 if (r->in.buffer) {
15500 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15501 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15502 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15505 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15506 NDR_PULL_ALLOC(ndr, r->out.needed);
15507 ZERO_STRUCTP(r->out.needed);
15508 NDR_PULL_ALLOC(ndr, r->out.count);
15509 ZERO_STRUCTP(r->out.count);
15511 if (flags & NDR_OUT) {
15512 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15514 NDR_PULL_ALLOC(ndr, r->out.info);
15516 r->out.info = NULL;
15519 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15520 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15521 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15522 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15525 NDR_PULL_ALLOC(ndr, r->out.needed);
15527 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15528 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15531 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15532 NDR_PULL_ALLOC(ndr, r->out.count);
15534 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15535 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15538 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15540 return NDR_ERR_SUCCESS;
15543 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
15545 uint32_t cntr_info_0;
15546 if (flags & NDR_IN) {
15547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15548 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15550 if (flags & NDR_OUT) {
15551 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15552 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15553 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15555 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15556 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15559 return NDR_ERR_SUCCESS;
15562 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
15564 uint32_t cntr_info_0;
15565 TALLOC_CTX *_mem_save_info_0;
15566 if (flags & NDR_IN) {
15567 ZERO_STRUCT(r->out);
15569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15572 if (flags & NDR_OUT) {
15573 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15574 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15575 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15576 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15577 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15578 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15580 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15581 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15585 return NDR_ERR_SUCCESS;
15588 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
15590 uint32_t cntr_info_1;
15591 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
15593 if (flags & NDR_SET_VALUES) {
15594 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15596 if (flags & NDR_IN) {
15597 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
15599 ndr_print_ptr(ndr, "handle", r->in.handle);
15601 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15603 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
15604 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
15605 ndr_print_uint32(ndr, "level", r->in.level);
15606 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15608 if (r->in.buffer) {
15609 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15612 ndr_print_uint32(ndr, "offered", r->in.offered);
15615 if (flags & NDR_OUT) {
15616 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
15618 ndr_print_ptr(ndr, "count", r->out.count);
15620 ndr_print_uint32(ndr, "count", *r->out.count);
15622 ndr_print_ptr(ndr, "info", r->out.info);
15625 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15627 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15629 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15630 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15631 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
15638 ndr_print_ptr(ndr, "needed", r->out.needed);
15640 ndr_print_uint32(ndr, "needed", *r->out.needed);
15642 ndr_print_WERROR(ndr, "result", r->out.result);
15648 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
15650 if (flags & NDR_IN) {
15652 if (flags & NDR_OUT) {
15653 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15655 return NDR_ERR_SUCCESS;
15658 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
15660 if (flags & NDR_IN) {
15662 if (flags & NDR_OUT) {
15663 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15665 return NDR_ERR_SUCCESS;
15668 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
15670 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
15672 if (flags & NDR_SET_VALUES) {
15673 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15675 if (flags & NDR_IN) {
15676 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
15680 if (flags & NDR_OUT) {
15681 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
15683 ndr_print_WERROR(ndr, "result", r->out.result);
15689 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
15691 if (flags & NDR_IN) {
15692 if (r->in.handle == NULL) {
15693 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15695 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15697 if (flags & NDR_OUT) {
15698 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15700 return NDR_ERR_SUCCESS;
15703 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
15705 TALLOC_CTX *_mem_save_handle_0;
15706 if (flags & NDR_IN) {
15707 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15708 NDR_PULL_ALLOC(ndr, r->in.handle);
15710 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15711 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15712 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15713 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15715 if (flags & NDR_OUT) {
15716 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15718 return NDR_ERR_SUCCESS;
15721 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
15723 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
15725 if (flags & NDR_SET_VALUES) {
15726 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15728 if (flags & NDR_IN) {
15729 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
15731 ndr_print_ptr(ndr, "handle", r->in.handle);
15733 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15737 if (flags & NDR_OUT) {
15738 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
15740 ndr_print_WERROR(ndr, "result", r->out.result);
15746 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
15748 if (flags & NDR_IN) {
15749 if (r->in.handle == NULL) {
15750 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15752 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15753 if (r->in.info_ctr == NULL) {
15754 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15756 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15757 if (r->in.devmode_ctr == NULL) {
15758 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15760 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15761 if (r->in.secdesc_ctr == NULL) {
15762 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15764 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15765 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
15767 if (flags & NDR_OUT) {
15768 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15770 return NDR_ERR_SUCCESS;
15773 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
15775 TALLOC_CTX *_mem_save_handle_0;
15776 TALLOC_CTX *_mem_save_info_ctr_0;
15777 TALLOC_CTX *_mem_save_devmode_ctr_0;
15778 TALLOC_CTX *_mem_save_secdesc_ctr_0;
15779 if (flags & NDR_IN) {
15780 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15781 NDR_PULL_ALLOC(ndr, r->in.handle);
15783 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15784 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15785 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15786 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15787 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15788 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15790 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15791 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15792 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15794 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15795 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
15797 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15798 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
15799 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15800 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15801 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15802 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
15804 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15805 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
15806 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15807 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15808 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
15810 if (flags & NDR_OUT) {
15811 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15813 return NDR_ERR_SUCCESS;
15816 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
15818 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
15820 if (flags & NDR_SET_VALUES) {
15821 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15823 if (flags & NDR_IN) {
15824 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
15826 ndr_print_ptr(ndr, "handle", r->in.handle);
15828 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15830 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15832 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15834 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
15836 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
15838 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15840 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15842 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
15845 if (flags & NDR_OUT) {
15846 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
15848 ndr_print_WERROR(ndr, "result", r->out.result);
15854 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
15856 if (flags & NDR_IN) {
15857 if (r->in.handle == NULL) {
15858 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15860 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15862 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15863 if (r->in.buffer) {
15864 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15868 if (flags & NDR_OUT) {
15869 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15872 struct ndr_push *_ndr_info;
15873 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15874 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15875 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15876 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
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 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15885 return NDR_ERR_SUCCESS;
15888 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
15890 uint32_t _ptr_buffer;
15891 uint32_t _ptr_info;
15892 TALLOC_CTX *_mem_save_handle_0;
15893 TALLOC_CTX *_mem_save_buffer_0;
15894 TALLOC_CTX *_mem_save_info_0;
15895 TALLOC_CTX *_mem_save_needed_0;
15896 if (flags & NDR_IN) {
15897 ZERO_STRUCT(r->out);
15899 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15900 NDR_PULL_ALLOC(ndr, r->in.handle);
15902 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15903 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15904 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15906 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15909 NDR_PULL_ALLOC(ndr, r->in.buffer);
15911 r->in.buffer = NULL;
15913 if (r->in.buffer) {
15914 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15915 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15916 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15919 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15920 NDR_PULL_ALLOC(ndr, r->out.needed);
15921 ZERO_STRUCTP(r->out.needed);
15923 if (flags & NDR_OUT) {
15924 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15926 NDR_PULL_ALLOC(ndr, r->out.info);
15928 r->out.info = NULL;
15931 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15932 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15934 struct ndr_pull *_ndr_info;
15935 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15936 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15937 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15938 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15940 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15942 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15943 NDR_PULL_ALLOC(ndr, r->out.needed);
15945 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15946 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15947 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15948 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15949 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15951 return NDR_ERR_SUCCESS;
15954 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
15956 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
15958 if (flags & NDR_SET_VALUES) {
15959 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15961 if (flags & NDR_IN) {
15962 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
15964 ndr_print_ptr(ndr, "handle", r->in.handle);
15966 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15968 ndr_print_uint32(ndr, "level", r->in.level);
15969 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15971 if (r->in.buffer) {
15972 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15975 ndr_print_uint32(ndr, "offered", r->in.offered);
15978 if (flags & NDR_OUT) {
15979 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
15981 ndr_print_ptr(ndr, "info", r->out.info);
15984 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15985 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
15988 ndr_print_ptr(ndr, "needed", r->out.needed);
15990 ndr_print_uint32(ndr, "needed", *r->out.needed);
15992 ndr_print_WERROR(ndr, "result", r->out.result);
15998 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
16000 if (flags & NDR_IN) {
16001 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16002 if (r->in.servername) {
16003 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16005 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16006 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16008 if (r->in.info_ctr == NULL) {
16009 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16011 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
16013 if (flags & NDR_OUT) {
16014 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16016 return NDR_ERR_SUCCESS;
16019 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
16021 uint32_t _ptr_servername;
16022 TALLOC_CTX *_mem_save_servername_0;
16023 TALLOC_CTX *_mem_save_info_ctr_0;
16024 if (flags & NDR_IN) {
16025 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16026 if (_ptr_servername) {
16027 NDR_PULL_ALLOC(ndr, r->in.servername);
16029 r->in.servername = NULL;
16031 if (r->in.servername) {
16032 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16033 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16034 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16035 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16036 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16037 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));
16039 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16040 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16041 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16043 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16044 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
16046 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
16047 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
16048 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
16049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
16051 if (flags & NDR_OUT) {
16052 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16054 return NDR_ERR_SUCCESS;
16057 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
16059 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
16061 if (flags & NDR_SET_VALUES) {
16062 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16064 if (flags & NDR_IN) {
16065 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
16067 ndr_print_ptr(ndr, "servername", r->in.servername);
16069 if (r->in.servername) {
16070 ndr_print_string(ndr, "servername", r->in.servername);
16073 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
16075 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
16079 if (flags & NDR_OUT) {
16080 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
16082 ndr_print_WERROR(ndr, "result", r->out.result);
16088 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
16090 if (flags & NDR_IN) {
16091 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16092 if (r->in.server) {
16093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16096 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16098 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16099 if (r->in.environment) {
16100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16103 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16106 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16107 if (r->in.buffer) {
16108 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16110 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16112 if (flags & NDR_OUT) {
16113 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16115 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16117 if (r->out.needed == NULL) {
16118 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16120 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16121 if (r->out.count == NULL) {
16122 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
16125 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16127 return NDR_ERR_SUCCESS;
16130 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
16132 uint32_t _ptr_server;
16133 uint32_t _ptr_environment;
16134 uint32_t _ptr_buffer;
16135 uint32_t _ptr_info;
16136 TALLOC_CTX *_mem_save_server_0;
16137 TALLOC_CTX *_mem_save_environment_0;
16138 TALLOC_CTX *_mem_save_buffer_0;
16139 TALLOC_CTX *_mem_save_info_0;
16140 TALLOC_CTX *_mem_save_needed_0;
16141 TALLOC_CTX *_mem_save_count_0;
16142 if (flags & NDR_IN) {
16143 ZERO_STRUCT(r->out);
16145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16147 NDR_PULL_ALLOC(ndr, r->in.server);
16149 r->in.server = NULL;
16151 if (r->in.server) {
16152 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16153 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16154 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16155 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16156 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16157 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));
16159 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16164 if (_ptr_environment) {
16165 NDR_PULL_ALLOC(ndr, r->in.environment);
16167 r->in.environment = NULL;
16169 if (r->in.environment) {
16170 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16171 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16172 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16173 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16174 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16175 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));
16177 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16178 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16179 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16181 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16182 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16184 NDR_PULL_ALLOC(ndr, r->in.buffer);
16186 r->in.buffer = NULL;
16188 if (r->in.buffer) {
16189 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16190 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16191 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16194 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16195 NDR_PULL_ALLOC(ndr, r->out.needed);
16196 ZERO_STRUCTP(r->out.needed);
16197 NDR_PULL_ALLOC(ndr, r->out.count);
16198 ZERO_STRUCTP(r->out.count);
16200 if (flags & NDR_OUT) {
16201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16203 NDR_PULL_ALLOC(ndr, r->out.info);
16205 r->out.info = NULL;
16208 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16209 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16210 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16213 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16214 NDR_PULL_ALLOC(ndr, r->out.needed);
16216 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16217 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16218 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16220 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16221 NDR_PULL_ALLOC(ndr, r->out.count);
16223 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16224 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16227 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16229 return NDR_ERR_SUCCESS;
16232 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
16234 uint32_t cntr_info_0;
16235 if (flags & NDR_IN) {
16236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16239 if (flags & NDR_OUT) {
16240 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16241 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16242 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16244 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16245 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16248 return NDR_ERR_SUCCESS;
16251 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
16253 uint32_t cntr_info_0;
16254 TALLOC_CTX *_mem_save_info_0;
16255 if (flags & NDR_IN) {
16256 ZERO_STRUCT(r->out);
16258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16261 if (flags & NDR_OUT) {
16262 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16263 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16264 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16265 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16266 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16267 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16269 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16270 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16274 return NDR_ERR_SUCCESS;
16277 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
16279 uint32_t cntr_info_1;
16280 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
16282 if (flags & NDR_SET_VALUES) {
16283 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16285 if (flags & NDR_IN) {
16286 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
16288 ndr_print_ptr(ndr, "server", r->in.server);
16290 if (r->in.server) {
16291 ndr_print_string(ndr, "server", r->in.server);
16294 ndr_print_ptr(ndr, "environment", r->in.environment);
16296 if (r->in.environment) {
16297 ndr_print_string(ndr, "environment", r->in.environment);
16300 ndr_print_uint32(ndr, "level", r->in.level);
16301 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16303 if (r->in.buffer) {
16304 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16307 ndr_print_uint32(ndr, "offered", r->in.offered);
16310 if (flags & NDR_OUT) {
16311 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
16313 ndr_print_ptr(ndr, "count", r->out.count);
16315 ndr_print_uint32(ndr, "count", *r->out.count);
16317 ndr_print_ptr(ndr, "info", r->out.info);
16320 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16322 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16324 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16325 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16326 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
16333 ndr_print_ptr(ndr, "needed", r->out.needed);
16335 ndr_print_uint32(ndr, "needed", *r->out.needed);
16337 ndr_print_WERROR(ndr, "result", r->out.result);
16343 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
16345 if (flags & NDR_IN) {
16347 if (flags & NDR_OUT) {
16348 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16350 return NDR_ERR_SUCCESS;
16353 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
16355 if (flags & NDR_IN) {
16357 if (flags & NDR_OUT) {
16358 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16360 return NDR_ERR_SUCCESS;
16363 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
16365 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
16367 if (flags & NDR_SET_VALUES) {
16368 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16370 if (flags & NDR_IN) {
16371 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
16375 if (flags & NDR_OUT) {
16376 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
16378 ndr_print_WERROR(ndr, "result", r->out.result);
16384 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16386 if (flags & NDR_IN) {
16387 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16388 if (r->in.server) {
16389 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16392 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16395 if (r->in.environment) {
16396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16399 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16401 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16402 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16403 if (r->in.buffer) {
16404 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16408 if (flags & NDR_OUT) {
16409 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16412 struct ndr_push *_ndr_info;
16413 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16414 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16415 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16416 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16419 if (r->out.needed == NULL) {
16420 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16423 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16425 return NDR_ERR_SUCCESS;
16428 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
16430 uint32_t _ptr_server;
16431 uint32_t _ptr_environment;
16432 uint32_t _ptr_buffer;
16433 uint32_t _ptr_info;
16434 TALLOC_CTX *_mem_save_server_0;
16435 TALLOC_CTX *_mem_save_environment_0;
16436 TALLOC_CTX *_mem_save_buffer_0;
16437 TALLOC_CTX *_mem_save_info_0;
16438 TALLOC_CTX *_mem_save_needed_0;
16439 if (flags & NDR_IN) {
16440 ZERO_STRUCT(r->out);
16442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16444 NDR_PULL_ALLOC(ndr, r->in.server);
16446 r->in.server = NULL;
16448 if (r->in.server) {
16449 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16450 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16451 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16452 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16453 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16454 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));
16456 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16457 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16458 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16460 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16461 if (_ptr_environment) {
16462 NDR_PULL_ALLOC(ndr, r->in.environment);
16464 r->in.environment = NULL;
16466 if (r->in.environment) {
16467 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16468 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16469 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16470 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16471 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16472 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));
16474 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16475 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16481 NDR_PULL_ALLOC(ndr, r->in.buffer);
16483 r->in.buffer = NULL;
16485 if (r->in.buffer) {
16486 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16487 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16488 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16489 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16492 NDR_PULL_ALLOC(ndr, r->out.needed);
16493 ZERO_STRUCTP(r->out.needed);
16495 if (flags & NDR_OUT) {
16496 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16498 NDR_PULL_ALLOC(ndr, r->out.info);
16500 r->out.info = NULL;
16503 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16504 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16506 struct ndr_pull *_ndr_info;
16507 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16508 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16509 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16510 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16515 NDR_PULL_ALLOC(ndr, r->out.needed);
16517 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16518 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16519 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16521 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16523 return NDR_ERR_SUCCESS;
16526 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16528 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
16530 if (flags & NDR_SET_VALUES) {
16531 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16533 if (flags & NDR_IN) {
16534 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
16536 ndr_print_ptr(ndr, "server", r->in.server);
16538 if (r->in.server) {
16539 ndr_print_string(ndr, "server", r->in.server);
16542 ndr_print_ptr(ndr, "environment", r->in.environment);
16544 if (r->in.environment) {
16545 ndr_print_string(ndr, "environment", r->in.environment);
16548 ndr_print_uint32(ndr, "level", r->in.level);
16549 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16551 if (r->in.buffer) {
16552 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16555 ndr_print_uint32(ndr, "offered", r->in.offered);
16558 if (flags & NDR_OUT) {
16559 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
16561 ndr_print_ptr(ndr, "info", r->out.info);
16564 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16565 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
16568 ndr_print_ptr(ndr, "needed", r->out.needed);
16570 ndr_print_uint32(ndr, "needed", *r->out.needed);
16572 ndr_print_WERROR(ndr, "result", r->out.result);
16578 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
16580 if (flags & NDR_IN) {
16581 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16582 if (r->in.server) {
16583 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16586 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16591 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16592 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16595 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16597 if (flags & NDR_OUT) {
16598 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16600 return NDR_ERR_SUCCESS;
16603 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
16605 uint32_t _ptr_server;
16606 TALLOC_CTX *_mem_save_server_0;
16607 if (flags & NDR_IN) {
16608 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16610 NDR_PULL_ALLOC(ndr, r->in.server);
16612 r->in.server = NULL;
16614 if (r->in.server) {
16615 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16616 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16617 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16618 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16619 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16620 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));
16622 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16623 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16624 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16626 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16627 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16628 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16629 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));
16631 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16632 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16633 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
16634 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
16635 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
16636 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));
16638 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
16639 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
16641 if (flags & NDR_OUT) {
16642 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16644 return NDR_ERR_SUCCESS;
16647 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
16649 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
16651 if (flags & NDR_SET_VALUES) {
16652 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16654 if (flags & NDR_IN) {
16655 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
16657 ndr_print_ptr(ndr, "server", r->in.server);
16659 if (r->in.server) {
16660 ndr_print_string(ndr, "server", r->in.server);
16663 ndr_print_string(ndr, "architecture", r->in.architecture);
16664 ndr_print_string(ndr, "driver", r->in.driver);
16667 if (flags & NDR_OUT) {
16668 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
16670 ndr_print_WERROR(ndr, "result", r->out.result);
16676 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
16678 if (flags & NDR_IN) {
16679 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16680 if (r->in.server) {
16681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16684 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16688 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16689 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16690 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16691 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16692 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16693 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));
16694 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16695 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16696 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16697 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));
16699 if (flags & NDR_OUT) {
16700 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16702 return NDR_ERR_SUCCESS;
16705 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
16707 uint32_t _ptr_server;
16708 TALLOC_CTX *_mem_save_server_0;
16709 if (flags & NDR_IN) {
16710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16712 NDR_PULL_ALLOC(ndr, r->in.server);
16714 r->in.server = NULL;
16716 if (r->in.server) {
16717 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16718 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16719 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16720 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16721 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16722 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));
16724 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16725 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16728 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16729 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16730 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16731 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));
16733 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16734 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16735 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
16736 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
16737 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
16738 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));
16740 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
16741 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));
16742 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
16743 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
16744 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
16745 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));
16747 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
16748 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));
16750 if (flags & NDR_OUT) {
16751 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16753 return NDR_ERR_SUCCESS;
16756 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
16758 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
16760 if (flags & NDR_SET_VALUES) {
16761 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16763 if (flags & NDR_IN) {
16764 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
16766 ndr_print_ptr(ndr, "server", r->in.server);
16768 if (r->in.server) {
16769 ndr_print_string(ndr, "server", r->in.server);
16772 ndr_print_string(ndr, "architecture", r->in.architecture);
16773 ndr_print_string(ndr, "path_name", r->in.path_name);
16774 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
16777 if (flags & NDR_OUT) {
16778 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
16780 ndr_print_WERROR(ndr, "result", r->out.result);
16786 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
16788 if (flags & NDR_IN) {
16789 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16790 if (r->in.servername) {
16791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16794 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16796 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16797 if (r->in.environment) {
16798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16801 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16803 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16804 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16805 if (r->in.buffer) {
16806 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16808 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16810 if (flags & NDR_OUT) {
16811 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16813 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16815 if (r->out.needed == NULL) {
16816 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16819 if (r->out.count == NULL) {
16820 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
16823 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16825 return NDR_ERR_SUCCESS;
16828 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
16830 uint32_t _ptr_servername;
16831 uint32_t _ptr_environment;
16832 uint32_t _ptr_buffer;
16833 uint32_t _ptr_info;
16834 TALLOC_CTX *_mem_save_servername_0;
16835 TALLOC_CTX *_mem_save_environment_0;
16836 TALLOC_CTX *_mem_save_buffer_0;
16837 TALLOC_CTX *_mem_save_info_0;
16838 TALLOC_CTX *_mem_save_needed_0;
16839 TALLOC_CTX *_mem_save_count_0;
16840 if (flags & NDR_IN) {
16841 ZERO_STRUCT(r->out);
16843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16844 if (_ptr_servername) {
16845 NDR_PULL_ALLOC(ndr, r->in.servername);
16847 r->in.servername = NULL;
16849 if (r->in.servername) {
16850 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16851 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16852 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16853 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16854 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16855 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));
16857 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16858 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16861 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16862 if (_ptr_environment) {
16863 NDR_PULL_ALLOC(ndr, r->in.environment);
16865 r->in.environment = NULL;
16867 if (r->in.environment) {
16868 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16869 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16870 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16871 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16872 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
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.environment), ndr_get_array_length(ndr, &r->in.environment));
16875 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16876 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16879 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16880 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16882 NDR_PULL_ALLOC(ndr, r->in.buffer);
16884 r->in.buffer = NULL;
16886 if (r->in.buffer) {
16887 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16888 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16889 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16893 NDR_PULL_ALLOC(ndr, r->out.needed);
16894 ZERO_STRUCTP(r->out.needed);
16895 NDR_PULL_ALLOC(ndr, r->out.count);
16896 ZERO_STRUCTP(r->out.count);
16898 if (flags & NDR_OUT) {
16899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16901 NDR_PULL_ALLOC(ndr, r->out.info);
16903 r->out.info = NULL;
16906 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16907 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16908 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16909 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16911 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16912 NDR_PULL_ALLOC(ndr, r->out.needed);
16914 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16915 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16918 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16919 NDR_PULL_ALLOC(ndr, r->out.count);
16921 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16922 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16923 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16925 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16927 return NDR_ERR_SUCCESS;
16930 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
16932 uint32_t cntr_info_0;
16933 if (flags & NDR_IN) {
16934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16937 if (flags & NDR_OUT) {
16938 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16939 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16940 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16942 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16943 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16946 return NDR_ERR_SUCCESS;
16949 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
16951 uint32_t cntr_info_0;
16952 TALLOC_CTX *_mem_save_info_0;
16953 if (flags & NDR_IN) {
16954 ZERO_STRUCT(r->out);
16956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16959 if (flags & NDR_OUT) {
16960 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16961 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16962 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16963 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16964 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16965 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16967 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16968 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16972 return NDR_ERR_SUCCESS;
16975 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
16977 uint32_t cntr_info_1;
16978 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
16980 if (flags & NDR_SET_VALUES) {
16981 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16983 if (flags & NDR_IN) {
16984 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
16986 ndr_print_ptr(ndr, "servername", r->in.servername);
16988 if (r->in.servername) {
16989 ndr_print_string(ndr, "servername", r->in.servername);
16992 ndr_print_ptr(ndr, "environment", r->in.environment);
16994 if (r->in.environment) {
16995 ndr_print_string(ndr, "environment", r->in.environment);
16998 ndr_print_uint32(ndr, "level", r->in.level);
16999 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17001 if (r->in.buffer) {
17002 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
17005 ndr_print_uint32(ndr, "offered", r->in.offered);
17008 if (flags & NDR_OUT) {
17009 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
17011 ndr_print_ptr(ndr, "count", r->out.count);
17013 ndr_print_uint32(ndr, "count", *r->out.count);
17015 ndr_print_ptr(ndr, "info", r->out.info);
17018 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
17020 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
17022 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
17023 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
17024 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
17031 ndr_print_ptr(ndr, "needed", r->out.needed);
17033 ndr_print_uint32(ndr, "needed", *r->out.needed);
17035 ndr_print_WERROR(ndr, "result", r->out.result);
17041 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
17043 if (flags & NDR_IN) {
17044 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
17045 if (r->in.server) {
17046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
17047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
17049 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17051 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
17052 if (r->in.environment) {
17053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
17054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
17056 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
17058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17059 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17060 if (r->in.buffer) {
17061 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
17063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17065 if (flags & NDR_OUT) {
17066 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
17069 struct ndr_push *_ndr_info;
17070 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
17071 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
17072 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
17073 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
17076 if (r->out.needed == NULL) {
17077 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17080 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17082 return NDR_ERR_SUCCESS;
17085 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
17087 uint32_t _ptr_server;
17088 uint32_t _ptr_environment;
17089 uint32_t _ptr_buffer;
17090 uint32_t _ptr_info;
17091 TALLOC_CTX *_mem_save_server_0;
17092 TALLOC_CTX *_mem_save_environment_0;
17093 TALLOC_CTX *_mem_save_buffer_0;
17094 TALLOC_CTX *_mem_save_info_0;
17095 TALLOC_CTX *_mem_save_needed_0;
17096 if (flags & NDR_IN) {
17097 ZERO_STRUCT(r->out);
17099 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
17101 NDR_PULL_ALLOC(ndr, r->in.server);
17103 r->in.server = NULL;
17105 if (r->in.server) {
17106 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
17107 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
17108 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
17109 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
17110 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
17111 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));
17113 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
17114 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
17115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
17117 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
17118 if (_ptr_environment) {
17119 NDR_PULL_ALLOC(ndr, r->in.environment);
17121 r->in.environment = NULL;
17123 if (r->in.environment) {
17124 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
17125 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
17126 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
17127 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
17128 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
17129 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));
17131 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
17132 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
17133 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
17135 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17136 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17138 NDR_PULL_ALLOC(ndr, r->in.buffer);
17140 r->in.buffer = NULL;
17142 if (r->in.buffer) {
17143 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17144 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17145 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
17146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17149 NDR_PULL_ALLOC(ndr, r->out.needed);
17150 ZERO_STRUCTP(r->out.needed);
17152 if (flags & NDR_OUT) {
17153 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
17155 NDR_PULL_ALLOC(ndr, r->out.info);
17157 r->out.info = NULL;
17160 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
17161 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
17163 struct ndr_pull *_ndr_info;
17164 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
17165 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
17166 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
17167 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
17169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
17171 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17172 NDR_PULL_ALLOC(ndr, r->out.needed);
17174 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17175 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17178 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17180 return NDR_ERR_SUCCESS;
17183 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
17185 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
17187 if (flags & NDR_SET_VALUES) {
17188 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17190 if (flags & NDR_IN) {
17191 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
17193 ndr_print_ptr(ndr, "server", r->in.server);
17195 if (r->in.server) {
17196 ndr_print_string(ndr, "server", r->in.server);
17199 ndr_print_ptr(ndr, "environment", r->in.environment);
17201 if (r->in.environment) {
17202 ndr_print_string(ndr, "environment", r->in.environment);
17205 ndr_print_uint32(ndr, "level", r->in.level);
17206 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17208 if (r->in.buffer) {
17209 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
17212 ndr_print_uint32(ndr, "offered", r->in.offered);
17215 if (flags & NDR_OUT) {
17216 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
17218 ndr_print_ptr(ndr, "info", r->out.info);
17221 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
17222 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
17225 ndr_print_ptr(ndr, "needed", r->out.needed);
17227 ndr_print_uint32(ndr, "needed", *r->out.needed);
17229 ndr_print_WERROR(ndr, "result", r->out.result);
17235 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
17237 if (flags & NDR_IN) {
17238 if (r->in.handle == NULL) {
17239 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17241 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17243 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
17244 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17246 if (flags & NDR_OUT) {
17247 if (r->out.job_id == NULL) {
17248 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
17251 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17253 return NDR_ERR_SUCCESS;
17256 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
17258 TALLOC_CTX *_mem_save_handle_0;
17259 TALLOC_CTX *_mem_save_job_id_0;
17260 if (flags & NDR_IN) {
17261 ZERO_STRUCT(r->out);
17263 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17264 NDR_PULL_ALLOC(ndr, r->in.handle);
17266 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17267 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17268 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17270 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17271 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
17272 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17273 NDR_PULL_ALLOC(ndr, r->out.job_id);
17274 ZERO_STRUCTP(r->out.job_id);
17276 if (flags & NDR_OUT) {
17277 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17278 NDR_PULL_ALLOC(ndr, r->out.job_id);
17280 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
17281 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
17282 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
17283 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
17284 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17286 return NDR_ERR_SUCCESS;
17289 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
17291 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
17293 if (flags & NDR_SET_VALUES) {
17294 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17296 if (flags & NDR_IN) {
17297 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
17299 ndr_print_ptr(ndr, "handle", r->in.handle);
17301 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17303 ndr_print_uint32(ndr, "level", r->in.level);
17304 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
17305 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
17308 if (flags & NDR_OUT) {
17309 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
17311 ndr_print_ptr(ndr, "job_id", r->out.job_id);
17313 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
17315 ndr_print_WERROR(ndr, "result", r->out.result);
17321 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
17323 if (flags & NDR_IN) {
17324 if (r->in.handle == NULL) {
17325 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17327 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17329 if (flags & NDR_OUT) {
17330 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17332 return NDR_ERR_SUCCESS;
17335 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
17337 TALLOC_CTX *_mem_save_handle_0;
17338 if (flags & NDR_IN) {
17339 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17340 NDR_PULL_ALLOC(ndr, r->in.handle);
17342 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17343 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17344 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17345 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17347 if (flags & NDR_OUT) {
17348 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17350 return NDR_ERR_SUCCESS;
17353 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
17355 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
17357 if (flags & NDR_SET_VALUES) {
17358 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17360 if (flags & NDR_IN) {
17361 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
17363 ndr_print_ptr(ndr, "handle", r->in.handle);
17365 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17369 if (flags & NDR_OUT) {
17370 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
17372 ndr_print_WERROR(ndr, "result", r->out.result);
17378 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
17380 if (flags & NDR_IN) {
17381 if (r->in.handle == NULL) {
17382 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17384 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17385 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
17388 if (flags & NDR_OUT) {
17389 if (r->out.num_written == NULL) {
17390 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
17393 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17395 return NDR_ERR_SUCCESS;
17398 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
17400 TALLOC_CTX *_mem_save_handle_0;
17401 TALLOC_CTX *_mem_save_num_written_0;
17402 if (flags & NDR_IN) {
17403 ZERO_STRUCT(r->out);
17405 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17406 NDR_PULL_ALLOC(ndr, r->in.handle);
17408 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17409 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17410 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17412 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
17413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
17414 NDR_PULL_ALLOC(ndr, r->out.num_written);
17415 ZERO_STRUCTP(r->out.num_written);
17417 if (flags & NDR_OUT) {
17418 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17419 NDR_PULL_ALLOC(ndr, r->out.num_written);
17421 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
17422 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
17423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
17424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
17425 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17427 return NDR_ERR_SUCCESS;
17430 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
17432 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
17434 if (flags & NDR_SET_VALUES) {
17435 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17437 if (flags & NDR_IN) {
17438 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
17440 ndr_print_ptr(ndr, "handle", r->in.handle);
17442 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17444 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
17445 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
17448 if (flags & NDR_OUT) {
17449 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
17451 ndr_print_ptr(ndr, "num_written", r->out.num_written);
17453 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
17455 ndr_print_WERROR(ndr, "result", r->out.result);
17461 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
17463 if (flags & NDR_IN) {
17464 if (r->in.handle == NULL) {
17465 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17467 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17469 if (flags & NDR_OUT) {
17470 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17472 return NDR_ERR_SUCCESS;
17475 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
17477 TALLOC_CTX *_mem_save_handle_0;
17478 if (flags & NDR_IN) {
17479 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17480 NDR_PULL_ALLOC(ndr, r->in.handle);
17482 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17483 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17484 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17485 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17487 if (flags & NDR_OUT) {
17488 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17490 return NDR_ERR_SUCCESS;
17493 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
17495 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
17497 if (flags & NDR_SET_VALUES) {
17498 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17500 if (flags & NDR_IN) {
17501 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
17503 ndr_print_ptr(ndr, "handle", r->in.handle);
17505 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17509 if (flags & NDR_OUT) {
17510 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
17512 ndr_print_WERROR(ndr, "result", r->out.result);
17518 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
17520 if (flags & NDR_IN) {
17521 if (r->in.handle == NULL) {
17522 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17524 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17526 if (flags & NDR_OUT) {
17527 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17529 return NDR_ERR_SUCCESS;
17532 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
17534 TALLOC_CTX *_mem_save_handle_0;
17535 if (flags & NDR_IN) {
17536 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17537 NDR_PULL_ALLOC(ndr, r->in.handle);
17539 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17540 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17541 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17544 if (flags & NDR_OUT) {
17545 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17547 return NDR_ERR_SUCCESS;
17550 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
17552 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
17554 if (flags & NDR_SET_VALUES) {
17555 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17557 if (flags & NDR_IN) {
17558 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
17560 ndr_print_ptr(ndr, "handle", r->in.handle);
17562 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17566 if (flags & NDR_OUT) {
17567 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
17569 ndr_print_WERROR(ndr, "result", r->out.result);
17575 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
17577 if (flags & NDR_IN) {
17578 if (r->in.handle == NULL) {
17579 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17581 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17584 if (flags & NDR_OUT) {
17585 if (r->out.data == NULL) {
17586 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17589 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
17590 if (r->out._data_size == NULL) {
17591 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17593 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
17594 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17596 return NDR_ERR_SUCCESS;
17599 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
17601 TALLOC_CTX *_mem_save_handle_0;
17602 TALLOC_CTX *_mem_save__data_size_0;
17603 if (flags & NDR_IN) {
17604 ZERO_STRUCT(r->out);
17606 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17607 NDR_PULL_ALLOC(ndr, r->in.handle);
17609 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17610 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17611 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17612 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17613 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
17614 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
17615 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
17616 NDR_PULL_ALLOC(ndr, r->out._data_size);
17617 ZERO_STRUCTP(r->out._data_size);
17619 if (flags & NDR_OUT) {
17620 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
17621 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17622 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
17624 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
17625 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17626 NDR_PULL_ALLOC(ndr, r->out._data_size);
17628 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
17629 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
17630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
17631 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
17632 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17634 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
17637 return NDR_ERR_SUCCESS;
17640 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
17642 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
17644 if (flags & NDR_SET_VALUES) {
17645 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17647 if (flags & NDR_IN) {
17648 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
17650 ndr_print_ptr(ndr, "handle", r->in.handle);
17652 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17654 ndr_print_uint32(ndr, "data_size", r->in.data_size);
17657 if (flags & NDR_OUT) {
17658 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
17660 ndr_print_ptr(ndr, "data", r->out.data);
17662 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
17664 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
17666 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
17668 ndr_print_WERROR(ndr, "result", r->out.result);
17674 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
17676 if (flags & NDR_IN) {
17677 if (r->in.handle == NULL) {
17678 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17680 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17682 if (flags & NDR_OUT) {
17683 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17685 return NDR_ERR_SUCCESS;
17688 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
17690 TALLOC_CTX *_mem_save_handle_0;
17691 if (flags & NDR_IN) {
17692 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17693 NDR_PULL_ALLOC(ndr, r->in.handle);
17695 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17696 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17697 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17698 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17700 if (flags & NDR_OUT) {
17701 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17703 return NDR_ERR_SUCCESS;
17706 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
17708 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
17710 if (flags & NDR_SET_VALUES) {
17711 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17713 if (flags & NDR_IN) {
17714 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
17716 ndr_print_ptr(ndr, "handle", r->in.handle);
17718 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17722 if (flags & NDR_OUT) {
17723 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
17725 ndr_print_WERROR(ndr, "result", r->out.result);
17731 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
17733 if (flags & NDR_IN) {
17734 if (r->in.handle == NULL) {
17735 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17737 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17738 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17739 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17740 if (r->in.buffer) {
17741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17742 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
17744 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17746 if (flags & NDR_OUT) {
17747 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
17748 if (r->out.buffer) {
17749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17750 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
17752 if (r->out.needed == NULL) {
17753 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17755 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17756 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17758 return NDR_ERR_SUCCESS;
17761 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
17763 uint32_t _ptr_buffer;
17764 TALLOC_CTX *_mem_save_handle_0;
17765 TALLOC_CTX *_mem_save_buffer_0;
17766 TALLOC_CTX *_mem_save_needed_0;
17767 if (flags & NDR_IN) {
17768 ZERO_STRUCT(r->out);
17770 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17771 NDR_PULL_ALLOC(ndr, r->in.handle);
17773 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17774 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17775 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17777 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17778 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17780 NDR_PULL_ALLOC(ndr, r->in.buffer);
17782 r->in.buffer = NULL;
17784 if (r->in.buffer) {
17785 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17786 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17787 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
17788 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
17789 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
17790 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17792 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17793 NDR_PULL_ALLOC(ndr, r->out.needed);
17794 ZERO_STRUCTP(r->out.needed);
17795 if (r->in.buffer) {
17796 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
17799 if (flags & NDR_OUT) {
17800 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17802 NDR_PULL_ALLOC(ndr, r->out.buffer);
17804 r->out.buffer = NULL;
17806 if (r->out.buffer) {
17807 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17808 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
17809 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
17810 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
17811 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
17812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17814 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17815 NDR_PULL_ALLOC(ndr, r->out.needed);
17817 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17818 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17819 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17820 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17821 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17822 if (r->out.buffer) {
17823 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
17826 return NDR_ERR_SUCCESS;
17829 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
17831 ndr_print_struct(ndr, name, "spoolss_AddJob");
17833 if (flags & NDR_SET_VALUES) {
17834 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17836 if (flags & NDR_IN) {
17837 ndr_print_struct(ndr, "in", "spoolss_AddJob");
17839 ndr_print_ptr(ndr, "handle", r->in.handle);
17841 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17843 ndr_print_uint32(ndr, "level", r->in.level);
17844 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17846 if (r->in.buffer) {
17847 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
17850 ndr_print_uint32(ndr, "offered", r->in.offered);
17853 if (flags & NDR_OUT) {
17854 ndr_print_struct(ndr, "out", "spoolss_AddJob");
17856 ndr_print_ptr(ndr, "buffer", r->out.buffer);
17858 if (r->out.buffer) {
17859 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
17862 ndr_print_ptr(ndr, "needed", r->out.needed);
17864 ndr_print_uint32(ndr, "needed", *r->out.needed);
17866 ndr_print_WERROR(ndr, "result", r->out.result);
17872 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
17874 if (flags & NDR_IN) {
17875 if (r->in.handle == NULL) {
17876 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17878 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
17881 if (flags & NDR_OUT) {
17882 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17884 return NDR_ERR_SUCCESS;
17887 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
17889 TALLOC_CTX *_mem_save_handle_0;
17890 if (flags & NDR_IN) {
17891 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17892 NDR_PULL_ALLOC(ndr, r->in.handle);
17894 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17895 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17896 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17897 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
17900 if (flags & NDR_OUT) {
17901 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17903 return NDR_ERR_SUCCESS;
17906 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
17908 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
17910 if (flags & NDR_SET_VALUES) {
17911 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17913 if (flags & NDR_IN) {
17914 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
17916 ndr_print_ptr(ndr, "handle", r->in.handle);
17918 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17920 ndr_print_uint32(ndr, "jobid", r->in.jobid);
17923 if (flags & NDR_OUT) {
17924 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
17926 ndr_print_WERROR(ndr, "result", r->out.result);
17932 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
17934 if (flags & NDR_IN) {
17935 if (r->in.handle == NULL) {
17936 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17938 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17939 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17940 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17941 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17942 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));
17943 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17945 if (flags & NDR_OUT) {
17946 if (r->out.type == NULL) {
17947 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17949 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
17950 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
17951 if (r->out.needed == NULL) {
17952 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17955 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17957 return NDR_ERR_SUCCESS;
17960 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
17962 TALLOC_CTX *_mem_save_handle_0;
17963 TALLOC_CTX *_mem_save_type_0;
17964 TALLOC_CTX *_mem_save_needed_0;
17965 if (flags & NDR_IN) {
17966 ZERO_STRUCT(r->out);
17968 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17969 NDR_PULL_ALLOC(ndr, r->in.handle);
17971 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17972 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17973 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17974 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17975 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17976 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17977 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17978 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));
17980 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17981 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));
17982 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17983 NDR_PULL_ALLOC(ndr, r->out.type);
17984 ZERO_STRUCTP(r->out.type);
17985 NDR_PULL_ALLOC(ndr, r->out.needed);
17986 ZERO_STRUCTP(r->out.needed);
17988 if (flags & NDR_OUT) {
17989 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17990 NDR_PULL_ALLOC(ndr, r->out.type);
17992 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
17993 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
17994 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
17995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
17996 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
17997 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17998 NDR_PULL_ALLOC(ndr, r->out.needed);
18000 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18001 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18003 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18004 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18006 return NDR_ERR_SUCCESS;
18009 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
18011 if (flags & NDR_IN) {
18012 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
18014 if (flags & NDR_OUT) {
18015 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
18016 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
18018 return NDR_ERR_SUCCESS;
18021 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
18023 if (flags & NDR_IN) {
18024 ZERO_STRUCT(r->out);
18026 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
18028 if (flags & NDR_OUT) {
18029 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
18030 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
18032 return NDR_ERR_SUCCESS;
18035 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
18037 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
18039 if (flags & NDR_SET_VALUES) {
18040 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18042 if (flags & NDR_IN) {
18043 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
18045 ndr_print_ptr(ndr, "handle", r->in.handle);
18047 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18049 ndr_print_string(ndr, "value_name", r->in.value_name);
18050 ndr_print_uint32(ndr, "offered", r->in.offered);
18053 if (flags & NDR_OUT) {
18054 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
18056 ndr_print_ptr(ndr, "type", r->out.type);
18058 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
18060 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
18061 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
18062 ndr_print_ptr(ndr, "needed", r->out.needed);
18064 ndr_print_uint32(ndr, "needed", *r->out.needed);
18066 ndr_print_WERROR(ndr, "result", r->out.result);
18072 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
18074 if (flags & NDR_IN) {
18075 if (r->in.handle == NULL) {
18076 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18078 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18079 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
18080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
18082 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));
18083 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
18084 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
18085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
18087 if (flags & NDR_OUT) {
18088 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18090 return NDR_ERR_SUCCESS;
18093 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
18095 if (flags & NDR_IN) {
18096 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
18098 if (flags & NDR_OUT) {
18099 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
18100 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
18102 return NDR_ERR_SUCCESS;
18105 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
18107 TALLOC_CTX *_mem_save_handle_0;
18108 if (flags & NDR_IN) {
18109 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18110 NDR_PULL_ALLOC(ndr, r->in.handle);
18112 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18113 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18114 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18115 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18116 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
18117 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
18118 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
18119 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));
18121 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
18122 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));
18123 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
18125 struct ndr_pull *_ndr_data;
18126 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
18127 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
18128 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
18129 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
18131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
18133 if (flags & NDR_OUT) {
18134 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18136 return NDR_ERR_SUCCESS;
18139 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
18141 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
18143 if (flags & NDR_SET_VALUES) {
18144 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18146 if (flags & NDR_IN) {
18147 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
18149 ndr_print_ptr(ndr, "handle", r->in.handle);
18151 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18153 ndr_print_string(ndr, "value_name", r->in.value_name);
18154 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
18155 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
18156 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
18157 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);
18160 if (flags & NDR_OUT) {
18161 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
18163 ndr_print_WERROR(ndr, "result", r->out.result);
18169 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
18171 if (flags & NDR_IN) {
18173 if (flags & NDR_OUT) {
18174 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18176 return NDR_ERR_SUCCESS;
18179 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
18181 if (flags & NDR_IN) {
18183 if (flags & NDR_OUT) {
18184 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18186 return NDR_ERR_SUCCESS;
18189 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
18191 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
18193 if (flags & NDR_SET_VALUES) {
18194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18196 if (flags & NDR_IN) {
18197 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
18201 if (flags & NDR_OUT) {
18202 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
18204 ndr_print_WERROR(ndr, "result", r->out.result);
18210 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
18212 if (flags & NDR_IN) {
18213 if (r->in.handle == NULL) {
18214 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18216 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18218 if (flags & NDR_OUT) {
18219 if (r->out.handle == NULL) {
18220 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18222 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18223 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18225 return NDR_ERR_SUCCESS;
18228 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
18230 TALLOC_CTX *_mem_save_handle_0;
18231 if (flags & NDR_IN) {
18232 ZERO_STRUCT(r->out);
18234 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18235 NDR_PULL_ALLOC(ndr, r->in.handle);
18237 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18238 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18239 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18240 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18241 NDR_PULL_ALLOC(ndr, r->out.handle);
18242 *r->out.handle = *r->in.handle;
18244 if (flags & NDR_OUT) {
18245 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18246 NDR_PULL_ALLOC(ndr, r->out.handle);
18248 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18249 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
18250 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
18251 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18252 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18254 return NDR_ERR_SUCCESS;
18257 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
18259 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
18261 if (flags & NDR_SET_VALUES) {
18262 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18264 if (flags & NDR_IN) {
18265 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
18267 ndr_print_ptr(ndr, "handle", r->in.handle);
18269 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18273 if (flags & NDR_OUT) {
18274 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
18276 ndr_print_ptr(ndr, "handle", r->out.handle);
18278 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18280 ndr_print_WERROR(ndr, "result", r->out.result);
18286 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
18288 if (flags & NDR_IN) {
18289 if (r->in.handle == NULL) {
18290 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18292 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18293 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18294 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18295 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18297 if (flags & NDR_OUT) {
18298 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18300 return NDR_ERR_SUCCESS;
18303 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
18305 TALLOC_CTX *_mem_save_handle_0;
18306 if (flags & NDR_IN) {
18307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18308 NDR_PULL_ALLOC(ndr, r->in.handle);
18310 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18311 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18312 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18315 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18316 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18318 if (flags & NDR_OUT) {
18319 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18321 return NDR_ERR_SUCCESS;
18324 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
18326 ndr_print_struct(ndr, name, "spoolss_AddForm");
18328 if (flags & NDR_SET_VALUES) {
18329 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18331 if (flags & NDR_IN) {
18332 ndr_print_struct(ndr, "in", "spoolss_AddForm");
18334 ndr_print_ptr(ndr, "handle", r->in.handle);
18336 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18338 ndr_print_uint32(ndr, "level", r->in.level);
18339 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18340 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18343 if (flags & NDR_OUT) {
18344 ndr_print_struct(ndr, "out", "spoolss_AddForm");
18346 ndr_print_WERROR(ndr, "result", r->out.result);
18352 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
18354 if (flags & NDR_IN) {
18355 if (r->in.handle == NULL) {
18356 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18358 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18359 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18361 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18362 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));
18364 if (flags & NDR_OUT) {
18365 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18367 return NDR_ERR_SUCCESS;
18370 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
18372 TALLOC_CTX *_mem_save_handle_0;
18373 if (flags & NDR_IN) {
18374 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18375 NDR_PULL_ALLOC(ndr, r->in.handle);
18377 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18378 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18379 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18381 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18382 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18383 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18384 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));
18386 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18387 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));
18389 if (flags & NDR_OUT) {
18390 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18392 return NDR_ERR_SUCCESS;
18395 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
18397 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
18399 if (flags & NDR_SET_VALUES) {
18400 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18402 if (flags & NDR_IN) {
18403 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
18405 ndr_print_ptr(ndr, "handle", r->in.handle);
18407 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18409 ndr_print_string(ndr, "form_name", r->in.form_name);
18412 if (flags & NDR_OUT) {
18413 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
18415 ndr_print_WERROR(ndr, "result", r->out.result);
18421 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
18423 if (flags & NDR_IN) {
18424 if (r->in.handle == NULL) {
18425 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18427 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18429 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18431 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));
18432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18433 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18434 if (r->in.buffer) {
18435 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18439 if (flags & NDR_OUT) {
18440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18443 struct ndr_push *_ndr_info;
18444 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18445 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18446 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18447 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18450 if (r->out.needed == NULL) {
18451 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18454 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18456 return NDR_ERR_SUCCESS;
18459 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
18461 uint32_t _ptr_buffer;
18462 uint32_t _ptr_info;
18463 TALLOC_CTX *_mem_save_handle_0;
18464 TALLOC_CTX *_mem_save_buffer_0;
18465 TALLOC_CTX *_mem_save_info_0;
18466 TALLOC_CTX *_mem_save_needed_0;
18467 if (flags & NDR_IN) {
18468 ZERO_STRUCT(r->out);
18470 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18471 NDR_PULL_ALLOC(ndr, r->in.handle);
18473 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18474 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18475 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18476 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18477 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18478 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18479 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18480 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));
18482 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18483 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));
18484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18487 NDR_PULL_ALLOC(ndr, r->in.buffer);
18489 r->in.buffer = NULL;
18491 if (r->in.buffer) {
18492 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18493 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18494 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18498 NDR_PULL_ALLOC(ndr, r->out.needed);
18499 ZERO_STRUCTP(r->out.needed);
18501 if (flags & NDR_OUT) {
18502 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18504 NDR_PULL_ALLOC(ndr, r->out.info);
18506 r->out.info = NULL;
18509 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18510 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18512 struct ndr_pull *_ndr_info;
18513 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18514 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18515 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18516 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18520 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18521 NDR_PULL_ALLOC(ndr, r->out.needed);
18523 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18524 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18525 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18527 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18529 return NDR_ERR_SUCCESS;
18532 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
18534 ndr_print_struct(ndr, name, "spoolss_GetForm");
18536 if (flags & NDR_SET_VALUES) {
18537 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18539 if (flags & NDR_IN) {
18540 ndr_print_struct(ndr, "in", "spoolss_GetForm");
18542 ndr_print_ptr(ndr, "handle", r->in.handle);
18544 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18546 ndr_print_string(ndr, "form_name", r->in.form_name);
18547 ndr_print_uint32(ndr, "level", r->in.level);
18548 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18550 if (r->in.buffer) {
18551 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18554 ndr_print_uint32(ndr, "offered", r->in.offered);
18557 if (flags & NDR_OUT) {
18558 ndr_print_struct(ndr, "out", "spoolss_GetForm");
18560 ndr_print_ptr(ndr, "info", r->out.info);
18563 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18564 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
18567 ndr_print_ptr(ndr, "needed", r->out.needed);
18569 ndr_print_uint32(ndr, "needed", *r->out.needed);
18571 ndr_print_WERROR(ndr, "result", r->out.result);
18577 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
18579 if (flags & NDR_IN) {
18580 if (r->in.handle == NULL) {
18581 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18583 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18587 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));
18588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18589 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18590 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18592 if (flags & NDR_OUT) {
18593 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18595 return NDR_ERR_SUCCESS;
18598 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
18600 TALLOC_CTX *_mem_save_handle_0;
18601 if (flags & NDR_IN) {
18602 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18603 NDR_PULL_ALLOC(ndr, r->in.handle);
18605 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18606 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18607 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18609 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18610 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18611 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18612 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));
18614 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18615 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));
18616 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18617 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18618 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18620 if (flags & NDR_OUT) {
18621 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18623 return NDR_ERR_SUCCESS;
18626 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
18628 ndr_print_struct(ndr, name, "spoolss_SetForm");
18630 if (flags & NDR_SET_VALUES) {
18631 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18633 if (flags & NDR_IN) {
18634 ndr_print_struct(ndr, "in", "spoolss_SetForm");
18636 ndr_print_ptr(ndr, "handle", r->in.handle);
18638 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18640 ndr_print_string(ndr, "form_name", r->in.form_name);
18641 ndr_print_uint32(ndr, "level", r->in.level);
18642 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18643 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18646 if (flags & NDR_OUT) {
18647 ndr_print_struct(ndr, "out", "spoolss_SetForm");
18649 ndr_print_WERROR(ndr, "result", r->out.result);
18655 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
18657 if (flags & NDR_IN) {
18658 if (r->in.handle == NULL) {
18659 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18661 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18664 if (r->in.buffer) {
18665 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18669 if (flags & NDR_OUT) {
18670 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18672 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18674 if (r->out.needed == NULL) {
18675 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18678 if (r->out.count == NULL) {
18679 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18682 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18684 return NDR_ERR_SUCCESS;
18687 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
18689 uint32_t _ptr_buffer;
18690 uint32_t _ptr_info;
18691 TALLOC_CTX *_mem_save_handle_0;
18692 TALLOC_CTX *_mem_save_buffer_0;
18693 TALLOC_CTX *_mem_save_info_0;
18694 TALLOC_CTX *_mem_save_needed_0;
18695 TALLOC_CTX *_mem_save_count_0;
18696 if (flags & NDR_IN) {
18697 ZERO_STRUCT(r->out);
18699 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18700 NDR_PULL_ALLOC(ndr, r->in.handle);
18702 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18703 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18704 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18706 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18707 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18709 NDR_PULL_ALLOC(ndr, r->in.buffer);
18711 r->in.buffer = NULL;
18713 if (r->in.buffer) {
18714 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18715 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18716 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18720 NDR_PULL_ALLOC(ndr, r->out.needed);
18721 ZERO_STRUCTP(r->out.needed);
18722 NDR_PULL_ALLOC(ndr, r->out.count);
18723 ZERO_STRUCTP(r->out.count);
18725 if (flags & NDR_OUT) {
18726 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18728 NDR_PULL_ALLOC(ndr, r->out.info);
18730 r->out.info = NULL;
18733 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18734 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18735 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18736 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18738 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18739 NDR_PULL_ALLOC(ndr, r->out.needed);
18741 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18742 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18743 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18745 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18746 NDR_PULL_ALLOC(ndr, r->out.count);
18748 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18749 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18750 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18751 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18752 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18754 return NDR_ERR_SUCCESS;
18757 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
18759 uint32_t cntr_info_0;
18760 if (flags & NDR_IN) {
18761 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18762 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18764 if (flags & NDR_OUT) {
18765 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18766 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18767 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18769 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18770 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18773 return NDR_ERR_SUCCESS;
18776 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
18778 uint32_t cntr_info_0;
18779 TALLOC_CTX *_mem_save_info_0;
18780 if (flags & NDR_IN) {
18781 ZERO_STRUCT(r->out);
18783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18784 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18786 if (flags & NDR_OUT) {
18787 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18788 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18789 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18790 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18791 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18792 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18794 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18795 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18799 return NDR_ERR_SUCCESS;
18802 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
18804 uint32_t cntr_info_1;
18805 ndr_print_struct(ndr, name, "spoolss_EnumForms");
18807 if (flags & NDR_SET_VALUES) {
18808 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18810 if (flags & NDR_IN) {
18811 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
18813 ndr_print_ptr(ndr, "handle", r->in.handle);
18815 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18817 ndr_print_uint32(ndr, "level", r->in.level);
18818 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18820 if (r->in.buffer) {
18821 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18824 ndr_print_uint32(ndr, "offered", r->in.offered);
18827 if (flags & NDR_OUT) {
18828 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
18830 ndr_print_ptr(ndr, "count", r->out.count);
18832 ndr_print_uint32(ndr, "count", *r->out.count);
18834 ndr_print_ptr(ndr, "info", r->out.info);
18837 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18839 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18841 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18842 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18843 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
18850 ndr_print_ptr(ndr, "needed", r->out.needed);
18852 ndr_print_uint32(ndr, "needed", *r->out.needed);
18854 ndr_print_WERROR(ndr, "result", r->out.result);
18860 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
18862 if (flags & NDR_IN) {
18863 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18864 if (r->in.servername) {
18865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18867 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18868 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18871 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18872 if (r->in.buffer) {
18873 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18875 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18877 if (flags & NDR_OUT) {
18878 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18880 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18882 if (r->out.needed == NULL) {
18883 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18885 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18886 if (r->out.count == NULL) {
18887 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18889 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18890 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18892 return NDR_ERR_SUCCESS;
18895 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
18897 uint32_t _ptr_servername;
18898 uint32_t _ptr_buffer;
18899 uint32_t _ptr_info;
18900 TALLOC_CTX *_mem_save_servername_0;
18901 TALLOC_CTX *_mem_save_buffer_0;
18902 TALLOC_CTX *_mem_save_info_0;
18903 TALLOC_CTX *_mem_save_needed_0;
18904 TALLOC_CTX *_mem_save_count_0;
18905 if (flags & NDR_IN) {
18906 ZERO_STRUCT(r->out);
18908 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18909 if (_ptr_servername) {
18910 NDR_PULL_ALLOC(ndr, r->in.servername);
18912 r->in.servername = NULL;
18914 if (r->in.servername) {
18915 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18916 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18917 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18918 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18919 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18920 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));
18922 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18923 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18926 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18927 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18929 NDR_PULL_ALLOC(ndr, r->in.buffer);
18931 r->in.buffer = NULL;
18933 if (r->in.buffer) {
18934 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18935 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18936 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18939 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18940 NDR_PULL_ALLOC(ndr, r->out.needed);
18941 ZERO_STRUCTP(r->out.needed);
18942 NDR_PULL_ALLOC(ndr, r->out.count);
18943 ZERO_STRUCTP(r->out.count);
18945 if (flags & NDR_OUT) {
18946 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18948 NDR_PULL_ALLOC(ndr, r->out.info);
18950 r->out.info = NULL;
18953 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18954 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18955 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18956 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18958 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18959 NDR_PULL_ALLOC(ndr, r->out.needed);
18961 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18962 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18965 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18966 NDR_PULL_ALLOC(ndr, r->out.count);
18968 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18969 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18972 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18974 return NDR_ERR_SUCCESS;
18977 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
18979 uint32_t cntr_info_0;
18980 if (flags & NDR_IN) {
18981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18984 if (flags & NDR_OUT) {
18985 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18986 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18987 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18989 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18990 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18993 return NDR_ERR_SUCCESS;
18996 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
18998 uint32_t cntr_info_0;
18999 TALLOC_CTX *_mem_save_info_0;
19000 if (flags & NDR_IN) {
19001 ZERO_STRUCT(r->out);
19003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19006 if (flags & NDR_OUT) {
19007 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19008 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19009 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19010 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19011 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19012 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19014 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19015 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19017 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19019 return NDR_ERR_SUCCESS;
19022 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
19024 uint32_t cntr_info_1;
19025 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
19027 if (flags & NDR_SET_VALUES) {
19028 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19030 if (flags & NDR_IN) {
19031 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
19033 ndr_print_ptr(ndr, "servername", r->in.servername);
19035 if (r->in.servername) {
19036 ndr_print_string(ndr, "servername", r->in.servername);
19039 ndr_print_uint32(ndr, "level", r->in.level);
19040 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19042 if (r->in.buffer) {
19043 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19046 ndr_print_uint32(ndr, "offered", r->in.offered);
19049 if (flags & NDR_OUT) {
19050 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
19052 ndr_print_ptr(ndr, "count", r->out.count);
19054 ndr_print_uint32(ndr, "count", *r->out.count);
19056 ndr_print_ptr(ndr, "info", r->out.info);
19059 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19061 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19063 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19064 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19065 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
19072 ndr_print_ptr(ndr, "needed", r->out.needed);
19074 ndr_print_uint32(ndr, "needed", *r->out.needed);
19076 ndr_print_WERROR(ndr, "result", r->out.result);
19082 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
19084 if (flags & NDR_IN) {
19085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
19086 if (r->in.servername) {
19087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
19090 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19093 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19094 if (r->in.buffer) {
19095 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19099 if (flags & NDR_OUT) {
19100 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19102 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19104 if (r->out.needed == NULL) {
19105 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19108 if (r->out.count == NULL) {
19109 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
19112 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19114 return NDR_ERR_SUCCESS;
19117 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
19119 uint32_t _ptr_servername;
19120 uint32_t _ptr_buffer;
19121 uint32_t _ptr_info;
19122 TALLOC_CTX *_mem_save_servername_0;
19123 TALLOC_CTX *_mem_save_buffer_0;
19124 TALLOC_CTX *_mem_save_info_0;
19125 TALLOC_CTX *_mem_save_needed_0;
19126 TALLOC_CTX *_mem_save_count_0;
19127 if (flags & NDR_IN) {
19128 ZERO_STRUCT(r->out);
19130 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
19131 if (_ptr_servername) {
19132 NDR_PULL_ALLOC(ndr, r->in.servername);
19134 r->in.servername = NULL;
19136 if (r->in.servername) {
19137 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
19138 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
19139 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
19140 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
19141 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
19142 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));
19144 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
19145 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
19146 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
19148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19149 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19151 NDR_PULL_ALLOC(ndr, r->in.buffer);
19153 r->in.buffer = NULL;
19155 if (r->in.buffer) {
19156 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19157 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19158 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19159 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19162 NDR_PULL_ALLOC(ndr, r->out.needed);
19163 ZERO_STRUCTP(r->out.needed);
19164 NDR_PULL_ALLOC(ndr, r->out.count);
19165 ZERO_STRUCTP(r->out.count);
19167 if (flags & NDR_OUT) {
19168 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19170 NDR_PULL_ALLOC(ndr, r->out.info);
19172 r->out.info = NULL;
19175 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19176 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19177 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19178 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19180 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19181 NDR_PULL_ALLOC(ndr, r->out.needed);
19183 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19184 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19185 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19186 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19187 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19188 NDR_PULL_ALLOC(ndr, r->out.count);
19190 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
19191 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
19192 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
19193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
19194 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19196 return NDR_ERR_SUCCESS;
19199 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
19201 uint32_t cntr_info_0;
19202 if (flags & NDR_IN) {
19203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
19206 if (flags & NDR_OUT) {
19207 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19208 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19209 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19211 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19212 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19215 return NDR_ERR_SUCCESS;
19218 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
19220 uint32_t cntr_info_0;
19221 TALLOC_CTX *_mem_save_info_0;
19222 if (flags & NDR_IN) {
19223 ZERO_STRUCT(r->out);
19225 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19226 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
19228 if (flags & NDR_OUT) {
19229 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
19230 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19231 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19232 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19233 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
19234 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
19236 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
19237 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
19239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19241 return NDR_ERR_SUCCESS;
19244 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
19246 uint32_t cntr_info_1;
19247 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
19249 if (flags & NDR_SET_VALUES) {
19250 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19252 if (flags & NDR_IN) {
19253 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
19255 ndr_print_ptr(ndr, "servername", r->in.servername);
19257 if (r->in.servername) {
19258 ndr_print_string(ndr, "servername", r->in.servername);
19261 ndr_print_uint32(ndr, "level", r->in.level);
19262 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19264 if (r->in.buffer) {
19265 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19268 ndr_print_uint32(ndr, "offered", r->in.offered);
19271 if (flags & NDR_OUT) {
19272 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
19274 ndr_print_ptr(ndr, "count", r->out.count);
19276 ndr_print_uint32(ndr, "count", *r->out.count);
19278 ndr_print_ptr(ndr, "info", r->out.info);
19281 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19283 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19285 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19286 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19287 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
19294 ndr_print_ptr(ndr, "needed", r->out.needed);
19296 ndr_print_uint32(ndr, "needed", *r->out.needed);
19298 ndr_print_WERROR(ndr, "result", r->out.result);
19304 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
19306 if (flags & NDR_IN) {
19307 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
19308 if (r->in.server_name) {
19309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19312 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));
19314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
19315 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19317 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19318 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));
19320 if (flags & NDR_OUT) {
19321 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19323 return NDR_ERR_SUCCESS;
19326 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
19328 uint32_t _ptr_server_name;
19329 TALLOC_CTX *_mem_save_server_name_0;
19330 if (flags & NDR_IN) {
19331 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
19332 if (_ptr_server_name) {
19333 NDR_PULL_ALLOC(ndr, r->in.server_name);
19335 r->in.server_name = NULL;
19337 if (r->in.server_name) {
19338 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19339 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
19340 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
19341 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
19342 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
19343 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));
19345 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
19346 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));
19347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
19349 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
19350 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
19351 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
19352 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
19353 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));
19355 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
19356 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));
19358 if (flags & NDR_OUT) {
19359 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19361 return NDR_ERR_SUCCESS;
19364 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
19366 ndr_print_struct(ndr, name, "spoolss_AddPort");
19368 if (flags & NDR_SET_VALUES) {
19369 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19371 if (flags & NDR_IN) {
19372 ndr_print_struct(ndr, "in", "spoolss_AddPort");
19374 ndr_print_ptr(ndr, "server_name", r->in.server_name);
19376 if (r->in.server_name) {
19377 ndr_print_string(ndr, "server_name", r->in.server_name);
19380 ndr_print_uint32(ndr, "unknown", r->in.unknown);
19381 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
19384 if (flags & NDR_OUT) {
19385 ndr_print_struct(ndr, "out", "spoolss_AddPort");
19387 ndr_print_WERROR(ndr, "result", r->out.result);
19393 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
19395 if (flags & NDR_IN) {
19397 if (flags & NDR_OUT) {
19398 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19400 return NDR_ERR_SUCCESS;
19403 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
19405 if (flags & NDR_IN) {
19407 if (flags & NDR_OUT) {
19408 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19410 return NDR_ERR_SUCCESS;
19413 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
19415 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
19417 if (flags & NDR_SET_VALUES) {
19418 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19420 if (flags & NDR_IN) {
19421 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
19425 if (flags & NDR_OUT) {
19426 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
19428 ndr_print_WERROR(ndr, "result", r->out.result);
19434 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
19436 if (flags & NDR_IN) {
19438 if (flags & NDR_OUT) {
19439 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19441 return NDR_ERR_SUCCESS;
19444 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
19446 if (flags & NDR_IN) {
19448 if (flags & NDR_OUT) {
19449 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19451 return NDR_ERR_SUCCESS;
19454 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
19456 ndr_print_struct(ndr, name, "spoolss_DeletePort");
19458 if (flags & NDR_SET_VALUES) {
19459 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19461 if (flags & NDR_IN) {
19462 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
19466 if (flags & NDR_OUT) {
19467 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
19469 ndr_print_WERROR(ndr, "result", r->out.result);
19475 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
19477 if (flags & NDR_IN) {
19479 if (flags & NDR_OUT) {
19480 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19482 return NDR_ERR_SUCCESS;
19485 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
19487 if (flags & NDR_IN) {
19489 if (flags & NDR_OUT) {
19490 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19492 return NDR_ERR_SUCCESS;
19495 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
19497 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
19499 if (flags & NDR_SET_VALUES) {
19500 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19502 if (flags & NDR_IN) {
19503 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
19507 if (flags & NDR_OUT) {
19508 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
19510 ndr_print_WERROR(ndr, "result", r->out.result);
19516 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19518 if (flags & NDR_IN) {
19520 if (flags & NDR_OUT) {
19521 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19523 return NDR_ERR_SUCCESS;
19526 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
19528 if (flags & NDR_IN) {
19530 if (flags & NDR_OUT) {
19531 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19533 return NDR_ERR_SUCCESS;
19536 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19538 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
19540 if (flags & NDR_SET_VALUES) {
19541 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19543 if (flags & NDR_IN) {
19544 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
19548 if (flags & NDR_OUT) {
19549 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
19551 ndr_print_WERROR(ndr, "result", r->out.result);
19557 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
19559 if (flags & NDR_IN) {
19561 if (flags & NDR_OUT) {
19562 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19564 return NDR_ERR_SUCCESS;
19567 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
19569 if (flags & NDR_IN) {
19571 if (flags & NDR_OUT) {
19572 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19574 return NDR_ERR_SUCCESS;
19577 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
19579 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
19581 if (flags & NDR_SET_VALUES) {
19582 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19584 if (flags & NDR_IN) {
19585 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
19589 if (flags & NDR_OUT) {
19590 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
19592 ndr_print_WERROR(ndr, "result", r->out.result);
19598 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
19600 if (flags & NDR_IN) {
19602 if (flags & NDR_OUT) {
19603 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19605 return NDR_ERR_SUCCESS;
19608 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
19610 if (flags & NDR_IN) {
19612 if (flags & NDR_OUT) {
19613 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19615 return NDR_ERR_SUCCESS;
19618 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
19620 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
19622 if (flags & NDR_SET_VALUES) {
19623 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19625 if (flags & NDR_IN) {
19626 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
19630 if (flags & NDR_OUT) {
19631 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
19633 ndr_print_WERROR(ndr, "result", r->out.result);
19639 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
19641 if (flags & NDR_IN) {
19643 if (flags & NDR_OUT) {
19644 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19646 return NDR_ERR_SUCCESS;
19649 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
19651 if (flags & NDR_IN) {
19653 if (flags & NDR_OUT) {
19654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19656 return NDR_ERR_SUCCESS;
19659 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
19661 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
19663 if (flags & NDR_SET_VALUES) {
19664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19666 if (flags & NDR_IN) {
19667 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
19671 if (flags & NDR_OUT) {
19672 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
19674 ndr_print_WERROR(ndr, "result", r->out.result);
19680 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
19682 if (flags & NDR_IN) {
19684 if (flags & NDR_OUT) {
19685 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19687 return NDR_ERR_SUCCESS;
19690 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
19692 if (flags & NDR_IN) {
19694 if (flags & NDR_OUT) {
19695 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19697 return NDR_ERR_SUCCESS;
19700 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
19702 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
19704 if (flags & NDR_SET_VALUES) {
19705 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19707 if (flags & NDR_IN) {
19708 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
19712 if (flags & NDR_OUT) {
19713 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
19715 ndr_print_WERROR(ndr, "result", r->out.result);
19721 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
19723 if (flags & NDR_IN) {
19725 if (flags & NDR_OUT) {
19726 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19728 return NDR_ERR_SUCCESS;
19731 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
19733 if (flags & NDR_IN) {
19735 if (flags & NDR_OUT) {
19736 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19738 return NDR_ERR_SUCCESS;
19741 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
19743 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
19745 if (flags & NDR_SET_VALUES) {
19746 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19748 if (flags & NDR_IN) {
19749 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
19753 if (flags & NDR_OUT) {
19754 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
19756 ndr_print_WERROR(ndr, "result", r->out.result);
19762 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
19764 if (flags & NDR_IN) {
19766 if (flags & NDR_OUT) {
19767 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19769 return NDR_ERR_SUCCESS;
19772 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
19774 if (flags & NDR_IN) {
19776 if (flags & NDR_OUT) {
19777 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19779 return NDR_ERR_SUCCESS;
19782 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
19784 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
19786 if (flags & NDR_SET_VALUES) {
19787 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19789 if (flags & NDR_IN) {
19790 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
19794 if (flags & NDR_OUT) {
19795 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
19797 ndr_print_WERROR(ndr, "result", r->out.result);
19803 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
19805 if (flags & NDR_IN) {
19807 if (flags & NDR_OUT) {
19808 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19810 return NDR_ERR_SUCCESS;
19813 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
19815 if (flags & NDR_IN) {
19817 if (flags & NDR_OUT) {
19818 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19820 return NDR_ERR_SUCCESS;
19823 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
19825 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
19827 if (flags & NDR_SET_VALUES) {
19828 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19830 if (flags & NDR_IN) {
19831 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
19835 if (flags & NDR_OUT) {
19836 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
19838 ndr_print_WERROR(ndr, "result", r->out.result);
19844 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
19846 if (flags & NDR_IN) {
19848 if (flags & NDR_OUT) {
19849 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19851 return NDR_ERR_SUCCESS;
19854 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
19856 if (flags & NDR_IN) {
19858 if (flags & NDR_OUT) {
19859 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19861 return NDR_ERR_SUCCESS;
19864 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
19866 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
19868 if (flags & NDR_SET_VALUES) {
19869 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19871 if (flags & NDR_IN) {
19872 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
19876 if (flags & NDR_OUT) {
19877 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
19879 ndr_print_WERROR(ndr, "result", r->out.result);
19885 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
19887 if (flags & NDR_IN) {
19889 if (flags & NDR_OUT) {
19890 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19892 return NDR_ERR_SUCCESS;
19895 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
19897 if (flags & NDR_IN) {
19899 if (flags & NDR_OUT) {
19900 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19902 return NDR_ERR_SUCCESS;
19905 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
19907 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
19909 if (flags & NDR_SET_VALUES) {
19910 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19912 if (flags & NDR_IN) {
19913 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
19917 if (flags & NDR_OUT) {
19918 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
19920 ndr_print_WERROR(ndr, "result", r->out.result);
19926 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19928 if (flags & NDR_IN) {
19930 if (flags & NDR_OUT) {
19931 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19933 return NDR_ERR_SUCCESS;
19936 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
19938 if (flags & NDR_IN) {
19940 if (flags & NDR_OUT) {
19941 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19943 return NDR_ERR_SUCCESS;
19946 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19948 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
19950 if (flags & NDR_SET_VALUES) {
19951 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19953 if (flags & NDR_IN) {
19954 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
19958 if (flags & NDR_OUT) {
19959 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
19961 ndr_print_WERROR(ndr, "result", r->out.result);
19967 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
19969 if (flags & NDR_IN) {
19970 if (r->in.handle == NULL) {
19971 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19973 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19974 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
19975 if (r->in.data_type) {
19976 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19977 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19979 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));
19981 if (r->in.devmode_ctr == NULL) {
19982 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19984 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19986 if (flags & NDR_OUT) {
19987 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19989 return NDR_ERR_SUCCESS;
19992 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
19994 uint32_t _ptr_data_type;
19995 TALLOC_CTX *_mem_save_handle_0;
19996 TALLOC_CTX *_mem_save_data_type_0;
19997 TALLOC_CTX *_mem_save_devmode_ctr_0;
19998 if (flags & NDR_IN) {
19999 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20000 NDR_PULL_ALLOC(ndr, r->in.handle);
20002 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20003 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20004 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20005 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
20007 if (_ptr_data_type) {
20008 NDR_PULL_ALLOC(ndr, r->in.data_type);
20010 r->in.data_type = NULL;
20012 if (r->in.data_type) {
20013 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
20014 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
20015 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
20016 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
20017 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
20018 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));
20020 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
20021 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));
20022 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
20024 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20025 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20027 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20028 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20029 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20030 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20032 if (flags & NDR_OUT) {
20033 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20035 return NDR_ERR_SUCCESS;
20038 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
20040 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
20042 if (flags & NDR_SET_VALUES) {
20043 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20045 if (flags & NDR_IN) {
20046 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
20048 ndr_print_ptr(ndr, "handle", r->in.handle);
20050 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20052 ndr_print_ptr(ndr, "data_type", r->in.data_type);
20054 if (r->in.data_type) {
20055 ndr_print_string(ndr, "data_type", r->in.data_type);
20058 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20060 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20064 if (flags & NDR_OUT) {
20065 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
20067 ndr_print_WERROR(ndr, "result", r->out.result);
20073 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
20075 if (flags & NDR_IN) {
20076 if (r->in.handle == NULL) {
20077 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20079 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20080 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
20081 if (r->in.architecture) {
20082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
20085 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20088 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20089 if (r->in.buffer) {
20090 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
20092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
20093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
20094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
20096 if (flags & NDR_OUT) {
20097 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
20099 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
20101 if (r->out.needed == NULL) {
20102 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
20105 if (r->out.server_major_version == NULL) {
20106 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
20109 if (r->out.server_minor_version == NULL) {
20110 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
20113 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20115 return NDR_ERR_SUCCESS;
20118 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
20120 uint32_t _ptr_architecture;
20121 uint32_t _ptr_buffer;
20122 uint32_t _ptr_info;
20123 TALLOC_CTX *_mem_save_handle_0;
20124 TALLOC_CTX *_mem_save_architecture_0;
20125 TALLOC_CTX *_mem_save_buffer_0;
20126 TALLOC_CTX *_mem_save_info_0;
20127 TALLOC_CTX *_mem_save_needed_0;
20128 TALLOC_CTX *_mem_save_server_major_version_0;
20129 TALLOC_CTX *_mem_save_server_minor_version_0;
20130 if (flags & NDR_IN) {
20131 ZERO_STRUCT(r->out);
20133 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20134 NDR_PULL_ALLOC(ndr, r->in.handle);
20136 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20137 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20138 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20139 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
20141 if (_ptr_architecture) {
20142 NDR_PULL_ALLOC(ndr, r->in.architecture);
20144 r->in.architecture = NULL;
20146 if (r->in.architecture) {
20147 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
20148 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
20149 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
20150 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
20151 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
20152 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));
20154 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
20155 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
20156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
20158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20159 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20161 NDR_PULL_ALLOC(ndr, r->in.buffer);
20163 r->in.buffer = NULL;
20165 if (r->in.buffer) {
20166 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20167 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20168 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
20169 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
20172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
20173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
20174 NDR_PULL_ALLOC(ndr, r->out.needed);
20175 ZERO_STRUCTP(r->out.needed);
20176 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
20177 ZERO_STRUCTP(r->out.server_major_version);
20178 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
20179 ZERO_STRUCTP(r->out.server_minor_version);
20181 if (flags & NDR_OUT) {
20182 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20184 NDR_PULL_ALLOC(ndr, r->out.info);
20186 r->out.info = NULL;
20189 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20190 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
20191 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
20192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
20194 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20195 NDR_PULL_ALLOC(ndr, r->out.needed);
20197 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
20198 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
20199 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
20200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
20201 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20202 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
20204 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
20205 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
20206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
20207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
20208 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20209 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
20211 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
20212 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
20213 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
20214 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
20215 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20217 return NDR_ERR_SUCCESS;
20220 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
20222 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
20224 if (flags & NDR_SET_VALUES) {
20225 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20227 if (flags & NDR_IN) {
20228 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
20230 ndr_print_ptr(ndr, "handle", r->in.handle);
20232 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20234 ndr_print_ptr(ndr, "architecture", r->in.architecture);
20236 if (r->in.architecture) {
20237 ndr_print_string(ndr, "architecture", r->in.architecture);
20240 ndr_print_uint32(ndr, "level", r->in.level);
20241 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20243 if (r->in.buffer) {
20244 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
20247 ndr_print_uint32(ndr, "offered", r->in.offered);
20248 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
20249 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
20252 if (flags & NDR_OUT) {
20253 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
20255 ndr_print_ptr(ndr, "info", r->out.info);
20258 ndr_print_DATA_BLOB(ndr, "info", *r->out.info);
20261 ndr_print_ptr(ndr, "needed", r->out.needed);
20263 ndr_print_uint32(ndr, "needed", *r->out.needed);
20265 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
20267 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
20269 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
20271 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
20273 ndr_print_WERROR(ndr, "result", r->out.result);
20279 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20281 if (flags & NDR_IN) {
20283 if (flags & NDR_OUT) {
20284 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20286 return NDR_ERR_SUCCESS;
20289 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
20291 if (flags & NDR_IN) {
20293 if (flags & NDR_OUT) {
20294 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20296 return NDR_ERR_SUCCESS;
20299 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20301 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
20303 if (flags & NDR_SET_VALUES) {
20304 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20306 if (flags & NDR_IN) {
20307 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
20311 if (flags & NDR_OUT) {
20312 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
20314 ndr_print_WERROR(ndr, "result", r->out.result);
20320 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20322 if (flags & NDR_IN) {
20324 if (flags & NDR_OUT) {
20325 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20327 return NDR_ERR_SUCCESS;
20330 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
20332 if (flags & NDR_IN) {
20334 if (flags & NDR_OUT) {
20335 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20337 return NDR_ERR_SUCCESS;
20340 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20342 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
20344 if (flags & NDR_SET_VALUES) {
20345 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20347 if (flags & NDR_IN) {
20348 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
20352 if (flags & NDR_OUT) {
20353 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
20355 ndr_print_WERROR(ndr, "result", r->out.result);
20361 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
20363 if (flags & NDR_IN) {
20364 if (r->in.handle == NULL) {
20365 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20367 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20369 if (flags & NDR_OUT) {
20370 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20372 return NDR_ERR_SUCCESS;
20375 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
20377 TALLOC_CTX *_mem_save_handle_0;
20378 if (flags & NDR_IN) {
20379 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20380 NDR_PULL_ALLOC(ndr, r->in.handle);
20382 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20383 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20384 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20387 if (flags & NDR_OUT) {
20388 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20390 return NDR_ERR_SUCCESS;
20393 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
20395 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
20397 if (flags & NDR_SET_VALUES) {
20398 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20400 if (flags & NDR_IN) {
20401 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
20403 ndr_print_ptr(ndr, "handle", r->in.handle);
20405 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20409 if (flags & NDR_OUT) {
20410 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
20412 ndr_print_WERROR(ndr, "result", r->out.result);
20418 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20420 if (flags & NDR_IN) {
20422 if (flags & NDR_OUT) {
20423 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20425 return NDR_ERR_SUCCESS;
20428 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20430 if (flags & NDR_IN) {
20432 if (flags & NDR_OUT) {
20433 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20435 return NDR_ERR_SUCCESS;
20438 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20440 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20442 if (flags & NDR_SET_VALUES) {
20443 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20445 if (flags & NDR_IN) {
20446 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20450 if (flags & NDR_OUT) {
20451 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20453 ndr_print_WERROR(ndr, "result", r->out.result);
20459 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
20461 if (flags & NDR_IN) {
20462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20465 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));
20466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20467 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
20468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20469 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20470 if (r->in.buffer) {
20471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20472 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20475 if (flags & NDR_OUT) {
20476 if (r->out.handle == NULL) {
20477 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20479 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20480 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20482 return NDR_ERR_SUCCESS;
20485 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
20487 uint32_t _ptr_buffer;
20488 TALLOC_CTX *_mem_save_buffer_0;
20489 TALLOC_CTX *_mem_save_handle_0;
20490 if (flags & NDR_IN) {
20491 ZERO_STRUCT(r->out);
20493 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
20494 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
20495 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
20496 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));
20498 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
20499 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));
20500 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20501 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
20502 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20503 if (r->in.bufsize > 512) {
20504 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20506 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20508 NDR_PULL_ALLOC(ndr, r->in.buffer);
20510 r->in.buffer = NULL;
20512 if (r->in.buffer) {
20513 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20514 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20515 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20516 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20517 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20520 NDR_PULL_ALLOC(ndr, r->out.handle);
20521 ZERO_STRUCTP(r->out.handle);
20522 if (r->in.buffer) {
20523 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20526 if (flags & NDR_OUT) {
20527 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20528 NDR_PULL_ALLOC(ndr, r->out.handle);
20530 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20531 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20532 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20533 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20534 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20536 return NDR_ERR_SUCCESS;
20539 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
20541 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
20543 if (flags & NDR_SET_VALUES) {
20544 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20546 if (flags & NDR_IN) {
20547 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
20549 ndr_print_string(ndr, "server_name", r->in.server_name);
20550 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20551 ndr_print_winreg_Type(ndr, "type", r->in.type);
20552 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20553 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20555 if (r->in.buffer) {
20556 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20561 if (flags & NDR_OUT) {
20562 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
20564 ndr_print_ptr(ndr, "handle", r->out.handle);
20566 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20568 ndr_print_WERROR(ndr, "result", r->out.result);
20574 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
20576 if (flags & NDR_IN) {
20577 if (r->in.handle == NULL) {
20578 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20580 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20581 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20582 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20583 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20584 if (r->in.buffer) {
20585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20586 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20589 if (flags & NDR_OUT) {
20590 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20592 return NDR_ERR_SUCCESS;
20595 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
20597 uint32_t _ptr_buffer;
20598 TALLOC_CTX *_mem_save_handle_0;
20599 TALLOC_CTX *_mem_save_buffer_0;
20600 if (flags & NDR_IN) {
20601 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20602 NDR_PULL_ALLOC(ndr, r->in.handle);
20604 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20605 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20606 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20608 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20610 if (r->in.bufsize > 512) {
20611 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20613 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20615 NDR_PULL_ALLOC(ndr, r->in.buffer);
20617 r->in.buffer = NULL;
20619 if (r->in.buffer) {
20620 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20621 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20622 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20623 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20624 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20627 if (r->in.buffer) {
20628 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20631 if (flags & NDR_OUT) {
20632 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20634 return NDR_ERR_SUCCESS;
20637 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
20639 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
20641 if (flags & NDR_SET_VALUES) {
20642 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20644 if (flags & NDR_IN) {
20645 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
20647 ndr_print_ptr(ndr, "handle", r->in.handle);
20649 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20651 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20652 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20653 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20655 if (r->in.buffer) {
20656 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20661 if (flags & NDR_OUT) {
20662 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
20664 ndr_print_WERROR(ndr, "result", r->out.result);
20670 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
20672 if (flags & NDR_IN) {
20673 if (r->in.handle == NULL) {
20674 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20676 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20678 if (flags & NDR_OUT) {
20679 if (r->out.handle == NULL) {
20680 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20682 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20683 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20685 return NDR_ERR_SUCCESS;
20688 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
20690 TALLOC_CTX *_mem_save_handle_0;
20691 if (flags & NDR_IN) {
20692 ZERO_STRUCT(r->out);
20694 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20695 NDR_PULL_ALLOC(ndr, r->in.handle);
20697 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20698 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20699 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20701 NDR_PULL_ALLOC(ndr, r->out.handle);
20702 *r->out.handle = *r->in.handle;
20704 if (flags & NDR_OUT) {
20705 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20706 NDR_PULL_ALLOC(ndr, r->out.handle);
20708 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20709 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20710 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20711 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20712 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20714 return NDR_ERR_SUCCESS;
20717 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
20719 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
20721 if (flags & NDR_SET_VALUES) {
20722 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20724 if (flags & NDR_IN) {
20725 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
20727 ndr_print_ptr(ndr, "handle", r->in.handle);
20729 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20733 if (flags & NDR_OUT) {
20734 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
20736 ndr_print_ptr(ndr, "handle", r->out.handle);
20738 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20740 ndr_print_WERROR(ndr, "result", r->out.result);
20746 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
20748 if (flags & NDR_IN) {
20750 if (flags & NDR_OUT) {
20751 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20753 return NDR_ERR_SUCCESS;
20756 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
20758 if (flags & NDR_IN) {
20760 if (flags & NDR_OUT) {
20761 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20763 return NDR_ERR_SUCCESS;
20766 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
20768 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
20770 if (flags & NDR_SET_VALUES) {
20771 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20773 if (flags & NDR_IN) {
20774 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
20778 if (flags & NDR_OUT) {
20779 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
20781 ndr_print_WERROR(ndr, "result", r->out.result);
20787 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20789 if (flags & NDR_IN) {
20791 if (flags & NDR_OUT) {
20792 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20794 return NDR_ERR_SUCCESS;
20797 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20799 if (flags & NDR_IN) {
20801 if (flags & NDR_OUT) {
20802 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20804 return NDR_ERR_SUCCESS;
20807 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20809 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
20811 if (flags & NDR_SET_VALUES) {
20812 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20814 if (flags & NDR_IN) {
20815 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
20819 if (flags & NDR_OUT) {
20820 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
20822 ndr_print_WERROR(ndr, "result", r->out.result);
20828 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
20830 if (flags & NDR_IN) {
20832 if (flags & NDR_OUT) {
20833 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20835 return NDR_ERR_SUCCESS;
20838 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
20840 if (flags & NDR_IN) {
20842 if (flags & NDR_OUT) {
20843 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20845 return NDR_ERR_SUCCESS;
20848 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
20850 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
20852 if (flags & NDR_SET_VALUES) {
20853 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20855 if (flags & NDR_IN) {
20856 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
20860 if (flags & NDR_OUT) {
20861 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
20863 ndr_print_WERROR(ndr, "result", r->out.result);
20869 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
20871 if (flags & NDR_IN) {
20873 if (flags & NDR_OUT) {
20874 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20876 return NDR_ERR_SUCCESS;
20879 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
20881 if (flags & NDR_IN) {
20883 if (flags & NDR_OUT) {
20884 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20886 return NDR_ERR_SUCCESS;
20889 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
20891 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
20893 if (flags & NDR_SET_VALUES) {
20894 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20896 if (flags & NDR_IN) {
20897 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
20901 if (flags & NDR_OUT) {
20902 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
20904 ndr_print_WERROR(ndr, "result", r->out.result);
20910 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20912 if (flags & NDR_IN) {
20913 if (r->in.handle == NULL) {
20914 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20916 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20917 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
20919 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
20920 if (r->in.local_machine) {
20921 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20922 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20924 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));
20926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20927 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
20928 if (r->in.notify_options) {
20929 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20932 if (flags & NDR_OUT) {
20933 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20935 return NDR_ERR_SUCCESS;
20938 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20940 uint32_t _ptr_local_machine;
20941 uint32_t _ptr_notify_options;
20942 TALLOC_CTX *_mem_save_handle_0;
20943 TALLOC_CTX *_mem_save_local_machine_0;
20944 TALLOC_CTX *_mem_save_notify_options_0;
20945 if (flags & NDR_IN) {
20946 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20947 NDR_PULL_ALLOC(ndr, r->in.handle);
20949 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20950 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20951 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20952 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20953 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20954 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
20955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
20956 if (_ptr_local_machine) {
20957 NDR_PULL_ALLOC(ndr, r->in.local_machine);
20959 r->in.local_machine = NULL;
20961 if (r->in.local_machine) {
20962 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
20963 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
20964 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
20965 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
20966 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
20967 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));
20969 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
20970 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));
20971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
20973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
20975 if (_ptr_notify_options) {
20976 NDR_PULL_ALLOC(ndr, r->in.notify_options);
20978 r->in.notify_options = NULL;
20980 if (r->in.notify_options) {
20981 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20982 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
20983 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
20987 if (flags & NDR_OUT) {
20988 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20990 return NDR_ERR_SUCCESS;
20993 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20995 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20997 if (flags & NDR_SET_VALUES) {
20998 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21000 if (flags & NDR_IN) {
21001 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
21003 ndr_print_ptr(ndr, "handle", r->in.handle);
21005 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21007 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
21008 ndr_print_uint32(ndr, "options", r->in.options);
21009 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
21011 if (r->in.local_machine) {
21012 ndr_print_string(ndr, "local_machine", r->in.local_machine);
21015 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
21016 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
21018 if (r->in.notify_options) {
21019 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
21024 if (flags & NDR_OUT) {
21025 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
21027 ndr_print_WERROR(ndr, "result", r->out.result);
21033 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
21035 if (flags & NDR_IN) {
21036 if (r->in.handle == NULL) {
21037 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21039 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
21041 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
21042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
21043 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
21044 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21046 if (flags & NDR_OUT) {
21047 if (r->out.reply_result == NULL) {
21048 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21050 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
21051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21053 return NDR_ERR_SUCCESS;
21056 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
21058 TALLOC_CTX *_mem_save_handle_0;
21059 TALLOC_CTX *_mem_save_reply_result_0;
21060 if (flags & NDR_IN) {
21061 ZERO_STRUCT(r->out);
21063 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21064 NDR_PULL_ALLOC(ndr, r->in.handle);
21066 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21067 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21068 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21069 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21070 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
21071 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
21072 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
21073 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
21074 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
21075 NDR_PULL_ALLOC(ndr, r->out.reply_result);
21076 ZERO_STRUCTP(r->out.reply_result);
21078 if (flags & NDR_OUT) {
21079 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21080 NDR_PULL_ALLOC(ndr, r->out.reply_result);
21082 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
21083 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
21084 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
21085 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
21086 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21088 return NDR_ERR_SUCCESS;
21091 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
21093 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
21095 if (flags & NDR_SET_VALUES) {
21096 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21098 if (flags & NDR_IN) {
21099 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
21101 ndr_print_ptr(ndr, "handle", r->in.handle);
21103 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21105 ndr_print_uint32(ndr, "color", r->in.color);
21106 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
21107 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
21108 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
21109 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
21112 if (flags & NDR_OUT) {
21113 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
21115 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
21117 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
21119 ndr_print_WERROR(ndr, "result", r->out.result);
21125 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
21127 if (flags & NDR_IN) {
21128 if (r->in.handle == NULL) {
21129 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21131 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21132 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
21133 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
21134 if (r->in.options) {
21135 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
21138 if (flags & NDR_OUT) {
21139 if (r->out.info == NULL) {
21140 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21142 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
21143 if (*r->out.info) {
21144 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
21146 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21148 return NDR_ERR_SUCCESS;
21151 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
21153 uint32_t _ptr_options;
21154 uint32_t _ptr_info;
21155 TALLOC_CTX *_mem_save_handle_0;
21156 TALLOC_CTX *_mem_save_options_0;
21157 TALLOC_CTX *_mem_save_info_0;
21158 TALLOC_CTX *_mem_save_info_1;
21159 if (flags & NDR_IN) {
21160 ZERO_STRUCT(r->out);
21162 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21163 NDR_PULL_ALLOC(ndr, r->in.handle);
21165 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21166 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21167 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
21170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
21171 if (_ptr_options) {
21172 NDR_PULL_ALLOC(ndr, r->in.options);
21174 r->in.options = NULL;
21176 if (r->in.options) {
21177 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
21178 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
21179 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
21180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
21182 NDR_PULL_ALLOC(ndr, r->out.info);
21183 ZERO_STRUCTP(r->out.info);
21185 if (flags & NDR_OUT) {
21186 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21187 NDR_PULL_ALLOC(ndr, r->out.info);
21189 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
21190 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
21191 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
21193 NDR_PULL_ALLOC(ndr, *r->out.info);
21195 *r->out.info = NULL;
21197 if (*r->out.info) {
21198 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
21199 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
21200 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
21201 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
21203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
21204 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21206 return NDR_ERR_SUCCESS;
21209 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
21211 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
21213 if (flags & NDR_SET_VALUES) {
21214 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21216 if (flags & NDR_IN) {
21217 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
21219 ndr_print_ptr(ndr, "handle", r->in.handle);
21221 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21223 ndr_print_uint32(ndr, "change_low", r->in.change_low);
21224 ndr_print_ptr(ndr, "options", r->in.options);
21226 if (r->in.options) {
21227 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
21232 if (flags & NDR_OUT) {
21233 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
21235 ndr_print_ptr(ndr, "info", r->out.info);
21237 ndr_print_ptr(ndr, "info", *r->out.info);
21239 if (*r->out.info) {
21240 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
21244 ndr_print_WERROR(ndr, "result", r->out.result);
21250 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
21252 if (flags & NDR_IN) {
21254 if (flags & NDR_OUT) {
21255 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21257 return NDR_ERR_SUCCESS;
21260 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
21262 if (flags & NDR_IN) {
21264 if (flags & NDR_OUT) {
21265 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21267 return NDR_ERR_SUCCESS;
21270 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
21272 ndr_print_struct(ndr, name, "spoolss_44");
21274 if (flags & NDR_SET_VALUES) {
21275 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21277 if (flags & NDR_IN) {
21278 ndr_print_struct(ndr, "in", "spoolss_44");
21282 if (flags & NDR_OUT) {
21283 ndr_print_struct(ndr, "out", "spoolss_44");
21285 ndr_print_WERROR(ndr, "result", r->out.result);
21291 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
21293 if (flags & NDR_IN) {
21294 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
21295 if (r->in.printername) {
21296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21301 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
21302 if (r->in.datatype) {
21303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21306 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21308 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21309 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
21310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21311 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21312 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21314 if (flags & NDR_OUT) {
21315 if (r->out.handle == NULL) {
21316 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21318 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21319 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21321 return NDR_ERR_SUCCESS;
21324 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
21326 uint32_t _ptr_printername;
21327 uint32_t _ptr_datatype;
21328 TALLOC_CTX *_mem_save_printername_0;
21329 TALLOC_CTX *_mem_save_datatype_0;
21330 TALLOC_CTX *_mem_save_handle_0;
21331 if (flags & NDR_IN) {
21332 ZERO_STRUCT(r->out);
21334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
21335 if (_ptr_printername) {
21336 NDR_PULL_ALLOC(ndr, r->in.printername);
21338 r->in.printername = NULL;
21340 if (r->in.printername) {
21341 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21342 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
21343 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
21344 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
21345 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
21346 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));
21348 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
21349 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
21350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
21352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
21353 if (_ptr_datatype) {
21354 NDR_PULL_ALLOC(ndr, r->in.datatype);
21356 r->in.datatype = NULL;
21358 if (r->in.datatype) {
21359 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
21360 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
21361 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
21362 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
21363 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
21364 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));
21366 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
21367 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
21368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
21370 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21371 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
21372 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21373 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21374 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21375 NDR_PULL_ALLOC(ndr, r->out.handle);
21376 ZERO_STRUCTP(r->out.handle);
21378 if (flags & NDR_OUT) {
21379 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21380 NDR_PULL_ALLOC(ndr, r->out.handle);
21382 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21383 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21384 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21386 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21388 return NDR_ERR_SUCCESS;
21391 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
21393 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
21395 if (flags & NDR_SET_VALUES) {
21396 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21398 if (flags & NDR_IN) {
21399 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
21401 ndr_print_ptr(ndr, "printername", r->in.printername);
21403 if (r->in.printername) {
21404 ndr_print_string(ndr, "printername", r->in.printername);
21407 ndr_print_ptr(ndr, "datatype", r->in.datatype);
21409 if (r->in.datatype) {
21410 ndr_print_string(ndr, "datatype", r->in.datatype);
21413 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
21414 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
21415 ndr_print_uint32(ndr, "level", r->in.level);
21416 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
21417 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
21420 if (flags & NDR_OUT) {
21421 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
21423 ndr_print_ptr(ndr, "handle", r->out.handle);
21425 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21427 ndr_print_WERROR(ndr, "result", r->out.result);
21433 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
21435 if (flags & NDR_IN) {
21436 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21437 if (r->in.server) {
21438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21441 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21443 if (r->in.info_ctr == NULL) {
21444 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21446 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21447 if (r->in.devmode_ctr == NULL) {
21448 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21450 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21451 if (r->in.secdesc_ctr == NULL) {
21452 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21454 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21455 if (r->in.userlevel_ctr == NULL) {
21456 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21458 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21460 if (flags & NDR_OUT) {
21461 if (r->out.handle == NULL) {
21462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21464 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21465 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21467 return NDR_ERR_SUCCESS;
21470 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
21472 uint32_t _ptr_server;
21473 TALLOC_CTX *_mem_save_server_0;
21474 TALLOC_CTX *_mem_save_info_ctr_0;
21475 TALLOC_CTX *_mem_save_devmode_ctr_0;
21476 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21477 TALLOC_CTX *_mem_save_userlevel_ctr_0;
21478 TALLOC_CTX *_mem_save_handle_0;
21479 if (flags & NDR_IN) {
21480 ZERO_STRUCT(r->out);
21482 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21484 NDR_PULL_ALLOC(ndr, r->in.server);
21486 r->in.server = NULL;
21488 if (r->in.server) {
21489 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21490 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21491 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21492 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21493 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21494 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));
21496 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21497 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21498 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21500 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21501 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21503 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21504 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21505 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21507 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21508 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21510 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21511 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21512 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21513 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21515 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21517 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21518 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21519 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21521 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21522 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
21524 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21525 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
21526 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21527 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21528 NDR_PULL_ALLOC(ndr, r->out.handle);
21529 ZERO_STRUCTP(r->out.handle);
21531 if (flags & NDR_OUT) {
21532 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21533 NDR_PULL_ALLOC(ndr, r->out.handle);
21535 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21536 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21537 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21539 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21541 return NDR_ERR_SUCCESS;
21544 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
21546 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
21548 if (flags & NDR_SET_VALUES) {
21549 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21551 if (flags & NDR_IN) {
21552 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
21554 ndr_print_ptr(ndr, "server", r->in.server);
21556 if (r->in.server) {
21557 ndr_print_string(ndr, "server", r->in.server);
21560 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21562 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21564 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21566 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21568 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21570 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21572 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21574 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21578 if (flags & NDR_OUT) {
21579 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
21581 ndr_print_ptr(ndr, "handle", r->out.handle);
21583 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21585 ndr_print_WERROR(ndr, "result", r->out.result);
21591 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
21593 if (flags & NDR_IN) {
21595 if (flags & NDR_OUT) {
21596 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21598 return NDR_ERR_SUCCESS;
21601 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
21603 if (flags & NDR_IN) {
21605 if (flags & NDR_OUT) {
21606 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21608 return NDR_ERR_SUCCESS;
21611 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
21613 ndr_print_struct(ndr, name, "spoolss_47");
21615 if (flags & NDR_SET_VALUES) {
21616 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21618 if (flags & NDR_IN) {
21619 ndr_print_struct(ndr, "in", "spoolss_47");
21623 if (flags & NDR_OUT) {
21624 ndr_print_struct(ndr, "out", "spoolss_47");
21626 ndr_print_WERROR(ndr, "result", r->out.result);
21632 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
21634 if (flags & NDR_IN) {
21635 if (r->in.handle == NULL) {
21636 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21638 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21639 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
21640 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
21641 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
21643 if (flags & NDR_OUT) {
21644 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
21645 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
21646 if (r->out.value_needed == NULL) {
21647 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21649 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
21650 if (r->out.printerdata_type == NULL) {
21651 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
21654 if (r->out.buffer == NULL) {
21655 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21657 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
21658 if (r->out.data_needed == NULL) {
21659 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21661 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
21662 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21664 return NDR_ERR_SUCCESS;
21667 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
21669 TALLOC_CTX *_mem_save_handle_0;
21670 TALLOC_CTX *_mem_save_value_needed_0;
21671 TALLOC_CTX *_mem_save_printerdata_type_0;
21672 TALLOC_CTX *_mem_save_buffer_0;
21673 TALLOC_CTX *_mem_save_data_needed_0;
21674 if (flags & NDR_IN) {
21675 ZERO_STRUCT(r->out);
21677 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21678 NDR_PULL_ALLOC(ndr, r->in.handle);
21680 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21681 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21682 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21683 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
21685 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
21686 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
21687 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21688 ZERO_STRUCTP(r->out.value_needed);
21689 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21690 ZERO_STRUCTP(r->out.printerdata_type);
21691 NDR_PULL_ALLOC(ndr, r->out.buffer);
21692 ZERO_STRUCTP(r->out.buffer);
21693 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21694 ZERO_STRUCTP(r->out.data_needed);
21696 if (flags & NDR_OUT) {
21697 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
21698 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));
21699 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21700 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21702 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21703 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
21704 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
21705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
21706 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21707 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21709 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21710 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
21711 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
21712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
21713 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21714 NDR_PULL_ALLOC(ndr, r->out.buffer);
21716 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21717 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
21718 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
21719 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
21720 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21721 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21723 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21724 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
21725 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
21726 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
21727 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21728 if (r->out.value_name) {
21729 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
21732 return NDR_ERR_SUCCESS;
21735 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
21737 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
21739 if (flags & NDR_SET_VALUES) {
21740 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21742 if (flags & NDR_IN) {
21743 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
21745 ndr_print_ptr(ndr, "handle", r->in.handle);
21747 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21749 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
21750 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
21751 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
21754 if (flags & NDR_OUT) {
21755 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
21757 ndr_print_string(ndr, "value_name", r->out.value_name);
21758 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
21760 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
21762 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
21764 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
21766 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21768 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
21770 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
21772 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
21774 ndr_print_WERROR(ndr, "result", r->out.result);
21780 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
21782 if (flags & NDR_IN) {
21783 if (r->in.handle == NULL) {
21784 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21786 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21790 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));
21792 if (flags & NDR_OUT) {
21793 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21795 return NDR_ERR_SUCCESS;
21798 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
21800 TALLOC_CTX *_mem_save_handle_0;
21801 if (flags & NDR_IN) {
21802 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21803 NDR_PULL_ALLOC(ndr, r->in.handle);
21805 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21806 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21807 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21808 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21809 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21810 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21811 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21812 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));
21814 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21815 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));
21817 if (flags & NDR_OUT) {
21818 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21820 return NDR_ERR_SUCCESS;
21823 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
21825 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
21827 if (flags & NDR_SET_VALUES) {
21828 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21830 if (flags & NDR_IN) {
21831 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
21833 ndr_print_ptr(ndr, "handle", r->in.handle);
21835 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21837 ndr_print_string(ndr, "value_name", r->in.value_name);
21840 if (flags & NDR_OUT) {
21841 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
21843 ndr_print_WERROR(ndr, "result", r->out.result);
21849 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
21851 if (flags & NDR_IN) {
21853 if (flags & NDR_OUT) {
21854 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21856 return NDR_ERR_SUCCESS;
21859 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
21861 if (flags & NDR_IN) {
21863 if (flags & NDR_OUT) {
21864 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21866 return NDR_ERR_SUCCESS;
21869 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
21871 ndr_print_struct(ndr, name, "spoolss_4a");
21873 if (flags & NDR_SET_VALUES) {
21874 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21876 if (flags & NDR_IN) {
21877 ndr_print_struct(ndr, "in", "spoolss_4a");
21881 if (flags & NDR_OUT) {
21882 ndr_print_struct(ndr, "out", "spoolss_4a");
21884 ndr_print_WERROR(ndr, "result", r->out.result);
21890 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
21892 if (flags & NDR_IN) {
21894 if (flags & NDR_OUT) {
21895 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21897 return NDR_ERR_SUCCESS;
21900 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
21902 if (flags & NDR_IN) {
21904 if (flags & NDR_OUT) {
21905 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21907 return NDR_ERR_SUCCESS;
21910 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
21912 ndr_print_struct(ndr, name, "spoolss_4b");
21914 if (flags & NDR_SET_VALUES) {
21915 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21917 if (flags & NDR_IN) {
21918 ndr_print_struct(ndr, "in", "spoolss_4b");
21922 if (flags & NDR_OUT) {
21923 ndr_print_struct(ndr, "out", "spoolss_4b");
21925 ndr_print_WERROR(ndr, "result", r->out.result);
21931 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
21933 if (flags & NDR_IN) {
21935 if (flags & NDR_OUT) {
21936 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21938 return NDR_ERR_SUCCESS;
21941 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
21943 if (flags & NDR_IN) {
21945 if (flags & NDR_OUT) {
21946 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21948 return NDR_ERR_SUCCESS;
21951 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
21953 ndr_print_struct(ndr, name, "spoolss_4c");
21955 if (flags & NDR_SET_VALUES) {
21956 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21958 if (flags & NDR_IN) {
21959 ndr_print_struct(ndr, "in", "spoolss_4c");
21963 if (flags & NDR_OUT) {
21964 ndr_print_struct(ndr, "out", "spoolss_4c");
21966 ndr_print_WERROR(ndr, "result", r->out.result);
21972 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
21974 if (flags & NDR_IN) {
21975 if (r->in.handle == NULL) {
21976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21978 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21979 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21982 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));
21983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21984 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21985 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21986 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));
21987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
21988 if (r->in.buffer == NULL) {
21989 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21991 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21992 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21993 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21995 if (flags & NDR_OUT) {
21996 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21998 return NDR_ERR_SUCCESS;
22001 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
22003 TALLOC_CTX *_mem_save_handle_0;
22004 if (flags & NDR_IN) {
22005 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22006 NDR_PULL_ALLOC(ndr, r->in.handle);
22008 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22009 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22010 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22011 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22012 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22013 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22014 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22015 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));
22017 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22018 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));
22019 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22020 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22021 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22022 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));
22024 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22025 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));
22026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
22027 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
22028 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22029 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
22031 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
22032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22033 if (r->in.buffer) {
22034 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
22037 if (flags & NDR_OUT) {
22038 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22040 return NDR_ERR_SUCCESS;
22043 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
22045 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
22047 if (flags & NDR_SET_VALUES) {
22048 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22050 if (flags & NDR_IN) {
22051 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
22053 ndr_print_ptr(ndr, "handle", r->in.handle);
22055 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22057 ndr_print_string(ndr, "key_name", r->in.key_name);
22058 ndr_print_string(ndr, "value_name", r->in.value_name);
22059 ndr_print_uint32(ndr, "type", r->in.type);
22060 ndr_print_ptr(ndr, "buffer", r->in.buffer);
22062 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
22064 ndr_print_uint32(ndr, "offered", r->in.offered);
22067 if (flags & NDR_OUT) {
22068 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
22070 ndr_print_WERROR(ndr, "result", r->out.result);
22076 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
22078 if (flags & NDR_IN) {
22079 if (r->in.handle == NULL) {
22080 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22082 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22085 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22086 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));
22087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22090 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));
22091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22093 if (flags & NDR_OUT) {
22094 if (r->out.type == NULL) {
22095 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
22098 if (r->out.buffer == NULL) {
22099 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22102 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22103 if (r->out.needed == NULL) {
22104 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22107 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22109 return NDR_ERR_SUCCESS;
22112 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
22114 TALLOC_CTX *_mem_save_handle_0;
22115 TALLOC_CTX *_mem_save_type_0;
22116 TALLOC_CTX *_mem_save_needed_0;
22117 if (flags & NDR_IN) {
22118 ZERO_STRUCT(r->out);
22120 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22121 NDR_PULL_ALLOC(ndr, r->in.handle);
22123 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22124 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22125 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22126 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22127 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22128 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22129 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22130 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));
22132 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22133 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));
22134 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22135 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22136 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22137 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));
22139 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22140 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));
22141 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22142 NDR_PULL_ALLOC(ndr, r->out.type);
22143 ZERO_STRUCTP(r->out.type);
22144 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
22145 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
22146 NDR_PULL_ALLOC(ndr, r->out.needed);
22147 ZERO_STRUCTP(r->out.needed);
22149 if (flags & NDR_OUT) {
22150 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22151 NDR_PULL_ALLOC(ndr, r->out.type);
22153 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
22154 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
22155 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
22156 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
22157 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22158 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22159 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22161 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22162 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22163 NDR_PULL_ALLOC(ndr, r->out.needed);
22165 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22166 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22169 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22170 if (r->out.buffer) {
22171 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22174 return NDR_ERR_SUCCESS;
22177 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
22179 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
22181 if (flags & NDR_SET_VALUES) {
22182 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22184 if (flags & NDR_IN) {
22185 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
22187 ndr_print_ptr(ndr, "handle", r->in.handle);
22189 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22191 ndr_print_string(ndr, "key_name", r->in.key_name);
22192 ndr_print_string(ndr, "value_name", r->in.value_name);
22193 ndr_print_uint32(ndr, "offered", r->in.offered);
22196 if (flags & NDR_OUT) {
22197 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
22199 ndr_print_ptr(ndr, "type", r->out.type);
22201 ndr_print_uint32(ndr, "type", *r->out.type);
22203 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22205 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22207 ndr_print_ptr(ndr, "needed", r->out.needed);
22209 ndr_print_uint32(ndr, "needed", *r->out.needed);
22211 ndr_print_WERROR(ndr, "result", r->out.result);
22217 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
22219 if (flags & NDR_IN) {
22220 if (r->in.handle == NULL) {
22221 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22223 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22227 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));
22228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22230 if (flags & NDR_OUT) {
22231 if (r->out.buffer == NULL) {
22232 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
22235 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
22236 if (r->out.needed == NULL) {
22237 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22240 if (r->out.count == NULL) {
22241 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
22244 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22246 return NDR_ERR_SUCCESS;
22249 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
22251 TALLOC_CTX *_mem_save_handle_0;
22252 TALLOC_CTX *_mem_save_needed_0;
22253 TALLOC_CTX *_mem_save_count_0;
22254 if (flags & NDR_IN) {
22255 ZERO_STRUCT(r->out);
22257 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22258 NDR_PULL_ALLOC(ndr, r->in.handle);
22260 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22261 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22262 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22263 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22264 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22265 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22266 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22267 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));
22269 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22270 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));
22271 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22272 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
22273 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
22274 NDR_PULL_ALLOC(ndr, r->out.needed);
22275 ZERO_STRUCTP(r->out.needed);
22276 NDR_PULL_ALLOC(ndr, r->out.count);
22277 ZERO_STRUCTP(r->out.count);
22279 if (flags & NDR_OUT) {
22280 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22281 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22282 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22284 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22285 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22286 NDR_PULL_ALLOC(ndr, r->out.needed);
22288 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22289 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22290 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22291 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22292 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22293 NDR_PULL_ALLOC(ndr, r->out.count);
22295 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22296 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22297 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22298 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22299 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22300 if (r->out.buffer) {
22301 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22304 return NDR_ERR_SUCCESS;
22307 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
22309 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
22311 if (flags & NDR_SET_VALUES) {
22312 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22314 if (flags & NDR_IN) {
22315 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
22317 ndr_print_ptr(ndr, "handle", r->in.handle);
22319 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22321 ndr_print_string(ndr, "key_name", r->in.key_name);
22322 ndr_print_uint32(ndr, "offered", r->in.offered);
22325 if (flags & NDR_OUT) {
22326 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
22328 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22330 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22332 ndr_print_ptr(ndr, "needed", r->out.needed);
22334 ndr_print_uint32(ndr, "needed", *r->out.needed);
22336 ndr_print_ptr(ndr, "count", r->out.count);
22338 ndr_print_uint32(ndr, "count", *r->out.count);
22340 ndr_print_WERROR(ndr, "result", r->out.result);
22346 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
22348 uint32_t cntr_key_buffer_1;
22349 if (flags & NDR_IN) {
22350 if (r->in.handle == NULL) {
22351 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22353 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22354 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22357 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));
22358 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
22360 if (flags & NDR_OUT) {
22361 if (r->out.key_buffer == NULL) {
22362 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
22365 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22366 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
22368 if (r->out.needed == NULL) {
22369 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22371 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22372 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22374 return NDR_ERR_SUCCESS;
22377 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
22379 uint32_t cntr_key_buffer_1;
22380 TALLOC_CTX *_mem_save_handle_0;
22381 TALLOC_CTX *_mem_save_key_buffer_1;
22382 TALLOC_CTX *_mem_save_needed_0;
22383 if (flags & NDR_IN) {
22384 ZERO_STRUCT(r->out);
22386 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22387 NDR_PULL_ALLOC(ndr, r->in.handle);
22389 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22390 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22391 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22393 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22394 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22395 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22396 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));
22398 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22399 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));
22400 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
22401 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
22402 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
22403 NDR_PULL_ALLOC(ndr, r->out.needed);
22404 ZERO_STRUCTP(r->out.needed);
22406 if (flags & NDR_OUT) {
22407 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
22408 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22409 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
22411 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
22412 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
22413 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22414 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
22416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
22417 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22418 NDR_PULL_ALLOC(ndr, r->out.needed);
22420 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22421 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22423 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22424 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22425 if (r->out.key_buffer) {
22426 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
22429 return NDR_ERR_SUCCESS;
22432 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
22434 uint32_t cntr_key_buffer_1;
22435 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
22437 if (flags & NDR_SET_VALUES) {
22438 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22440 if (flags & NDR_IN) {
22441 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
22443 ndr_print_ptr(ndr, "handle", r->in.handle);
22445 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22447 ndr_print_string(ndr, "key_name", r->in.key_name);
22448 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
22451 if (flags & NDR_OUT) {
22452 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
22454 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
22456 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
22458 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
22460 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
22461 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
22467 ndr_print_ptr(ndr, "needed", r->out.needed);
22469 ndr_print_uint32(ndr, "needed", *r->out.needed);
22471 ndr_print_WERROR(ndr, "result", r->out.result);
22477 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
22479 if (flags & NDR_IN) {
22480 if (r->in.handle == NULL) {
22481 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22483 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22484 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22486 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22487 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));
22488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22489 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22490 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22491 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));
22493 if (flags & NDR_OUT) {
22494 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22496 return NDR_ERR_SUCCESS;
22499 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
22501 TALLOC_CTX *_mem_save_handle_0;
22502 if (flags & NDR_IN) {
22503 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22504 NDR_PULL_ALLOC(ndr, r->in.handle);
22506 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22507 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22508 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22509 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22510 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22511 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22512 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22513 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));
22515 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22516 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));
22517 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22518 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22519 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22520 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));
22522 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22523 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));
22525 if (flags & NDR_OUT) {
22526 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22528 return NDR_ERR_SUCCESS;
22531 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
22533 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
22535 if (flags & NDR_SET_VALUES) {
22536 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22538 if (flags & NDR_IN) {
22539 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
22541 ndr_print_ptr(ndr, "handle", r->in.handle);
22543 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22545 ndr_print_string(ndr, "key_name", r->in.key_name);
22546 ndr_print_string(ndr, "value_name", r->in.value_name);
22549 if (flags & NDR_OUT) {
22550 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
22552 ndr_print_WERROR(ndr, "result", r->out.result);
22558 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
22560 if (flags & NDR_IN) {
22561 if (r->in.handle == NULL) {
22562 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22564 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22568 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));
22570 if (flags & NDR_OUT) {
22571 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22573 return NDR_ERR_SUCCESS;
22576 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
22578 TALLOC_CTX *_mem_save_handle_0;
22579 if (flags & NDR_IN) {
22580 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22581 NDR_PULL_ALLOC(ndr, r->in.handle);
22583 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22584 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22585 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22586 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22587 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22588 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22589 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22590 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));
22592 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22593 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));
22595 if (flags & NDR_OUT) {
22596 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22598 return NDR_ERR_SUCCESS;
22601 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
22603 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
22605 if (flags & NDR_SET_VALUES) {
22606 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22608 if (flags & NDR_IN) {
22609 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
22611 ndr_print_ptr(ndr, "handle", r->in.handle);
22613 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22615 ndr_print_string(ndr, "key_name", r->in.key_name);
22618 if (flags & NDR_OUT) {
22619 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
22621 ndr_print_WERROR(ndr, "result", r->out.result);
22627 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
22629 if (flags & NDR_IN) {
22631 if (flags & NDR_OUT) {
22632 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22634 return NDR_ERR_SUCCESS;
22637 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
22639 if (flags & NDR_IN) {
22641 if (flags & NDR_OUT) {
22642 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22644 return NDR_ERR_SUCCESS;
22647 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
22649 ndr_print_struct(ndr, name, "spoolss_53");
22651 if (flags & NDR_SET_VALUES) {
22652 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22654 if (flags & NDR_IN) {
22655 ndr_print_struct(ndr, "in", "spoolss_53");
22659 if (flags & NDR_OUT) {
22660 ndr_print_struct(ndr, "out", "spoolss_53");
22662 ndr_print_WERROR(ndr, "result", r->out.result);
22668 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22670 if (flags & NDR_IN) {
22671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22672 if (r->in.server) {
22673 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22676 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22680 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22681 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22682 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22685 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22686 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
22687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
22689 if (flags & NDR_OUT) {
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_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
22697 uint32_t _ptr_server;
22698 TALLOC_CTX *_mem_save_server_0;
22699 if (flags & NDR_IN) {
22700 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22702 NDR_PULL_ALLOC(ndr, r->in.server);
22704 r->in.server = NULL;
22706 if (r->in.server) {
22707 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22708 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22709 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22710 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22711 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22712 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));
22714 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22715 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22716 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22718 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22719 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22720 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22721 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));
22723 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22724 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22725 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22726 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22727 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22728 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));
22730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22731 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22732 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
22733 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
22735 if (flags & NDR_OUT) {
22736 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22738 return NDR_ERR_SUCCESS;
22741 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22743 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
22745 if (flags & NDR_SET_VALUES) {
22746 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22748 if (flags & NDR_IN) {
22749 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
22751 ndr_print_ptr(ndr, "server", r->in.server);
22753 if (r->in.server) {
22754 ndr_print_string(ndr, "server", r->in.server);
22757 ndr_print_string(ndr, "architecture", r->in.architecture);
22758 ndr_print_string(ndr, "driver", r->in.driver);
22759 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
22760 ndr_print_uint32(ndr, "version", r->in.version);
22763 if (flags & NDR_OUT) {
22764 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
22766 ndr_print_WERROR(ndr, "result", r->out.result);
22772 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
22774 if (flags & NDR_IN) {
22776 if (flags & NDR_OUT) {
22777 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22779 return NDR_ERR_SUCCESS;
22782 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
22784 if (flags & NDR_IN) {
22786 if (flags & NDR_OUT) {
22787 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22789 return NDR_ERR_SUCCESS;
22792 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
22794 ndr_print_struct(ndr, name, "spoolss_55");
22796 if (flags & NDR_SET_VALUES) {
22797 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22799 if (flags & NDR_IN) {
22800 ndr_print_struct(ndr, "in", "spoolss_55");
22804 if (flags & NDR_OUT) {
22805 ndr_print_struct(ndr, "out", "spoolss_55");
22807 ndr_print_WERROR(ndr, "result", r->out.result);
22813 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
22815 if (flags & NDR_IN) {
22817 if (flags & NDR_OUT) {
22818 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22820 return NDR_ERR_SUCCESS;
22823 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
22825 if (flags & NDR_IN) {
22827 if (flags & NDR_OUT) {
22828 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22830 return NDR_ERR_SUCCESS;
22833 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
22835 ndr_print_struct(ndr, name, "spoolss_56");
22837 if (flags & NDR_SET_VALUES) {
22838 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22840 if (flags & NDR_IN) {
22841 ndr_print_struct(ndr, "in", "spoolss_56");
22845 if (flags & NDR_OUT) {
22846 ndr_print_struct(ndr, "out", "spoolss_56");
22848 ndr_print_WERROR(ndr, "result", r->out.result);
22854 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
22856 if (flags & NDR_IN) {
22858 if (flags & NDR_OUT) {
22859 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22861 return NDR_ERR_SUCCESS;
22864 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
22866 if (flags & NDR_IN) {
22868 if (flags & NDR_OUT) {
22869 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22871 return NDR_ERR_SUCCESS;
22874 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
22876 ndr_print_struct(ndr, name, "spoolss_57");
22878 if (flags & NDR_SET_VALUES) {
22879 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22881 if (flags & NDR_IN) {
22882 ndr_print_struct(ndr, "in", "spoolss_57");
22886 if (flags & NDR_OUT) {
22887 ndr_print_struct(ndr, "out", "spoolss_57");
22889 ndr_print_WERROR(ndr, "result", r->out.result);
22895 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
22897 if (flags & NDR_IN) {
22898 if (r->in.handle == NULL) {
22899 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22901 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22905 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));
22906 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
22907 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
22908 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22909 if (r->in.status_code == NULL) {
22910 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22912 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
22914 if (flags & NDR_OUT) {
22915 if (r->out.out_data == NULL) {
22916 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22918 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22919 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
22920 if (r->out.needed == NULL) {
22921 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22923 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22924 if (r->out.status_code == NULL) {
22925 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
22928 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22930 return NDR_ERR_SUCCESS;
22933 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
22935 TALLOC_CTX *_mem_save_handle_0;
22936 TALLOC_CTX *_mem_save_needed_0;
22937 TALLOC_CTX *_mem_save_status_code_0;
22938 if (flags & NDR_IN) {
22939 ZERO_STRUCT(r->out);
22941 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22942 NDR_PULL_ALLOC(ndr, r->in.handle);
22944 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22945 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22946 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22948 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
22949 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
22950 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
22951 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));
22953 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
22954 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));
22955 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
22956 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
22957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
22958 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22959 NDR_PULL_ALLOC(ndr, r->in.status_code);
22961 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22962 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
22963 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
22964 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22965 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
22966 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
22967 NDR_PULL_ALLOC(ndr, r->out.needed);
22968 ZERO_STRUCTP(r->out.needed);
22969 NDR_PULL_ALLOC(ndr, r->out.status_code);
22970 *r->out.status_code = *r->in.status_code;
22972 if (flags & NDR_OUT) {
22973 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
22974 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22975 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
22977 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
22978 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22979 NDR_PULL_ALLOC(ndr, r->out.needed);
22981 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22982 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22983 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22985 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22986 NDR_PULL_ALLOC(ndr, r->out.status_code);
22988 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22989 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
22990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
22991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22992 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22993 if (r->out.out_data) {
22994 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
22997 return NDR_ERR_SUCCESS;
23000 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
23002 ndr_print_struct(ndr, name, "spoolss_XcvData");
23004 if (flags & NDR_SET_VALUES) {
23005 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23007 if (flags & NDR_IN) {
23008 ndr_print_struct(ndr, "in", "spoolss_XcvData");
23010 ndr_print_ptr(ndr, "handle", r->in.handle);
23012 ndr_print_policy_handle(ndr, "handle", r->in.handle);
23014 ndr_print_string(ndr, "function_name", r->in.function_name);
23015 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
23016 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
23017 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
23018 ndr_print_ptr(ndr, "status_code", r->in.status_code);
23020 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
23024 if (flags & NDR_OUT) {
23025 ndr_print_struct(ndr, "out", "spoolss_XcvData");
23027 ndr_print_ptr(ndr, "out_data", r->out.out_data);
23029 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
23031 ndr_print_ptr(ndr, "needed", r->out.needed);
23033 ndr_print_uint32(ndr, "needed", *r->out.needed);
23035 ndr_print_ptr(ndr, "status_code", r->out.status_code);
23037 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
23039 ndr_print_WERROR(ndr, "result", r->out.result);
23045 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
23047 if (flags & NDR_IN) {
23048 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
23049 if (r->in.servername) {
23050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
23052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
23053 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
23055 if (r->in.info_ctr == NULL) {
23056 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
23058 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
23059 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
23061 if (flags & NDR_OUT) {
23062 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23064 return NDR_ERR_SUCCESS;
23067 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
23069 uint32_t _ptr_servername;
23070 TALLOC_CTX *_mem_save_servername_0;
23071 TALLOC_CTX *_mem_save_info_ctr_0;
23072 if (flags & NDR_IN) {
23073 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
23074 if (_ptr_servername) {
23075 NDR_PULL_ALLOC(ndr, r->in.servername);
23077 r->in.servername = NULL;
23079 if (r->in.servername) {
23080 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
23081 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
23082 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
23083 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
23084 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
23085 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));
23087 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
23088 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
23089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
23091 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
23092 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
23094 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
23095 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
23096 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
23097 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
23098 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
23100 if (flags & NDR_OUT) {
23101 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23103 return NDR_ERR_SUCCESS;
23106 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
23108 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
23110 if (flags & NDR_SET_VALUES) {
23111 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23113 if (flags & NDR_IN) {
23114 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
23116 ndr_print_ptr(ndr, "servername", r->in.servername);
23118 if (r->in.servername) {
23119 ndr_print_string(ndr, "servername", r->in.servername);
23122 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
23124 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
23126 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
23129 if (flags & NDR_OUT) {
23130 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
23132 ndr_print_WERROR(ndr, "result", r->out.result);
23138 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
23140 if (flags & NDR_IN) {
23142 if (flags & NDR_OUT) {
23143 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23145 return NDR_ERR_SUCCESS;
23148 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
23150 if (flags & NDR_IN) {
23152 if (flags & NDR_OUT) {
23153 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23155 return NDR_ERR_SUCCESS;
23158 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
23160 ndr_print_struct(ndr, name, "spoolss_5a");
23162 if (flags & NDR_SET_VALUES) {
23163 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23165 if (flags & NDR_IN) {
23166 ndr_print_struct(ndr, "in", "spoolss_5a");
23170 if (flags & NDR_OUT) {
23171 ndr_print_struct(ndr, "out", "spoolss_5a");
23173 ndr_print_WERROR(ndr, "result", r->out.result);
23179 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
23181 if (flags & NDR_IN) {
23183 if (flags & NDR_OUT) {
23184 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23186 return NDR_ERR_SUCCESS;
23189 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
23191 if (flags & NDR_IN) {
23193 if (flags & NDR_OUT) {
23194 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23196 return NDR_ERR_SUCCESS;
23199 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
23201 ndr_print_struct(ndr, name, "spoolss_5b");
23203 if (flags & NDR_SET_VALUES) {
23204 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23206 if (flags & NDR_IN) {
23207 ndr_print_struct(ndr, "in", "spoolss_5b");
23211 if (flags & NDR_OUT) {
23212 ndr_print_struct(ndr, "out", "spoolss_5b");
23214 ndr_print_WERROR(ndr, "result", r->out.result);
23220 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
23222 if (flags & NDR_IN) {
23224 if (flags & NDR_OUT) {
23225 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23227 return NDR_ERR_SUCCESS;
23230 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
23232 if (flags & NDR_IN) {
23234 if (flags & NDR_OUT) {
23235 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23237 return NDR_ERR_SUCCESS;
23240 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
23242 ndr_print_struct(ndr, name, "spoolss_5c");
23244 if (flags & NDR_SET_VALUES) {
23245 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23247 if (flags & NDR_IN) {
23248 ndr_print_struct(ndr, "in", "spoolss_5c");
23252 if (flags & NDR_OUT) {
23253 ndr_print_struct(ndr, "out", "spoolss_5c");
23255 ndr_print_WERROR(ndr, "result", r->out.result);
23261 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
23263 if (flags & NDR_IN) {
23265 if (flags & NDR_OUT) {
23266 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23268 return NDR_ERR_SUCCESS;
23271 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
23273 if (flags & NDR_IN) {
23275 if (flags & NDR_OUT) {
23276 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23278 return NDR_ERR_SUCCESS;
23281 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
23283 ndr_print_struct(ndr, name, "spoolss_5d");
23285 if (flags & NDR_SET_VALUES) {
23286 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23288 if (flags & NDR_IN) {
23289 ndr_print_struct(ndr, "in", "spoolss_5d");
23293 if (flags & NDR_OUT) {
23294 ndr_print_struct(ndr, "out", "spoolss_5d");
23296 ndr_print_WERROR(ndr, "result", r->out.result);
23302 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
23304 if (flags & NDR_IN) {
23306 if (flags & NDR_OUT) {
23307 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23309 return NDR_ERR_SUCCESS;
23312 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
23314 if (flags & NDR_IN) {
23316 if (flags & NDR_OUT) {
23317 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23319 return NDR_ERR_SUCCESS;
23322 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
23324 ndr_print_struct(ndr, name, "spoolss_5e");
23326 if (flags & NDR_SET_VALUES) {
23327 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23329 if (flags & NDR_IN) {
23330 ndr_print_struct(ndr, "in", "spoolss_5e");
23334 if (flags & NDR_OUT) {
23335 ndr_print_struct(ndr, "out", "spoolss_5e");
23337 ndr_print_WERROR(ndr, "result", r->out.result);
23343 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
23345 if (flags & NDR_IN) {
23347 if (flags & NDR_OUT) {
23348 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23350 return NDR_ERR_SUCCESS;
23353 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
23355 if (flags & NDR_IN) {
23357 if (flags & NDR_OUT) {
23358 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23360 return NDR_ERR_SUCCESS;
23363 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
23365 ndr_print_struct(ndr, name, "spoolss_5f");
23367 if (flags & NDR_SET_VALUES) {
23368 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23370 if (flags & NDR_IN) {
23371 ndr_print_struct(ndr, "in", "spoolss_5f");
23375 if (flags & NDR_OUT) {
23376 ndr_print_struct(ndr, "out", "spoolss_5f");
23378 ndr_print_WERROR(ndr, "result", r->out.result);
23384 static const struct ndr_interface_call spoolss_calls[] = {
23386 "spoolss_EnumPrinters",
23387 sizeof(struct spoolss_EnumPrinters),
23388 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
23389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
23390 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
23394 "spoolss_OpenPrinter",
23395 sizeof(struct spoolss_OpenPrinter),
23396 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
23397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
23398 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
23403 sizeof(struct spoolss_SetJob),
23404 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
23405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
23406 (ndr_print_function_t) ndr_print_spoolss_SetJob,
23411 sizeof(struct spoolss_GetJob),
23412 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
23413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
23414 (ndr_print_function_t) ndr_print_spoolss_GetJob,
23418 "spoolss_EnumJobs",
23419 sizeof(struct spoolss_EnumJobs),
23420 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
23421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
23422 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
23426 "spoolss_AddPrinter",
23427 sizeof(struct spoolss_AddPrinter),
23428 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
23429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
23430 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
23434 "spoolss_DeletePrinter",
23435 sizeof(struct spoolss_DeletePrinter),
23436 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
23437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
23438 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
23442 "spoolss_SetPrinter",
23443 sizeof(struct spoolss_SetPrinter),
23444 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
23445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
23446 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
23450 "spoolss_GetPrinter",
23451 sizeof(struct spoolss_GetPrinter),
23452 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
23453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
23454 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
23458 "spoolss_AddPrinterDriver",
23459 sizeof(struct spoolss_AddPrinterDriver),
23460 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
23461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
23462 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
23466 "spoolss_EnumPrinterDrivers",
23467 sizeof(struct spoolss_EnumPrinterDrivers),
23468 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
23469 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
23470 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
23474 "spoolss_GetPrinterDriver",
23475 sizeof(struct spoolss_GetPrinterDriver),
23476 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
23477 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
23478 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
23482 "spoolss_GetPrinterDriverDirectory",
23483 sizeof(struct spoolss_GetPrinterDriverDirectory),
23484 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
23485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
23486 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
23490 "spoolss_DeletePrinterDriver",
23491 sizeof(struct spoolss_DeletePrinterDriver),
23492 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
23493 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
23494 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
23498 "spoolss_AddPrintProcessor",
23499 sizeof(struct spoolss_AddPrintProcessor),
23500 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
23501 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
23502 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
23506 "spoolss_EnumPrintProcessors",
23507 sizeof(struct spoolss_EnumPrintProcessors),
23508 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
23509 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
23510 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
23514 "spoolss_GetPrintProcessorDirectory",
23515 sizeof(struct spoolss_GetPrintProcessorDirectory),
23516 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
23517 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
23518 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
23522 "spoolss_StartDocPrinter",
23523 sizeof(struct spoolss_StartDocPrinter),
23524 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
23525 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
23526 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
23530 "spoolss_StartPagePrinter",
23531 sizeof(struct spoolss_StartPagePrinter),
23532 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
23533 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
23534 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
23538 "spoolss_WritePrinter",
23539 sizeof(struct spoolss_WritePrinter),
23540 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
23541 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
23542 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
23546 "spoolss_EndPagePrinter",
23547 sizeof(struct spoolss_EndPagePrinter),
23548 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
23549 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
23550 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
23554 "spoolss_AbortPrinter",
23555 sizeof(struct spoolss_AbortPrinter),
23556 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
23557 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
23558 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
23562 "spoolss_ReadPrinter",
23563 sizeof(struct spoolss_ReadPrinter),
23564 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
23565 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
23566 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
23570 "spoolss_EndDocPrinter",
23571 sizeof(struct spoolss_EndDocPrinter),
23572 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
23573 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
23574 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
23579 sizeof(struct spoolss_AddJob),
23580 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
23581 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
23582 (ndr_print_function_t) ndr_print_spoolss_AddJob,
23586 "spoolss_ScheduleJob",
23587 sizeof(struct spoolss_ScheduleJob),
23588 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
23589 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
23590 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
23594 "spoolss_GetPrinterData",
23595 sizeof(struct spoolss_GetPrinterData),
23596 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
23597 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
23598 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
23602 "spoolss_SetPrinterData",
23603 sizeof(struct spoolss_SetPrinterData),
23604 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
23605 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
23606 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
23610 "spoolss_WaitForPrinterChange",
23611 sizeof(struct spoolss_WaitForPrinterChange),
23612 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
23613 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
23614 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
23618 "spoolss_ClosePrinter",
23619 sizeof(struct spoolss_ClosePrinter),
23620 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
23621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
23622 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
23627 sizeof(struct spoolss_AddForm),
23628 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
23629 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
23630 (ndr_print_function_t) ndr_print_spoolss_AddForm,
23634 "spoolss_DeleteForm",
23635 sizeof(struct spoolss_DeleteForm),
23636 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
23637 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
23638 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
23643 sizeof(struct spoolss_GetForm),
23644 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
23645 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
23646 (ndr_print_function_t) ndr_print_spoolss_GetForm,
23651 sizeof(struct spoolss_SetForm),
23652 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
23653 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
23654 (ndr_print_function_t) ndr_print_spoolss_SetForm,
23658 "spoolss_EnumForms",
23659 sizeof(struct spoolss_EnumForms),
23660 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
23661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
23662 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
23666 "spoolss_EnumPorts",
23667 sizeof(struct spoolss_EnumPorts),
23668 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
23669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
23670 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
23674 "spoolss_EnumMonitors",
23675 sizeof(struct spoolss_EnumMonitors),
23676 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
23677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
23678 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
23683 sizeof(struct spoolss_AddPort),
23684 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
23685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
23686 (ndr_print_function_t) ndr_print_spoolss_AddPort,
23690 "spoolss_ConfigurePort",
23691 sizeof(struct spoolss_ConfigurePort),
23692 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
23693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
23694 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
23698 "spoolss_DeletePort",
23699 sizeof(struct spoolss_DeletePort),
23700 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
23701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
23702 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
23706 "spoolss_CreatePrinterIC",
23707 sizeof(struct spoolss_CreatePrinterIC),
23708 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
23709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
23710 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
23714 "spoolss_PlayGDIScriptOnPrinterIC",
23715 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
23716 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
23717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
23718 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
23722 "spoolss_DeletePrinterIC",
23723 sizeof(struct spoolss_DeletePrinterIC),
23724 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
23725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
23726 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
23730 "spoolss_AddPrinterConnection",
23731 sizeof(struct spoolss_AddPrinterConnection),
23732 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
23733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
23734 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
23738 "spoolss_DeletePrinterConnection",
23739 sizeof(struct spoolss_DeletePrinterConnection),
23740 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
23741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
23742 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
23746 "spoolss_PrinterMessageBox",
23747 sizeof(struct spoolss_PrinterMessageBox),
23748 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
23749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
23750 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
23754 "spoolss_AddMonitor",
23755 sizeof(struct spoolss_AddMonitor),
23756 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
23757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
23758 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
23762 "spoolss_DeleteMonitor",
23763 sizeof(struct spoolss_DeleteMonitor),
23764 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
23765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
23766 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
23770 "spoolss_DeletePrintProcessor",
23771 sizeof(struct spoolss_DeletePrintProcessor),
23772 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
23773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
23774 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
23778 "spoolss_AddPrintProvidor",
23779 sizeof(struct spoolss_AddPrintProvidor),
23780 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
23781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
23782 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
23786 "spoolss_DeletePrintProvidor",
23787 sizeof(struct spoolss_DeletePrintProvidor),
23788 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
23789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
23790 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
23794 "spoolss_EnumPrintProcDataTypes",
23795 sizeof(struct spoolss_EnumPrintProcDataTypes),
23796 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
23797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
23798 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
23802 "spoolss_ResetPrinter",
23803 sizeof(struct spoolss_ResetPrinter),
23804 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
23805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
23806 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
23810 "spoolss_GetPrinterDriver2",
23811 sizeof(struct spoolss_GetPrinterDriver2),
23812 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
23813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
23814 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
23818 "spoolss_FindFirstPrinterChangeNotification",
23819 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
23820 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
23821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
23822 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
23826 "spoolss_FindNextPrinterChangeNotification",
23827 sizeof(struct spoolss_FindNextPrinterChangeNotification),
23828 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
23829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
23830 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
23834 "spoolss_FindClosePrinterNotify",
23835 sizeof(struct spoolss_FindClosePrinterNotify),
23836 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
23837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
23838 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
23842 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
23843 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
23844 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23846 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23850 "spoolss_ReplyOpenPrinter",
23851 sizeof(struct spoolss_ReplyOpenPrinter),
23852 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
23853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
23854 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
23858 "spoolss_RouterReplyPrinter",
23859 sizeof(struct spoolss_RouterReplyPrinter),
23860 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
23861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
23862 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
23866 "spoolss_ReplyClosePrinter",
23867 sizeof(struct spoolss_ReplyClosePrinter),
23868 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
23869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
23870 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
23874 "spoolss_AddPortEx",
23875 sizeof(struct spoolss_AddPortEx),
23876 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
23877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
23878 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
23882 "spoolss_RouterFindFirstPrinterChangeNotification",
23883 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
23884 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
23885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
23886 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
23890 "spoolss_SpoolerInit",
23891 sizeof(struct spoolss_SpoolerInit),
23892 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
23893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
23894 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
23898 "spoolss_ResetPrinterEx",
23899 sizeof(struct spoolss_ResetPrinterEx),
23900 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
23901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
23902 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
23906 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
23907 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
23908 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23910 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23914 "spoolss_RouterReplyPrinterEx",
23915 sizeof(struct spoolss_RouterReplyPrinterEx),
23916 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
23917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
23918 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
23922 "spoolss_RouterRefreshPrinterChangeNotify",
23923 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
23924 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
23925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
23926 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
23931 sizeof(struct spoolss_44),
23932 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
23933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
23934 (ndr_print_function_t) ndr_print_spoolss_44,
23938 "spoolss_OpenPrinterEx",
23939 sizeof(struct spoolss_OpenPrinterEx),
23940 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
23941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
23942 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
23946 "spoolss_AddPrinterEx",
23947 sizeof(struct spoolss_AddPrinterEx),
23948 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
23949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
23950 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
23955 sizeof(struct spoolss_47),
23956 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
23957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
23958 (ndr_print_function_t) ndr_print_spoolss_47,
23962 "spoolss_EnumPrinterData",
23963 sizeof(struct spoolss_EnumPrinterData),
23964 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
23965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
23966 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
23970 "spoolss_DeletePrinterData",
23971 sizeof(struct spoolss_DeletePrinterData),
23972 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
23973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
23974 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
23979 sizeof(struct spoolss_4a),
23980 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
23981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
23982 (ndr_print_function_t) ndr_print_spoolss_4a,
23987 sizeof(struct spoolss_4b),
23988 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
23989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
23990 (ndr_print_function_t) ndr_print_spoolss_4b,
23995 sizeof(struct spoolss_4c),
23996 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
23997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
23998 (ndr_print_function_t) ndr_print_spoolss_4c,
24002 "spoolss_SetPrinterDataEx",
24003 sizeof(struct spoolss_SetPrinterDataEx),
24004 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
24005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
24006 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
24010 "spoolss_GetPrinterDataEx",
24011 sizeof(struct spoolss_GetPrinterDataEx),
24012 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
24013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
24014 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
24018 "spoolss_EnumPrinterDataEx",
24019 sizeof(struct spoolss_EnumPrinterDataEx),
24020 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
24021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
24022 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
24026 "spoolss_EnumPrinterKey",
24027 sizeof(struct spoolss_EnumPrinterKey),
24028 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
24029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
24030 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
24034 "spoolss_DeletePrinterDataEx",
24035 sizeof(struct spoolss_DeletePrinterDataEx),
24036 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
24037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
24038 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
24042 "spoolss_DeletePrinterKey",
24043 sizeof(struct spoolss_DeletePrinterKey),
24044 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
24045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
24046 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
24051 sizeof(struct spoolss_53),
24052 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
24053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
24054 (ndr_print_function_t) ndr_print_spoolss_53,
24058 "spoolss_DeletePrinterDriverEx",
24059 sizeof(struct spoolss_DeletePrinterDriverEx),
24060 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
24061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
24062 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
24067 sizeof(struct spoolss_55),
24068 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
24069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
24070 (ndr_print_function_t) ndr_print_spoolss_55,
24075 sizeof(struct spoolss_56),
24076 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
24077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
24078 (ndr_print_function_t) ndr_print_spoolss_56,
24083 sizeof(struct spoolss_57),
24084 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
24085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
24086 (ndr_print_function_t) ndr_print_spoolss_57,
24091 sizeof(struct spoolss_XcvData),
24092 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
24093 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
24094 (ndr_print_function_t) ndr_print_spoolss_XcvData,
24098 "spoolss_AddPrinterDriverEx",
24099 sizeof(struct spoolss_AddPrinterDriverEx),
24100 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
24101 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
24102 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
24107 sizeof(struct spoolss_5a),
24108 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
24109 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
24110 (ndr_print_function_t) ndr_print_spoolss_5a,
24115 sizeof(struct spoolss_5b),
24116 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
24117 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
24118 (ndr_print_function_t) ndr_print_spoolss_5b,
24123 sizeof(struct spoolss_5c),
24124 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
24125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
24126 (ndr_print_function_t) ndr_print_spoolss_5c,
24131 sizeof(struct spoolss_5d),
24132 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
24133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
24134 (ndr_print_function_t) ndr_print_spoolss_5d,
24139 sizeof(struct spoolss_5e),
24140 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
24141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
24142 (ndr_print_function_t) ndr_print_spoolss_5e,
24147 sizeof(struct spoolss_5f),
24148 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
24149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
24150 (ndr_print_function_t) ndr_print_spoolss_5f,
24153 { NULL, 0, NULL, NULL, NULL, false }
24156 static const char * const spoolss_endpoint_strings[] = {
24157 "ncacn_np:[\\pipe\\spoolss]",
24160 static const struct ndr_interface_string_array spoolss_endpoints = {
24162 .names = spoolss_endpoint_strings
24165 static const char * const spoolss_authservice_strings[] = {
24169 static const struct ndr_interface_string_array spoolss_authservices = {
24171 .names = spoolss_authservice_strings
24175 const struct ndr_interface_table ndr_table_spoolss = {
24178 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
24179 NDR_SPOOLSS_VERSION
24181 .helpstring = NDR_SPOOLSS_HELPSTRING,
24183 .calls = spoolss_calls,
24184 .endpoints = &spoolss_endpoints,
24185 .authservices = &spoolss_authservices