1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code ndr_push_spoolss_Time(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Time *r)
11 if (ndr_flags & NDR_SCALARS) {
12 NDR_CHECK(ndr_push_align(ndr, 2));
13 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
14 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
15 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
16 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
17 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
18 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
19 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
20 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
22 if (ndr_flags & NDR_BUFFERS) {
24 return NDR_ERR_SUCCESS;
27 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
29 if (ndr_flags & NDR_SCALARS) {
30 NDR_CHECK(ndr_pull_align(ndr, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 if (ndr_flags & NDR_BUFFERS) {
42 return NDR_ERR_SUCCESS;
45 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
47 ndr_print_struct(ndr, name, "spoolss_Time");
49 ndr_print_uint16(ndr, "year", r->year);
50 ndr_print_uint16(ndr, "month", r->month);
51 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
52 ndr_print_uint16(ndr, "day", r->day);
53 ndr_print_uint16(ndr, "hour", r->hour);
54 ndr_print_uint16(ndr, "minute", r->minute);
55 ndr_print_uint16(ndr, "second", r->second);
56 ndr_print_uint16(ndr, "millisecond", r->millisecond);
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
62 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
65 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
67 if (ndr_flags & NDR_SCALARS) {
68 NDR_CHECK(ndr_push_align(ndr, 4));
69 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
72 if (ndr_flags & NDR_BUFFERS) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
77 return NDR_ERR_SUCCESS;
80 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
83 TALLOC_CTX *_mem_save_time_0;
84 if (ndr_flags & NDR_SCALARS) {
85 NDR_CHECK(ndr_pull_align(ndr, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
89 NDR_PULL_ALLOC(ndr, r->time);
94 if (ndr_flags & NDR_BUFFERS) {
96 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
97 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
99 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
102 return NDR_ERR_SUCCESS;
105 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
107 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
109 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
110 ndr_print_ptr(ndr, "time", r->time);
113 ndr_print_spoolss_Time(ndr, "time", r->time);
119 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
121 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
122 return NDR_ERR_SUCCESS;
125 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
130 return NDR_ERR_SUCCESS;
133 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
135 const char *val = NULL;
138 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr, name, "ENUM", val, r);
145 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
148 return NDR_ERR_SUCCESS;
151 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
156 return NDR_ERR_SUCCESS;
159 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
161 const char *val = NULL;
164 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr, name, "ENUM", val, r);
173 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
176 return NDR_ERR_SUCCESS;
179 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
184 return NDR_ERR_SUCCESS;
187 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
189 const char *val = NULL;
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr, name, "ENUM", val, r);
199 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
202 return NDR_ERR_SUCCESS;
205 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
210 return NDR_ERR_SUCCESS;
213 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
215 const char *val = NULL;
218 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr, name, "ENUM", val, r);
227 static enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
229 if (ndr_flags & NDR_SCALARS) {
230 NDR_CHECK(ndr_push_align(ndr, 4));
232 uint32_t _flags_save_string = ndr->flags;
233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
235 ndr->flags = _flags_save_string;
238 uint32_t _flags_save_string = ndr->flags;
239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
241 ndr->flags = _flags_save_string;
243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
246 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
258 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
265 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
266 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
271 if (ndr_flags & NDR_BUFFERS) {
273 uint32_t _flags_save_string = ndr->flags;
274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
275 if (r->printername) {
276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
279 ndr->flags = _flags_save_string;
282 uint32_t _flags_save_string = ndr->flags;
283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
285 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
286 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
288 ndr->flags = _flags_save_string;
291 return NDR_ERR_SUCCESS;
294 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
296 uint32_t _ptr_printername;
297 TALLOC_CTX *_mem_save_printername_0;
298 uint32_t _ptr_servername;
299 TALLOC_CTX *_mem_save_servername_0;
300 if (ndr_flags & NDR_SCALARS) {
301 NDR_CHECK(ndr_pull_align(ndr, 4));
303 uint32_t _flags_save_string = ndr->flags;
304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
306 if (_ptr_printername) {
307 NDR_PULL_ALLOC(ndr, r->printername);
308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
310 r->printername = NULL;
312 ndr->flags = _flags_save_string;
315 uint32_t _flags_save_string = ndr->flags;
316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
318 if (_ptr_servername) {
319 NDR_PULL_ALLOC(ndr, r->servername);
320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
322 r->servername = NULL;
324 ndr->flags = _flags_save_string;
326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
329 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
341 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
344 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
348 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
349 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
354 if (ndr_flags & NDR_BUFFERS) {
356 uint32_t _flags_save_string = ndr->flags;
357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
358 if (r->printername) {
359 uint32_t _relative_save_offset;
360 _relative_save_offset = ndr->offset;
361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
362 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
363 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
366 ndr->offset = _relative_save_offset;
368 ndr->flags = _flags_save_string;
371 uint32_t _flags_save_string = ndr->flags;
372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
374 uint32_t _relative_save_offset;
375 _relative_save_offset = ndr->offset;
376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
377 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
378 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
379 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
381 ndr->offset = _relative_save_offset;
383 ndr->flags = _flags_save_string;
386 return NDR_ERR_SUCCESS;
389 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
391 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
393 ndr_print_ptr(ndr, "printername", r->printername);
395 if (r->printername) {
396 ndr_print_string(ndr, "printername", r->printername);
399 ndr_print_ptr(ndr, "servername", r->servername);
402 ndr_print_string(ndr, "servername", r->servername);
405 ndr_print_uint32(ndr, "cjobs", r->cjobs);
406 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
407 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
408 ndr_print_spoolss_Time(ndr, "time", &r->time);
409 ndr_print_uint32(ndr, "global_counter", r->global_counter);
410 ndr_print_uint32(ndr, "total_pages", r->total_pages);
411 ndr_print_uint32(ndr, "version", r->version);
412 ndr_print_uint32(ndr, "free_build", r->free_build);
413 ndr_print_uint32(ndr, "spooling", r->spooling);
414 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
415 ndr_print_uint32(ndr, "session_counter", r->session_counter);
416 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
417 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
418 ndr_print_uint32(ndr, "job_error", r->job_error);
419 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
420 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
421 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
422 ndr_print_uint32(ndr, "change_id", r->change_id);
423 ndr_print_WERROR(ndr, "last_error", r->last_error);
424 ndr_print_uint32(ndr, "status", r->status);
425 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
426 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
427 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
428 ndr_print_uint16(ndr, "processor_level", r->processor_level);
429 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
430 ndr_print_uint32(ndr, "reserved2", r->reserved2);
431 ndr_print_uint32(ndr, "reserved3", r->reserved3);
435 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
438 return NDR_ERR_SUCCESS;
441 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
446 return NDR_ERR_SUCCESS;
449 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
451 ndr_print_uint32(ndr, name, r);
453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
463 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
464 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
465 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
466 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
467 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
468 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
469 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
470 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
471 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
472 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
473 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
474 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
475 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
476 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
477 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
478 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
479 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
480 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
484 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
486 if (ndr_flags & NDR_SCALARS) {
487 NDR_CHECK(ndr_push_align(ndr, 4));
488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
489 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
490 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
491 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
492 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
493 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
494 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
495 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
496 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
497 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
498 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
499 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
500 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
501 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
502 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
503 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
504 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
505 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
506 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
507 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
508 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
523 uint32_t _flags_save_DATA_BLOB = ndr->flags;
524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
526 struct ndr_push *_ndr_driverextra_data;
527 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
528 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
529 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
531 ndr->flags = _flags_save_DATA_BLOB;
534 if (ndr_flags & NDR_BUFFERS) {
536 return NDR_ERR_SUCCESS;
539 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
541 if (ndr_flags & NDR_SCALARS) {
542 NDR_CHECK(ndr_pull_align(ndr, 4));
543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
544 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
545 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
546 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
547 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
548 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
549 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
550 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
551 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
552 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
553 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
554 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
555 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
556 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
557 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
558 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
559 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
560 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
562 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
563 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
578 uint32_t _flags_save_DATA_BLOB = ndr->flags;
579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
581 struct ndr_pull *_ndr_driverextra_data;
582 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
583 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
584 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
586 ndr->flags = _flags_save_DATA_BLOB;
589 if (ndr_flags & NDR_BUFFERS) {
591 return NDR_ERR_SUCCESS;
594 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
596 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
598 ndr_print_string(ndr, "devicename", r->devicename);
599 ndr_print_uint16(ndr, "specversion", r->specversion);
600 ndr_print_uint16(ndr, "driverversion", r->driverversion);
601 ndr_print_uint16(ndr, "size", r->size);
602 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
603 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
604 ndr_print_uint16(ndr, "orientation", r->orientation);
605 ndr_print_uint16(ndr, "papersize", r->papersize);
606 ndr_print_uint16(ndr, "paperlength", r->paperlength);
607 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
608 ndr_print_uint16(ndr, "scale", r->scale);
609 ndr_print_uint16(ndr, "copies", r->copies);
610 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
611 ndr_print_uint16(ndr, "printquality", r->printquality);
612 ndr_print_uint16(ndr, "color", r->color);
613 ndr_print_uint16(ndr, "duplex", r->duplex);
614 ndr_print_uint16(ndr, "yresolution", r->yresolution);
615 ndr_print_uint16(ndr, "ttoption", r->ttoption);
616 ndr_print_uint16(ndr, "collate", r->collate);
617 ndr_print_string(ndr, "formname", r->formname);
618 ndr_print_uint16(ndr, "logpixels", r->logpixels);
619 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
620 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
621 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
622 ndr_print_uint32(ndr, "displayflags", r->displayflags);
623 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
624 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
625 ndr_print_uint32(ndr, "icmintent", r->icmintent);
626 ndr_print_uint32(ndr, "mediatype", r->mediatype);
627 ndr_print_uint32(ndr, "dithertype", r->dithertype);
628 ndr_print_uint32(ndr, "reserved1", r->reserved1);
629 ndr_print_uint32(ndr, "reserved2", r->reserved2);
630 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
631 ndr_print_uint32(ndr, "panningheight", r->panningheight);
632 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
636 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
638 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
641 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
644 return NDR_ERR_SUCCESS;
647 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
652 return NDR_ERR_SUCCESS;
655 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
657 ndr_print_uint32(ndr, name, r);
659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
660 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
661 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
662 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
663 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
664 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
675 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
676 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
677 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
681 static enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
683 if (ndr_flags & NDR_SCALARS) {
684 NDR_CHECK(ndr_push_align(ndr, 4));
685 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
687 uint32_t _flags_save_string = ndr->flags;
688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
689 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
690 ndr->flags = _flags_save_string;
693 uint32_t _flags_save_string = ndr->flags;
694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
695 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
696 ndr->flags = _flags_save_string;
699 uint32_t _flags_save_string = ndr->flags;
700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
701 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
702 ndr->flags = _flags_save_string;
705 if (ndr_flags & NDR_BUFFERS) {
707 uint32_t _flags_save_string = ndr->flags;
708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
710 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
711 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
713 ndr->flags = _flags_save_string;
716 uint32_t _flags_save_string = ndr->flags;
717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
718 if (r->description) {
719 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
720 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
722 ndr->flags = _flags_save_string;
725 uint32_t _flags_save_string = ndr->flags;
726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
731 ndr->flags = _flags_save_string;
734 return NDR_ERR_SUCCESS;
737 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
740 TALLOC_CTX *_mem_save_name_0;
741 uint32_t _ptr_description;
742 TALLOC_CTX *_mem_save_description_0;
743 uint32_t _ptr_comment;
744 TALLOC_CTX *_mem_save_comment_0;
745 if (ndr_flags & NDR_SCALARS) {
746 NDR_CHECK(ndr_pull_align(ndr, 4));
747 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
749 uint32_t _flags_save_string = ndr->flags;
750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
753 NDR_PULL_ALLOC(ndr, r->name);
754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
758 ndr->flags = _flags_save_string;
761 uint32_t _flags_save_string = ndr->flags;
762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
764 if (_ptr_description) {
765 NDR_PULL_ALLOC(ndr, r->description);
766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
768 r->description = NULL;
770 ndr->flags = _flags_save_string;
773 uint32_t _flags_save_string = ndr->flags;
774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
777 NDR_PULL_ALLOC(ndr, r->comment);
778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
782 ndr->flags = _flags_save_string;
785 if (ndr_flags & NDR_BUFFERS) {
787 uint32_t _flags_save_string = ndr->flags;
788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
790 uint32_t _relative_save_offset;
791 _relative_save_offset = ndr->offset;
792 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
793 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
794 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
795 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
797 ndr->offset = _relative_save_offset;
799 ndr->flags = _flags_save_string;
802 uint32_t _flags_save_string = ndr->flags;
803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
804 if (r->description) {
805 uint32_t _relative_save_offset;
806 _relative_save_offset = ndr->offset;
807 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
808 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
809 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
810 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
812 ndr->offset = _relative_save_offset;
814 ndr->flags = _flags_save_string;
817 uint32_t _flags_save_string = ndr->flags;
818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
820 uint32_t _relative_save_offset;
821 _relative_save_offset = ndr->offset;
822 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
823 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
824 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
827 ndr->offset = _relative_save_offset;
829 ndr->flags = _flags_save_string;
832 return NDR_ERR_SUCCESS;
835 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
837 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
839 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
840 ndr_print_ptr(ndr, "name", r->name);
843 ndr_print_string(ndr, "name", r->name);
846 ndr_print_ptr(ndr, "description", r->description);
848 if (r->description) {
849 ndr_print_string(ndr, "description", r->description);
852 ndr_print_ptr(ndr, "comment", r->comment);
855 ndr_print_string(ndr, "comment", r->comment);
861 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
864 return NDR_ERR_SUCCESS;
867 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
872 return NDR_ERR_SUCCESS;
875 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
877 ndr_print_uint32(ndr, name, r);
879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
885 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
886 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
887 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
888 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
889 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
890 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
891 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
892 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
893 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
894 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
898 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
901 return NDR_ERR_SUCCESS;
904 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
909 return NDR_ERR_SUCCESS;
912 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
914 ndr_print_uint32(ndr, name, r);
916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
924 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
928 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
933 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
934 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
935 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
936 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
937 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
938 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
939 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
940 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
944 static enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
946 if (ndr_flags & NDR_SCALARS) {
947 NDR_CHECK(ndr_push_align(ndr, 4));
949 uint32_t _flags_save_string = ndr->flags;
950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
951 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
952 ndr->flags = _flags_save_string;
955 uint32_t _flags_save_string = ndr->flags;
956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
957 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
958 ndr->flags = _flags_save_string;
961 uint32_t _flags_save_string = ndr->flags;
962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
963 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
964 ndr->flags = _flags_save_string;
967 uint32_t _flags_save_string = ndr->flags;
968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
970 ndr->flags = _flags_save_string;
973 uint32_t _flags_save_string = ndr->flags;
974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
976 ndr->flags = _flags_save_string;
979 uint32_t _flags_save_string = ndr->flags;
980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
982 ndr->flags = _flags_save_string;
985 uint32_t _flags_save_string = ndr->flags;
986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
988 ndr->flags = _flags_save_string;
990 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
992 uint32_t _flags_save_string = ndr->flags;
993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
994 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
995 ndr->flags = _flags_save_string;
998 uint32_t _flags_save_string = ndr->flags;
999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1000 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1001 ndr->flags = _flags_save_string;
1004 uint32_t _flags_save_string = ndr->flags;
1005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1006 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1007 ndr->flags = _flags_save_string;
1010 uint32_t _flags_save_string = ndr->flags;
1011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1012 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1013 ndr->flags = _flags_save_string;
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1016 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1021 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1025 if (ndr_flags & NDR_BUFFERS) {
1027 uint32_t _flags_save_string = ndr->flags;
1028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1029 if (r->servername) {
1030 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1031 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1033 ndr->flags = _flags_save_string;
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 if (r->printername) {
1039 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1040 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1042 ndr->flags = _flags_save_string;
1045 uint32_t _flags_save_string = ndr->flags;
1046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1048 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1049 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1051 ndr->flags = _flags_save_string;
1054 uint32_t _flags_save_string = ndr->flags;
1055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1057 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1058 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1060 ndr->flags = _flags_save_string;
1063 uint32_t _flags_save_string = ndr->flags;
1064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1065 if (r->drivername) {
1066 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1067 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1069 ndr->flags = _flags_save_string;
1072 uint32_t _flags_save_string = ndr->flags;
1073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1075 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1076 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1078 ndr->flags = _flags_save_string;
1081 uint32_t _flags_save_string = ndr->flags;
1082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1084 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1085 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1087 ndr->flags = _flags_save_string;
1090 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1092 struct ndr_push *_ndr_devmode;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1094 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1099 uint32_t _flags_save_string = ndr->flags;
1100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1105 ndr->flags = _flags_save_string;
1108 uint32_t _flags_save_string = ndr->flags;
1109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1110 if (r->printprocessor) {
1111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1114 ndr->flags = _flags_save_string;
1117 uint32_t _flags_save_string = ndr->flags;
1118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1123 ndr->flags = _flags_save_string;
1126 uint32_t _flags_save_string = ndr->flags;
1127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1128 if (r->parameters) {
1129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1132 ndr->flags = _flags_save_string;
1135 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1137 struct ndr_push *_ndr_secdesc;
1138 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1139 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1140 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1144 return NDR_ERR_SUCCESS;
1147 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1149 uint32_t _ptr_servername;
1150 TALLOC_CTX *_mem_save_servername_0;
1151 uint32_t _ptr_printername;
1152 TALLOC_CTX *_mem_save_printername_0;
1153 uint32_t _ptr_sharename;
1154 TALLOC_CTX *_mem_save_sharename_0;
1155 uint32_t _ptr_portname;
1156 TALLOC_CTX *_mem_save_portname_0;
1157 uint32_t _ptr_drivername;
1158 TALLOC_CTX *_mem_save_drivername_0;
1159 uint32_t _ptr_comment;
1160 TALLOC_CTX *_mem_save_comment_0;
1161 uint32_t _ptr_location;
1162 TALLOC_CTX *_mem_save_location_0;
1163 uint32_t _ptr_devmode;
1164 TALLOC_CTX *_mem_save_devmode_0;
1165 uint32_t _ptr_sepfile;
1166 TALLOC_CTX *_mem_save_sepfile_0;
1167 uint32_t _ptr_printprocessor;
1168 TALLOC_CTX *_mem_save_printprocessor_0;
1169 uint32_t _ptr_datatype;
1170 TALLOC_CTX *_mem_save_datatype_0;
1171 uint32_t _ptr_parameters;
1172 TALLOC_CTX *_mem_save_parameters_0;
1173 uint32_t _ptr_secdesc;
1174 TALLOC_CTX *_mem_save_secdesc_0;
1175 if (ndr_flags & NDR_SCALARS) {
1176 NDR_CHECK(ndr_pull_align(ndr, 4));
1178 uint32_t _flags_save_string = ndr->flags;
1179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1181 if (_ptr_servername) {
1182 NDR_PULL_ALLOC(ndr, r->servername);
1183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1185 r->servername = NULL;
1187 ndr->flags = _flags_save_string;
1190 uint32_t _flags_save_string = ndr->flags;
1191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1193 if (_ptr_printername) {
1194 NDR_PULL_ALLOC(ndr, r->printername);
1195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1197 r->printername = NULL;
1199 ndr->flags = _flags_save_string;
1202 uint32_t _flags_save_string = ndr->flags;
1203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1205 if (_ptr_sharename) {
1206 NDR_PULL_ALLOC(ndr, r->sharename);
1207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1209 r->sharename = NULL;
1211 ndr->flags = _flags_save_string;
1214 uint32_t _flags_save_string = ndr->flags;
1215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1217 if (_ptr_portname) {
1218 NDR_PULL_ALLOC(ndr, r->portname);
1219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1223 ndr->flags = _flags_save_string;
1226 uint32_t _flags_save_string = ndr->flags;
1227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1229 if (_ptr_drivername) {
1230 NDR_PULL_ALLOC(ndr, r->drivername);
1231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1233 r->drivername = NULL;
1235 ndr->flags = _flags_save_string;
1238 uint32_t _flags_save_string = ndr->flags;
1239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1242 NDR_PULL_ALLOC(ndr, r->comment);
1243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1247 ndr->flags = _flags_save_string;
1250 uint32_t _flags_save_string = ndr->flags;
1251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1253 if (_ptr_location) {
1254 NDR_PULL_ALLOC(ndr, r->location);
1255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1259 ndr->flags = _flags_save_string;
1261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1263 NDR_PULL_ALLOC(ndr, r->devmode);
1264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1269 uint32_t _flags_save_string = ndr->flags;
1270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1273 NDR_PULL_ALLOC(ndr, r->sepfile);
1274 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1278 ndr->flags = _flags_save_string;
1281 uint32_t _flags_save_string = ndr->flags;
1282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1284 if (_ptr_printprocessor) {
1285 NDR_PULL_ALLOC(ndr, r->printprocessor);
1286 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1288 r->printprocessor = NULL;
1290 ndr->flags = _flags_save_string;
1293 uint32_t _flags_save_string = ndr->flags;
1294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1296 if (_ptr_datatype) {
1297 NDR_PULL_ALLOC(ndr, r->datatype);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1302 ndr->flags = _flags_save_string;
1305 uint32_t _flags_save_string = ndr->flags;
1306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1308 if (_ptr_parameters) {
1309 NDR_PULL_ALLOC(ndr, r->parameters);
1310 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1312 r->parameters = NULL;
1314 ndr->flags = _flags_save_string;
1316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1318 NDR_PULL_ALLOC(ndr, r->secdesc);
1319 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1323 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1328 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1332 if (ndr_flags & NDR_BUFFERS) {
1334 uint32_t _flags_save_string = ndr->flags;
1335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1336 if (r->servername) {
1337 uint32_t _relative_save_offset;
1338 _relative_save_offset = ndr->offset;
1339 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1340 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1341 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1342 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1344 ndr->offset = _relative_save_offset;
1346 ndr->flags = _flags_save_string;
1349 uint32_t _flags_save_string = ndr->flags;
1350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1351 if (r->printername) {
1352 uint32_t _relative_save_offset;
1353 _relative_save_offset = ndr->offset;
1354 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1355 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1356 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1357 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1359 ndr->offset = _relative_save_offset;
1361 ndr->flags = _flags_save_string;
1364 uint32_t _flags_save_string = ndr->flags;
1365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1367 uint32_t _relative_save_offset;
1368 _relative_save_offset = ndr->offset;
1369 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1370 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1371 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1372 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1374 ndr->offset = _relative_save_offset;
1376 ndr->flags = _flags_save_string;
1379 uint32_t _flags_save_string = ndr->flags;
1380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1382 uint32_t _relative_save_offset;
1383 _relative_save_offset = ndr->offset;
1384 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1385 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1386 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1387 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1389 ndr->offset = _relative_save_offset;
1391 ndr->flags = _flags_save_string;
1394 uint32_t _flags_save_string = ndr->flags;
1395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 if (r->drivername) {
1397 uint32_t _relative_save_offset;
1398 _relative_save_offset = ndr->offset;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1400 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1404 ndr->offset = _relative_save_offset;
1406 ndr->flags = _flags_save_string;
1409 uint32_t _flags_save_string = ndr->flags;
1410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1412 uint32_t _relative_save_offset;
1413 _relative_save_offset = ndr->offset;
1414 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1415 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1416 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1417 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1419 ndr->offset = _relative_save_offset;
1421 ndr->flags = _flags_save_string;
1424 uint32_t _flags_save_string = ndr->flags;
1425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1427 uint32_t _relative_save_offset;
1428 _relative_save_offset = ndr->offset;
1429 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1430 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1431 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1432 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1434 ndr->offset = _relative_save_offset;
1436 ndr->flags = _flags_save_string;
1439 uint32_t _relative_save_offset;
1440 _relative_save_offset = ndr->offset;
1441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1442 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1443 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1445 struct ndr_pull *_ndr_devmode;
1446 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1448 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1451 ndr->offset = _relative_save_offset;
1454 uint32_t _flags_save_string = ndr->flags;
1455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1457 uint32_t _relative_save_offset;
1458 _relative_save_offset = ndr->offset;
1459 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1460 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1461 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1462 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1464 ndr->offset = _relative_save_offset;
1466 ndr->flags = _flags_save_string;
1469 uint32_t _flags_save_string = ndr->flags;
1470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1471 if (r->printprocessor) {
1472 uint32_t _relative_save_offset;
1473 _relative_save_offset = ndr->offset;
1474 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1475 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1476 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1477 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1479 ndr->offset = _relative_save_offset;
1481 ndr->flags = _flags_save_string;
1484 uint32_t _flags_save_string = ndr->flags;
1485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1487 uint32_t _relative_save_offset;
1488 _relative_save_offset = ndr->offset;
1489 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1490 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1491 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1492 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1494 ndr->offset = _relative_save_offset;
1496 ndr->flags = _flags_save_string;
1499 uint32_t _flags_save_string = ndr->flags;
1500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 if (r->parameters) {
1502 uint32_t _relative_save_offset;
1503 _relative_save_offset = ndr->offset;
1504 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1505 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1506 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1507 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1509 ndr->offset = _relative_save_offset;
1511 ndr->flags = _flags_save_string;
1514 uint32_t _relative_save_offset;
1515 _relative_save_offset = ndr->offset;
1516 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1517 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1518 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1520 struct ndr_pull *_ndr_secdesc;
1521 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1522 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1523 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1526 ndr->offset = _relative_save_offset;
1529 return NDR_ERR_SUCCESS;
1532 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1534 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1536 ndr_print_ptr(ndr, "servername", r->servername);
1538 if (r->servername) {
1539 ndr_print_string(ndr, "servername", r->servername);
1542 ndr_print_ptr(ndr, "printername", r->printername);
1544 if (r->printername) {
1545 ndr_print_string(ndr, "printername", r->printername);
1548 ndr_print_ptr(ndr, "sharename", r->sharename);
1551 ndr_print_string(ndr, "sharename", r->sharename);
1554 ndr_print_ptr(ndr, "portname", r->portname);
1557 ndr_print_string(ndr, "portname", r->portname);
1560 ndr_print_ptr(ndr, "drivername", r->drivername);
1562 if (r->drivername) {
1563 ndr_print_string(ndr, "drivername", r->drivername);
1566 ndr_print_ptr(ndr, "comment", r->comment);
1569 ndr_print_string(ndr, "comment", r->comment);
1572 ndr_print_ptr(ndr, "location", r->location);
1575 ndr_print_string(ndr, "location", r->location);
1578 ndr_print_ptr(ndr, "devmode", r->devmode);
1581 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1584 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1587 ndr_print_string(ndr, "sepfile", r->sepfile);
1590 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1592 if (r->printprocessor) {
1593 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1596 ndr_print_ptr(ndr, "datatype", r->datatype);
1599 ndr_print_string(ndr, "datatype", r->datatype);
1602 ndr_print_ptr(ndr, "parameters", r->parameters);
1604 if (r->parameters) {
1605 ndr_print_string(ndr, "parameters", r->parameters);
1608 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1611 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1614 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1615 ndr_print_uint32(ndr, "priority", r->priority);
1616 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1617 ndr_print_uint32(ndr, "starttime", r->starttime);
1618 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1619 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1620 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1621 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1625 static enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1627 if (ndr_flags & NDR_SCALARS) {
1628 NDR_CHECK(ndr_push_align(ndr, 4));
1629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1631 if (ndr_flags & NDR_BUFFERS) {
1633 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1635 struct ndr_push *_ndr_secdesc;
1636 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1637 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1638 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1642 return NDR_ERR_SUCCESS;
1645 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1647 uint32_t _ptr_secdesc;
1648 TALLOC_CTX *_mem_save_secdesc_0;
1649 if (ndr_flags & NDR_SCALARS) {
1650 NDR_CHECK(ndr_pull_align(ndr, 4));
1651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1653 NDR_PULL_ALLOC(ndr, r->secdesc);
1654 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1659 if (ndr_flags & NDR_BUFFERS) {
1661 uint32_t _relative_save_offset;
1662 _relative_save_offset = ndr->offset;
1663 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1664 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1665 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1667 struct ndr_pull *_ndr_secdesc;
1668 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1669 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1670 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1673 ndr->offset = _relative_save_offset;
1676 return NDR_ERR_SUCCESS;
1679 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1681 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1683 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1686 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1692 static enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1694 if (ndr_flags & NDR_SCALARS) {
1695 NDR_CHECK(ndr_push_align(ndr, 4));
1697 uint32_t _flags_save_string = ndr->flags;
1698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1699 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1700 ndr->flags = _flags_save_string;
1703 uint32_t _flags_save_string = ndr->flags;
1704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1705 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1706 ndr->flags = _flags_save_string;
1708 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1710 if (ndr_flags & NDR_BUFFERS) {
1712 uint32_t _flags_save_string = ndr->flags;
1713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1714 if (r->printername) {
1715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1718 ndr->flags = _flags_save_string;
1721 uint32_t _flags_save_string = ndr->flags;
1722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1723 if (r->servername) {
1724 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1725 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1727 ndr->flags = _flags_save_string;
1730 return NDR_ERR_SUCCESS;
1733 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1735 uint32_t _ptr_printername;
1736 TALLOC_CTX *_mem_save_printername_0;
1737 uint32_t _ptr_servername;
1738 TALLOC_CTX *_mem_save_servername_0;
1739 if (ndr_flags & NDR_SCALARS) {
1740 NDR_CHECK(ndr_pull_align(ndr, 4));
1742 uint32_t _flags_save_string = ndr->flags;
1743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1745 if (_ptr_printername) {
1746 NDR_PULL_ALLOC(ndr, r->printername);
1747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1749 r->printername = NULL;
1751 ndr->flags = _flags_save_string;
1754 uint32_t _flags_save_string = ndr->flags;
1755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1757 if (_ptr_servername) {
1758 NDR_PULL_ALLOC(ndr, r->servername);
1759 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1761 r->servername = NULL;
1763 ndr->flags = _flags_save_string;
1765 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1767 if (ndr_flags & NDR_BUFFERS) {
1769 uint32_t _flags_save_string = ndr->flags;
1770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1771 if (r->printername) {
1772 uint32_t _relative_save_offset;
1773 _relative_save_offset = ndr->offset;
1774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1775 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1776 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1777 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1779 ndr->offset = _relative_save_offset;
1781 ndr->flags = _flags_save_string;
1784 uint32_t _flags_save_string = ndr->flags;
1785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1786 if (r->servername) {
1787 uint32_t _relative_save_offset;
1788 _relative_save_offset = ndr->offset;
1789 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1790 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1791 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1792 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1794 ndr->offset = _relative_save_offset;
1796 ndr->flags = _flags_save_string;
1799 return NDR_ERR_SUCCESS;
1802 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1804 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1806 ndr_print_ptr(ndr, "printername", r->printername);
1808 if (r->printername) {
1809 ndr_print_string(ndr, "printername", r->printername);
1812 ndr_print_ptr(ndr, "servername", r->servername);
1814 if (r->servername) {
1815 ndr_print_string(ndr, "servername", r->servername);
1818 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1822 static enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1824 if (ndr_flags & NDR_SCALARS) {
1825 NDR_CHECK(ndr_push_align(ndr, 4));
1827 uint32_t _flags_save_string = ndr->flags;
1828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1829 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1830 ndr->flags = _flags_save_string;
1833 uint32_t _flags_save_string = ndr->flags;
1834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1835 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1836 ndr->flags = _flags_save_string;
1838 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1842 if (ndr_flags & NDR_BUFFERS) {
1844 uint32_t _flags_save_string = ndr->flags;
1845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1846 if (r->printername) {
1847 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1850 ndr->flags = _flags_save_string;
1853 uint32_t _flags_save_string = ndr->flags;
1854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1856 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1859 ndr->flags = _flags_save_string;
1862 return NDR_ERR_SUCCESS;
1865 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1867 uint32_t _ptr_printername;
1868 TALLOC_CTX *_mem_save_printername_0;
1869 uint32_t _ptr_portname;
1870 TALLOC_CTX *_mem_save_portname_0;
1871 if (ndr_flags & NDR_SCALARS) {
1872 NDR_CHECK(ndr_pull_align(ndr, 4));
1874 uint32_t _flags_save_string = ndr->flags;
1875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1877 if (_ptr_printername) {
1878 NDR_PULL_ALLOC(ndr, r->printername);
1879 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1881 r->printername = NULL;
1883 ndr->flags = _flags_save_string;
1886 uint32_t _flags_save_string = ndr->flags;
1887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1889 if (_ptr_portname) {
1890 NDR_PULL_ALLOC(ndr, r->portname);
1891 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1895 ndr->flags = _flags_save_string;
1897 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1901 if (ndr_flags & NDR_BUFFERS) {
1903 uint32_t _flags_save_string = ndr->flags;
1904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1905 if (r->printername) {
1906 uint32_t _relative_save_offset;
1907 _relative_save_offset = ndr->offset;
1908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1909 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1910 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1913 ndr->offset = _relative_save_offset;
1915 ndr->flags = _flags_save_string;
1918 uint32_t _flags_save_string = ndr->flags;
1919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1921 uint32_t _relative_save_offset;
1922 _relative_save_offset = ndr->offset;
1923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1924 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1925 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1928 ndr->offset = _relative_save_offset;
1930 ndr->flags = _flags_save_string;
1933 return NDR_ERR_SUCCESS;
1936 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1938 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1940 ndr_print_ptr(ndr, "printername", r->printername);
1942 if (r->printername) {
1943 ndr_print_string(ndr, "printername", r->printername);
1946 ndr_print_ptr(ndr, "portname", r->portname);
1949 ndr_print_string(ndr, "portname", r->portname);
1952 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1953 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1954 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1958 static enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1960 if (ndr_flags & NDR_SCALARS) {
1961 NDR_CHECK(ndr_push_align(ndr, 4));
1962 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1964 if (ndr_flags & NDR_BUFFERS) {
1966 return NDR_ERR_SUCCESS;
1969 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
1971 if (ndr_flags & NDR_SCALARS) {
1972 NDR_CHECK(ndr_pull_align(ndr, 4));
1973 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1975 if (ndr_flags & NDR_BUFFERS) {
1977 return NDR_ERR_SUCCESS;
1980 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
1982 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
1984 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1988 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1991 return NDR_ERR_SUCCESS;
1994 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1999 return NDR_ERR_SUCCESS;
2002 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2004 ndr_print_uint32(ndr, name, r);
2006 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2007 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2008 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2009 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2010 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2014 static enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2016 if (ndr_flags & NDR_SCALARS) {
2017 NDR_CHECK(ndr_push_align(ndr, 4));
2019 uint32_t _flags_save_string = ndr->flags;
2020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2022 ndr->flags = _flags_save_string;
2024 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2026 if (ndr_flags & NDR_BUFFERS) {
2028 uint32_t _flags_save_string = ndr->flags;
2029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2031 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2032 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2034 ndr->flags = _flags_save_string;
2037 return NDR_ERR_SUCCESS;
2040 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2043 TALLOC_CTX *_mem_save_guid_0;
2044 if (ndr_flags & NDR_SCALARS) {
2045 NDR_CHECK(ndr_pull_align(ndr, 4));
2047 uint32_t _flags_save_string = ndr->flags;
2048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2051 NDR_PULL_ALLOC(ndr, r->guid);
2052 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2056 ndr->flags = _flags_save_string;
2058 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2060 if (ndr_flags & NDR_BUFFERS) {
2062 uint32_t _flags_save_string = ndr->flags;
2063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2065 uint32_t _relative_save_offset;
2066 _relative_save_offset = ndr->offset;
2067 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2068 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2069 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2070 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2072 ndr->offset = _relative_save_offset;
2074 ndr->flags = _flags_save_string;
2077 return NDR_ERR_SUCCESS;
2080 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2082 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2084 ndr_print_ptr(ndr, "guid", r->guid);
2087 ndr_print_string(ndr, "guid", r->guid);
2090 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2094 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2096 if (ndr_flags & NDR_SCALARS) {
2097 NDR_CHECK(ndr_push_align(ndr, 4));
2098 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2100 if (ndr_flags & NDR_BUFFERS) {
2102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2104 struct ndr_push *_ndr_devmode;
2105 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2106 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2107 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2111 return NDR_ERR_SUCCESS;
2114 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2116 uint32_t _ptr_devmode;
2117 TALLOC_CTX *_mem_save_devmode_0;
2118 if (ndr_flags & NDR_SCALARS) {
2119 NDR_CHECK(ndr_pull_align(ndr, 4));
2120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2122 NDR_PULL_ALLOC(ndr, r->devmode);
2123 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2128 if (ndr_flags & NDR_BUFFERS) {
2130 uint32_t _relative_save_offset;
2131 _relative_save_offset = ndr->offset;
2132 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2133 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2134 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2136 struct ndr_pull *_ndr_devmode;
2137 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2138 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2139 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2142 ndr->offset = _relative_save_offset;
2145 return NDR_ERR_SUCCESS;
2148 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2150 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2152 ndr_print_ptr(ndr, "devmode", r->devmode);
2155 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2161 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2163 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2164 if (ndr_flags & NDR_SCALARS) {
2165 int level = ndr_push_get_switch_value(ndr, r);
2168 NDR_CHECK(ndr_push_align(ndr, 4));
2169 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2170 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2174 NDR_CHECK(ndr_push_align(ndr, 4));
2175 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2176 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2180 NDR_CHECK(ndr_push_align(ndr, 4));
2181 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2182 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2186 NDR_CHECK(ndr_push_align(ndr, 4));
2187 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2188 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2192 NDR_CHECK(ndr_push_align(ndr, 4));
2193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2198 NDR_CHECK(ndr_push_align(ndr, 4));
2199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2200 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2204 NDR_CHECK(ndr_push_align(ndr, 4));
2205 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2210 NDR_CHECK(ndr_push_align(ndr, 4));
2211 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2212 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2216 NDR_CHECK(ndr_push_align(ndr, 4));
2217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2218 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2222 NDR_CHECK(ndr_push_align(ndr, 4));
2223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2224 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2232 if (ndr_flags & NDR_BUFFERS) {
2233 int level = ndr_push_get_switch_value(ndr, r);
2234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2237 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2241 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2245 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2249 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2257 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2264 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2268 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2272 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2280 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2281 return NDR_ERR_SUCCESS;
2284 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2286 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2288 level = ndr_pull_get_switch_value(ndr, r);
2289 if (ndr_flags & NDR_SCALARS) {
2292 NDR_CHECK(ndr_pull_align(ndr, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2298 NDR_CHECK(ndr_pull_align(ndr, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2300 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2304 NDR_CHECK(ndr_pull_align(ndr, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2306 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2310 NDR_CHECK(ndr_pull_align(ndr, 4));
2311 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2312 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2316 NDR_CHECK(ndr_pull_align(ndr, 4));
2317 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2322 NDR_CHECK(ndr_pull_align(ndr, 4));
2323 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2324 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2328 NDR_CHECK(ndr_pull_align(ndr, 4));
2329 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2334 NDR_CHECK(ndr_pull_align(ndr, 4));
2335 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2336 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2340 NDR_CHECK(ndr_pull_align(ndr, 4));
2341 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2342 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2346 NDR_CHECK(ndr_pull_align(ndr, 4));
2347 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2348 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2356 if (ndr_flags & NDR_BUFFERS) {
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2360 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2372 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2376 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2391 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2395 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2403 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2404 return NDR_ERR_SUCCESS;
2407 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2410 level = ndr_print_get_switch_value(ndr, r);
2411 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2414 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2418 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2422 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2426 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2430 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2434 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2438 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2442 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2446 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2450 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2459 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2461 if (ndr_flags & NDR_SCALARS) {
2462 NDR_CHECK(ndr_push_align(ndr, 4));
2463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2466 if (ndr_flags & NDR_BUFFERS) {
2469 struct ndr_push *_ndr_devmode;
2470 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2471 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2472 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2476 return NDR_ERR_SUCCESS;
2479 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2481 uint32_t _ptr_devmode;
2482 TALLOC_CTX *_mem_save_devmode_0;
2483 if (ndr_flags & NDR_SCALARS) {
2484 NDR_CHECK(ndr_pull_align(ndr, 4));
2485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2488 NDR_PULL_ALLOC(ndr, r->devmode);
2493 if (ndr_flags & NDR_BUFFERS) {
2495 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2496 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2498 struct ndr_pull *_ndr_devmode;
2499 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2500 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2501 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2506 return NDR_ERR_SUCCESS;
2509 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2511 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2513 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
2514 ndr_print_ptr(ndr, "devmode", r->devmode);
2517 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2523 static enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2525 if (ndr_flags & NDR_SCALARS) {
2526 NDR_CHECK(ndr_push_align(ndr, 4));
2527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2529 uint32_t _flags_save_string = ndr->flags;
2530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2532 ndr->flags = _flags_save_string;
2535 uint32_t _flags_save_string = ndr->flags;
2536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2538 ndr->flags = _flags_save_string;
2541 uint32_t _flags_save_string = ndr->flags;
2542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2544 ndr->flags = _flags_save_string;
2547 uint32_t _flags_save_string = ndr->flags;
2548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2550 ndr->flags = _flags_save_string;
2553 uint32_t _flags_save_string = ndr->flags;
2554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2556 ndr->flags = _flags_save_string;
2559 uint32_t _flags_save_string = ndr->flags;
2560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2562 ndr->flags = _flags_save_string;
2564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
2565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2569 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2571 if (ndr_flags & NDR_BUFFERS) {
2573 uint32_t _flags_save_string = ndr->flags;
2574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2575 if (r->printer_name) {
2576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2579 ndr->flags = _flags_save_string;
2582 uint32_t _flags_save_string = ndr->flags;
2583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2584 if (r->server_name) {
2585 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2588 ndr->flags = _flags_save_string;
2591 uint32_t _flags_save_string = ndr->flags;
2592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2594 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2597 ndr->flags = _flags_save_string;
2600 uint32_t _flags_save_string = ndr->flags;
2601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2602 if (r->document_name) {
2603 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2606 ndr->flags = _flags_save_string;
2609 uint32_t _flags_save_string = ndr->flags;
2610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2612 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2613 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2615 ndr->flags = _flags_save_string;
2618 uint32_t _flags_save_string = ndr->flags;
2619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2620 if (r->text_status) {
2621 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2622 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2624 ndr->flags = _flags_save_string;
2627 return NDR_ERR_SUCCESS;
2630 static enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2632 uint32_t _ptr_printer_name;
2633 TALLOC_CTX *_mem_save_printer_name_0;
2634 uint32_t _ptr_server_name;
2635 TALLOC_CTX *_mem_save_server_name_0;
2636 uint32_t _ptr_user_name;
2637 TALLOC_CTX *_mem_save_user_name_0;
2638 uint32_t _ptr_document_name;
2639 TALLOC_CTX *_mem_save_document_name_0;
2640 uint32_t _ptr_data_type;
2641 TALLOC_CTX *_mem_save_data_type_0;
2642 uint32_t _ptr_text_status;
2643 TALLOC_CTX *_mem_save_text_status_0;
2644 if (ndr_flags & NDR_SCALARS) {
2645 NDR_CHECK(ndr_pull_align(ndr, 4));
2646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2648 uint32_t _flags_save_string = ndr->flags;
2649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2651 if (_ptr_printer_name) {
2652 NDR_PULL_ALLOC(ndr, r->printer_name);
2653 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2655 r->printer_name = NULL;
2657 ndr->flags = _flags_save_string;
2660 uint32_t _flags_save_string = ndr->flags;
2661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2663 if (_ptr_server_name) {
2664 NDR_PULL_ALLOC(ndr, r->server_name);
2665 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2667 r->server_name = NULL;
2669 ndr->flags = _flags_save_string;
2672 uint32_t _flags_save_string = ndr->flags;
2673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2675 if (_ptr_user_name) {
2676 NDR_PULL_ALLOC(ndr, r->user_name);
2677 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2679 r->user_name = NULL;
2681 ndr->flags = _flags_save_string;
2684 uint32_t _flags_save_string = ndr->flags;
2685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2687 if (_ptr_document_name) {
2688 NDR_PULL_ALLOC(ndr, r->document_name);
2689 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2691 r->document_name = NULL;
2693 ndr->flags = _flags_save_string;
2696 uint32_t _flags_save_string = ndr->flags;
2697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2699 if (_ptr_data_type) {
2700 NDR_PULL_ALLOC(ndr, r->data_type);
2701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2703 r->data_type = NULL;
2705 ndr->flags = _flags_save_string;
2708 uint32_t _flags_save_string = ndr->flags;
2709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2711 if (_ptr_text_status) {
2712 NDR_PULL_ALLOC(ndr, r->text_status);
2713 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2715 r->text_status = NULL;
2717 ndr->flags = _flags_save_string;
2719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
2720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2724 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2726 if (ndr_flags & NDR_BUFFERS) {
2728 uint32_t _flags_save_string = ndr->flags;
2729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2730 if (r->printer_name) {
2731 uint32_t _relative_save_offset;
2732 _relative_save_offset = ndr->offset;
2733 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2734 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2735 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2736 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2738 ndr->offset = _relative_save_offset;
2740 ndr->flags = _flags_save_string;
2743 uint32_t _flags_save_string = ndr->flags;
2744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2745 if (r->server_name) {
2746 uint32_t _relative_save_offset;
2747 _relative_save_offset = ndr->offset;
2748 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2749 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2750 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2751 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2753 ndr->offset = _relative_save_offset;
2755 ndr->flags = _flags_save_string;
2758 uint32_t _flags_save_string = ndr->flags;
2759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2761 uint32_t _relative_save_offset;
2762 _relative_save_offset = ndr->offset;
2763 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2764 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2765 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2766 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2768 ndr->offset = _relative_save_offset;
2770 ndr->flags = _flags_save_string;
2773 uint32_t _flags_save_string = ndr->flags;
2774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2775 if (r->document_name) {
2776 uint32_t _relative_save_offset;
2777 _relative_save_offset = ndr->offset;
2778 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2779 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2780 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2781 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2783 ndr->offset = _relative_save_offset;
2785 ndr->flags = _flags_save_string;
2788 uint32_t _flags_save_string = ndr->flags;
2789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2791 uint32_t _relative_save_offset;
2792 _relative_save_offset = ndr->offset;
2793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2794 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2795 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2798 ndr->offset = _relative_save_offset;
2800 ndr->flags = _flags_save_string;
2803 uint32_t _flags_save_string = ndr->flags;
2804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2805 if (r->text_status) {
2806 uint32_t _relative_save_offset;
2807 _relative_save_offset = ndr->offset;
2808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2809 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2810 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2813 ndr->offset = _relative_save_offset;
2815 ndr->flags = _flags_save_string;
2818 return NDR_ERR_SUCCESS;
2821 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2823 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2825 ndr_print_uint32(ndr, "job_id", r->job_id);
2826 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2828 if (r->printer_name) {
2829 ndr_print_string(ndr, "printer_name", r->printer_name);
2832 ndr_print_ptr(ndr, "server_name", r->server_name);
2834 if (r->server_name) {
2835 ndr_print_string(ndr, "server_name", r->server_name);
2838 ndr_print_ptr(ndr, "user_name", r->user_name);
2841 ndr_print_string(ndr, "user_name", r->user_name);
2844 ndr_print_ptr(ndr, "document_name", r->document_name);
2846 if (r->document_name) {
2847 ndr_print_string(ndr, "document_name", r->document_name);
2850 ndr_print_ptr(ndr, "data_type", r->data_type);
2853 ndr_print_string(ndr, "data_type", r->data_type);
2856 ndr_print_ptr(ndr, "text_status", r->text_status);
2858 if (r->text_status) {
2859 ndr_print_string(ndr, "text_status", r->text_status);
2862 ndr_print_uint32(ndr, "status", r->status);
2863 ndr_print_uint32(ndr, "priority", r->priority);
2864 ndr_print_uint32(ndr, "position", r->position);
2865 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2866 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2867 ndr_print_spoolss_Time(ndr, "time", &r->time);
2871 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
2873 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2874 if (ndr_flags & NDR_SCALARS) {
2875 int level = ndr_push_get_switch_value(ndr, r);
2878 NDR_CHECK(ndr_push_align(ndr, 4));
2879 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2880 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2894 if (ndr_flags & NDR_BUFFERS) {
2895 int level = ndr_push_get_switch_value(ndr, r);
2896 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2899 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2913 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2914 return NDR_ERR_SUCCESS;
2917 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
2919 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2921 level = ndr_pull_get_switch_value(ndr, r);
2922 if (ndr_flags & NDR_SCALARS) {
2925 NDR_CHECK(ndr_pull_align(ndr, 4));
2926 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2927 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2941 if (ndr_flags & NDR_BUFFERS) {
2942 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2945 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2959 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2960 return NDR_ERR_SUCCESS;
2963 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
2966 level = ndr_print_get_switch_value(ndr, r);
2967 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
2970 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
2985 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
2987 if (ndr_flags & NDR_SCALARS) {
2988 NDR_CHECK(ndr_push_align(ndr, 4));
2989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
2990 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
2991 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
2993 if (ndr_flags & NDR_BUFFERS) {
2994 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
2996 return NDR_ERR_SUCCESS;
2999 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
3001 if (ndr_flags & NDR_SCALARS) {
3002 NDR_CHECK(ndr_pull_align(ndr, 4));
3003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
3004 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
3005 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
3007 if (ndr_flags & NDR_BUFFERS) {
3008 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
3010 return NDR_ERR_SUCCESS;
3013 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
3015 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
3017 ndr_print_uint32(ndr, "level", r->level);
3018 ndr_print_set_switch_value(ndr, &r->info, r->level);
3019 ndr_print_spoolss_JobInfo(ndr, "info", &r->info);
3023 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
3025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3026 return NDR_ERR_SUCCESS;
3029 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
3032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3034 return NDR_ERR_SUCCESS;
3037 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
3039 const char *val = NULL;
3042 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
3043 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
3044 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
3045 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
3046 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
3047 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
3048 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
3050 ndr_print_enum(ndr, name, "ENUM", val, r);
3053 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
3055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3056 return NDR_ERR_SUCCESS;
3059 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
3062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3064 return NDR_ERR_SUCCESS;
3067 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
3069 const char *val = NULL;
3072 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
3073 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
3074 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
3075 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
3076 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
3078 ndr_print_enum(ndr, name, "ENUM", val, r);
3081 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
3083 if (ndr_flags & NDR_SCALARS) {
3084 NDR_CHECK(ndr_push_align(ndr, 4));
3085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3086 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
3088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
3089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
3090 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
3091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
3092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
3094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
3095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
3096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
3097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
3098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
3099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
3100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
3101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
3102 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
3103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
3104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
3105 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
3106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
3107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
3108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
3109 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
3110 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
3111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
3112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
3113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
3115 if (ndr_flags & NDR_BUFFERS) {
3116 if (r->servername) {
3117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3122 if (r->printername) {
3123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3129 return NDR_ERR_SUCCESS;
3132 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
3134 uint32_t _ptr_servername;
3135 TALLOC_CTX *_mem_save_servername_0;
3136 uint32_t _ptr_printername;
3137 TALLOC_CTX *_mem_save_printername_0;
3138 if (ndr_flags & NDR_SCALARS) {
3139 NDR_CHECK(ndr_pull_align(ndr, 4));
3140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3141 if (_ptr_servername) {
3142 NDR_PULL_ALLOC(ndr, r->servername);
3144 r->servername = NULL;
3146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3147 if (_ptr_printername) {
3148 NDR_PULL_ALLOC(ndr, r->printername);
3150 r->printername = NULL;
3152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
3153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
3154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
3155 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
3156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
3157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
3159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
3160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
3161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
3162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
3163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
3164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
3165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
3166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
3167 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
3168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
3169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
3170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
3171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
3172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
3173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
3174 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
3175 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
3176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
3177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
3178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
3180 if (ndr_flags & NDR_BUFFERS) {
3181 if (r->servername) {
3182 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3183 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3184 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3185 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3186 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3187 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
3189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3193 if (r->printername) {
3194 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3195 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3196 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3197 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3198 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3199 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
3201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3206 return NDR_ERR_SUCCESS;
3209 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
3211 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
3213 ndr_print_ptr(ndr, "servername", r->servername);
3215 if (r->servername) {
3216 ndr_print_string(ndr, "servername", r->servername);
3219 ndr_print_ptr(ndr, "printername", r->printername);
3221 if (r->printername) {
3222 ndr_print_string(ndr, "printername", r->printername);
3225 ndr_print_uint32(ndr, "cjobs", r->cjobs);
3226 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
3227 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
3228 ndr_print_spoolss_Time(ndr, "time", &r->time);
3229 ndr_print_uint32(ndr, "global_counter", r->global_counter);
3230 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3231 ndr_print_uint32(ndr, "version", r->version);
3232 ndr_print_uint32(ndr, "free_build", r->free_build);
3233 ndr_print_uint32(ndr, "spooling", r->spooling);
3234 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
3235 ndr_print_uint32(ndr, "session_counter", r->session_counter);
3236 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
3237 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
3238 ndr_print_uint32(ndr, "job_error", r->job_error);
3239 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
3240 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
3241 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
3242 ndr_print_uint32(ndr, "change_id", r->change_id);
3243 ndr_print_WERROR(ndr, "last_error", r->last_error);
3244 ndr_print_uint32(ndr, "status", r->status);
3245 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
3246 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
3247 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
3248 ndr_print_uint16(ndr, "processor_level", r->processor_level);
3249 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
3250 ndr_print_uint32(ndr, "reserved2", r->reserved2);
3251 ndr_print_uint32(ndr, "reserved3", r->reserved3);
3255 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
3257 if (ndr_flags & NDR_SCALARS) {
3258 NDR_CHECK(ndr_push_align(ndr, 4));
3259 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
3260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
3261 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
3262 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
3264 if (ndr_flags & NDR_BUFFERS) {
3266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
3267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
3269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3271 if (r->description) {
3272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
3273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
3275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3281 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3284 return NDR_ERR_SUCCESS;
3287 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
3290 TALLOC_CTX *_mem_save_name_0;
3291 uint32_t _ptr_description;
3292 TALLOC_CTX *_mem_save_description_0;
3293 uint32_t _ptr_comment;
3294 TALLOC_CTX *_mem_save_comment_0;
3295 if (ndr_flags & NDR_SCALARS) {
3296 NDR_CHECK(ndr_pull_align(ndr, 4));
3297 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
3298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
3300 NDR_PULL_ALLOC(ndr, r->name);
3304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
3305 if (_ptr_description) {
3306 NDR_PULL_ALLOC(ndr, r->description);
3308 r->description = NULL;
3310 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
3312 NDR_PULL_ALLOC(ndr, r->comment);
3317 if (ndr_flags & NDR_BUFFERS) {
3319 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3320 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
3321 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
3322 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
3323 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
3324 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
3326 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
3327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
3328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
3330 if (r->description) {
3331 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
3332 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
3333 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
3334 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
3335 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
3336 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->description), ndr_get_array_length(ndr, &r->description));
3338 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
3339 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
3340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
3343 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
3344 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
3345 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
3346 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
3347 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
3348 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
3350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
3351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
3352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
3355 return NDR_ERR_SUCCESS;
3358 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
3360 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
3362 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
3363 ndr_print_ptr(ndr, "name", r->name);
3366 ndr_print_string(ndr, "name", r->name);
3369 ndr_print_ptr(ndr, "description", r->description);
3371 if (r->description) {
3372 ndr_print_string(ndr, "description", r->description);
3375 ndr_print_ptr(ndr, "comment", r->comment);
3378 ndr_print_string(ndr, "comment", r->comment);
3384 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
3386 if (ndr_flags & NDR_SCALARS) {
3387 NDR_CHECK(ndr_push_align(ndr, 4));
3388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
3391 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
3392 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
3393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
3394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
3395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
3397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
3398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
3399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
3400 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
3401 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
3404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
3405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
3406 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
3407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
3408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
3410 if (ndr_flags & NDR_BUFFERS) {
3411 if (r->servername) {
3412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3417 if (r->printername) {
3418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
3425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
3427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
3431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
3433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3435 if (r->drivername) {
3436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
3437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
3439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
3449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
3451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3455 struct ndr_push *_ndr_devmode;
3456 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3457 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3458 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
3463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
3465 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3467 if (r->printprocessor) {
3468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
3469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
3471 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
3475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
3477 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3479 if (r->parameters) {
3480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
3481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
3483 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3487 struct ndr_push *_ndr_secdesc;
3488 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3489 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3490 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3494 return NDR_ERR_SUCCESS;
3497 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
3499 uint32_t _ptr_servername;
3500 TALLOC_CTX *_mem_save_servername_0;
3501 uint32_t _ptr_printername;
3502 TALLOC_CTX *_mem_save_printername_0;
3503 uint32_t _ptr_sharename;
3504 TALLOC_CTX *_mem_save_sharename_0;
3505 uint32_t _ptr_portname;
3506 TALLOC_CTX *_mem_save_portname_0;
3507 uint32_t _ptr_drivername;
3508 TALLOC_CTX *_mem_save_drivername_0;
3509 uint32_t _ptr_comment;
3510 TALLOC_CTX *_mem_save_comment_0;
3511 uint32_t _ptr_location;
3512 TALLOC_CTX *_mem_save_location_0;
3513 uint32_t _ptr_devmode;
3514 TALLOC_CTX *_mem_save_devmode_0;
3515 uint32_t _ptr_sepfile;
3516 TALLOC_CTX *_mem_save_sepfile_0;
3517 uint32_t _ptr_printprocessor;
3518 TALLOC_CTX *_mem_save_printprocessor_0;
3519 uint32_t _ptr_datatype;
3520 TALLOC_CTX *_mem_save_datatype_0;
3521 uint32_t _ptr_parameters;
3522 TALLOC_CTX *_mem_save_parameters_0;
3523 uint32_t _ptr_secdesc;
3524 TALLOC_CTX *_mem_save_secdesc_0;
3525 if (ndr_flags & NDR_SCALARS) {
3526 NDR_CHECK(ndr_pull_align(ndr, 4));
3527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3528 if (_ptr_servername) {
3529 NDR_PULL_ALLOC(ndr, r->servername);
3531 r->servername = NULL;
3533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3534 if (_ptr_printername) {
3535 NDR_PULL_ALLOC(ndr, r->printername);
3537 r->printername = NULL;
3539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
3540 if (_ptr_sharename) {
3541 NDR_PULL_ALLOC(ndr, r->sharename);
3543 r->sharename = NULL;
3545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
3546 if (_ptr_portname) {
3547 NDR_PULL_ALLOC(ndr, r->portname);
3551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
3552 if (_ptr_drivername) {
3553 NDR_PULL_ALLOC(ndr, r->drivername);
3555 r->drivername = NULL;
3557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
3559 NDR_PULL_ALLOC(ndr, r->comment);
3563 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
3564 if (_ptr_location) {
3565 NDR_PULL_ALLOC(ndr, r->location);
3569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3571 NDR_PULL_ALLOC(ndr, r->devmode);
3575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
3577 NDR_PULL_ALLOC(ndr, r->sepfile);
3581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
3582 if (_ptr_printprocessor) {
3583 NDR_PULL_ALLOC(ndr, r->printprocessor);
3585 r->printprocessor = NULL;
3587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
3588 if (_ptr_datatype) {
3589 NDR_PULL_ALLOC(ndr, r->datatype);
3593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3594 if (_ptr_parameters) {
3595 NDR_PULL_ALLOC(ndr, r->parameters);
3597 r->parameters = NULL;
3599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3601 NDR_PULL_ALLOC(ndr, r->secdesc);
3605 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
3608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
3609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
3610 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
3611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
3612 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
3614 if (ndr_flags & NDR_BUFFERS) {
3615 if (r->servername) {
3616 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3617 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3618 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3619 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3620 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3621 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
3623 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3624 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3627 if (r->printername) {
3628 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3629 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3630 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3631 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3632 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3633 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
3635 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3636 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3640 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
3641 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
3642 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
3643 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
3644 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
3645 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sharename), ndr_get_array_length(ndr, &r->sharename));
3647 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
3648 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
3649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
3652 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3653 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
3654 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
3655 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
3656 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
3657 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
3659 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
3660 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
3661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
3663 if (r->drivername) {
3664 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3665 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
3666 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
3667 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
3668 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
3669 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->drivername), ndr_get_array_length(ndr, &r->drivername));
3671 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
3672 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
3673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
3676 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
3677 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
3678 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
3679 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
3680 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
3681 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
3683 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
3684 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
3685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
3688 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
3689 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
3690 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
3691 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
3692 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
3693 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->location), ndr_get_array_length(ndr, &r->location));
3695 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
3696 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
3697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
3700 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3701 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3703 struct ndr_pull *_ndr_devmode;
3704 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3705 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3706 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
3708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3711 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
3712 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
3713 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
3714 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
3715 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
3716 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sepfile), ndr_get_array_length(ndr, &r->sepfile));
3718 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
3719 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
3720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
3722 if (r->printprocessor) {
3723 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3724 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
3725 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
3726 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
3727 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
3728 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printprocessor), ndr_get_array_length(ndr, &r->printprocessor));
3730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
3731 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
3732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
3735 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
3736 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
3737 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
3738 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
3739 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
3740 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
3742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
3743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
3744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
3746 if (r->parameters) {
3747 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3748 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3749 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
3750 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
3751 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
3752 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
3754 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
3755 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
3756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3759 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3760 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3762 struct ndr_pull *_ndr_secdesc;
3763 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3764 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3765 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3770 return NDR_ERR_SUCCESS;
3773 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
3775 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
3777 ndr_print_ptr(ndr, "servername", r->servername);
3779 if (r->servername) {
3780 ndr_print_string(ndr, "servername", r->servername);
3783 ndr_print_ptr(ndr, "printername", r->printername);
3785 if (r->printername) {
3786 ndr_print_string(ndr, "printername", r->printername);
3789 ndr_print_ptr(ndr, "sharename", r->sharename);
3792 ndr_print_string(ndr, "sharename", r->sharename);
3795 ndr_print_ptr(ndr, "portname", r->portname);
3798 ndr_print_string(ndr, "portname", r->portname);
3801 ndr_print_ptr(ndr, "drivername", r->drivername);
3803 if (r->drivername) {
3804 ndr_print_string(ndr, "drivername", r->drivername);
3807 ndr_print_ptr(ndr, "comment", r->comment);
3810 ndr_print_string(ndr, "comment", r->comment);
3813 ndr_print_ptr(ndr, "location", r->location);
3816 ndr_print_string(ndr, "location", r->location);
3819 ndr_print_ptr(ndr, "devmode", r->devmode);
3822 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3825 ndr_print_ptr(ndr, "sepfile", r->sepfile);
3828 ndr_print_string(ndr, "sepfile", r->sepfile);
3831 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
3833 if (r->printprocessor) {
3834 ndr_print_string(ndr, "printprocessor", r->printprocessor);
3837 ndr_print_ptr(ndr, "datatype", r->datatype);
3840 ndr_print_string(ndr, "datatype", r->datatype);
3843 ndr_print_ptr(ndr, "parameters", r->parameters);
3845 if (r->parameters) {
3846 ndr_print_string(ndr, "parameters", r->parameters);
3849 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3852 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3855 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
3856 ndr_print_uint32(ndr, "priority", r->priority);
3857 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
3858 ndr_print_uint32(ndr, "starttime", r->starttime);
3859 ndr_print_uint32(ndr, "untiltime", r->untiltime);
3860 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
3861 ndr_print_uint32(ndr, "cjobs", r->cjobs);
3862 ndr_print_uint32(ndr, "averageppm", r->averageppm);
3866 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
3868 if (ndr_flags & NDR_SCALARS) {
3869 NDR_CHECK(ndr_push_align(ndr, 4));
3870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
3872 if (ndr_flags & NDR_BUFFERS) {
3874 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3877 return NDR_ERR_SUCCESS;
3880 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
3882 uint32_t _ptr_secdesc;
3883 TALLOC_CTX *_mem_save_secdesc_0;
3884 if (ndr_flags & NDR_SCALARS) {
3885 NDR_CHECK(ndr_pull_align(ndr, 4));
3886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3888 NDR_PULL_ALLOC(ndr, r->secdesc);
3893 if (ndr_flags & NDR_BUFFERS) {
3895 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3896 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3897 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3901 return NDR_ERR_SUCCESS;
3904 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
3906 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
3908 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3911 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3917 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
3919 if (ndr_flags & NDR_SCALARS) {
3920 NDR_CHECK(ndr_push_align(ndr, 4));
3921 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3922 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3923 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3925 if (ndr_flags & NDR_BUFFERS) {
3926 if (r->printername) {
3927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3932 if (r->servername) {
3933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3939 return NDR_ERR_SUCCESS;
3942 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
3944 uint32_t _ptr_printername;
3945 TALLOC_CTX *_mem_save_printername_0;
3946 uint32_t _ptr_servername;
3947 TALLOC_CTX *_mem_save_servername_0;
3948 if (ndr_flags & NDR_SCALARS) {
3949 NDR_CHECK(ndr_pull_align(ndr, 4));
3950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3951 if (_ptr_printername) {
3952 NDR_PULL_ALLOC(ndr, r->printername);
3954 r->printername = NULL;
3956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3957 if (_ptr_servername) {
3958 NDR_PULL_ALLOC(ndr, r->servername);
3960 r->servername = NULL;
3962 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3964 if (ndr_flags & NDR_BUFFERS) {
3965 if (r->printername) {
3966 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3967 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3968 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3969 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3970 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3971 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
3973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3977 if (r->servername) {
3978 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3979 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3980 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3981 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3982 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3983 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
3985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3990 return NDR_ERR_SUCCESS;
3993 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
3995 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
3997 ndr_print_ptr(ndr, "printername", r->printername);
3999 if (r->printername) {
4000 ndr_print_string(ndr, "printername", r->printername);
4003 ndr_print_ptr(ndr, "servername", r->servername);
4005 if (r->servername) {
4006 ndr_print_string(ndr, "servername", r->servername);
4009 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4013 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
4015 if (ndr_flags & NDR_SCALARS) {
4016 NDR_CHECK(ndr_push_align(ndr, 4));
4017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
4018 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
4019 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
4020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
4021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
4023 if (ndr_flags & NDR_BUFFERS) {
4024 if (r->printername) {
4025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4034 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4037 return NDR_ERR_SUCCESS;
4040 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
4042 uint32_t _ptr_printername;
4043 TALLOC_CTX *_mem_save_printername_0;
4044 uint32_t _ptr_portname;
4045 TALLOC_CTX *_mem_save_portname_0;
4046 if (ndr_flags & NDR_SCALARS) {
4047 NDR_CHECK(ndr_pull_align(ndr, 4));
4048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
4049 if (_ptr_printername) {
4050 NDR_PULL_ALLOC(ndr, r->printername);
4052 r->printername = NULL;
4054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
4055 if (_ptr_portname) {
4056 NDR_PULL_ALLOC(ndr, r->portname);
4060 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
4061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
4062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
4064 if (ndr_flags & NDR_BUFFERS) {
4065 if (r->printername) {
4066 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
4067 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
4068 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
4069 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
4070 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
4071 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
4073 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
4074 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
4075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
4078 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
4079 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
4080 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
4081 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
4082 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
4083 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
4085 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
4086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
4087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
4090 return NDR_ERR_SUCCESS;
4093 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
4095 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
4097 ndr_print_ptr(ndr, "printername", r->printername);
4099 if (r->printername) {
4100 ndr_print_string(ndr, "printername", r->printername);
4103 ndr_print_ptr(ndr, "portname", r->portname);
4106 ndr_print_string(ndr, "portname", r->portname);
4109 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4110 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
4111 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
4115 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
4117 if (ndr_flags & NDR_SCALARS) {
4118 NDR_CHECK(ndr_push_align(ndr, 4));
4119 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
4121 if (ndr_flags & NDR_BUFFERS) {
4123 return NDR_ERR_SUCCESS;
4126 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
4128 if (ndr_flags & NDR_SCALARS) {
4129 NDR_CHECK(ndr_pull_align(ndr, 4));
4130 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
4132 if (ndr_flags & NDR_BUFFERS) {
4134 return NDR_ERR_SUCCESS;
4137 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
4139 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
4141 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
4145 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
4147 if (ndr_flags & NDR_SCALARS) {
4148 NDR_CHECK(ndr_push_align(ndr, 4));
4149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
4150 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
4152 if (ndr_flags & NDR_BUFFERS) {
4154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4160 return NDR_ERR_SUCCESS;
4163 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
4166 TALLOC_CTX *_mem_save_guid_0;
4167 if (ndr_flags & NDR_SCALARS) {
4168 NDR_CHECK(ndr_pull_align(ndr, 4));
4169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
4171 NDR_PULL_ALLOC(ndr, r->guid);
4175 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
4177 if (ndr_flags & NDR_BUFFERS) {
4179 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4180 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
4181 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
4182 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
4183 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
4184 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guid), ndr_get_array_length(ndr, &r->guid));
4186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
4187 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
4188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
4191 return NDR_ERR_SUCCESS;
4194 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
4196 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
4198 ndr_print_ptr(ndr, "guid", r->guid);
4201 ndr_print_string(ndr, "guid", r->guid);
4204 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
4208 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
4210 if (ndr_flags & NDR_SCALARS) {
4211 int level = ndr_push_get_switch_value(ndr, r);
4212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
4219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
4223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
4227 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
4231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
4235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
4239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
4243 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
4247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
4251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
4259 if (ndr_flags & NDR_BUFFERS) {
4260 int level = ndr_push_get_switch_value(ndr, r);
4264 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4270 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4276 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4282 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
4288 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4294 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4300 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4306 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4312 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4318 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4327 return NDR_ERR_SUCCESS;
4330 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
4334 TALLOC_CTX *_mem_save_info0_0;
4335 TALLOC_CTX *_mem_save_info1_0;
4336 TALLOC_CTX *_mem_save_info2_0;
4337 TALLOC_CTX *_mem_save_info3_0;
4338 TALLOC_CTX *_mem_save_info4_0;
4339 TALLOC_CTX *_mem_save_info5_0;
4340 TALLOC_CTX *_mem_save_info6_0;
4341 TALLOC_CTX *_mem_save_info7_0;
4342 TALLOC_CTX *_mem_save_info8_0;
4343 TALLOC_CTX *_mem_save_info9_0;
4344 level = ndr_pull_get_switch_value(ndr, r);
4345 if (ndr_flags & NDR_SCALARS) {
4346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4347 if (_level != level) {
4348 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4352 uint32_t _ptr_info0;
4353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
4355 NDR_PULL_ALLOC(ndr, r->info0);
4362 uint32_t _ptr_info1;
4363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
4365 NDR_PULL_ALLOC(ndr, r->info1);
4372 uint32_t _ptr_info2;
4373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
4375 NDR_PULL_ALLOC(ndr, r->info2);
4382 uint32_t _ptr_info3;
4383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
4385 NDR_PULL_ALLOC(ndr, r->info3);
4392 uint32_t _ptr_info4;
4393 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
4395 NDR_PULL_ALLOC(ndr, r->info4);
4402 uint32_t _ptr_info5;
4403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
4405 NDR_PULL_ALLOC(ndr, r->info5);
4412 uint32_t _ptr_info6;
4413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
4415 NDR_PULL_ALLOC(ndr, r->info6);
4422 uint32_t _ptr_info7;
4423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
4425 NDR_PULL_ALLOC(ndr, r->info7);
4432 uint32_t _ptr_info8;
4433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
4435 NDR_PULL_ALLOC(ndr, r->info8);
4442 uint32_t _ptr_info9;
4443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
4445 NDR_PULL_ALLOC(ndr, r->info9);
4456 if (ndr_flags & NDR_BUFFERS) {
4460 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
4461 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
4462 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
4469 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
4470 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
4471 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
4478 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
4479 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
4480 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
4487 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
4488 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
4489 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
4490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
4496 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
4497 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
4498 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
4505 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
4506 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
4507 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
4514 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
4515 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
4516 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
4523 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
4524 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
4525 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
4532 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
4533 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
4534 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
4541 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
4542 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
4543 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
4553 return NDR_ERR_SUCCESS;
4556 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
4559 level = ndr_print_get_switch_value(ndr, r);
4560 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
4563 ndr_print_ptr(ndr, "info0", r->info0);
4566 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
4572 ndr_print_ptr(ndr, "info1", r->info1);
4575 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
4581 ndr_print_ptr(ndr, "info2", r->info2);
4584 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
4590 ndr_print_ptr(ndr, "info3", r->info3);
4593 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
4599 ndr_print_ptr(ndr, "info4", r->info4);
4602 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
4608 ndr_print_ptr(ndr, "info5", r->info5);
4611 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
4617 ndr_print_ptr(ndr, "info6", r->info6);
4620 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
4626 ndr_print_ptr(ndr, "info7", r->info7);
4629 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
4635 ndr_print_ptr(ndr, "info8", r->info8);
4638 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
4644 ndr_print_ptr(ndr, "info9", r->info9);
4647 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
4658 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
4660 if (ndr_flags & NDR_SCALARS) {
4661 NDR_CHECK(ndr_push_align(ndr, 4));
4662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
4663 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
4664 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4666 if (ndr_flags & NDR_BUFFERS) {
4667 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4669 return NDR_ERR_SUCCESS;
4672 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
4674 if (ndr_flags & NDR_SCALARS) {
4675 NDR_CHECK(ndr_pull_align(ndr, 4));
4676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
4677 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
4678 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4680 if (ndr_flags & NDR_BUFFERS) {
4681 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4683 return NDR_ERR_SUCCESS;
4686 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
4688 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
4690 ndr_print_uint32(ndr, "level", r->level);
4691 ndr_print_set_switch_value(ndr, &r->info, r->level);
4692 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
4696 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
4698 if (ndr_flags & NDR_SCALARS) {
4699 NDR_CHECK(ndr_push_align(ndr, 4));
4700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
4702 uint32_t _flags_save_string_array = ndr->flags;
4703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4704 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
4705 ndr->flags = _flags_save_string_array;
4708 if (ndr_flags & NDR_BUFFERS) {
4710 return NDR_ERR_SUCCESS;
4713 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
4715 if (ndr_flags & NDR_SCALARS) {
4716 NDR_CHECK(ndr_pull_align(ndr, 4));
4717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
4719 uint32_t _flags_save_string_array = ndr->flags;
4720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4721 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
4722 ndr->flags = _flags_save_string_array;
4725 if (ndr_flags & NDR_BUFFERS) {
4727 return NDR_ERR_SUCCESS;
4730 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
4732 ndr_print_struct(ndr, name, "spoolss_StringArray");
4734 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
4735 ndr_print_string_array(ndr, "string", r->string);
4739 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
4741 if (ndr_flags & NDR_SCALARS) {
4742 NDR_CHECK(ndr_push_align(ndr, 4));
4743 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4745 if (ndr_flags & NDR_BUFFERS) {
4746 if (r->driver_name) {
4747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4750 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4753 return NDR_ERR_SUCCESS;
4756 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
4758 uint32_t _ptr_driver_name;
4759 TALLOC_CTX *_mem_save_driver_name_0;
4760 if (ndr_flags & NDR_SCALARS) {
4761 NDR_CHECK(ndr_pull_align(ndr, 4));
4762 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4763 if (_ptr_driver_name) {
4764 NDR_PULL_ALLOC(ndr, r->driver_name);
4766 r->driver_name = NULL;
4769 if (ndr_flags & NDR_BUFFERS) {
4770 if (r->driver_name) {
4771 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4772 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4773 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4774 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4775 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4776 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
4778 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4779 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4780 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4783 return NDR_ERR_SUCCESS;
4786 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
4788 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
4790 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4792 if (r->driver_name) {
4793 ndr_print_string(ndr, "driver_name", r->driver_name);
4799 static enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
4801 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4802 return NDR_ERR_SUCCESS;
4805 static enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
4808 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4810 return NDR_ERR_SUCCESS;
4813 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
4815 const char *val = NULL;
4818 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
4819 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
4820 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
4821 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
4823 ndr_print_enum(ndr, name, "ENUM", val, r);
4826 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
4828 if (ndr_flags & NDR_SCALARS) {
4829 NDR_CHECK(ndr_push_align(ndr, 4));
4830 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
4831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
4833 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
4834 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
4835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
4837 if (ndr_flags & NDR_BUFFERS) {
4838 if (r->driver_name) {
4839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4842 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4844 if (r->architecture) {
4845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4848 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4850 if (r->driver_path) {
4851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4854 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4860 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4862 if (r->config_file) {
4863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4866 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4869 return NDR_ERR_SUCCESS;
4872 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
4874 uint32_t _ptr_driver_name;
4875 TALLOC_CTX *_mem_save_driver_name_0;
4876 uint32_t _ptr_architecture;
4877 TALLOC_CTX *_mem_save_architecture_0;
4878 uint32_t _ptr_driver_path;
4879 TALLOC_CTX *_mem_save_driver_path_0;
4880 uint32_t _ptr_data_file;
4881 TALLOC_CTX *_mem_save_data_file_0;
4882 uint32_t _ptr_config_file;
4883 TALLOC_CTX *_mem_save_config_file_0;
4884 if (ndr_flags & NDR_SCALARS) {
4885 NDR_CHECK(ndr_pull_align(ndr, 4));
4886 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
4887 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4888 if (_ptr_driver_name) {
4889 NDR_PULL_ALLOC(ndr, r->driver_name);
4891 r->driver_name = NULL;
4893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
4894 if (_ptr_architecture) {
4895 NDR_PULL_ALLOC(ndr, r->architecture);
4897 r->architecture = NULL;
4899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
4900 if (_ptr_driver_path) {
4901 NDR_PULL_ALLOC(ndr, r->driver_path);
4903 r->driver_path = NULL;
4905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
4906 if (_ptr_data_file) {
4907 NDR_PULL_ALLOC(ndr, r->data_file);
4909 r->data_file = NULL;
4911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
4912 if (_ptr_config_file) {
4913 NDR_PULL_ALLOC(ndr, r->config_file);
4915 r->config_file = NULL;
4918 if (ndr_flags & NDR_BUFFERS) {
4919 if (r->driver_name) {
4920 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4921 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4922 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4923 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4924 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4925 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
4927 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4928 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4929 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4931 if (r->architecture) {
4932 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4933 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4934 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
4935 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
4936 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
4937 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
4939 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
4940 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
4941 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4943 if (r->driver_path) {
4944 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4945 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4946 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
4947 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
4948 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
4949 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
4951 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
4952 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
4953 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4956 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4957 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4958 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
4959 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
4960 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
4961 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
4963 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
4964 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
4965 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4967 if (r->config_file) {
4968 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4969 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4970 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
4971 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
4972 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
4973 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
4975 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
4976 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
4977 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4980 return NDR_ERR_SUCCESS;
4983 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
4985 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
4987 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4988 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4990 if (r->driver_name) {
4991 ndr_print_string(ndr, "driver_name", r->driver_name);
4994 ndr_print_ptr(ndr, "architecture", r->architecture);
4996 if (r->architecture) {
4997 ndr_print_string(ndr, "architecture", r->architecture);
5000 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5002 if (r->driver_path) {
5003 ndr_print_string(ndr, "driver_path", r->driver_path);
5006 ndr_print_ptr(ndr, "data_file", r->data_file);
5009 ndr_print_string(ndr, "data_file", r->data_file);
5012 ndr_print_ptr(ndr, "config_file", r->config_file);
5014 if (r->config_file) {
5015 ndr_print_string(ndr, "config_file", r->config_file);
5021 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
5023 if (ndr_flags & NDR_SCALARS) {
5024 NDR_CHECK(ndr_push_align(ndr, 4));
5025 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5026 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5027 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5028 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5029 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5037 if (ndr_flags & NDR_BUFFERS) {
5038 if (r->driver_name) {
5039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5042 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5044 if (r->architecture) {
5045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5048 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5050 if (r->driver_path) {
5051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5054 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5060 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5062 if (r->config_file) {
5063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5065 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5066 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5071 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5072 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5074 if (r->monitor_name) {
5075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5078 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5080 if (r->default_datatype) {
5081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5084 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5086 if (r->dependent_files) {
5087 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5090 return NDR_ERR_SUCCESS;
5093 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
5095 uint32_t _ptr_driver_name;
5096 TALLOC_CTX *_mem_save_driver_name_0;
5097 uint32_t _ptr_architecture;
5098 TALLOC_CTX *_mem_save_architecture_0;
5099 uint32_t _ptr_driver_path;
5100 TALLOC_CTX *_mem_save_driver_path_0;
5101 uint32_t _ptr_data_file;
5102 TALLOC_CTX *_mem_save_data_file_0;
5103 uint32_t _ptr_config_file;
5104 TALLOC_CTX *_mem_save_config_file_0;
5105 uint32_t _ptr_help_file;
5106 TALLOC_CTX *_mem_save_help_file_0;
5107 uint32_t _ptr_monitor_name;
5108 TALLOC_CTX *_mem_save_monitor_name_0;
5109 uint32_t _ptr_default_datatype;
5110 TALLOC_CTX *_mem_save_default_datatype_0;
5111 uint32_t _ptr_dependent_files;
5112 TALLOC_CTX *_mem_save_dependent_files_0;
5113 if (ndr_flags & NDR_SCALARS) {
5114 NDR_CHECK(ndr_pull_align(ndr, 4));
5115 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5117 if (_ptr_driver_name) {
5118 NDR_PULL_ALLOC(ndr, r->driver_name);
5120 r->driver_name = NULL;
5122 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5123 if (_ptr_architecture) {
5124 NDR_PULL_ALLOC(ndr, r->architecture);
5126 r->architecture = NULL;
5128 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5129 if (_ptr_driver_path) {
5130 NDR_PULL_ALLOC(ndr, r->driver_path);
5132 r->driver_path = NULL;
5134 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5135 if (_ptr_data_file) {
5136 NDR_PULL_ALLOC(ndr, r->data_file);
5138 r->data_file = NULL;
5140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5141 if (_ptr_config_file) {
5142 NDR_PULL_ALLOC(ndr, r->config_file);
5144 r->config_file = NULL;
5146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5147 if (_ptr_help_file) {
5148 NDR_PULL_ALLOC(ndr, r->help_file);
5150 r->help_file = NULL;
5152 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5153 if (_ptr_monitor_name) {
5154 NDR_PULL_ALLOC(ndr, r->monitor_name);
5156 r->monitor_name = NULL;
5158 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5159 if (_ptr_default_datatype) {
5160 NDR_PULL_ALLOC(ndr, r->default_datatype);
5162 r->default_datatype = NULL;
5164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5165 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5166 if (_ptr_dependent_files) {
5167 NDR_PULL_ALLOC(ndr, r->dependent_files);
5169 r->dependent_files = NULL;
5172 if (ndr_flags & NDR_BUFFERS) {
5173 if (r->driver_name) {
5174 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5175 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5176 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5177 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5178 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5179 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5181 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5182 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5183 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5185 if (r->architecture) {
5186 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5187 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5188 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5189 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5190 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5191 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
5193 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5194 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5195 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5197 if (r->driver_path) {
5198 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5199 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5200 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5201 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5202 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5203 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
5205 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5206 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5210 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5211 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5212 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5213 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5214 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5215 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
5217 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5218 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5219 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5221 if (r->config_file) {
5222 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5223 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5224 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5225 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5226 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5227 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
5229 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5230 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5231 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5234 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5235 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5236 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5237 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5238 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5239 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
5241 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5242 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5243 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5245 if (r->monitor_name) {
5246 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5247 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5248 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5249 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5250 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5251 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
5253 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5254 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5255 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5257 if (r->default_datatype) {
5258 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5259 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5260 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5261 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5262 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5263 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
5265 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5266 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5269 if (r->dependent_files) {
5270 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5271 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5272 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5273 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5276 return NDR_ERR_SUCCESS;
5279 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
5281 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
5283 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5284 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5286 if (r->driver_name) {
5287 ndr_print_string(ndr, "driver_name", r->driver_name);
5290 ndr_print_ptr(ndr, "architecture", r->architecture);
5292 if (r->architecture) {
5293 ndr_print_string(ndr, "architecture", r->architecture);
5296 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5298 if (r->driver_path) {
5299 ndr_print_string(ndr, "driver_path", r->driver_path);
5302 ndr_print_ptr(ndr, "data_file", r->data_file);
5305 ndr_print_string(ndr, "data_file", r->data_file);
5308 ndr_print_ptr(ndr, "config_file", r->config_file);
5310 if (r->config_file) {
5311 ndr_print_string(ndr, "config_file", r->config_file);
5314 ndr_print_ptr(ndr, "help_file", r->help_file);
5317 ndr_print_string(ndr, "help_file", r->help_file);
5320 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5322 if (r->monitor_name) {
5323 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5326 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5328 if (r->default_datatype) {
5329 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5332 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
5333 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5335 if (r->dependent_files) {
5336 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5342 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
5344 if (ndr_flags & NDR_SCALARS) {
5345 NDR_CHECK(ndr_push_align(ndr, 4));
5346 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5347 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5348 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5350 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5351 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5355 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5357 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5360 if (ndr_flags & NDR_BUFFERS) {
5361 if (r->driver_name) {
5362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5363 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5365 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5367 if (r->architecture) {
5368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5370 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5371 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5373 if (r->driver_path) {
5374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5376 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5377 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5382 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5385 if (r->config_file) {
5386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5394 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5395 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5397 if (r->monitor_name) {
5398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5401 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5403 if (r->default_datatype) {
5404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5407 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5409 if (r->dependent_files) {
5410 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5412 if (r->previous_names) {
5413 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5416 return NDR_ERR_SUCCESS;
5419 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
5421 uint32_t _ptr_driver_name;
5422 TALLOC_CTX *_mem_save_driver_name_0;
5423 uint32_t _ptr_architecture;
5424 TALLOC_CTX *_mem_save_architecture_0;
5425 uint32_t _ptr_driver_path;
5426 TALLOC_CTX *_mem_save_driver_path_0;
5427 uint32_t _ptr_data_file;
5428 TALLOC_CTX *_mem_save_data_file_0;
5429 uint32_t _ptr_config_file;
5430 TALLOC_CTX *_mem_save_config_file_0;
5431 uint32_t _ptr_help_file;
5432 TALLOC_CTX *_mem_save_help_file_0;
5433 uint32_t _ptr_monitor_name;
5434 TALLOC_CTX *_mem_save_monitor_name_0;
5435 uint32_t _ptr_default_datatype;
5436 TALLOC_CTX *_mem_save_default_datatype_0;
5437 uint32_t _ptr_dependent_files;
5438 TALLOC_CTX *_mem_save_dependent_files_0;
5439 uint32_t _ptr_previous_names;
5440 TALLOC_CTX *_mem_save_previous_names_0;
5441 if (ndr_flags & NDR_SCALARS) {
5442 NDR_CHECK(ndr_pull_align(ndr, 4));
5443 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5445 if (_ptr_driver_name) {
5446 NDR_PULL_ALLOC(ndr, r->driver_name);
5448 r->driver_name = NULL;
5450 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5451 if (_ptr_architecture) {
5452 NDR_PULL_ALLOC(ndr, r->architecture);
5454 r->architecture = NULL;
5456 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5457 if (_ptr_driver_path) {
5458 NDR_PULL_ALLOC(ndr, r->driver_path);
5460 r->driver_path = NULL;
5462 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5463 if (_ptr_data_file) {
5464 NDR_PULL_ALLOC(ndr, r->data_file);
5466 r->data_file = NULL;
5468 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5469 if (_ptr_config_file) {
5470 NDR_PULL_ALLOC(ndr, r->config_file);
5472 r->config_file = NULL;
5474 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5475 if (_ptr_help_file) {
5476 NDR_PULL_ALLOC(ndr, r->help_file);
5478 r->help_file = NULL;
5480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5481 if (_ptr_monitor_name) {
5482 NDR_PULL_ALLOC(ndr, r->monitor_name);
5484 r->monitor_name = NULL;
5486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5487 if (_ptr_default_datatype) {
5488 NDR_PULL_ALLOC(ndr, r->default_datatype);
5490 r->default_datatype = NULL;
5492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5493 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5494 if (_ptr_dependent_files) {
5495 NDR_PULL_ALLOC(ndr, r->dependent_files);
5497 r->dependent_files = NULL;
5499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5500 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5501 if (_ptr_previous_names) {
5502 NDR_PULL_ALLOC(ndr, r->previous_names);
5504 r->previous_names = NULL;
5507 if (ndr_flags & NDR_BUFFERS) {
5508 if (r->driver_name) {
5509 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5510 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5511 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5512 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5513 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5514 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5516 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5517 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5518 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5520 if (r->architecture) {
5521 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5522 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5523 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5524 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5525 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5526 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
5528 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5529 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5532 if (r->driver_path) {
5533 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5534 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5535 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5536 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5537 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5538 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
5540 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5541 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5542 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5545 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5546 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5547 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5548 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5549 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5550 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
5552 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5553 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5556 if (r->config_file) {
5557 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5558 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5559 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5560 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5561 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5562 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
5564 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5565 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5566 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5569 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5570 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5571 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5572 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5573 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5574 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
5576 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5577 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5578 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5580 if (r->monitor_name) {
5581 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5582 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5583 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5584 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5585 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5586 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
5588 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5589 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5592 if (r->default_datatype) {
5593 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5594 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5595 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5596 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5597 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5598 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
5600 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5601 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5602 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5604 if (r->dependent_files) {
5605 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5606 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5607 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5610 if (r->previous_names) {
5611 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5612 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
5613 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5614 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
5617 return NDR_ERR_SUCCESS;
5620 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
5622 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
5624 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5625 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5627 if (r->driver_name) {
5628 ndr_print_string(ndr, "driver_name", r->driver_name);
5631 ndr_print_ptr(ndr, "architecture", r->architecture);
5633 if (r->architecture) {
5634 ndr_print_string(ndr, "architecture", r->architecture);
5637 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5639 if (r->driver_path) {
5640 ndr_print_string(ndr, "driver_path", r->driver_path);
5643 ndr_print_ptr(ndr, "data_file", r->data_file);
5646 ndr_print_string(ndr, "data_file", r->data_file);
5649 ndr_print_ptr(ndr, "config_file", r->config_file);
5651 if (r->config_file) {
5652 ndr_print_string(ndr, "config_file", r->config_file);
5655 ndr_print_ptr(ndr, "help_file", r->help_file);
5658 ndr_print_string(ndr, "help_file", r->help_file);
5661 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5663 if (r->monitor_name) {
5664 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5667 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5669 if (r->default_datatype) {
5670 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5673 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
5674 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5676 if (r->dependent_files) {
5677 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5680 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
5681 ndr_print_ptr(ndr, "previous_names", r->previous_names);
5683 if (r->previous_names) {
5684 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
5690 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
5692 if (ndr_flags & NDR_SCALARS) {
5693 NDR_CHECK(ndr_push_align(ndr, 8));
5694 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5695 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5696 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5697 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5698 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5699 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5701 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5703 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5705 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5707 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
5708 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
5709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
5710 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
5711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
5712 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
5714 if (ndr_flags & NDR_BUFFERS) {
5715 if (r->driver_name) {
5716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5719 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5721 if (r->architecture) {
5722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5725 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5727 if (r->driver_path) {
5728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5730 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5731 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5736 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5737 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5739 if (r->config_file) {
5740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5742 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5743 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5749 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5751 if (r->monitor_name) {
5752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5757 if (r->default_datatype) {
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5760 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5761 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5763 if (r->dependent_files) {
5764 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5766 if (r->previous_names) {
5767 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5769 if (r->manufacturer_name) {
5770 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5771 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5772 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5773 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5775 if (r->manufacturer_url) {
5776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5778 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5779 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5781 if (r->hardware_id) {
5782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5785 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5791 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5794 return NDR_ERR_SUCCESS;
5797 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
5799 uint32_t _ptr_driver_name;
5800 TALLOC_CTX *_mem_save_driver_name_0;
5801 uint32_t _ptr_architecture;
5802 TALLOC_CTX *_mem_save_architecture_0;
5803 uint32_t _ptr_driver_path;
5804 TALLOC_CTX *_mem_save_driver_path_0;
5805 uint32_t _ptr_data_file;
5806 TALLOC_CTX *_mem_save_data_file_0;
5807 uint32_t _ptr_config_file;
5808 TALLOC_CTX *_mem_save_config_file_0;
5809 uint32_t _ptr_help_file;
5810 TALLOC_CTX *_mem_save_help_file_0;
5811 uint32_t _ptr_monitor_name;
5812 TALLOC_CTX *_mem_save_monitor_name_0;
5813 uint32_t _ptr_default_datatype;
5814 TALLOC_CTX *_mem_save_default_datatype_0;
5815 uint32_t _ptr_dependent_files;
5816 TALLOC_CTX *_mem_save_dependent_files_0;
5817 uint32_t _ptr_previous_names;
5818 TALLOC_CTX *_mem_save_previous_names_0;
5819 uint32_t _ptr_manufacturer_name;
5820 TALLOC_CTX *_mem_save_manufacturer_name_0;
5821 uint32_t _ptr_manufacturer_url;
5822 TALLOC_CTX *_mem_save_manufacturer_url_0;
5823 uint32_t _ptr_hardware_id;
5824 TALLOC_CTX *_mem_save_hardware_id_0;
5825 uint32_t _ptr_provider;
5826 TALLOC_CTX *_mem_save_provider_0;
5827 if (ndr_flags & NDR_SCALARS) {
5828 NDR_CHECK(ndr_pull_align(ndr, 8));
5829 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5830 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5831 if (_ptr_driver_name) {
5832 NDR_PULL_ALLOC(ndr, r->driver_name);
5834 r->driver_name = NULL;
5836 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5837 if (_ptr_architecture) {
5838 NDR_PULL_ALLOC(ndr, r->architecture);
5840 r->architecture = NULL;
5842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5843 if (_ptr_driver_path) {
5844 NDR_PULL_ALLOC(ndr, r->driver_path);
5846 r->driver_path = NULL;
5848 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5849 if (_ptr_data_file) {
5850 NDR_PULL_ALLOC(ndr, r->data_file);
5852 r->data_file = NULL;
5854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5855 if (_ptr_config_file) {
5856 NDR_PULL_ALLOC(ndr, r->config_file);
5858 r->config_file = NULL;
5860 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5861 if (_ptr_help_file) {
5862 NDR_PULL_ALLOC(ndr, r->help_file);
5864 r->help_file = NULL;
5866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5867 if (_ptr_monitor_name) {
5868 NDR_PULL_ALLOC(ndr, r->monitor_name);
5870 r->monitor_name = NULL;
5872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5873 if (_ptr_default_datatype) {
5874 NDR_PULL_ALLOC(ndr, r->default_datatype);
5876 r->default_datatype = NULL;
5878 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5879 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5880 if (_ptr_dependent_files) {
5881 NDR_PULL_ALLOC(ndr, r->dependent_files);
5883 r->dependent_files = NULL;
5885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5887 if (_ptr_previous_names) {
5888 NDR_PULL_ALLOC(ndr, r->previous_names);
5890 r->previous_names = NULL;
5892 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
5893 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
5894 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
5895 if (_ptr_manufacturer_name) {
5896 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
5898 r->manufacturer_name = NULL;
5900 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
5901 if (_ptr_manufacturer_url) {
5902 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
5904 r->manufacturer_url = NULL;
5906 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
5907 if (_ptr_hardware_id) {
5908 NDR_PULL_ALLOC(ndr, r->hardware_id);
5910 r->hardware_id = NULL;
5912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
5913 if (_ptr_provider) {
5914 NDR_PULL_ALLOC(ndr, r->provider);
5919 if (ndr_flags & NDR_BUFFERS) {
5920 if (r->driver_name) {
5921 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5922 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5923 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5924 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5925 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5926 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5928 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5929 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5932 if (r->architecture) {
5933 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5934 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5935 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5936 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5937 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5938 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
5940 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5941 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5942 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5944 if (r->driver_path) {
5945 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5946 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5947 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5948 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5949 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5950 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
5952 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5953 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5954 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5957 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5958 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5959 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5960 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5961 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5962 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
5964 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5965 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5966 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5968 if (r->config_file) {
5969 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5970 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5971 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5972 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5973 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5974 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
5976 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5977 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5978 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5981 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5982 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5983 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5984 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5985 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5986 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
5988 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5989 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5990 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5992 if (r->monitor_name) {
5993 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5994 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5995 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5996 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5997 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5998 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
6000 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6001 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6004 if (r->default_datatype) {
6005 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6006 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6007 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6008 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6009 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6010 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
6012 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6013 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6014 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6016 if (r->dependent_files) {
6017 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6018 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6019 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6020 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6022 if (r->previous_names) {
6023 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6024 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6025 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6026 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6028 if (r->manufacturer_name) {
6029 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6030 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6031 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6032 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6033 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6034 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
6036 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6037 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6038 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6040 if (r->manufacturer_url) {
6041 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6042 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6043 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6044 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6045 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6046 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
6048 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6049 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6052 if (r->hardware_id) {
6053 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6054 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6055 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6056 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6057 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6058 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
6060 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6061 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6062 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6065 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6066 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6067 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6068 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6069 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6070 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
6072 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6073 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6074 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6077 return NDR_ERR_SUCCESS;
6080 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
6082 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
6084 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6085 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6087 if (r->driver_name) {
6088 ndr_print_string(ndr, "driver_name", r->driver_name);
6091 ndr_print_ptr(ndr, "architecture", r->architecture);
6093 if (r->architecture) {
6094 ndr_print_string(ndr, "architecture", r->architecture);
6097 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6099 if (r->driver_path) {
6100 ndr_print_string(ndr, "driver_path", r->driver_path);
6103 ndr_print_ptr(ndr, "data_file", r->data_file);
6106 ndr_print_string(ndr, "data_file", r->data_file);
6109 ndr_print_ptr(ndr, "config_file", r->config_file);
6111 if (r->config_file) {
6112 ndr_print_string(ndr, "config_file", r->config_file);
6115 ndr_print_ptr(ndr, "help_file", r->help_file);
6118 ndr_print_string(ndr, "help_file", r->help_file);
6121 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6123 if (r->monitor_name) {
6124 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6127 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6129 if (r->default_datatype) {
6130 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6133 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
6134 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6136 if (r->dependent_files) {
6137 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6140 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
6141 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6143 if (r->previous_names) {
6144 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6147 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6148 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6149 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6151 if (r->manufacturer_name) {
6152 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6155 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6157 if (r->manufacturer_url) {
6158 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6161 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6163 if (r->hardware_id) {
6164 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6167 ndr_print_ptr(ndr, "provider", r->provider);
6170 ndr_print_string(ndr, "provider", r->provider);
6176 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
6178 if (ndr_flags & NDR_SCALARS) {
6179 NDR_CHECK(ndr_push_align(ndr, 8));
6180 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
6181 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6182 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
6183 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
6184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
6185 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
6186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
6187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
6188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
6189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
6191 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
6193 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
6194 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
6195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
6196 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
6197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
6198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
6199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
6201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
6203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
6204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
6205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6206 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
6207 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
6208 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
6210 if (ndr_flags & NDR_BUFFERS) {
6211 if (r->driver_name) {
6212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6213 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6215 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6217 if (r->architecture) {
6218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6223 if (r->driver_path) {
6224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6233 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6235 if (r->config_file) {
6236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6238 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6239 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6245 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6247 if (r->monitor_name) {
6248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6251 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6253 if (r->default_datatype) {
6254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6257 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6259 if (r->dependent_files) {
6260 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6262 if (r->previous_names) {
6263 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6265 if (r->manufacturer_name) {
6266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6271 if (r->manufacturer_url) {
6272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6277 if (r->hardware_id) {
6278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6281 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6287 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6289 if (r->print_processor) {
6290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6293 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6295 if (r->vendor_setup) {
6296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6298 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6299 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6301 if (r->color_profiles) {
6302 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6307 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6308 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6310 if (r->core_driver_dependencies) {
6311 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6314 return NDR_ERR_SUCCESS;
6317 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
6319 uint32_t _ptr_driver_name;
6320 TALLOC_CTX *_mem_save_driver_name_0;
6321 uint32_t _ptr_architecture;
6322 TALLOC_CTX *_mem_save_architecture_0;
6323 uint32_t _ptr_driver_path;
6324 TALLOC_CTX *_mem_save_driver_path_0;
6325 uint32_t _ptr_data_file;
6326 TALLOC_CTX *_mem_save_data_file_0;
6327 uint32_t _ptr_config_file;
6328 TALLOC_CTX *_mem_save_config_file_0;
6329 uint32_t _ptr_help_file;
6330 TALLOC_CTX *_mem_save_help_file_0;
6331 uint32_t _ptr_monitor_name;
6332 TALLOC_CTX *_mem_save_monitor_name_0;
6333 uint32_t _ptr_default_datatype;
6334 TALLOC_CTX *_mem_save_default_datatype_0;
6335 uint32_t _ptr_dependent_files;
6336 TALLOC_CTX *_mem_save_dependent_files_0;
6337 uint32_t _ptr_previous_names;
6338 TALLOC_CTX *_mem_save_previous_names_0;
6339 uint32_t _ptr_manufacturer_name;
6340 TALLOC_CTX *_mem_save_manufacturer_name_0;
6341 uint32_t _ptr_manufacturer_url;
6342 TALLOC_CTX *_mem_save_manufacturer_url_0;
6343 uint32_t _ptr_hardware_id;
6344 TALLOC_CTX *_mem_save_hardware_id_0;
6345 uint32_t _ptr_provider;
6346 TALLOC_CTX *_mem_save_provider_0;
6347 uint32_t _ptr_print_processor;
6348 TALLOC_CTX *_mem_save_print_processor_0;
6349 uint32_t _ptr_vendor_setup;
6350 TALLOC_CTX *_mem_save_vendor_setup_0;
6351 uint32_t _ptr_color_profiles;
6352 TALLOC_CTX *_mem_save_color_profiles_0;
6353 uint32_t _ptr_inf_path;
6354 TALLOC_CTX *_mem_save_inf_path_0;
6355 uint32_t _ptr_core_driver_dependencies;
6356 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
6357 if (ndr_flags & NDR_SCALARS) {
6358 NDR_CHECK(ndr_pull_align(ndr, 8));
6359 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
6360 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6361 if (_ptr_driver_name) {
6362 NDR_PULL_ALLOC(ndr, r->driver_name);
6364 r->driver_name = NULL;
6366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
6367 if (_ptr_architecture) {
6368 NDR_PULL_ALLOC(ndr, r->architecture);
6370 r->architecture = NULL;
6372 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
6373 if (_ptr_driver_path) {
6374 NDR_PULL_ALLOC(ndr, r->driver_path);
6376 r->driver_path = NULL;
6378 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
6379 if (_ptr_data_file) {
6380 NDR_PULL_ALLOC(ndr, r->data_file);
6382 r->data_file = NULL;
6384 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
6385 if (_ptr_config_file) {
6386 NDR_PULL_ALLOC(ndr, r->config_file);
6388 r->config_file = NULL;
6390 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
6391 if (_ptr_help_file) {
6392 NDR_PULL_ALLOC(ndr, r->help_file);
6394 r->help_file = NULL;
6396 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
6397 if (_ptr_monitor_name) {
6398 NDR_PULL_ALLOC(ndr, r->monitor_name);
6400 r->monitor_name = NULL;
6402 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
6403 if (_ptr_default_datatype) {
6404 NDR_PULL_ALLOC(ndr, r->default_datatype);
6406 r->default_datatype = NULL;
6408 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
6409 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
6410 if (_ptr_dependent_files) {
6411 NDR_PULL_ALLOC(ndr, r->dependent_files);
6413 r->dependent_files = NULL;
6415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
6416 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
6417 if (_ptr_previous_names) {
6418 NDR_PULL_ALLOC(ndr, r->previous_names);
6420 r->previous_names = NULL;
6422 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
6423 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
6424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
6425 if (_ptr_manufacturer_name) {
6426 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
6428 r->manufacturer_name = NULL;
6430 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
6431 if (_ptr_manufacturer_url) {
6432 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
6434 r->manufacturer_url = NULL;
6436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
6437 if (_ptr_hardware_id) {
6438 NDR_PULL_ALLOC(ndr, r->hardware_id);
6440 r->hardware_id = NULL;
6442 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
6443 if (_ptr_provider) {
6444 NDR_PULL_ALLOC(ndr, r->provider);
6448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6449 if (_ptr_print_processor) {
6450 NDR_PULL_ALLOC(ndr, r->print_processor);
6452 r->print_processor = NULL;
6454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
6455 if (_ptr_vendor_setup) {
6456 NDR_PULL_ALLOC(ndr, r->vendor_setup);
6458 r->vendor_setup = NULL;
6460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
6461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
6462 if (_ptr_color_profiles) {
6463 NDR_PULL_ALLOC(ndr, r->color_profiles);
6465 r->color_profiles = NULL;
6467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
6468 if (_ptr_inf_path) {
6469 NDR_PULL_ALLOC(ndr, r->inf_path);
6473 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
6474 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
6475 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
6476 if (_ptr_core_driver_dependencies) {
6477 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
6479 r->core_driver_dependencies = NULL;
6481 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
6482 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
6484 if (ndr_flags & NDR_BUFFERS) {
6485 if (r->driver_name) {
6486 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6487 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6488 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6489 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6490 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6491 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
6493 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6494 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6497 if (r->architecture) {
6498 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
6499 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
6500 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
6501 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
6502 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
6503 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
6505 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
6506 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
6507 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
6509 if (r->driver_path) {
6510 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6511 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
6512 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
6513 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
6514 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
6515 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
6517 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
6518 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
6519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
6522 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6523 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
6524 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
6525 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
6526 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
6527 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
6529 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
6530 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
6531 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
6533 if (r->config_file) {
6534 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6535 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
6536 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
6537 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
6538 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
6539 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
6541 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
6542 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
6543 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
6546 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6547 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
6548 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
6549 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
6550 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
6551 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
6553 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
6554 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
6555 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
6557 if (r->monitor_name) {
6558 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6559 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
6560 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
6561 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
6562 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
6563 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
6565 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6566 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6569 if (r->default_datatype) {
6570 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6571 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6572 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6573 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6574 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6575 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
6577 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6578 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6579 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6581 if (r->dependent_files) {
6582 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6583 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6584 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6585 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6587 if (r->previous_names) {
6588 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6589 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6590 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6591 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6593 if (r->manufacturer_name) {
6594 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6595 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6596 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6597 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6598 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6599 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
6601 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6602 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6605 if (r->manufacturer_url) {
6606 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6607 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6608 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6609 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6610 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6611 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
6613 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6614 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6615 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6617 if (r->hardware_id) {
6618 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6619 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6620 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6621 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6622 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6623 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
6625 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6626 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6627 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6630 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6631 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6632 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6633 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6634 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6635 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
6637 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6641 if (r->print_processor) {
6642 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6643 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6644 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6645 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6646 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6647 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
6649 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6650 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6653 if (r->vendor_setup) {
6654 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
6655 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
6656 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
6657 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
6658 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
6659 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
6661 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
6662 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
6663 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
6665 if (r->color_profiles) {
6666 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
6667 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
6668 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6669 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
6672 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6673 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
6674 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
6675 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
6676 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
6677 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
6679 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
6680 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
6681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
6683 if (r->core_driver_dependencies) {
6684 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
6685 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
6686 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
6690 return NDR_ERR_SUCCESS;
6693 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
6695 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
6697 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6698 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6700 if (r->driver_name) {
6701 ndr_print_string(ndr, "driver_name", r->driver_name);
6704 ndr_print_ptr(ndr, "architecture", r->architecture);
6706 if (r->architecture) {
6707 ndr_print_string(ndr, "architecture", r->architecture);
6710 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6712 if (r->driver_path) {
6713 ndr_print_string(ndr, "driver_path", r->driver_path);
6716 ndr_print_ptr(ndr, "data_file", r->data_file);
6719 ndr_print_string(ndr, "data_file", r->data_file);
6722 ndr_print_ptr(ndr, "config_file", r->config_file);
6724 if (r->config_file) {
6725 ndr_print_string(ndr, "config_file", r->config_file);
6728 ndr_print_ptr(ndr, "help_file", r->help_file);
6731 ndr_print_string(ndr, "help_file", r->help_file);
6734 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6736 if (r->monitor_name) {
6737 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6740 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6742 if (r->default_datatype) {
6743 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6746 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
6747 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6749 if (r->dependent_files) {
6750 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6753 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
6754 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6756 if (r->previous_names) {
6757 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6760 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6761 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6762 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6764 if (r->manufacturer_name) {
6765 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6768 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6770 if (r->manufacturer_url) {
6771 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6774 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6776 if (r->hardware_id) {
6777 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6780 ndr_print_ptr(ndr, "provider", r->provider);
6783 ndr_print_string(ndr, "provider", r->provider);
6786 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6788 if (r->print_processor) {
6789 ndr_print_string(ndr, "print_processor", r->print_processor);
6792 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
6794 if (r->vendor_setup) {
6795 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
6798 ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
6799 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
6801 if (r->color_profiles) {
6802 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
6805 ndr_print_ptr(ndr, "inf_path", r->inf_path);
6808 ndr_print_string(ndr, "inf_path", r->inf_path);
6811 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
6812 ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
6813 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6815 if (r->core_driver_dependencies) {
6816 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6819 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
6820 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
6824 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
6826 if (ndr_flags & NDR_SCALARS) {
6827 int level = ndr_push_get_switch_value(ndr, r);
6828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6831 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6843 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6847 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6851 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6855 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6858 if (ndr_flags & NDR_BUFFERS) {
6859 int level = ndr_push_get_switch_value(ndr, r);
6863 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6869 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6875 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6881 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6887 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
6893 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6898 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6901 return NDR_ERR_SUCCESS;
6904 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
6908 TALLOC_CTX *_mem_save_info1_0;
6909 TALLOC_CTX *_mem_save_info2_0;
6910 TALLOC_CTX *_mem_save_info3_0;
6911 TALLOC_CTX *_mem_save_info4_0;
6912 TALLOC_CTX *_mem_save_info6_0;
6913 TALLOC_CTX *_mem_save_info8_0;
6914 level = ndr_pull_get_switch_value(ndr, r);
6915 if (ndr_flags & NDR_SCALARS) {
6916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6917 if (_level != level) {
6918 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6922 uint32_t _ptr_info1;
6923 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6925 NDR_PULL_ALLOC(ndr, r->info1);
6932 uint32_t _ptr_info2;
6933 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6935 NDR_PULL_ALLOC(ndr, r->info2);
6942 uint32_t _ptr_info3;
6943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6945 NDR_PULL_ALLOC(ndr, r->info3);
6952 uint32_t _ptr_info4;
6953 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6955 NDR_PULL_ALLOC(ndr, r->info4);
6962 uint32_t _ptr_info6;
6963 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
6965 NDR_PULL_ALLOC(ndr, r->info6);
6972 uint32_t _ptr_info8;
6973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
6975 NDR_PULL_ALLOC(ndr, r->info8);
6982 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6985 if (ndr_flags & NDR_BUFFERS) {
6989 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6990 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6991 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6992 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
6998 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
6999 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7000 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7001 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7007 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7008 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7009 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
7010 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7016 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7017 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7018 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7025 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7026 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7027 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
7028 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7034 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7035 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7036 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7037 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7042 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7045 return NDR_ERR_SUCCESS;
7048 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
7051 level = ndr_print_get_switch_value(ndr, r);
7052 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
7055 ndr_print_ptr(ndr, "info1", r->info1);
7058 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
7064 ndr_print_ptr(ndr, "info2", r->info2);
7067 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
7073 ndr_print_ptr(ndr, "info3", r->info3);
7076 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
7082 ndr_print_ptr(ndr, "info4", r->info4);
7085 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
7091 ndr_print_ptr(ndr, "info6", r->info6);
7094 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
7100 ndr_print_ptr(ndr, "info8", r->info8);
7103 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
7109 ndr_print_bad_level(ndr, name, level);
7113 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
7115 if (ndr_flags & NDR_SCALARS) {
7116 NDR_CHECK(ndr_push_align(ndr, 4));
7117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7118 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7119 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7121 if (ndr_flags & NDR_BUFFERS) {
7122 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7124 return NDR_ERR_SUCCESS;
7127 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
7129 if (ndr_flags & NDR_SCALARS) {
7130 NDR_CHECK(ndr_pull_align(ndr, 4));
7131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7132 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7133 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7135 if (ndr_flags & NDR_BUFFERS) {
7136 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7138 return NDR_ERR_SUCCESS;
7141 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
7143 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
7145 ndr_print_uint32(ndr, "level", r->level);
7146 ndr_print_set_switch_value(ndr, &r->info, r->level);
7147 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
7151 static enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
7153 if (ndr_flags & NDR_SCALARS) {
7154 NDR_CHECK(ndr_push_align(ndr, 4));
7156 uint32_t _flags_save_string = ndr->flags;
7157 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7158 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7159 ndr->flags = _flags_save_string;
7162 if (ndr_flags & NDR_BUFFERS) {
7164 uint32_t _flags_save_string = ndr->flags;
7165 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7166 if (r->driver_name) {
7167 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7168 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7170 ndr->flags = _flags_save_string;
7173 return NDR_ERR_SUCCESS;
7176 static enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
7178 uint32_t _ptr_driver_name;
7179 TALLOC_CTX *_mem_save_driver_name_0;
7180 if (ndr_flags & NDR_SCALARS) {
7181 NDR_CHECK(ndr_pull_align(ndr, 4));
7183 uint32_t _flags_save_string = ndr->flags;
7184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7185 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7186 if (_ptr_driver_name) {
7187 NDR_PULL_ALLOC(ndr, r->driver_name);
7188 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7190 r->driver_name = NULL;
7192 ndr->flags = _flags_save_string;
7195 if (ndr_flags & NDR_BUFFERS) {
7197 uint32_t _flags_save_string = ndr->flags;
7198 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7199 if (r->driver_name) {
7200 uint32_t _relative_save_offset;
7201 _relative_save_offset = ndr->offset;
7202 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7203 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7204 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7205 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7206 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7207 ndr->offset = _relative_save_offset;
7209 ndr->flags = _flags_save_string;
7212 return NDR_ERR_SUCCESS;
7215 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
7217 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
7219 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7221 if (r->driver_name) {
7222 ndr_print_string(ndr, "driver_name", r->driver_name);
7228 static enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
7230 if (ndr_flags & NDR_SCALARS) {
7231 NDR_CHECK(ndr_push_align(ndr, 4));
7232 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7234 uint32_t _flags_save_string = ndr->flags;
7235 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7236 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7237 ndr->flags = _flags_save_string;
7240 uint32_t _flags_save_string = ndr->flags;
7241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7242 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7243 ndr->flags = _flags_save_string;
7246 uint32_t _flags_save_string = ndr->flags;
7247 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7248 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7249 ndr->flags = _flags_save_string;
7252 uint32_t _flags_save_string = ndr->flags;
7253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7254 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7255 ndr->flags = _flags_save_string;
7258 uint32_t _flags_save_string = ndr->flags;
7259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7260 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7261 ndr->flags = _flags_save_string;
7264 if (ndr_flags & NDR_BUFFERS) {
7266 uint32_t _flags_save_string = ndr->flags;
7267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7268 if (r->driver_name) {
7269 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7270 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7272 ndr->flags = _flags_save_string;
7275 uint32_t _flags_save_string = ndr->flags;
7276 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7277 if (r->architecture) {
7278 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7279 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7281 ndr->flags = _flags_save_string;
7284 uint32_t _flags_save_string = ndr->flags;
7285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7286 if (r->driver_path) {
7287 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7288 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7290 ndr->flags = _flags_save_string;
7293 uint32_t _flags_save_string = ndr->flags;
7294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7296 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7297 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7299 ndr->flags = _flags_save_string;
7302 uint32_t _flags_save_string = ndr->flags;
7303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7304 if (r->config_file) {
7305 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7306 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7308 ndr->flags = _flags_save_string;
7311 return NDR_ERR_SUCCESS;
7314 static enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
7316 uint32_t _ptr_driver_name;
7317 TALLOC_CTX *_mem_save_driver_name_0;
7318 uint32_t _ptr_architecture;
7319 TALLOC_CTX *_mem_save_architecture_0;
7320 uint32_t _ptr_driver_path;
7321 TALLOC_CTX *_mem_save_driver_path_0;
7322 uint32_t _ptr_data_file;
7323 TALLOC_CTX *_mem_save_data_file_0;
7324 uint32_t _ptr_config_file;
7325 TALLOC_CTX *_mem_save_config_file_0;
7326 if (ndr_flags & NDR_SCALARS) {
7327 NDR_CHECK(ndr_pull_align(ndr, 4));
7328 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7330 uint32_t _flags_save_string = ndr->flags;
7331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7332 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7333 if (_ptr_driver_name) {
7334 NDR_PULL_ALLOC(ndr, r->driver_name);
7335 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7337 r->driver_name = NULL;
7339 ndr->flags = _flags_save_string;
7342 uint32_t _flags_save_string = ndr->flags;
7343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7344 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7345 if (_ptr_architecture) {
7346 NDR_PULL_ALLOC(ndr, r->architecture);
7347 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7349 r->architecture = NULL;
7351 ndr->flags = _flags_save_string;
7354 uint32_t _flags_save_string = ndr->flags;
7355 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7357 if (_ptr_driver_path) {
7358 NDR_PULL_ALLOC(ndr, r->driver_path);
7359 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7361 r->driver_path = NULL;
7363 ndr->flags = _flags_save_string;
7366 uint32_t _flags_save_string = ndr->flags;
7367 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7368 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7369 if (_ptr_data_file) {
7370 NDR_PULL_ALLOC(ndr, r->data_file);
7371 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7373 r->data_file = NULL;
7375 ndr->flags = _flags_save_string;
7378 uint32_t _flags_save_string = ndr->flags;
7379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7380 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7381 if (_ptr_config_file) {
7382 NDR_PULL_ALLOC(ndr, r->config_file);
7383 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7385 r->config_file = NULL;
7387 ndr->flags = _flags_save_string;
7390 if (ndr_flags & NDR_BUFFERS) {
7392 uint32_t _flags_save_string = ndr->flags;
7393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7394 if (r->driver_name) {
7395 uint32_t _relative_save_offset;
7396 _relative_save_offset = ndr->offset;
7397 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7398 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7399 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7400 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7402 ndr->offset = _relative_save_offset;
7404 ndr->flags = _flags_save_string;
7407 uint32_t _flags_save_string = ndr->flags;
7408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7409 if (r->architecture) {
7410 uint32_t _relative_save_offset;
7411 _relative_save_offset = ndr->offset;
7412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7413 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7414 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7417 ndr->offset = _relative_save_offset;
7419 ndr->flags = _flags_save_string;
7422 uint32_t _flags_save_string = ndr->flags;
7423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7424 if (r->driver_path) {
7425 uint32_t _relative_save_offset;
7426 _relative_save_offset = ndr->offset;
7427 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7428 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7429 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7430 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7432 ndr->offset = _relative_save_offset;
7434 ndr->flags = _flags_save_string;
7437 uint32_t _flags_save_string = ndr->flags;
7438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7440 uint32_t _relative_save_offset;
7441 _relative_save_offset = ndr->offset;
7442 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7443 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7444 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7445 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7447 ndr->offset = _relative_save_offset;
7449 ndr->flags = _flags_save_string;
7452 uint32_t _flags_save_string = ndr->flags;
7453 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7454 if (r->config_file) {
7455 uint32_t _relative_save_offset;
7456 _relative_save_offset = ndr->offset;
7457 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7458 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7459 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7460 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7462 ndr->offset = _relative_save_offset;
7464 ndr->flags = _flags_save_string;
7467 return NDR_ERR_SUCCESS;
7470 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
7472 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
7474 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7475 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7477 if (r->driver_name) {
7478 ndr_print_string(ndr, "driver_name", r->driver_name);
7481 ndr_print_ptr(ndr, "architecture", r->architecture);
7483 if (r->architecture) {
7484 ndr_print_string(ndr, "architecture", r->architecture);
7487 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7489 if (r->driver_path) {
7490 ndr_print_string(ndr, "driver_path", r->driver_path);
7493 ndr_print_ptr(ndr, "data_file", r->data_file);
7496 ndr_print_string(ndr, "data_file", r->data_file);
7499 ndr_print_ptr(ndr, "config_file", r->config_file);
7501 if (r->config_file) {
7502 ndr_print_string(ndr, "config_file", r->config_file);
7508 static enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
7510 if (ndr_flags & NDR_SCALARS) {
7511 NDR_CHECK(ndr_push_align(ndr, 4));
7512 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7514 uint32_t _flags_save_string = ndr->flags;
7515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7516 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7517 ndr->flags = _flags_save_string;
7520 uint32_t _flags_save_string = ndr->flags;
7521 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7522 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7523 ndr->flags = _flags_save_string;
7526 uint32_t _flags_save_string = ndr->flags;
7527 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7528 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7529 ndr->flags = _flags_save_string;
7532 uint32_t _flags_save_string = ndr->flags;
7533 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7534 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7535 ndr->flags = _flags_save_string;
7538 uint32_t _flags_save_string = ndr->flags;
7539 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7540 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7541 ndr->flags = _flags_save_string;
7544 uint32_t _flags_save_string = ndr->flags;
7545 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7546 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
7547 ndr->flags = _flags_save_string;
7550 uint32_t _flags_save_string_array = ndr->flags;
7551 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7552 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
7553 ndr->flags = _flags_save_string_array;
7556 uint32_t _flags_save_string = ndr->flags;
7557 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7558 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7559 ndr->flags = _flags_save_string;
7562 uint32_t _flags_save_string = ndr->flags;
7563 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7564 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
7565 ndr->flags = _flags_save_string;
7568 if (ndr_flags & NDR_BUFFERS) {
7570 uint32_t _flags_save_string = ndr->flags;
7571 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7572 if (r->driver_name) {
7573 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7574 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7576 ndr->flags = _flags_save_string;
7579 uint32_t _flags_save_string = ndr->flags;
7580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7581 if (r->architecture) {
7582 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7583 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7585 ndr->flags = _flags_save_string;
7588 uint32_t _flags_save_string = ndr->flags;
7589 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7590 if (r->driver_path) {
7591 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7592 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7594 ndr->flags = _flags_save_string;
7597 uint32_t _flags_save_string = ndr->flags;
7598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7600 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7601 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7603 ndr->flags = _flags_save_string;
7606 uint32_t _flags_save_string = ndr->flags;
7607 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7608 if (r->config_file) {
7609 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7610 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7612 ndr->flags = _flags_save_string;
7615 uint32_t _flags_save_string = ndr->flags;
7616 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7618 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
7619 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
7621 ndr->flags = _flags_save_string;
7624 uint32_t _flags_save_string_array = ndr->flags;
7625 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7626 if (r->dependent_files) {
7627 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
7628 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
7630 ndr->flags = _flags_save_string_array;
7633 uint32_t _flags_save_string = ndr->flags;
7634 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7635 if (r->monitor_name) {
7636 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7637 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7639 ndr->flags = _flags_save_string;
7642 uint32_t _flags_save_string = ndr->flags;
7643 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7644 if (r->default_datatype) {
7645 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
7646 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
7648 ndr->flags = _flags_save_string;
7651 return NDR_ERR_SUCCESS;
7654 static enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
7656 uint32_t _ptr_driver_name;
7657 TALLOC_CTX *_mem_save_driver_name_0;
7658 uint32_t _ptr_architecture;
7659 TALLOC_CTX *_mem_save_architecture_0;
7660 uint32_t _ptr_driver_path;
7661 TALLOC_CTX *_mem_save_driver_path_0;
7662 uint32_t _ptr_data_file;
7663 TALLOC_CTX *_mem_save_data_file_0;
7664 uint32_t _ptr_config_file;
7665 TALLOC_CTX *_mem_save_config_file_0;
7666 uint32_t _ptr_help_file;
7667 TALLOC_CTX *_mem_save_help_file_0;
7668 uint32_t _ptr_dependent_files;
7669 TALLOC_CTX *_mem_save_dependent_files_0;
7670 uint32_t _ptr_monitor_name;
7671 TALLOC_CTX *_mem_save_monitor_name_0;
7672 uint32_t _ptr_default_datatype;
7673 TALLOC_CTX *_mem_save_default_datatype_0;
7674 if (ndr_flags & NDR_SCALARS) {
7675 NDR_CHECK(ndr_pull_align(ndr, 4));
7676 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7678 uint32_t _flags_save_string = ndr->flags;
7679 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7680 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7681 if (_ptr_driver_name) {
7682 NDR_PULL_ALLOC(ndr, r->driver_name);
7683 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7685 r->driver_name = NULL;
7687 ndr->flags = _flags_save_string;
7690 uint32_t _flags_save_string = ndr->flags;
7691 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7692 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7693 if (_ptr_architecture) {
7694 NDR_PULL_ALLOC(ndr, r->architecture);
7695 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7697 r->architecture = NULL;
7699 ndr->flags = _flags_save_string;
7702 uint32_t _flags_save_string = ndr->flags;
7703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7704 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7705 if (_ptr_driver_path) {
7706 NDR_PULL_ALLOC(ndr, r->driver_path);
7707 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7709 r->driver_path = NULL;
7711 ndr->flags = _flags_save_string;
7714 uint32_t _flags_save_string = ndr->flags;
7715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7716 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7717 if (_ptr_data_file) {
7718 NDR_PULL_ALLOC(ndr, r->data_file);
7719 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7721 r->data_file = NULL;
7723 ndr->flags = _flags_save_string;
7726 uint32_t _flags_save_string = ndr->flags;
7727 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7728 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7729 if (_ptr_config_file) {
7730 NDR_PULL_ALLOC(ndr, r->config_file);
7731 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7733 r->config_file = NULL;
7735 ndr->flags = _flags_save_string;
7738 uint32_t _flags_save_string = ndr->flags;
7739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7740 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7741 if (_ptr_help_file) {
7742 NDR_PULL_ALLOC(ndr, r->help_file);
7743 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7745 r->help_file = NULL;
7747 ndr->flags = _flags_save_string;
7750 uint32_t _flags_save_string_array = ndr->flags;
7751 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7752 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7753 if (_ptr_dependent_files) {
7754 NDR_PULL_ALLOC(ndr, r->dependent_files);
7755 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7757 r->dependent_files = NULL;
7759 ndr->flags = _flags_save_string_array;
7762 uint32_t _flags_save_string = ndr->flags;
7763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7764 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7765 if (_ptr_monitor_name) {
7766 NDR_PULL_ALLOC(ndr, r->monitor_name);
7767 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7769 r->monitor_name = NULL;
7771 ndr->flags = _flags_save_string;
7774 uint32_t _flags_save_string = ndr->flags;
7775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7776 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7777 if (_ptr_default_datatype) {
7778 NDR_PULL_ALLOC(ndr, r->default_datatype);
7779 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7781 r->default_datatype = NULL;
7783 ndr->flags = _flags_save_string;
7786 if (ndr_flags & NDR_BUFFERS) {
7788 uint32_t _flags_save_string = ndr->flags;
7789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7790 if (r->driver_name) {
7791 uint32_t _relative_save_offset;
7792 _relative_save_offset = ndr->offset;
7793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7794 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7795 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7798 ndr->offset = _relative_save_offset;
7800 ndr->flags = _flags_save_string;
7803 uint32_t _flags_save_string = ndr->flags;
7804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7805 if (r->architecture) {
7806 uint32_t _relative_save_offset;
7807 _relative_save_offset = ndr->offset;
7808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7809 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7810 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7813 ndr->offset = _relative_save_offset;
7815 ndr->flags = _flags_save_string;
7818 uint32_t _flags_save_string = ndr->flags;
7819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7820 if (r->driver_path) {
7821 uint32_t _relative_save_offset;
7822 _relative_save_offset = ndr->offset;
7823 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7824 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7825 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7826 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7827 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7828 ndr->offset = _relative_save_offset;
7830 ndr->flags = _flags_save_string;
7833 uint32_t _flags_save_string = ndr->flags;
7834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7836 uint32_t _relative_save_offset;
7837 _relative_save_offset = ndr->offset;
7838 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7839 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7840 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7841 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7842 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7843 ndr->offset = _relative_save_offset;
7845 ndr->flags = _flags_save_string;
7848 uint32_t _flags_save_string = ndr->flags;
7849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7850 if (r->config_file) {
7851 uint32_t _relative_save_offset;
7852 _relative_save_offset = ndr->offset;
7853 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7854 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7855 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7856 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7857 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7858 ndr->offset = _relative_save_offset;
7860 ndr->flags = _flags_save_string;
7863 uint32_t _flags_save_string = ndr->flags;
7864 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7866 uint32_t _relative_save_offset;
7867 _relative_save_offset = ndr->offset;
7868 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7869 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7870 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7871 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7872 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7873 ndr->offset = _relative_save_offset;
7875 ndr->flags = _flags_save_string;
7878 uint32_t _flags_save_string_array = ndr->flags;
7879 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7880 if (r->dependent_files) {
7881 uint32_t _relative_save_offset;
7882 _relative_save_offset = ndr->offset;
7883 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7884 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7885 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7886 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7888 ndr->offset = _relative_save_offset;
7890 ndr->flags = _flags_save_string_array;
7893 uint32_t _flags_save_string = ndr->flags;
7894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7895 if (r->monitor_name) {
7896 uint32_t _relative_save_offset;
7897 _relative_save_offset = ndr->offset;
7898 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7899 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7900 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7901 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7903 ndr->offset = _relative_save_offset;
7905 ndr->flags = _flags_save_string;
7908 uint32_t _flags_save_string = ndr->flags;
7909 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7910 if (r->default_datatype) {
7911 uint32_t _relative_save_offset;
7912 _relative_save_offset = ndr->offset;
7913 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7914 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7915 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7916 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7918 ndr->offset = _relative_save_offset;
7920 ndr->flags = _flags_save_string;
7923 return NDR_ERR_SUCCESS;
7926 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
7928 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
7930 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7931 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7933 if (r->driver_name) {
7934 ndr_print_string(ndr, "driver_name", r->driver_name);
7937 ndr_print_ptr(ndr, "architecture", r->architecture);
7939 if (r->architecture) {
7940 ndr_print_string(ndr, "architecture", r->architecture);
7943 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7945 if (r->driver_path) {
7946 ndr_print_string(ndr, "driver_path", r->driver_path);
7949 ndr_print_ptr(ndr, "data_file", r->data_file);
7952 ndr_print_string(ndr, "data_file", r->data_file);
7955 ndr_print_ptr(ndr, "config_file", r->config_file);
7957 if (r->config_file) {
7958 ndr_print_string(ndr, "config_file", r->config_file);
7961 ndr_print_ptr(ndr, "help_file", r->help_file);
7964 ndr_print_string(ndr, "help_file", r->help_file);
7967 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7969 if (r->dependent_files) {
7970 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7973 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7975 if (r->monitor_name) {
7976 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7979 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7981 if (r->default_datatype) {
7982 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7988 static enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
7990 if (ndr_flags & NDR_SCALARS) {
7991 NDR_CHECK(ndr_push_align(ndr, 4));
7992 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7994 uint32_t _flags_save_string = ndr->flags;
7995 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7996 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7997 ndr->flags = _flags_save_string;
8000 uint32_t _flags_save_string = ndr->flags;
8001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8002 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8003 ndr->flags = _flags_save_string;
8006 uint32_t _flags_save_string = ndr->flags;
8007 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8008 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8009 ndr->flags = _flags_save_string;
8012 uint32_t _flags_save_string = ndr->flags;
8013 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8014 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8015 ndr->flags = _flags_save_string;
8018 uint32_t _flags_save_string = ndr->flags;
8019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8020 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8021 ndr->flags = _flags_save_string;
8024 uint32_t _flags_save_string = ndr->flags;
8025 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8026 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8027 ndr->flags = _flags_save_string;
8030 uint32_t _flags_save_string_array = ndr->flags;
8031 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8032 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8033 ndr->flags = _flags_save_string_array;
8036 uint32_t _flags_save_string = ndr->flags;
8037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8038 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8039 ndr->flags = _flags_save_string;
8042 uint32_t _flags_save_string = ndr->flags;
8043 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8044 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8045 ndr->flags = _flags_save_string;
8048 uint32_t _flags_save_string_array = ndr->flags;
8049 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8050 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8051 ndr->flags = _flags_save_string_array;
8054 if (ndr_flags & NDR_BUFFERS) {
8056 uint32_t _flags_save_string = ndr->flags;
8057 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8058 if (r->driver_name) {
8059 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8060 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8062 ndr->flags = _flags_save_string;
8065 uint32_t _flags_save_string = ndr->flags;
8066 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8067 if (r->architecture) {
8068 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8069 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8071 ndr->flags = _flags_save_string;
8074 uint32_t _flags_save_string = ndr->flags;
8075 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8076 if (r->driver_path) {
8077 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8078 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8080 ndr->flags = _flags_save_string;
8083 uint32_t _flags_save_string = ndr->flags;
8084 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8086 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8087 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8089 ndr->flags = _flags_save_string;
8092 uint32_t _flags_save_string = ndr->flags;
8093 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8094 if (r->config_file) {
8095 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8096 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8098 ndr->flags = _flags_save_string;
8101 uint32_t _flags_save_string = ndr->flags;
8102 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8104 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8105 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8107 ndr->flags = _flags_save_string;
8110 uint32_t _flags_save_string_array = ndr->flags;
8111 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8112 if (r->dependent_files) {
8113 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8114 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8116 ndr->flags = _flags_save_string_array;
8119 uint32_t _flags_save_string = ndr->flags;
8120 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8121 if (r->monitor_name) {
8122 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8123 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8125 ndr->flags = _flags_save_string;
8128 uint32_t _flags_save_string = ndr->flags;
8129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8130 if (r->default_datatype) {
8131 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8132 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8134 ndr->flags = _flags_save_string;
8137 uint32_t _flags_save_string_array = ndr->flags;
8138 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8139 if (r->previous_names) {
8140 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8141 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8143 ndr->flags = _flags_save_string_array;
8146 return NDR_ERR_SUCCESS;
8149 static enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
8151 uint32_t _ptr_driver_name;
8152 TALLOC_CTX *_mem_save_driver_name_0;
8153 uint32_t _ptr_architecture;
8154 TALLOC_CTX *_mem_save_architecture_0;
8155 uint32_t _ptr_driver_path;
8156 TALLOC_CTX *_mem_save_driver_path_0;
8157 uint32_t _ptr_data_file;
8158 TALLOC_CTX *_mem_save_data_file_0;
8159 uint32_t _ptr_config_file;
8160 TALLOC_CTX *_mem_save_config_file_0;
8161 uint32_t _ptr_help_file;
8162 TALLOC_CTX *_mem_save_help_file_0;
8163 uint32_t _ptr_dependent_files;
8164 TALLOC_CTX *_mem_save_dependent_files_0;
8165 uint32_t _ptr_monitor_name;
8166 TALLOC_CTX *_mem_save_monitor_name_0;
8167 uint32_t _ptr_default_datatype;
8168 TALLOC_CTX *_mem_save_default_datatype_0;
8169 uint32_t _ptr_previous_names;
8170 TALLOC_CTX *_mem_save_previous_names_0;
8171 if (ndr_flags & NDR_SCALARS) {
8172 NDR_CHECK(ndr_pull_align(ndr, 4));
8173 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8175 uint32_t _flags_save_string = ndr->flags;
8176 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8177 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8178 if (_ptr_driver_name) {
8179 NDR_PULL_ALLOC(ndr, r->driver_name);
8180 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8182 r->driver_name = NULL;
8184 ndr->flags = _flags_save_string;
8187 uint32_t _flags_save_string = ndr->flags;
8188 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8189 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8190 if (_ptr_architecture) {
8191 NDR_PULL_ALLOC(ndr, r->architecture);
8192 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8194 r->architecture = NULL;
8196 ndr->flags = _flags_save_string;
8199 uint32_t _flags_save_string = ndr->flags;
8200 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8201 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8202 if (_ptr_driver_path) {
8203 NDR_PULL_ALLOC(ndr, r->driver_path);
8204 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8206 r->driver_path = NULL;
8208 ndr->flags = _flags_save_string;
8211 uint32_t _flags_save_string = ndr->flags;
8212 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8213 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8214 if (_ptr_data_file) {
8215 NDR_PULL_ALLOC(ndr, r->data_file);
8216 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8218 r->data_file = NULL;
8220 ndr->flags = _flags_save_string;
8223 uint32_t _flags_save_string = ndr->flags;
8224 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8225 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8226 if (_ptr_config_file) {
8227 NDR_PULL_ALLOC(ndr, r->config_file);
8228 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8230 r->config_file = NULL;
8232 ndr->flags = _flags_save_string;
8235 uint32_t _flags_save_string = ndr->flags;
8236 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8238 if (_ptr_help_file) {
8239 NDR_PULL_ALLOC(ndr, r->help_file);
8240 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
8242 r->help_file = NULL;
8244 ndr->flags = _flags_save_string;
8247 uint32_t _flags_save_string_array = ndr->flags;
8248 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8249 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8250 if (_ptr_dependent_files) {
8251 NDR_PULL_ALLOC(ndr, r->dependent_files);
8252 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
8254 r->dependent_files = NULL;
8256 ndr->flags = _flags_save_string_array;
8259 uint32_t _flags_save_string = ndr->flags;
8260 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8262 if (_ptr_monitor_name) {
8263 NDR_PULL_ALLOC(ndr, r->monitor_name);
8264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
8266 r->monitor_name = NULL;
8268 ndr->flags = _flags_save_string;
8271 uint32_t _flags_save_string = ndr->flags;
8272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8273 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8274 if (_ptr_default_datatype) {
8275 NDR_PULL_ALLOC(ndr, r->default_datatype);
8276 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
8278 r->default_datatype = NULL;
8280 ndr->flags = _flags_save_string;
8283 uint32_t _flags_save_string_array = ndr->flags;
8284 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8285 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8286 if (_ptr_previous_names) {
8287 NDR_PULL_ALLOC(ndr, r->previous_names);
8288 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
8290 r->previous_names = NULL;
8292 ndr->flags = _flags_save_string_array;
8295 if (ndr_flags & NDR_BUFFERS) {
8297 uint32_t _flags_save_string = ndr->flags;
8298 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8299 if (r->driver_name) {
8300 uint32_t _relative_save_offset;
8301 _relative_save_offset = ndr->offset;
8302 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8303 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8304 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8305 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8307 ndr->offset = _relative_save_offset;
8309 ndr->flags = _flags_save_string;
8312 uint32_t _flags_save_string = ndr->flags;
8313 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8314 if (r->architecture) {
8315 uint32_t _relative_save_offset;
8316 _relative_save_offset = ndr->offset;
8317 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8318 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8319 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8320 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8321 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8322 ndr->offset = _relative_save_offset;
8324 ndr->flags = _flags_save_string;
8327 uint32_t _flags_save_string = ndr->flags;
8328 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8329 if (r->driver_path) {
8330 uint32_t _relative_save_offset;
8331 _relative_save_offset = ndr->offset;
8332 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8333 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8334 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8335 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8336 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8337 ndr->offset = _relative_save_offset;
8339 ndr->flags = _flags_save_string;
8342 uint32_t _flags_save_string = ndr->flags;
8343 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8345 uint32_t _relative_save_offset;
8346 _relative_save_offset = ndr->offset;
8347 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8348 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8349 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8350 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8352 ndr->offset = _relative_save_offset;
8354 ndr->flags = _flags_save_string;
8357 uint32_t _flags_save_string = ndr->flags;
8358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8359 if (r->config_file) {
8360 uint32_t _relative_save_offset;
8361 _relative_save_offset = ndr->offset;
8362 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8363 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8364 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8365 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8366 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8367 ndr->offset = _relative_save_offset;
8369 ndr->flags = _flags_save_string;
8372 uint32_t _flags_save_string = ndr->flags;
8373 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8375 uint32_t _relative_save_offset;
8376 _relative_save_offset = ndr->offset;
8377 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
8378 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8379 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8380 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
8381 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8382 ndr->offset = _relative_save_offset;
8384 ndr->flags = _flags_save_string;
8387 uint32_t _flags_save_string_array = ndr->flags;
8388 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8389 if (r->dependent_files) {
8390 uint32_t _relative_save_offset;
8391 _relative_save_offset = ndr->offset;
8392 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
8393 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8394 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8395 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
8396 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8397 ndr->offset = _relative_save_offset;
8399 ndr->flags = _flags_save_string_array;
8402 uint32_t _flags_save_string = ndr->flags;
8403 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8404 if (r->monitor_name) {
8405 uint32_t _relative_save_offset;
8406 _relative_save_offset = ndr->offset;
8407 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
8408 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8409 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8410 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
8411 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8412 ndr->offset = _relative_save_offset;
8414 ndr->flags = _flags_save_string;
8417 uint32_t _flags_save_string = ndr->flags;
8418 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8419 if (r->default_datatype) {
8420 uint32_t _relative_save_offset;
8421 _relative_save_offset = ndr->offset;
8422 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
8423 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8424 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8425 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
8426 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8427 ndr->offset = _relative_save_offset;
8429 ndr->flags = _flags_save_string;
8432 uint32_t _flags_save_string_array = ndr->flags;
8433 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8434 if (r->previous_names) {
8435 uint32_t _relative_save_offset;
8436 _relative_save_offset = ndr->offset;
8437 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
8438 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8439 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8440 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
8441 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8442 ndr->offset = _relative_save_offset;
8444 ndr->flags = _flags_save_string_array;
8447 return NDR_ERR_SUCCESS;
8450 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
8452 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
8454 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8455 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8457 if (r->driver_name) {
8458 ndr_print_string(ndr, "driver_name", r->driver_name);
8461 ndr_print_ptr(ndr, "architecture", r->architecture);
8463 if (r->architecture) {
8464 ndr_print_string(ndr, "architecture", r->architecture);
8467 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8469 if (r->driver_path) {
8470 ndr_print_string(ndr, "driver_path", r->driver_path);
8473 ndr_print_ptr(ndr, "data_file", r->data_file);
8476 ndr_print_string(ndr, "data_file", r->data_file);
8479 ndr_print_ptr(ndr, "config_file", r->config_file);
8481 if (r->config_file) {
8482 ndr_print_string(ndr, "config_file", r->config_file);
8485 ndr_print_ptr(ndr, "help_file", r->help_file);
8488 ndr_print_string(ndr, "help_file", r->help_file);
8491 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8493 if (r->dependent_files) {
8494 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
8497 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8499 if (r->monitor_name) {
8500 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8503 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8505 if (r->default_datatype) {
8506 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8509 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8511 if (r->previous_names) {
8512 ndr_print_string_array(ndr, "previous_names", r->previous_names);
8518 static enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
8520 if (ndr_flags & NDR_SCALARS) {
8521 NDR_CHECK(ndr_push_align(ndr, 4));
8522 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8524 uint32_t _flags_save_string = ndr->flags;
8525 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8526 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8527 ndr->flags = _flags_save_string;
8530 uint32_t _flags_save_string = ndr->flags;
8531 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8532 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8533 ndr->flags = _flags_save_string;
8536 uint32_t _flags_save_string = ndr->flags;
8537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8538 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8539 ndr->flags = _flags_save_string;
8542 uint32_t _flags_save_string = ndr->flags;
8543 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8544 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8545 ndr->flags = _flags_save_string;
8548 uint32_t _flags_save_string = ndr->flags;
8549 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8550 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8551 ndr->flags = _flags_save_string;
8553 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
8554 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
8555 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
8557 if (ndr_flags & NDR_BUFFERS) {
8559 uint32_t _flags_save_string = ndr->flags;
8560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8561 if (r->driver_name) {
8562 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8563 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8565 ndr->flags = _flags_save_string;
8568 uint32_t _flags_save_string = ndr->flags;
8569 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8570 if (r->architecture) {
8571 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8572 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8574 ndr->flags = _flags_save_string;
8577 uint32_t _flags_save_string = ndr->flags;
8578 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8579 if (r->driver_path) {
8580 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8581 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8583 ndr->flags = _flags_save_string;
8586 uint32_t _flags_save_string = ndr->flags;
8587 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8589 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8590 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8592 ndr->flags = _flags_save_string;
8595 uint32_t _flags_save_string = ndr->flags;
8596 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8597 if (r->config_file) {
8598 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8599 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8601 ndr->flags = _flags_save_string;
8604 return NDR_ERR_SUCCESS;
8607 static enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
8609 uint32_t _ptr_driver_name;
8610 TALLOC_CTX *_mem_save_driver_name_0;
8611 uint32_t _ptr_architecture;
8612 TALLOC_CTX *_mem_save_architecture_0;
8613 uint32_t _ptr_driver_path;
8614 TALLOC_CTX *_mem_save_driver_path_0;
8615 uint32_t _ptr_data_file;
8616 TALLOC_CTX *_mem_save_data_file_0;
8617 uint32_t _ptr_config_file;
8618 TALLOC_CTX *_mem_save_config_file_0;
8619 if (ndr_flags & NDR_SCALARS) {
8620 NDR_CHECK(ndr_pull_align(ndr, 4));
8621 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8623 uint32_t _flags_save_string = ndr->flags;
8624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8625 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8626 if (_ptr_driver_name) {
8627 NDR_PULL_ALLOC(ndr, r->driver_name);
8628 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8630 r->driver_name = NULL;
8632 ndr->flags = _flags_save_string;
8635 uint32_t _flags_save_string = ndr->flags;
8636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8637 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8638 if (_ptr_architecture) {
8639 NDR_PULL_ALLOC(ndr, r->architecture);
8640 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8642 r->architecture = NULL;
8644 ndr->flags = _flags_save_string;
8647 uint32_t _flags_save_string = ndr->flags;
8648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8649 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8650 if (_ptr_driver_path) {
8651 NDR_PULL_ALLOC(ndr, r->driver_path);
8652 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8654 r->driver_path = NULL;
8656 ndr->flags = _flags_save_string;
8659 uint32_t _flags_save_string = ndr->flags;
8660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8661 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8662 if (_ptr_data_file) {
8663 NDR_PULL_ALLOC(ndr, r->data_file);
8664 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8666 r->data_file = NULL;
8668 ndr->flags = _flags_save_string;
8671 uint32_t _flags_save_string = ndr->flags;
8672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8674 if (_ptr_config_file) {
8675 NDR_PULL_ALLOC(ndr, r->config_file);
8676 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8678 r->config_file = NULL;
8680 ndr->flags = _flags_save_string;
8682 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
8683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
8684 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
8686 if (ndr_flags & NDR_BUFFERS) {
8688 uint32_t _flags_save_string = ndr->flags;
8689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8690 if (r->driver_name) {
8691 uint32_t _relative_save_offset;
8692 _relative_save_offset = ndr->offset;
8693 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8694 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8695 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8696 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8698 ndr->offset = _relative_save_offset;
8700 ndr->flags = _flags_save_string;
8703 uint32_t _flags_save_string = ndr->flags;
8704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8705 if (r->architecture) {
8706 uint32_t _relative_save_offset;
8707 _relative_save_offset = ndr->offset;
8708 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8709 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8710 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8711 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8712 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8713 ndr->offset = _relative_save_offset;
8715 ndr->flags = _flags_save_string;
8718 uint32_t _flags_save_string = ndr->flags;
8719 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8720 if (r->driver_path) {
8721 uint32_t _relative_save_offset;
8722 _relative_save_offset = ndr->offset;
8723 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8724 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8725 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8726 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8727 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8728 ndr->offset = _relative_save_offset;
8730 ndr->flags = _flags_save_string;
8733 uint32_t _flags_save_string = ndr->flags;
8734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8736 uint32_t _relative_save_offset;
8737 _relative_save_offset = ndr->offset;
8738 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8739 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8740 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8741 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8742 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8743 ndr->offset = _relative_save_offset;
8745 ndr->flags = _flags_save_string;
8748 uint32_t _flags_save_string = ndr->flags;
8749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8750 if (r->config_file) {
8751 uint32_t _relative_save_offset;
8752 _relative_save_offset = ndr->offset;
8753 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8754 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8755 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8756 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8757 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8758 ndr->offset = _relative_save_offset;
8760 ndr->flags = _flags_save_string;
8763 return NDR_ERR_SUCCESS;
8766 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
8768 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
8770 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8771 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8773 if (r->driver_name) {
8774 ndr_print_string(ndr, "driver_name", r->driver_name);
8777 ndr_print_ptr(ndr, "architecture", r->architecture);
8779 if (r->architecture) {
8780 ndr_print_string(ndr, "architecture", r->architecture);
8783 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8785 if (r->driver_path) {
8786 ndr_print_string(ndr, "driver_path", r->driver_path);
8789 ndr_print_ptr(ndr, "data_file", r->data_file);
8792 ndr_print_string(ndr, "data_file", r->data_file);
8795 ndr_print_ptr(ndr, "config_file", r->config_file);
8797 if (r->config_file) {
8798 ndr_print_string(ndr, "config_file", r->config_file);
8801 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
8802 ndr_print_uint32(ndr, "config_version", r->config_version);
8803 ndr_print_uint32(ndr, "driver_version", r->driver_version);
8807 static enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
8809 if (ndr_flags & NDR_SCALARS) {
8810 NDR_CHECK(ndr_push_align(ndr, 8));
8811 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8813 uint32_t _flags_save_string = ndr->flags;
8814 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8815 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8816 ndr->flags = _flags_save_string;
8819 uint32_t _flags_save_string = ndr->flags;
8820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8821 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8822 ndr->flags = _flags_save_string;
8825 uint32_t _flags_save_string = ndr->flags;
8826 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8827 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8828 ndr->flags = _flags_save_string;
8831 uint32_t _flags_save_string = ndr->flags;
8832 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8833 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8834 ndr->flags = _flags_save_string;
8837 uint32_t _flags_save_string = ndr->flags;
8838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8839 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8840 ndr->flags = _flags_save_string;
8843 uint32_t _flags_save_string = ndr->flags;
8844 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8845 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8846 ndr->flags = _flags_save_string;
8849 uint32_t _flags_save_string_array = ndr->flags;
8850 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8851 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8852 ndr->flags = _flags_save_string_array;
8855 uint32_t _flags_save_string = ndr->flags;
8856 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8857 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8858 ndr->flags = _flags_save_string;
8861 uint32_t _flags_save_string = ndr->flags;
8862 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8863 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8864 ndr->flags = _flags_save_string;
8867 uint32_t _flags_save_string_array = ndr->flags;
8868 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8869 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8870 ndr->flags = _flags_save_string_array;
8872 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
8873 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8875 uint32_t _flags_save_string = ndr->flags;
8876 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8877 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
8878 ndr->flags = _flags_save_string;
8881 uint32_t _flags_save_string = ndr->flags;
8882 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8883 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
8884 ndr->flags = _flags_save_string;
8887 uint32_t _flags_save_string = ndr->flags;
8888 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8889 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
8890 ndr->flags = _flags_save_string;
8893 uint32_t _flags_save_string = ndr->flags;
8894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8895 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
8896 ndr->flags = _flags_save_string;
8899 if (ndr_flags & NDR_BUFFERS) {
8901 uint32_t _flags_save_string = ndr->flags;
8902 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8903 if (r->driver_name) {
8904 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8905 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8907 ndr->flags = _flags_save_string;
8910 uint32_t _flags_save_string = ndr->flags;
8911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8912 if (r->architecture) {
8913 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8914 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8916 ndr->flags = _flags_save_string;
8919 uint32_t _flags_save_string = ndr->flags;
8920 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8921 if (r->driver_path) {
8922 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8923 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8925 ndr->flags = _flags_save_string;
8928 uint32_t _flags_save_string = ndr->flags;
8929 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8931 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8932 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8934 ndr->flags = _flags_save_string;
8937 uint32_t _flags_save_string = ndr->flags;
8938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8939 if (r->config_file) {
8940 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8941 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8943 ndr->flags = _flags_save_string;
8946 uint32_t _flags_save_string = ndr->flags;
8947 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8949 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8950 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8952 ndr->flags = _flags_save_string;
8955 uint32_t _flags_save_string_array = ndr->flags;
8956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8957 if (r->dependent_files) {
8958 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8959 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8961 ndr->flags = _flags_save_string_array;
8964 uint32_t _flags_save_string = ndr->flags;
8965 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8966 if (r->monitor_name) {
8967 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8968 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8970 ndr->flags = _flags_save_string;
8973 uint32_t _flags_save_string = ndr->flags;
8974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8975 if (r->default_datatype) {
8976 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8977 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8979 ndr->flags = _flags_save_string;
8982 uint32_t _flags_save_string_array = ndr->flags;
8983 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8984 if (r->previous_names) {
8985 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8986 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8988 ndr->flags = _flags_save_string_array;
8991 uint32_t _flags_save_string = ndr->flags;
8992 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8993 if (r->manufacturer_name) {
8994 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
8995 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
8997 ndr->flags = _flags_save_string;
9000 uint32_t _flags_save_string = ndr->flags;
9001 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9002 if (r->manufacturer_url) {
9003 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9004 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9006 ndr->flags = _flags_save_string;
9009 uint32_t _flags_save_string = ndr->flags;
9010 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9011 if (r->hardware_id) {
9012 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9013 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9015 ndr->flags = _flags_save_string;
9018 uint32_t _flags_save_string = ndr->flags;
9019 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9021 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9022 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9024 ndr->flags = _flags_save_string;
9027 return NDR_ERR_SUCCESS;
9030 static enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
9032 uint32_t _ptr_driver_name;
9033 TALLOC_CTX *_mem_save_driver_name_0;
9034 uint32_t _ptr_architecture;
9035 TALLOC_CTX *_mem_save_architecture_0;
9036 uint32_t _ptr_driver_path;
9037 TALLOC_CTX *_mem_save_driver_path_0;
9038 uint32_t _ptr_data_file;
9039 TALLOC_CTX *_mem_save_data_file_0;
9040 uint32_t _ptr_config_file;
9041 TALLOC_CTX *_mem_save_config_file_0;
9042 uint32_t _ptr_help_file;
9043 TALLOC_CTX *_mem_save_help_file_0;
9044 uint32_t _ptr_dependent_files;
9045 TALLOC_CTX *_mem_save_dependent_files_0;
9046 uint32_t _ptr_monitor_name;
9047 TALLOC_CTX *_mem_save_monitor_name_0;
9048 uint32_t _ptr_default_datatype;
9049 TALLOC_CTX *_mem_save_default_datatype_0;
9050 uint32_t _ptr_previous_names;
9051 TALLOC_CTX *_mem_save_previous_names_0;
9052 uint32_t _ptr_manufacturer_name;
9053 TALLOC_CTX *_mem_save_manufacturer_name_0;
9054 uint32_t _ptr_manufacturer_url;
9055 TALLOC_CTX *_mem_save_manufacturer_url_0;
9056 uint32_t _ptr_hardware_id;
9057 TALLOC_CTX *_mem_save_hardware_id_0;
9058 uint32_t _ptr_provider;
9059 TALLOC_CTX *_mem_save_provider_0;
9060 if (ndr_flags & NDR_SCALARS) {
9061 NDR_CHECK(ndr_pull_align(ndr, 8));
9062 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9064 uint32_t _flags_save_string = ndr->flags;
9065 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9066 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9067 if (_ptr_driver_name) {
9068 NDR_PULL_ALLOC(ndr, r->driver_name);
9069 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9071 r->driver_name = NULL;
9073 ndr->flags = _flags_save_string;
9076 uint32_t _flags_save_string = ndr->flags;
9077 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9079 if (_ptr_architecture) {
9080 NDR_PULL_ALLOC(ndr, r->architecture);
9081 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9083 r->architecture = NULL;
9085 ndr->flags = _flags_save_string;
9088 uint32_t _flags_save_string = ndr->flags;
9089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9090 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9091 if (_ptr_driver_path) {
9092 NDR_PULL_ALLOC(ndr, r->driver_path);
9093 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9095 r->driver_path = NULL;
9097 ndr->flags = _flags_save_string;
9100 uint32_t _flags_save_string = ndr->flags;
9101 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9102 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9103 if (_ptr_data_file) {
9104 NDR_PULL_ALLOC(ndr, r->data_file);
9105 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9107 r->data_file = NULL;
9109 ndr->flags = _flags_save_string;
9112 uint32_t _flags_save_string = ndr->flags;
9113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9115 if (_ptr_config_file) {
9116 NDR_PULL_ALLOC(ndr, r->config_file);
9117 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9119 r->config_file = NULL;
9121 ndr->flags = _flags_save_string;
9124 uint32_t _flags_save_string = ndr->flags;
9125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9126 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9127 if (_ptr_help_file) {
9128 NDR_PULL_ALLOC(ndr, r->help_file);
9129 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9131 r->help_file = NULL;
9133 ndr->flags = _flags_save_string;
9136 uint32_t _flags_save_string_array = ndr->flags;
9137 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9139 if (_ptr_dependent_files) {
9140 NDR_PULL_ALLOC(ndr, r->dependent_files);
9141 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9143 r->dependent_files = NULL;
9145 ndr->flags = _flags_save_string_array;
9148 uint32_t _flags_save_string = ndr->flags;
9149 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9150 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9151 if (_ptr_monitor_name) {
9152 NDR_PULL_ALLOC(ndr, r->monitor_name);
9153 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9155 r->monitor_name = NULL;
9157 ndr->flags = _flags_save_string;
9160 uint32_t _flags_save_string = ndr->flags;
9161 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9162 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9163 if (_ptr_default_datatype) {
9164 NDR_PULL_ALLOC(ndr, r->default_datatype);
9165 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9167 r->default_datatype = NULL;
9169 ndr->flags = _flags_save_string;
9172 uint32_t _flags_save_string_array = ndr->flags;
9173 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9175 if (_ptr_previous_names) {
9176 NDR_PULL_ALLOC(ndr, r->previous_names);
9177 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
9179 r->previous_names = NULL;
9181 ndr->flags = _flags_save_string_array;
9183 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
9184 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9186 uint32_t _flags_save_string = ndr->flags;
9187 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9188 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9189 if (_ptr_manufacturer_name) {
9190 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9191 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
9193 r->manufacturer_name = NULL;
9195 ndr->flags = _flags_save_string;
9198 uint32_t _flags_save_string = ndr->flags;
9199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9200 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9201 if (_ptr_manufacturer_url) {
9202 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9203 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
9205 r->manufacturer_url = NULL;
9207 ndr->flags = _flags_save_string;
9210 uint32_t _flags_save_string = ndr->flags;
9211 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9213 if (_ptr_hardware_id) {
9214 NDR_PULL_ALLOC(ndr, r->hardware_id);
9215 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
9217 r->hardware_id = NULL;
9219 ndr->flags = _flags_save_string;
9222 uint32_t _flags_save_string = ndr->flags;
9223 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9224 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9225 if (_ptr_provider) {
9226 NDR_PULL_ALLOC(ndr, r->provider);
9227 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
9231 ndr->flags = _flags_save_string;
9234 if (ndr_flags & NDR_BUFFERS) {
9236 uint32_t _flags_save_string = ndr->flags;
9237 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9238 if (r->driver_name) {
9239 uint32_t _relative_save_offset;
9240 _relative_save_offset = ndr->offset;
9241 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9242 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9243 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9244 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9245 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9246 ndr->offset = _relative_save_offset;
9248 ndr->flags = _flags_save_string;
9251 uint32_t _flags_save_string = ndr->flags;
9252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9253 if (r->architecture) {
9254 uint32_t _relative_save_offset;
9255 _relative_save_offset = ndr->offset;
9256 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
9257 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9258 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9259 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
9260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9261 ndr->offset = _relative_save_offset;
9263 ndr->flags = _flags_save_string;
9266 uint32_t _flags_save_string = ndr->flags;
9267 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9268 if (r->driver_path) {
9269 uint32_t _relative_save_offset;
9270 _relative_save_offset = ndr->offset;
9271 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
9272 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9273 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9274 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
9275 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9276 ndr->offset = _relative_save_offset;
9278 ndr->flags = _flags_save_string;
9281 uint32_t _flags_save_string = ndr->flags;
9282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9284 uint32_t _relative_save_offset;
9285 _relative_save_offset = ndr->offset;
9286 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
9287 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9288 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9289 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
9290 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9291 ndr->offset = _relative_save_offset;
9293 ndr->flags = _flags_save_string;
9296 uint32_t _flags_save_string = ndr->flags;
9297 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9298 if (r->config_file) {
9299 uint32_t _relative_save_offset;
9300 _relative_save_offset = ndr->offset;
9301 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
9302 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9303 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9304 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
9305 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9306 ndr->offset = _relative_save_offset;
9308 ndr->flags = _flags_save_string;
9311 uint32_t _flags_save_string = ndr->flags;
9312 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9314 uint32_t _relative_save_offset;
9315 _relative_save_offset = ndr->offset;
9316 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
9317 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9318 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9319 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
9320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9321 ndr->offset = _relative_save_offset;
9323 ndr->flags = _flags_save_string;
9326 uint32_t _flags_save_string_array = ndr->flags;
9327 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9328 if (r->dependent_files) {
9329 uint32_t _relative_save_offset;
9330 _relative_save_offset = ndr->offset;
9331 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
9332 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9333 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9334 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
9335 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9336 ndr->offset = _relative_save_offset;
9338 ndr->flags = _flags_save_string_array;
9341 uint32_t _flags_save_string = ndr->flags;
9342 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9343 if (r->monitor_name) {
9344 uint32_t _relative_save_offset;
9345 _relative_save_offset = ndr->offset;
9346 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
9347 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9348 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9349 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
9350 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9351 ndr->offset = _relative_save_offset;
9353 ndr->flags = _flags_save_string;
9356 uint32_t _flags_save_string = ndr->flags;
9357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9358 if (r->default_datatype) {
9359 uint32_t _relative_save_offset;
9360 _relative_save_offset = ndr->offset;
9361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
9362 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9363 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
9365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9366 ndr->offset = _relative_save_offset;
9368 ndr->flags = _flags_save_string;
9371 uint32_t _flags_save_string_array = ndr->flags;
9372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9373 if (r->previous_names) {
9374 uint32_t _relative_save_offset;
9375 _relative_save_offset = ndr->offset;
9376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
9377 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9378 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9379 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
9380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9381 ndr->offset = _relative_save_offset;
9383 ndr->flags = _flags_save_string_array;
9386 uint32_t _flags_save_string = ndr->flags;
9387 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9388 if (r->manufacturer_name) {
9389 uint32_t _relative_save_offset;
9390 _relative_save_offset = ndr->offset;
9391 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
9392 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9393 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9394 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
9395 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9396 ndr->offset = _relative_save_offset;
9398 ndr->flags = _flags_save_string;
9401 uint32_t _flags_save_string = ndr->flags;
9402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9403 if (r->manufacturer_url) {
9404 uint32_t _relative_save_offset;
9405 _relative_save_offset = ndr->offset;
9406 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
9407 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9408 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9409 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
9410 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9411 ndr->offset = _relative_save_offset;
9413 ndr->flags = _flags_save_string;
9416 uint32_t _flags_save_string = ndr->flags;
9417 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9418 if (r->hardware_id) {
9419 uint32_t _relative_save_offset;
9420 _relative_save_offset = ndr->offset;
9421 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
9422 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9423 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9424 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
9425 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9426 ndr->offset = _relative_save_offset;
9428 ndr->flags = _flags_save_string;
9431 uint32_t _flags_save_string = ndr->flags;
9432 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9434 uint32_t _relative_save_offset;
9435 _relative_save_offset = ndr->offset;
9436 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
9437 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9438 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9439 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
9440 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9441 ndr->offset = _relative_save_offset;
9443 ndr->flags = _flags_save_string;
9446 return NDR_ERR_SUCCESS;
9449 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
9451 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
9453 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9454 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9456 if (r->driver_name) {
9457 ndr_print_string(ndr, "driver_name", r->driver_name);
9460 ndr_print_ptr(ndr, "architecture", r->architecture);
9462 if (r->architecture) {
9463 ndr_print_string(ndr, "architecture", r->architecture);
9466 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9468 if (r->driver_path) {
9469 ndr_print_string(ndr, "driver_path", r->driver_path);
9472 ndr_print_ptr(ndr, "data_file", r->data_file);
9475 ndr_print_string(ndr, "data_file", r->data_file);
9478 ndr_print_ptr(ndr, "config_file", r->config_file);
9480 if (r->config_file) {
9481 ndr_print_string(ndr, "config_file", r->config_file);
9484 ndr_print_ptr(ndr, "help_file", r->help_file);
9487 ndr_print_string(ndr, "help_file", r->help_file);
9490 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9492 if (r->dependent_files) {
9493 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
9496 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9498 if (r->monitor_name) {
9499 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9502 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9504 if (r->default_datatype) {
9505 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9508 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9510 if (r->previous_names) {
9511 ndr_print_string_array(ndr, "previous_names", r->previous_names);
9514 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
9515 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9516 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9518 if (r->manufacturer_name) {
9519 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9522 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9524 if (r->manufacturer_url) {
9525 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9528 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9530 if (r->hardware_id) {
9531 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9534 ndr_print_ptr(ndr, "provider", r->provider);
9537 ndr_print_string(ndr, "provider", r->provider);
9543 static enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
9545 if (ndr_flags & NDR_SCALARS) {
9546 NDR_CHECK(ndr_push_align(ndr, 8));
9547 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9549 uint32_t _flags_save_string = ndr->flags;
9550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9551 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9552 ndr->flags = _flags_save_string;
9555 uint32_t _flags_save_string = ndr->flags;
9556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9557 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9558 ndr->flags = _flags_save_string;
9561 uint32_t _flags_save_string = ndr->flags;
9562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9564 ndr->flags = _flags_save_string;
9567 uint32_t _flags_save_string = ndr->flags;
9568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9570 ndr->flags = _flags_save_string;
9573 uint32_t _flags_save_string = ndr->flags;
9574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9575 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9576 ndr->flags = _flags_save_string;
9579 uint32_t _flags_save_string = ndr->flags;
9580 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9581 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
9582 ndr->flags = _flags_save_string;
9585 uint32_t _flags_save_string = ndr->flags;
9586 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9587 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
9588 ndr->flags = _flags_save_string;
9591 uint32_t _flags_save_string = ndr->flags;
9592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9593 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
9594 ndr->flags = _flags_save_string;
9597 uint32_t _flags_save_string_array = ndr->flags;
9598 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9599 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
9600 ndr->flags = _flags_save_string_array;
9603 uint32_t _flags_save_string_array = ndr->flags;
9604 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9605 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
9606 ndr->flags = _flags_save_string_array;
9608 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
9609 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9611 uint32_t _flags_save_string = ndr->flags;
9612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9613 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
9614 ndr->flags = _flags_save_string;
9617 uint32_t _flags_save_string = ndr->flags;
9618 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9619 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
9620 ndr->flags = _flags_save_string;
9623 uint32_t _flags_save_string = ndr->flags;
9624 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9625 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
9626 ndr->flags = _flags_save_string;
9629 uint32_t _flags_save_string = ndr->flags;
9630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9631 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
9632 ndr->flags = _flags_save_string;
9635 uint32_t _flags_save_string = ndr->flags;
9636 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9637 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
9638 ndr->flags = _flags_save_string;
9641 uint32_t _flags_save_string = ndr->flags;
9642 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9643 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
9644 ndr->flags = _flags_save_string;
9647 uint32_t _flags_save_string_array = ndr->flags;
9648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9649 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
9650 ndr->flags = _flags_save_string_array;
9653 uint32_t _flags_save_string = ndr->flags;
9654 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9655 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
9656 ndr->flags = _flags_save_string;
9658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9660 uint32_t _flags_save_string_array = ndr->flags;
9661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9662 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
9663 ndr->flags = _flags_save_string_array;
9665 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9666 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9668 if (ndr_flags & NDR_BUFFERS) {
9670 uint32_t _flags_save_string = ndr->flags;
9671 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9672 if (r->driver_name) {
9673 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9674 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9676 ndr->flags = _flags_save_string;
9679 uint32_t _flags_save_string = ndr->flags;
9680 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9681 if (r->architecture) {
9682 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9683 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9685 ndr->flags = _flags_save_string;
9688 uint32_t _flags_save_string = ndr->flags;
9689 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9690 if (r->driver_path) {
9691 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9692 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9694 ndr->flags = _flags_save_string;
9697 uint32_t _flags_save_string = ndr->flags;
9698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9700 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9701 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9703 ndr->flags = _flags_save_string;
9706 uint32_t _flags_save_string = ndr->flags;
9707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9708 if (r->config_file) {
9709 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9710 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9712 ndr->flags = _flags_save_string;
9715 uint32_t _flags_save_string = ndr->flags;
9716 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9718 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
9719 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
9721 ndr->flags = _flags_save_string;
9724 uint32_t _flags_save_string = ndr->flags;
9725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9726 if (r->monitor_name) {
9727 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
9728 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
9730 ndr->flags = _flags_save_string;
9733 uint32_t _flags_save_string = ndr->flags;
9734 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9735 if (r->default_datatype) {
9736 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
9737 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
9739 ndr->flags = _flags_save_string;
9742 uint32_t _flags_save_string_array = ndr->flags;
9743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9744 if (r->dependent_files) {
9745 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
9746 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
9748 ndr->flags = _flags_save_string_array;
9751 uint32_t _flags_save_string_array = ndr->flags;
9752 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9753 if (r->previous_names) {
9754 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
9755 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
9757 ndr->flags = _flags_save_string_array;
9760 uint32_t _flags_save_string = ndr->flags;
9761 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9762 if (r->manufacturer_name) {
9763 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9764 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9766 ndr->flags = _flags_save_string;
9769 uint32_t _flags_save_string = ndr->flags;
9770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9771 if (r->manufacturer_url) {
9772 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9775 ndr->flags = _flags_save_string;
9778 uint32_t _flags_save_string = ndr->flags;
9779 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9780 if (r->hardware_id) {
9781 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9782 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9784 ndr->flags = _flags_save_string;
9787 uint32_t _flags_save_string = ndr->flags;
9788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9790 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9791 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9793 ndr->flags = _flags_save_string;
9796 uint32_t _flags_save_string = ndr->flags;
9797 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9798 if (r->print_processor) {
9799 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
9800 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
9802 ndr->flags = _flags_save_string;
9805 uint32_t _flags_save_string = ndr->flags;
9806 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9807 if (r->vendor_setup) {
9808 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
9809 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
9811 ndr->flags = _flags_save_string;
9814 uint32_t _flags_save_string_array = ndr->flags;
9815 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9816 if (r->color_profiles) {
9817 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
9818 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
9820 ndr->flags = _flags_save_string_array;
9823 uint32_t _flags_save_string = ndr->flags;
9824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9826 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
9827 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
9829 ndr->flags = _flags_save_string;
9832 uint32_t _flags_save_string_array = ndr->flags;
9833 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9834 if (r->core_driver_dependencies) {
9835 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
9836 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
9838 ndr->flags = _flags_save_string_array;
9841 return NDR_ERR_SUCCESS;
9844 static enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
9846 uint32_t _ptr_driver_name;
9847 TALLOC_CTX *_mem_save_driver_name_0;
9848 uint32_t _ptr_architecture;
9849 TALLOC_CTX *_mem_save_architecture_0;
9850 uint32_t _ptr_driver_path;
9851 TALLOC_CTX *_mem_save_driver_path_0;
9852 uint32_t _ptr_data_file;
9853 TALLOC_CTX *_mem_save_data_file_0;
9854 uint32_t _ptr_config_file;
9855 TALLOC_CTX *_mem_save_config_file_0;
9856 uint32_t _ptr_help_file;
9857 TALLOC_CTX *_mem_save_help_file_0;
9858 uint32_t _ptr_monitor_name;
9859 TALLOC_CTX *_mem_save_monitor_name_0;
9860 uint32_t _ptr_default_datatype;
9861 TALLOC_CTX *_mem_save_default_datatype_0;
9862 uint32_t _ptr_dependent_files;
9863 TALLOC_CTX *_mem_save_dependent_files_0;
9864 uint32_t _ptr_previous_names;
9865 TALLOC_CTX *_mem_save_previous_names_0;
9866 uint32_t _ptr_manufacturer_name;
9867 TALLOC_CTX *_mem_save_manufacturer_name_0;
9868 uint32_t _ptr_manufacturer_url;
9869 TALLOC_CTX *_mem_save_manufacturer_url_0;
9870 uint32_t _ptr_hardware_id;
9871 TALLOC_CTX *_mem_save_hardware_id_0;
9872 uint32_t _ptr_provider;
9873 TALLOC_CTX *_mem_save_provider_0;
9874 uint32_t _ptr_print_processor;
9875 TALLOC_CTX *_mem_save_print_processor_0;
9876 uint32_t _ptr_vendor_setup;
9877 TALLOC_CTX *_mem_save_vendor_setup_0;
9878 uint32_t _ptr_color_profiles;
9879 TALLOC_CTX *_mem_save_color_profiles_0;
9880 uint32_t _ptr_inf_path;
9881 TALLOC_CTX *_mem_save_inf_path_0;
9882 uint32_t _ptr_core_driver_dependencies;
9883 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9884 if (ndr_flags & NDR_SCALARS) {
9885 NDR_CHECK(ndr_pull_align(ndr, 8));
9886 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9888 uint32_t _flags_save_string = ndr->flags;
9889 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9891 if (_ptr_driver_name) {
9892 NDR_PULL_ALLOC(ndr, r->driver_name);
9893 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9895 r->driver_name = NULL;
9897 ndr->flags = _flags_save_string;
9900 uint32_t _flags_save_string = ndr->flags;
9901 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9902 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9903 if (_ptr_architecture) {
9904 NDR_PULL_ALLOC(ndr, r->architecture);
9905 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9907 r->architecture = NULL;
9909 ndr->flags = _flags_save_string;
9912 uint32_t _flags_save_string = ndr->flags;
9913 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9915 if (_ptr_driver_path) {
9916 NDR_PULL_ALLOC(ndr, r->driver_path);
9917 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9919 r->driver_path = NULL;
9921 ndr->flags = _flags_save_string;
9924 uint32_t _flags_save_string = ndr->flags;
9925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9927 if (_ptr_data_file) {
9928 NDR_PULL_ALLOC(ndr, r->data_file);
9929 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9931 r->data_file = NULL;
9933 ndr->flags = _flags_save_string;
9936 uint32_t _flags_save_string = ndr->flags;
9937 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9939 if (_ptr_config_file) {
9940 NDR_PULL_ALLOC(ndr, r->config_file);
9941 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9943 r->config_file = NULL;
9945 ndr->flags = _flags_save_string;
9948 uint32_t _flags_save_string = ndr->flags;
9949 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9951 if (_ptr_help_file) {
9952 NDR_PULL_ALLOC(ndr, r->help_file);
9953 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9955 r->help_file = NULL;
9957 ndr->flags = _flags_save_string;
9960 uint32_t _flags_save_string = ndr->flags;
9961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9962 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9963 if (_ptr_monitor_name) {
9964 NDR_PULL_ALLOC(ndr, r->monitor_name);
9965 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9967 r->monitor_name = NULL;
9969 ndr->flags = _flags_save_string;
9972 uint32_t _flags_save_string = ndr->flags;
9973 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9974 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9975 if (_ptr_default_datatype) {
9976 NDR_PULL_ALLOC(ndr, r->default_datatype);
9977 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9979 r->default_datatype = NULL;
9981 ndr->flags = _flags_save_string;
9984 uint32_t _flags_save_string_array = ndr->flags;
9985 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9986 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9987 if (_ptr_dependent_files) {
9988 NDR_PULL_ALLOC(ndr, r->dependent_files);
9989 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9991 r->dependent_files = NULL;
9993 ndr->flags = _flags_save_string_array;
9996 uint32_t _flags_save_string_array = ndr->flags;
9997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9998 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9999 if (_ptr_previous_names) {
10000 NDR_PULL_ALLOC(ndr, r->previous_names);
10001 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10003 r->previous_names = NULL;
10005 ndr->flags = _flags_save_string_array;
10007 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
10008 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10010 uint32_t _flags_save_string = ndr->flags;
10011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10012 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10013 if (_ptr_manufacturer_name) {
10014 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10015 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
10017 r->manufacturer_name = NULL;
10019 ndr->flags = _flags_save_string;
10022 uint32_t _flags_save_string = ndr->flags;
10023 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10025 if (_ptr_manufacturer_url) {
10026 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10027 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
10029 r->manufacturer_url = NULL;
10031 ndr->flags = _flags_save_string;
10034 uint32_t _flags_save_string = ndr->flags;
10035 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10036 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10037 if (_ptr_hardware_id) {
10038 NDR_PULL_ALLOC(ndr, r->hardware_id);
10039 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
10041 r->hardware_id = NULL;
10043 ndr->flags = _flags_save_string;
10046 uint32_t _flags_save_string = ndr->flags;
10047 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10049 if (_ptr_provider) {
10050 NDR_PULL_ALLOC(ndr, r->provider);
10051 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
10053 r->provider = NULL;
10055 ndr->flags = _flags_save_string;
10058 uint32_t _flags_save_string = ndr->flags;
10059 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10061 if (_ptr_print_processor) {
10062 NDR_PULL_ALLOC(ndr, r->print_processor);
10063 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
10065 r->print_processor = NULL;
10067 ndr->flags = _flags_save_string;
10070 uint32_t _flags_save_string = ndr->flags;
10071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10072 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10073 if (_ptr_vendor_setup) {
10074 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10075 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
10077 r->vendor_setup = NULL;
10079 ndr->flags = _flags_save_string;
10082 uint32_t _flags_save_string_array = ndr->flags;
10083 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10084 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10085 if (_ptr_color_profiles) {
10086 NDR_PULL_ALLOC(ndr, r->color_profiles);
10087 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
10089 r->color_profiles = NULL;
10091 ndr->flags = _flags_save_string_array;
10094 uint32_t _flags_save_string = ndr->flags;
10095 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10097 if (_ptr_inf_path) {
10098 NDR_PULL_ALLOC(ndr, r->inf_path);
10099 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
10101 r->inf_path = NULL;
10103 ndr->flags = _flags_save_string;
10105 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10107 uint32_t _flags_save_string_array = ndr->flags;
10108 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10109 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10110 if (_ptr_core_driver_dependencies) {
10111 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10112 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
10114 r->core_driver_dependencies = NULL;
10116 ndr->flags = _flags_save_string_array;
10118 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10119 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10121 if (ndr_flags & NDR_BUFFERS) {
10123 uint32_t _flags_save_string = ndr->flags;
10124 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10125 if (r->driver_name) {
10126 uint32_t _relative_save_offset;
10127 _relative_save_offset = ndr->offset;
10128 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10129 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10130 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10131 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10132 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10133 ndr->offset = _relative_save_offset;
10135 ndr->flags = _flags_save_string;
10138 uint32_t _flags_save_string = ndr->flags;
10139 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10140 if (r->architecture) {
10141 uint32_t _relative_save_offset;
10142 _relative_save_offset = ndr->offset;
10143 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10144 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10145 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10146 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10147 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10148 ndr->offset = _relative_save_offset;
10150 ndr->flags = _flags_save_string;
10153 uint32_t _flags_save_string = ndr->flags;
10154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10155 if (r->driver_path) {
10156 uint32_t _relative_save_offset;
10157 _relative_save_offset = ndr->offset;
10158 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10159 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10160 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10161 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10162 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10163 ndr->offset = _relative_save_offset;
10165 ndr->flags = _flags_save_string;
10168 uint32_t _flags_save_string = ndr->flags;
10169 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10170 if (r->data_file) {
10171 uint32_t _relative_save_offset;
10172 _relative_save_offset = ndr->offset;
10173 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10174 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10175 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10176 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10177 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10178 ndr->offset = _relative_save_offset;
10180 ndr->flags = _flags_save_string;
10183 uint32_t _flags_save_string = ndr->flags;
10184 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10185 if (r->config_file) {
10186 uint32_t _relative_save_offset;
10187 _relative_save_offset = ndr->offset;
10188 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10189 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10190 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10191 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10193 ndr->offset = _relative_save_offset;
10195 ndr->flags = _flags_save_string;
10198 uint32_t _flags_save_string = ndr->flags;
10199 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10200 if (r->help_file) {
10201 uint32_t _relative_save_offset;
10202 _relative_save_offset = ndr->offset;
10203 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10204 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10205 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10206 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10207 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10208 ndr->offset = _relative_save_offset;
10210 ndr->flags = _flags_save_string;
10213 uint32_t _flags_save_string = ndr->flags;
10214 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10215 if (r->monitor_name) {
10216 uint32_t _relative_save_offset;
10217 _relative_save_offset = ndr->offset;
10218 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10219 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10220 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10221 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10222 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10223 ndr->offset = _relative_save_offset;
10225 ndr->flags = _flags_save_string;
10228 uint32_t _flags_save_string = ndr->flags;
10229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10230 if (r->default_datatype) {
10231 uint32_t _relative_save_offset;
10232 _relative_save_offset = ndr->offset;
10233 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10234 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10235 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10236 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10237 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10238 ndr->offset = _relative_save_offset;
10240 ndr->flags = _flags_save_string;
10243 uint32_t _flags_save_string_array = ndr->flags;
10244 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10245 if (r->dependent_files) {
10246 uint32_t _relative_save_offset;
10247 _relative_save_offset = ndr->offset;
10248 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10249 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10250 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10251 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10252 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10253 ndr->offset = _relative_save_offset;
10255 ndr->flags = _flags_save_string_array;
10258 uint32_t _flags_save_string_array = ndr->flags;
10259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10260 if (r->previous_names) {
10261 uint32_t _relative_save_offset;
10262 _relative_save_offset = ndr->offset;
10263 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
10264 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10265 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10266 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
10267 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10268 ndr->offset = _relative_save_offset;
10270 ndr->flags = _flags_save_string_array;
10273 uint32_t _flags_save_string = ndr->flags;
10274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10275 if (r->manufacturer_name) {
10276 uint32_t _relative_save_offset;
10277 _relative_save_offset = ndr->offset;
10278 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
10279 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10280 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10281 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
10282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10283 ndr->offset = _relative_save_offset;
10285 ndr->flags = _flags_save_string;
10288 uint32_t _flags_save_string = ndr->flags;
10289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10290 if (r->manufacturer_url) {
10291 uint32_t _relative_save_offset;
10292 _relative_save_offset = ndr->offset;
10293 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
10294 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10295 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10296 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
10297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10298 ndr->offset = _relative_save_offset;
10300 ndr->flags = _flags_save_string;
10303 uint32_t _flags_save_string = ndr->flags;
10304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10305 if (r->hardware_id) {
10306 uint32_t _relative_save_offset;
10307 _relative_save_offset = ndr->offset;
10308 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
10309 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10310 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10311 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
10312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10313 ndr->offset = _relative_save_offset;
10315 ndr->flags = _flags_save_string;
10318 uint32_t _flags_save_string = ndr->flags;
10319 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10321 uint32_t _relative_save_offset;
10322 _relative_save_offset = ndr->offset;
10323 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
10324 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10325 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10326 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
10327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10328 ndr->offset = _relative_save_offset;
10330 ndr->flags = _flags_save_string;
10333 uint32_t _flags_save_string = ndr->flags;
10334 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10335 if (r->print_processor) {
10336 uint32_t _relative_save_offset;
10337 _relative_save_offset = ndr->offset;
10338 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
10339 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10340 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10341 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
10342 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10343 ndr->offset = _relative_save_offset;
10345 ndr->flags = _flags_save_string;
10348 uint32_t _flags_save_string = ndr->flags;
10349 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10350 if (r->vendor_setup) {
10351 uint32_t _relative_save_offset;
10352 _relative_save_offset = ndr->offset;
10353 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
10354 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10355 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10356 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
10357 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10358 ndr->offset = _relative_save_offset;
10360 ndr->flags = _flags_save_string;
10363 uint32_t _flags_save_string_array = ndr->flags;
10364 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10365 if (r->color_profiles) {
10366 uint32_t _relative_save_offset;
10367 _relative_save_offset = ndr->offset;
10368 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
10369 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10370 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10371 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
10372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10373 ndr->offset = _relative_save_offset;
10375 ndr->flags = _flags_save_string_array;
10378 uint32_t _flags_save_string = ndr->flags;
10379 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10381 uint32_t _relative_save_offset;
10382 _relative_save_offset = ndr->offset;
10383 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
10384 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10385 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10386 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
10387 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10388 ndr->offset = _relative_save_offset;
10390 ndr->flags = _flags_save_string;
10393 uint32_t _flags_save_string_array = ndr->flags;
10394 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10395 if (r->core_driver_dependencies) {
10396 uint32_t _relative_save_offset;
10397 _relative_save_offset = ndr->offset;
10398 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
10399 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10400 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10401 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
10402 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10403 ndr->offset = _relative_save_offset;
10405 ndr->flags = _flags_save_string_array;
10408 return NDR_ERR_SUCCESS;
10411 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
10413 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
10415 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10416 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10418 if (r->driver_name) {
10419 ndr_print_string(ndr, "driver_name", r->driver_name);
10422 ndr_print_ptr(ndr, "architecture", r->architecture);
10424 if (r->architecture) {
10425 ndr_print_string(ndr, "architecture", r->architecture);
10428 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10430 if (r->driver_path) {
10431 ndr_print_string(ndr, "driver_path", r->driver_path);
10434 ndr_print_ptr(ndr, "data_file", r->data_file);
10436 if (r->data_file) {
10437 ndr_print_string(ndr, "data_file", r->data_file);
10440 ndr_print_ptr(ndr, "config_file", r->config_file);
10442 if (r->config_file) {
10443 ndr_print_string(ndr, "config_file", r->config_file);
10446 ndr_print_ptr(ndr, "help_file", r->help_file);
10448 if (r->help_file) {
10449 ndr_print_string(ndr, "help_file", r->help_file);
10452 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10454 if (r->monitor_name) {
10455 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10458 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10460 if (r->default_datatype) {
10461 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10464 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10466 if (r->dependent_files) {
10467 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10470 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10472 if (r->previous_names) {
10473 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10476 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
10477 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10478 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10480 if (r->manufacturer_name) {
10481 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10484 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10486 if (r->manufacturer_url) {
10487 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10490 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10492 if (r->hardware_id) {
10493 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10496 ndr_print_ptr(ndr, "provider", r->provider);
10499 ndr_print_string(ndr, "provider", r->provider);
10502 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10504 if (r->print_processor) {
10505 ndr_print_string(ndr, "print_processor", r->print_processor);
10508 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10510 if (r->vendor_setup) {
10511 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10514 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10516 if (r->color_profiles) {
10517 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
10520 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10523 ndr_print_string(ndr, "inf_path", r->inf_path);
10526 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10527 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10529 if (r->core_driver_dependencies) {
10530 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10533 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10534 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10538 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
10540 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10541 if (ndr_flags & NDR_SCALARS) {
10542 int level = ndr_push_get_switch_value(ndr, r);
10545 NDR_CHECK(ndr_push_align(ndr, 4));
10546 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10547 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10551 NDR_CHECK(ndr_push_align(ndr, 4));
10552 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10553 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10557 NDR_CHECK(ndr_push_align(ndr, 4));
10558 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10559 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10563 NDR_CHECK(ndr_push_align(ndr, 4));
10564 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10565 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10569 NDR_CHECK(ndr_push_align(ndr, 4));
10570 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10571 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10575 NDR_CHECK(ndr_push_align(ndr, 8));
10576 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10577 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10581 NDR_CHECK(ndr_push_align(ndr, 8));
10582 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10583 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10591 if (ndr_flags & NDR_BUFFERS) {
10592 int level = ndr_push_get_switch_value(ndr, r);
10593 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10596 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10600 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10604 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10608 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10612 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10616 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10620 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10628 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10629 return NDR_ERR_SUCCESS;
10632 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
10634 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10636 level = ndr_pull_get_switch_value(ndr, r);
10637 if (ndr_flags & NDR_SCALARS) {
10640 NDR_CHECK(ndr_pull_align(ndr, 4));
10641 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10642 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10646 NDR_CHECK(ndr_pull_align(ndr, 4));
10647 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10648 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10652 NDR_CHECK(ndr_pull_align(ndr, 4));
10653 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10654 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10658 NDR_CHECK(ndr_pull_align(ndr, 4));
10659 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10660 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10664 NDR_CHECK(ndr_pull_align(ndr, 4));
10665 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10666 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10670 NDR_CHECK(ndr_pull_align(ndr, 8));
10671 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10672 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10676 NDR_CHECK(ndr_pull_align(ndr, 8));
10677 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10678 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10686 if (ndr_flags & NDR_BUFFERS) {
10687 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10690 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10694 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10698 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10702 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10706 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10710 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10714 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10722 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10723 return NDR_ERR_SUCCESS;
10726 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
10729 level = ndr_print_get_switch_value(ndr, r);
10730 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
10733 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
10737 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
10741 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
10745 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
10749 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
10753 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
10757 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
10766 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
10768 if (ndr_flags & NDR_SCALARS) {
10769 NDR_CHECK(ndr_push_align(ndr, 4));
10771 uint32_t _flags_save_string = ndr->flags;
10772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10773 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
10774 ndr->flags = _flags_save_string;
10777 if (ndr_flags & NDR_BUFFERS) {
10779 return NDR_ERR_SUCCESS;
10782 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
10784 if (ndr_flags & NDR_SCALARS) {
10785 NDR_CHECK(ndr_pull_align(ndr, 4));
10787 uint32_t _flags_save_string = ndr->flags;
10788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10789 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
10790 ndr->flags = _flags_save_string;
10793 if (ndr_flags & NDR_BUFFERS) {
10795 return NDR_ERR_SUCCESS;
10798 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
10800 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
10802 ndr_print_string(ndr, "directory_name", r->directory_name);
10806 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo1(const struct spoolss_DriverDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
10808 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo1, ic);
10811 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverDirectoryInfo *r)
10813 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10814 if (ndr_flags & NDR_SCALARS) {
10815 int level = ndr_push_get_switch_value(ndr, r);
10818 NDR_CHECK(ndr_push_align(ndr, 4));
10819 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10820 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10824 NDR_CHECK(ndr_push_align(ndr, 4));
10825 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10826 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10831 if (ndr_flags & NDR_BUFFERS) {
10832 int level = ndr_push_get_switch_value(ndr, r);
10833 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10843 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10844 return NDR_ERR_SUCCESS;
10847 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverDirectoryInfo *r)
10849 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10851 level = ndr_pull_get_switch_value(ndr, r);
10852 if (ndr_flags & NDR_SCALARS) {
10855 NDR_CHECK(ndr_pull_align(ndr, 4));
10856 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10857 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10861 NDR_CHECK(ndr_pull_align(ndr, 4));
10862 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10863 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
10868 if (ndr_flags & NDR_BUFFERS) {
10869 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10879 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10880 return NDR_ERR_SUCCESS;
10883 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverDirectoryInfo *r)
10886 level = ndr_print_get_switch_value(ndr, r);
10887 ndr_print_union(ndr, name, level, "spoolss_DriverDirectoryInfo");
10890 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
10894 ndr_print_spoolss_DriverDirectoryInfo1(ndr, "info1", &r->info1);
10900 _PUBLIC_ size_t ndr_size_spoolss_DriverDirectoryInfo(const union spoolss_DriverDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
10902 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_DriverDirectoryInfo, ic);
10905 static enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorInfo1 *r)
10907 if (ndr_flags & NDR_SCALARS) {
10908 NDR_CHECK(ndr_push_align(ndr, 4));
10910 uint32_t _flags_save_string = ndr->flags;
10911 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10912 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor_name));
10913 ndr->flags = _flags_save_string;
10916 if (ndr_flags & NDR_BUFFERS) {
10918 uint32_t _flags_save_string = ndr->flags;
10919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10920 if (r->print_processor_name) {
10921 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor_name));
10922 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor_name));
10924 ndr->flags = _flags_save_string;
10927 return NDR_ERR_SUCCESS;
10930 static enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorInfo1 *r)
10932 uint32_t _ptr_print_processor_name;
10933 TALLOC_CTX *_mem_save_print_processor_name_0;
10934 if (ndr_flags & NDR_SCALARS) {
10935 NDR_CHECK(ndr_pull_align(ndr, 4));
10937 uint32_t _flags_save_string = ndr->flags;
10938 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10939 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor_name));
10940 if (_ptr_print_processor_name) {
10941 NDR_PULL_ALLOC(ndr, r->print_processor_name);
10942 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor_name, _ptr_print_processor_name));
10944 r->print_processor_name = NULL;
10946 ndr->flags = _flags_save_string;
10949 if (ndr_flags & NDR_BUFFERS) {
10951 uint32_t _flags_save_string = ndr->flags;
10952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10953 if (r->print_processor_name) {
10954 uint32_t _relative_save_offset;
10955 _relative_save_offset = ndr->offset;
10956 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor_name));
10957 _mem_save_print_processor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10958 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor_name, 0);
10959 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor_name));
10960 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_name_0, 0);
10961 ndr->offset = _relative_save_offset;
10963 ndr->flags = _flags_save_string;
10966 return NDR_ERR_SUCCESS;
10969 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorInfo1 *r)
10971 ndr_print_struct(ndr, name, "spoolss_PrintProcessorInfo1");
10973 ndr_print_ptr(ndr, "print_processor_name", r->print_processor_name);
10975 if (r->print_processor_name) {
10976 ndr_print_string(ndr, "print_processor_name", r->print_processor_name);
10982 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorInfo *r)
10984 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10985 if (ndr_flags & NDR_SCALARS) {
10986 int level = ndr_push_get_switch_value(ndr, r);
10989 NDR_CHECK(ndr_push_align(ndr, 4));
10990 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10991 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
10999 if (ndr_flags & NDR_BUFFERS) {
11000 int level = ndr_push_get_switch_value(ndr, r);
11001 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11004 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11012 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11013 return NDR_ERR_SUCCESS;
11016 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorInfo *r)
11018 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11020 level = ndr_pull_get_switch_value(ndr, r);
11021 if (ndr_flags & NDR_SCALARS) {
11024 NDR_CHECK(ndr_pull_align(ndr, 4));
11025 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11026 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_SCALARS, &r->info1));
11034 if (ndr_flags & NDR_BUFFERS) {
11035 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11038 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo1(ndr, NDR_BUFFERS, &r->info1));
11046 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11047 return NDR_ERR_SUCCESS;
11050 _PUBLIC_ void ndr_print_spoolss_PrintProcessorInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorInfo *r)
11053 level = ndr_print_get_switch_value(ndr, r);
11054 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorInfo");
11057 ndr_print_spoolss_PrintProcessorInfo1(ndr, "info1", &r->info1);
11066 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11068 if (ndr_flags & NDR_SCALARS) {
11069 NDR_CHECK(ndr_push_align(ndr, 4));
11071 uint32_t _flags_save_string = ndr->flags;
11072 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11073 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
11074 ndr->flags = _flags_save_string;
11077 if (ndr_flags & NDR_BUFFERS) {
11079 return NDR_ERR_SUCCESS;
11082 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrintProcessorDirectoryInfo1 *r)
11084 if (ndr_flags & NDR_SCALARS) {
11085 NDR_CHECK(ndr_pull_align(ndr, 4));
11087 uint32_t _flags_save_string = ndr->flags;
11088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11089 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
11090 ndr->flags = _flags_save_string;
11093 if (ndr_flags & NDR_BUFFERS) {
11095 return NDR_ERR_SUCCESS;
11098 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrintProcessorDirectoryInfo1 *r)
11100 ndr_print_struct(ndr, name, "spoolss_PrintProcessorDirectoryInfo1");
11102 ndr_print_string(ndr, "directory_name", r->directory_name);
11106 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo1(const struct spoolss_PrintProcessorDirectoryInfo1 *r, struct smb_iconv_convenience *ic, int flags)
11108 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo1, ic);
11111 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrintProcessorDirectoryInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrintProcessorDirectoryInfo *r)
11113 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11114 if (ndr_flags & NDR_SCALARS) {
11115 int level = ndr_push_get_switch_value(ndr, r);
11118 NDR_CHECK(ndr_push_align(ndr, 4));
11119 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11120 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11128 if (ndr_flags & NDR_BUFFERS) {
11129 int level = ndr_push_get_switch_value(ndr, r);
11130 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11140 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11141 return NDR_ERR_SUCCESS;
11144 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrintProcessorDirectoryInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrintProcessorDirectoryInfo *r)
11146 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11148 level = ndr_pull_get_switch_value(ndr, r);
11149 if (ndr_flags & NDR_SCALARS) {
11152 NDR_CHECK(ndr_pull_align(ndr, 4));
11153 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11154 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo1(ndr, NDR_SCALARS, &r->info1));
11162 if (ndr_flags & NDR_BUFFERS) {
11163 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11173 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11174 return NDR_ERR_SUCCESS;
11177 _PUBLIC_ void ndr_print_spoolss_PrintProcessorDirectoryInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrintProcessorDirectoryInfo *r)
11180 level = ndr_print_get_switch_value(ndr, r);
11181 ndr_print_union(ndr, name, level, "spoolss_PrintProcessorDirectoryInfo");
11184 ndr_print_spoolss_PrintProcessorDirectoryInfo1(ndr, "info1", &r->info1);
11193 _PUBLIC_ size_t ndr_size_spoolss_PrintProcessorDirectoryInfo(const union spoolss_PrintProcessorDirectoryInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11195 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrintProcessorDirectoryInfo, ic);
11198 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
11200 if (ndr_flags & NDR_SCALARS) {
11201 NDR_CHECK(ndr_push_align(ndr, 4));
11202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
11203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
11204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
11206 if (ndr_flags & NDR_BUFFERS) {
11207 if (r->document_name) {
11208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11211 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11213 if (r->output_file) {
11214 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11216 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11217 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11220 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11221 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11223 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11226 return NDR_ERR_SUCCESS;
11229 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
11231 uint32_t _ptr_document_name;
11232 TALLOC_CTX *_mem_save_document_name_0;
11233 uint32_t _ptr_output_file;
11234 TALLOC_CTX *_mem_save_output_file_0;
11235 uint32_t _ptr_datatype;
11236 TALLOC_CTX *_mem_save_datatype_0;
11237 if (ndr_flags & NDR_SCALARS) {
11238 NDR_CHECK(ndr_pull_align(ndr, 4));
11239 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
11240 if (_ptr_document_name) {
11241 NDR_PULL_ALLOC(ndr, r->document_name);
11243 r->document_name = NULL;
11245 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
11246 if (_ptr_output_file) {
11247 NDR_PULL_ALLOC(ndr, r->output_file);
11249 r->output_file = NULL;
11251 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
11252 if (_ptr_datatype) {
11253 NDR_PULL_ALLOC(ndr, r->datatype);
11255 r->datatype = NULL;
11258 if (ndr_flags & NDR_BUFFERS) {
11259 if (r->document_name) {
11260 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11261 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
11262 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
11263 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
11264 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
11265 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->document_name), ndr_get_array_length(ndr, &r->document_name));
11267 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
11268 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
11269 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
11271 if (r->output_file) {
11272 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11273 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
11274 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
11275 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
11276 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
11277 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->output_file), ndr_get_array_length(ndr, &r->output_file));
11279 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
11280 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
11281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
11284 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11285 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
11286 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
11287 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
11288 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
11289 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
11291 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
11292 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
11293 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
11296 return NDR_ERR_SUCCESS;
11299 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
11301 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
11303 ndr_print_ptr(ndr, "document_name", r->document_name);
11305 if (r->document_name) {
11306 ndr_print_string(ndr, "document_name", r->document_name);
11309 ndr_print_ptr(ndr, "output_file", r->output_file);
11311 if (r->output_file) {
11312 ndr_print_string(ndr, "output_file", r->output_file);
11315 ndr_print_ptr(ndr, "datatype", r->datatype);
11318 ndr_print_string(ndr, "datatype", r->datatype);
11324 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
11326 if (ndr_flags & NDR_SCALARS) {
11327 int level = ndr_push_get_switch_value(ndr, r);
11328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11331 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11345 if (ndr_flags & NDR_BUFFERS) {
11346 int level = ndr_push_get_switch_value(ndr, r);
11350 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11365 return NDR_ERR_SUCCESS;
11368 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
11372 TALLOC_CTX *_mem_save_info1_0;
11373 level = ndr_pull_get_switch_value(ndr, r);
11374 if (ndr_flags & NDR_SCALARS) {
11375 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11376 if (_level != level) {
11377 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11381 uint32_t _ptr_info1;
11382 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11384 NDR_PULL_ALLOC(ndr, r->info1);
11401 if (ndr_flags & NDR_BUFFERS) {
11405 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11406 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11407 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11408 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11423 return NDR_ERR_SUCCESS;
11426 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
11429 level = ndr_print_get_switch_value(ndr, r);
11430 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
11433 ndr_print_ptr(ndr, "info1", r->info1);
11436 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
11453 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
11455 if (ndr_flags & NDR_SCALARS) {
11456 NDR_CHECK(ndr_push_align(ndr, 4));
11457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
11458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11460 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11463 uint32_t _flags_save_string = ndr->flags;
11464 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11466 struct ndr_push *_ndr_extra_string;
11467 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11468 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11469 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11471 ndr->flags = _flags_save_string;
11474 if (ndr_flags & NDR_BUFFERS) {
11476 return NDR_ERR_SUCCESS;
11479 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
11481 if (ndr_flags & NDR_SCALARS) {
11482 NDR_CHECK(ndr_pull_align(ndr, 4));
11483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11484 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
11489 uint32_t _flags_save_string = ndr->flags;
11490 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11492 struct ndr_pull *_ndr_extra_string;
11493 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11494 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11495 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11497 ndr->flags = _flags_save_string;
11500 if (ndr_flags & NDR_BUFFERS) {
11502 return NDR_ERR_SUCCESS;
11505 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
11507 ndr_print_struct(ndr, name, "spoolss_OSVersion");
11509 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
11510 ndr_print_uint32(ndr, "major", r->major);
11511 ndr_print_uint32(ndr, "minor", r->minor);
11512 ndr_print_uint32(ndr, "build", r->build);
11513 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
11514 ndr_print_string(ndr, "extra_string", r->extra_string);
11518 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
11520 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
11523 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
11525 if (ndr_flags & NDR_SCALARS) {
11526 NDR_CHECK(ndr_push_align(ndr, 4));
11527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
11528 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11529 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11530 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11533 uint32_t _flags_save_string = ndr->flags;
11534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11536 struct ndr_push *_ndr_extra_string;
11537 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11538 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11539 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11541 ndr->flags = _flags_save_string;
11543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
11544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
11546 if (ndr_flags & NDR_BUFFERS) {
11548 return NDR_ERR_SUCCESS;
11551 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
11553 if (ndr_flags & NDR_SCALARS) {
11554 NDR_CHECK(ndr_pull_align(ndr, 4));
11555 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11556 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11557 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11558 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
11561 uint32_t _flags_save_string = ndr->flags;
11562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11564 struct ndr_pull *_ndr_extra_string;
11565 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11566 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11567 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11569 ndr->flags = _flags_save_string;
11571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
11572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
11574 if (ndr_flags & NDR_BUFFERS) {
11576 return NDR_ERR_SUCCESS;
11579 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
11581 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
11583 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
11584 ndr_print_uint32(ndr, "major", r->major);
11585 ndr_print_uint32(ndr, "minor", r->minor);
11586 ndr_print_uint32(ndr, "build", r->build);
11587 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
11588 ndr_print_string(ndr, "extra_string", r->extra_string);
11589 ndr_print_uint32(ndr, "unknown2", r->unknown2);
11590 ndr_print_uint32(ndr, "unknown3", r->unknown3);
11594 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
11596 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
11599 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
11601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11602 return NDR_ERR_SUCCESS;
11605 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
11608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11610 return NDR_ERR_SUCCESS;
11613 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
11615 const char *val = NULL;
11618 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
11619 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
11620 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
11621 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
11622 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
11624 ndr_print_enum(ndr, name, "ENUM", val, r);
11627 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
11629 if (ndr_flags & NDR_SCALARS) {
11630 int level = ndr_push_get_switch_value(ndr, r);
11632 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11635 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11637 uint32_t _flags_save_string = ndr->flags;
11638 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11639 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
11640 ndr->flags = _flags_save_string;
11644 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11646 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11648 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11649 ndr->flags = _flags_save_DATA_BLOB;
11653 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
11657 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11659 uint32_t _flags_save_string_array = ndr->flags;
11660 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11661 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
11662 ndr->flags = _flags_save_string_array;
11668 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11669 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11670 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
11671 ndr->flags = _flags_save_DATA_BLOB;
11677 if (ndr_flags & NDR_BUFFERS) {
11678 int level = ndr_push_get_switch_value(ndr, r);
11680 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11683 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11686 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11689 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11692 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11700 return NDR_ERR_SUCCESS;
11703 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
11706 level = ndr_pull_get_switch_value(ndr, r);
11707 if (ndr_flags & NDR_SCALARS) {
11709 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11712 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11714 uint32_t _flags_save_string = ndr->flags;
11715 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
11717 ndr->flags = _flags_save_string;
11721 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11723 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11725 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
11726 ndr->flags = _flags_save_DATA_BLOB;
11730 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
11734 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11736 uint32_t _flags_save_string_array = ndr->flags;
11737 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11738 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
11739 ndr->flags = _flags_save_string_array;
11745 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11746 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11747 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
11748 ndr->flags = _flags_save_DATA_BLOB;
11754 if (ndr_flags & NDR_BUFFERS) {
11756 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11759 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11762 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11765 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11768 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11776 return NDR_ERR_SUCCESS;
11779 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
11782 level = ndr_print_get_switch_value(ndr, r);
11783 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
11785 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11788 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11789 ndr_print_string(ndr, "string", r->string);
11792 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11793 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
11796 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11797 ndr_print_uint32(ndr, "value", r->value);
11800 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11801 ndr_print_string_array(ndr, "string_array", r->string_array);
11805 ndr_print_DATA_BLOB(ndr, "data", r->data);
11811 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11813 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
11816 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
11818 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11819 return NDR_ERR_SUCCESS;
11822 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
11825 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11827 return NDR_ERR_SUCCESS;
11830 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
11832 const char *val = NULL;
11835 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
11836 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
11837 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
11839 ndr_print_enum(ndr, name, "ENUM", val, r);
11842 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
11844 if (ndr_flags & NDR_SCALARS) {
11845 NDR_CHECK(ndr_push_align(ndr, 4));
11846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
11847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
11849 if (ndr_flags & NDR_BUFFERS) {
11851 return NDR_ERR_SUCCESS;
11854 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
11856 if (ndr_flags & NDR_SCALARS) {
11857 NDR_CHECK(ndr_pull_align(ndr, 4));
11858 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
11859 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
11861 if (ndr_flags & NDR_BUFFERS) {
11863 return NDR_ERR_SUCCESS;
11866 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
11868 ndr_print_struct(ndr, name, "spoolss_FormSize");
11870 ndr_print_uint32(ndr, "width", r->width);
11871 ndr_print_uint32(ndr, "height", r->height);
11875 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
11877 if (ndr_flags & NDR_SCALARS) {
11878 NDR_CHECK(ndr_push_align(ndr, 4));
11879 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
11880 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
11881 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
11882 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
11884 if (ndr_flags & NDR_BUFFERS) {
11886 return NDR_ERR_SUCCESS;
11889 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
11891 if (ndr_flags & NDR_SCALARS) {
11892 NDR_CHECK(ndr_pull_align(ndr, 4));
11893 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
11894 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
11895 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
11896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
11898 if (ndr_flags & NDR_BUFFERS) {
11900 return NDR_ERR_SUCCESS;
11903 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
11905 ndr_print_struct(ndr, name, "spoolss_FormArea");
11907 ndr_print_uint32(ndr, "left", r->left);
11908 ndr_print_uint32(ndr, "top", r->top);
11909 ndr_print_uint32(ndr, "right", r->right);
11910 ndr_print_uint32(ndr, "bottom", r->bottom);
11914 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
11916 if (ndr_flags & NDR_SCALARS) {
11917 NDR_CHECK(ndr_push_align(ndr, 4));
11918 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
11920 uint32_t _flags_save_string = ndr->flags;
11921 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11922 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
11923 ndr->flags = _flags_save_string;
11925 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11926 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11928 if (ndr_flags & NDR_BUFFERS) {
11930 uint32_t _flags_save_string = ndr->flags;
11931 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11932 if (r->form_name) {
11933 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
11934 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
11936 ndr->flags = _flags_save_string;
11939 return NDR_ERR_SUCCESS;
11942 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
11944 uint32_t _ptr_form_name;
11945 TALLOC_CTX *_mem_save_form_name_0;
11946 if (ndr_flags & NDR_SCALARS) {
11947 NDR_CHECK(ndr_pull_align(ndr, 4));
11948 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
11950 uint32_t _flags_save_string = ndr->flags;
11951 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11952 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
11953 if (_ptr_form_name) {
11954 NDR_PULL_ALLOC(ndr, r->form_name);
11955 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
11957 r->form_name = NULL;
11959 ndr->flags = _flags_save_string;
11961 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11962 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11964 if (ndr_flags & NDR_BUFFERS) {
11966 uint32_t _flags_save_string = ndr->flags;
11967 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11968 if (r->form_name) {
11969 uint32_t _relative_save_offset;
11970 _relative_save_offset = ndr->offset;
11971 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
11972 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11973 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
11974 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
11975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
11976 ndr->offset = _relative_save_offset;
11978 ndr->flags = _flags_save_string;
11981 return NDR_ERR_SUCCESS;
11984 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
11986 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
11988 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
11989 ndr_print_ptr(ndr, "form_name", r->form_name);
11991 if (r->form_name) {
11992 ndr_print_string(ndr, "form_name", r->form_name);
11995 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
11996 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12000 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
12002 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12003 if (ndr_flags & NDR_SCALARS) {
12004 int level = ndr_push_get_switch_value(ndr, r);
12007 NDR_CHECK(ndr_push_align(ndr, 4));
12008 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12009 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12017 if (ndr_flags & NDR_BUFFERS) {
12018 int level = ndr_push_get_switch_value(ndr, r);
12019 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12022 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12030 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12031 return NDR_ERR_SUCCESS;
12034 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
12036 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12038 level = ndr_pull_get_switch_value(ndr, r);
12039 if (ndr_flags & NDR_SCALARS) {
12042 NDR_CHECK(ndr_pull_align(ndr, 4));
12043 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12044 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
12052 if (ndr_flags & NDR_BUFFERS) {
12053 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12056 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
12064 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12065 return NDR_ERR_SUCCESS;
12068 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
12071 level = ndr_print_get_switch_value(ndr, r);
12072 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
12075 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
12084 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
12086 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
12089 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
12091 if (ndr_flags & NDR_SCALARS) {
12092 NDR_CHECK(ndr_push_align(ndr, 4));
12093 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
12094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
12095 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12096 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12098 if (ndr_flags & NDR_BUFFERS) {
12099 if (r->form_name) {
12100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
12102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
12103 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
12106 return NDR_ERR_SUCCESS;
12109 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
12111 uint32_t _ptr_form_name;
12112 TALLOC_CTX *_mem_save_form_name_0;
12113 if (ndr_flags & NDR_SCALARS) {
12114 NDR_CHECK(ndr_pull_align(ndr, 4));
12115 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
12116 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
12117 if (_ptr_form_name) {
12118 NDR_PULL_ALLOC(ndr, r->form_name);
12120 r->form_name = NULL;
12122 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
12123 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
12125 if (ndr_flags & NDR_BUFFERS) {
12126 if (r->form_name) {
12127 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12128 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
12129 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
12130 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
12131 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
12132 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->form_name), ndr_get_array_length(ndr, &r->form_name));
12134 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
12135 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
12136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12139 return NDR_ERR_SUCCESS;
12142 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
12144 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
12146 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12147 ndr_print_ptr(ndr, "form_name", r->form_name);
12149 if (r->form_name) {
12150 ndr_print_string(ndr, "form_name", r->form_name);
12153 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12154 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12158 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
12160 if (ndr_flags & NDR_SCALARS) {
12161 int level = ndr_push_get_switch_value(ndr, r);
12162 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
12165 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
12169 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12172 if (ndr_flags & NDR_BUFFERS) {
12173 int level = ndr_push_get_switch_value(ndr, r);
12177 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12182 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12185 return NDR_ERR_SUCCESS;
12188 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
12192 TALLOC_CTX *_mem_save_info1_0;
12193 level = ndr_pull_get_switch_value(ndr, r);
12194 if (ndr_flags & NDR_SCALARS) {
12195 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12196 if (_level != level) {
12197 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12201 uint32_t _ptr_info1;
12202 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
12204 NDR_PULL_ALLOC(ndr, r->info1);
12211 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12214 if (ndr_flags & NDR_BUFFERS) {
12218 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12219 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
12220 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12221 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
12226 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12229 return NDR_ERR_SUCCESS;
12232 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
12235 level = ndr_print_get_switch_value(ndr, r);
12236 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
12239 ndr_print_ptr(ndr, "info1", r->info1);
12242 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
12248 ndr_print_bad_level(ndr, name, level);
12252 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
12254 if (ndr_flags & NDR_SCALARS) {
12255 NDR_CHECK(ndr_push_align(ndr, 4));
12257 uint32_t _flags_save_string = ndr->flags;
12258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12260 ndr->flags = _flags_save_string;
12263 if (ndr_flags & NDR_BUFFERS) {
12265 uint32_t _flags_save_string = ndr->flags;
12266 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12267 if (r->port_name) {
12268 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12269 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12271 ndr->flags = _flags_save_string;
12274 return NDR_ERR_SUCCESS;
12277 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
12279 uint32_t _ptr_port_name;
12280 TALLOC_CTX *_mem_save_port_name_0;
12281 if (ndr_flags & NDR_SCALARS) {
12282 NDR_CHECK(ndr_pull_align(ndr, 4));
12284 uint32_t _flags_save_string = ndr->flags;
12285 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12286 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12287 if (_ptr_port_name) {
12288 NDR_PULL_ALLOC(ndr, r->port_name);
12289 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12291 r->port_name = NULL;
12293 ndr->flags = _flags_save_string;
12296 if (ndr_flags & NDR_BUFFERS) {
12298 uint32_t _flags_save_string = ndr->flags;
12299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12300 if (r->port_name) {
12301 uint32_t _relative_save_offset;
12302 _relative_save_offset = ndr->offset;
12303 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12304 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12305 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12306 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12308 ndr->offset = _relative_save_offset;
12310 ndr->flags = _flags_save_string;
12313 return NDR_ERR_SUCCESS;
12316 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
12318 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
12320 ndr_print_ptr(ndr, "port_name", r->port_name);
12322 if (r->port_name) {
12323 ndr_print_string(ndr, "port_name", r->port_name);
12329 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12332 return NDR_ERR_SUCCESS;
12335 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12340 return NDR_ERR_SUCCESS;
12343 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
12345 ndr_print_uint32(ndr, name, r);
12347 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
12348 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
12349 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
12350 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
12354 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
12356 if (ndr_flags & NDR_SCALARS) {
12357 NDR_CHECK(ndr_push_align(ndr, 4));
12359 uint32_t _flags_save_string = ndr->flags;
12360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12361 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12362 ndr->flags = _flags_save_string;
12365 uint32_t _flags_save_string = ndr->flags;
12366 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12367 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12368 ndr->flags = _flags_save_string;
12371 uint32_t _flags_save_string = ndr->flags;
12372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12373 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
12374 ndr->flags = _flags_save_string;
12376 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
12377 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12379 if (ndr_flags & NDR_BUFFERS) {
12381 uint32_t _flags_save_string = ndr->flags;
12382 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12383 if (r->port_name) {
12384 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12385 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12387 ndr->flags = _flags_save_string;
12390 uint32_t _flags_save_string = ndr->flags;
12391 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12392 if (r->monitor_name) {
12393 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12394 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12396 ndr->flags = _flags_save_string;
12399 uint32_t _flags_save_string = ndr->flags;
12400 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12401 if (r->description) {
12402 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
12403 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
12405 ndr->flags = _flags_save_string;
12408 return NDR_ERR_SUCCESS;
12411 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
12413 uint32_t _ptr_port_name;
12414 TALLOC_CTX *_mem_save_port_name_0;
12415 uint32_t _ptr_monitor_name;
12416 TALLOC_CTX *_mem_save_monitor_name_0;
12417 uint32_t _ptr_description;
12418 TALLOC_CTX *_mem_save_description_0;
12419 if (ndr_flags & NDR_SCALARS) {
12420 NDR_CHECK(ndr_pull_align(ndr, 4));
12422 uint32_t _flags_save_string = ndr->flags;
12423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12424 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12425 if (_ptr_port_name) {
12426 NDR_PULL_ALLOC(ndr, r->port_name);
12427 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12429 r->port_name = NULL;
12431 ndr->flags = _flags_save_string;
12434 uint32_t _flags_save_string = ndr->flags;
12435 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12436 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12437 if (_ptr_monitor_name) {
12438 NDR_PULL_ALLOC(ndr, r->monitor_name);
12439 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12441 r->monitor_name = NULL;
12443 ndr->flags = _flags_save_string;
12446 uint32_t _flags_save_string = ndr->flags;
12447 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12448 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
12449 if (_ptr_description) {
12450 NDR_PULL_ALLOC(ndr, r->description);
12451 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
12453 r->description = NULL;
12455 ndr->flags = _flags_save_string;
12457 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
12458 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12460 if (ndr_flags & NDR_BUFFERS) {
12462 uint32_t _flags_save_string = ndr->flags;
12463 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12464 if (r->port_name) {
12465 uint32_t _relative_save_offset;
12466 _relative_save_offset = ndr->offset;
12467 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12468 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12469 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12470 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12472 ndr->offset = _relative_save_offset;
12474 ndr->flags = _flags_save_string;
12477 uint32_t _flags_save_string = ndr->flags;
12478 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12479 if (r->monitor_name) {
12480 uint32_t _relative_save_offset;
12481 _relative_save_offset = ndr->offset;
12482 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12483 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12484 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12485 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12487 ndr->offset = _relative_save_offset;
12489 ndr->flags = _flags_save_string;
12492 uint32_t _flags_save_string = ndr->flags;
12493 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12494 if (r->description) {
12495 uint32_t _relative_save_offset;
12496 _relative_save_offset = ndr->offset;
12497 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
12498 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
12499 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
12500 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
12501 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
12502 ndr->offset = _relative_save_offset;
12504 ndr->flags = _flags_save_string;
12507 return NDR_ERR_SUCCESS;
12510 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
12512 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
12514 ndr_print_ptr(ndr, "port_name", r->port_name);
12516 if (r->port_name) {
12517 ndr_print_string(ndr, "port_name", r->port_name);
12520 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12522 if (r->monitor_name) {
12523 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12526 ndr_print_ptr(ndr, "description", r->description);
12528 if (r->description) {
12529 ndr_print_string(ndr, "description", r->description);
12532 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
12533 ndr_print_uint32(ndr, "reserved", r->reserved);
12537 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
12539 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12540 if (ndr_flags & NDR_SCALARS) {
12541 int level = ndr_push_get_switch_value(ndr, r);
12544 NDR_CHECK(ndr_push_align(ndr, 4));
12545 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12546 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12550 NDR_CHECK(ndr_push_align(ndr, 4));
12551 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12552 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12563 if (ndr_flags & NDR_BUFFERS) {
12564 int level = ndr_push_get_switch_value(ndr, r);
12565 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12568 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12572 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12583 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12584 return NDR_ERR_SUCCESS;
12587 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
12589 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12591 level = ndr_pull_get_switch_value(ndr, r);
12592 if (ndr_flags & NDR_SCALARS) {
12595 NDR_CHECK(ndr_pull_align(ndr, 4));
12596 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12597 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12601 NDR_CHECK(ndr_pull_align(ndr, 4));
12602 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12603 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12614 if (ndr_flags & NDR_BUFFERS) {
12615 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12618 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12622 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12633 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12634 return NDR_ERR_SUCCESS;
12637 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
12640 level = ndr_print_get_switch_value(ndr, r);
12641 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
12644 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
12648 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
12660 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
12662 if (ndr_flags & NDR_SCALARS) {
12663 NDR_CHECK(ndr_push_align(ndr, 4));
12665 uint32_t _flags_save_string = ndr->flags;
12666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12668 ndr->flags = _flags_save_string;
12671 if (ndr_flags & NDR_BUFFERS) {
12673 uint32_t _flags_save_string = ndr->flags;
12674 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12675 if (r->monitor_name) {
12676 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12677 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12679 ndr->flags = _flags_save_string;
12682 return NDR_ERR_SUCCESS;
12685 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
12687 uint32_t _ptr_monitor_name;
12688 TALLOC_CTX *_mem_save_monitor_name_0;
12689 if (ndr_flags & NDR_SCALARS) {
12690 NDR_CHECK(ndr_pull_align(ndr, 4));
12692 uint32_t _flags_save_string = ndr->flags;
12693 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12695 if (_ptr_monitor_name) {
12696 NDR_PULL_ALLOC(ndr, r->monitor_name);
12697 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12699 r->monitor_name = NULL;
12701 ndr->flags = _flags_save_string;
12704 if (ndr_flags & NDR_BUFFERS) {
12706 uint32_t _flags_save_string = ndr->flags;
12707 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12708 if (r->monitor_name) {
12709 uint32_t _relative_save_offset;
12710 _relative_save_offset = ndr->offset;
12711 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12712 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12713 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12714 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12716 ndr->offset = _relative_save_offset;
12718 ndr->flags = _flags_save_string;
12721 return NDR_ERR_SUCCESS;
12724 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
12726 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
12728 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12730 if (r->monitor_name) {
12731 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12737 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
12739 if (ndr_flags & NDR_SCALARS) {
12740 NDR_CHECK(ndr_push_align(ndr, 4));
12742 uint32_t _flags_save_string = ndr->flags;
12743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12744 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12745 ndr->flags = _flags_save_string;
12748 uint32_t _flags_save_string = ndr->flags;
12749 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12750 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
12751 ndr->flags = _flags_save_string;
12754 uint32_t _flags_save_string = ndr->flags;
12755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12756 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
12757 ndr->flags = _flags_save_string;
12760 if (ndr_flags & NDR_BUFFERS) {
12762 uint32_t _flags_save_string = ndr->flags;
12763 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12764 if (r->monitor_name) {
12765 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12766 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12768 ndr->flags = _flags_save_string;
12771 uint32_t _flags_save_string = ndr->flags;
12772 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12773 if (r->environment) {
12774 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
12775 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
12777 ndr->flags = _flags_save_string;
12780 uint32_t _flags_save_string = ndr->flags;
12781 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12783 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
12784 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
12786 ndr->flags = _flags_save_string;
12789 return NDR_ERR_SUCCESS;
12792 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
12794 uint32_t _ptr_monitor_name;
12795 TALLOC_CTX *_mem_save_monitor_name_0;
12796 uint32_t _ptr_environment;
12797 TALLOC_CTX *_mem_save_environment_0;
12798 uint32_t _ptr_dll_name;
12799 TALLOC_CTX *_mem_save_dll_name_0;
12800 if (ndr_flags & NDR_SCALARS) {
12801 NDR_CHECK(ndr_pull_align(ndr, 4));
12803 uint32_t _flags_save_string = ndr->flags;
12804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12805 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12806 if (_ptr_monitor_name) {
12807 NDR_PULL_ALLOC(ndr, r->monitor_name);
12808 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12810 r->monitor_name = NULL;
12812 ndr->flags = _flags_save_string;
12815 uint32_t _flags_save_string = ndr->flags;
12816 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
12818 if (_ptr_environment) {
12819 NDR_PULL_ALLOC(ndr, r->environment);
12820 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
12822 r->environment = NULL;
12824 ndr->flags = _flags_save_string;
12827 uint32_t _flags_save_string = ndr->flags;
12828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12829 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
12830 if (_ptr_dll_name) {
12831 NDR_PULL_ALLOC(ndr, r->dll_name);
12832 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
12834 r->dll_name = NULL;
12836 ndr->flags = _flags_save_string;
12839 if (ndr_flags & NDR_BUFFERS) {
12841 uint32_t _flags_save_string = ndr->flags;
12842 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12843 if (r->monitor_name) {
12844 uint32_t _relative_save_offset;
12845 _relative_save_offset = ndr->offset;
12846 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12847 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12848 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12849 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12850 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12851 ndr->offset = _relative_save_offset;
12853 ndr->flags = _flags_save_string;
12856 uint32_t _flags_save_string = ndr->flags;
12857 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12858 if (r->environment) {
12859 uint32_t _relative_save_offset;
12860 _relative_save_offset = ndr->offset;
12861 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
12862 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
12863 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
12864 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
12865 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
12866 ndr->offset = _relative_save_offset;
12868 ndr->flags = _flags_save_string;
12871 uint32_t _flags_save_string = ndr->flags;
12872 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12874 uint32_t _relative_save_offset;
12875 _relative_save_offset = ndr->offset;
12876 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
12877 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12878 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
12879 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
12880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
12881 ndr->offset = _relative_save_offset;
12883 ndr->flags = _flags_save_string;
12886 return NDR_ERR_SUCCESS;
12889 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
12891 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
12893 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12895 if (r->monitor_name) {
12896 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12899 ndr_print_ptr(ndr, "environment", r->environment);
12901 if (r->environment) {
12902 ndr_print_string(ndr, "environment", r->environment);
12905 ndr_print_ptr(ndr, "dll_name", r->dll_name);
12908 ndr_print_string(ndr, "dll_name", r->dll_name);
12914 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
12916 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12917 if (ndr_flags & NDR_SCALARS) {
12918 int level = ndr_push_get_switch_value(ndr, r);
12921 NDR_CHECK(ndr_push_align(ndr, 4));
12922 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12923 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12927 NDR_CHECK(ndr_push_align(ndr, 4));
12928 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12929 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12937 if (ndr_flags & NDR_BUFFERS) {
12938 int level = ndr_push_get_switch_value(ndr, r);
12939 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12942 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12946 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12954 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12955 return NDR_ERR_SUCCESS;
12958 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
12960 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12962 level = ndr_pull_get_switch_value(ndr, r);
12963 if (ndr_flags & NDR_SCALARS) {
12966 NDR_CHECK(ndr_pull_align(ndr, 4));
12967 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12968 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12972 NDR_CHECK(ndr_pull_align(ndr, 4));
12973 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12974 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12982 if (ndr_flags & NDR_BUFFERS) {
12983 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12986 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12990 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12998 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12999 return NDR_ERR_SUCCESS;
13002 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
13005 level = ndr_print_get_switch_value(ndr, r);
13006 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
13009 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
13013 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
13022 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13024 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13025 return NDR_ERR_SUCCESS;
13028 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13031 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13033 return NDR_ERR_SUCCESS;
13036 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13038 ndr_print_uint32(ndr, name, r);
13040 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
13041 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
13042 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
13043 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
13044 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
13045 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
13046 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
13047 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
13048 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
13049 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
13050 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
13051 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
13052 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
13053 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
13054 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
13055 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
13056 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SERVER", PRINTER_CHANGE_SERVER, r);
13057 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
13058 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
13059 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
13060 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
13064 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
13066 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13067 return NDR_ERR_SUCCESS;
13070 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
13073 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13075 return NDR_ERR_SUCCESS;
13078 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
13080 const char *val = NULL;
13083 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
13084 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
13085 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
13086 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
13087 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
13088 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
13089 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
13090 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
13091 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
13092 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
13093 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
13094 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
13095 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
13096 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
13097 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
13098 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
13099 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
13100 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
13101 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
13102 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
13103 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
13104 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
13105 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
13106 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
13107 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
13108 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
13110 ndr_print_enum(ndr, name, "ENUM", val, r);
13113 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
13115 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
13116 return NDR_ERR_SUCCESS;
13119 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
13122 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
13124 return NDR_ERR_SUCCESS;
13127 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
13129 const char *val = NULL;
13132 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
13133 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
13135 ndr_print_enum(ndr, name, "ENUM", val, r);
13138 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
13140 uint32_t cntr_fields_1;
13141 if (ndr_flags & NDR_SCALARS) {
13142 NDR_CHECK(ndr_push_align(ndr, 4));
13143 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13144 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
13145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
13146 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
13147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13148 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
13150 if (ndr_flags & NDR_BUFFERS) {
13152 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13153 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13154 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
13158 return NDR_ERR_SUCCESS;
13161 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
13163 uint32_t _ptr_fields;
13164 uint32_t cntr_fields_1;
13165 TALLOC_CTX *_mem_save_fields_0;
13166 TALLOC_CTX *_mem_save_fields_1;
13167 if (ndr_flags & NDR_SCALARS) {
13168 NDR_CHECK(ndr_pull_align(ndr, 4));
13169 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13170 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
13171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
13172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
13173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13174 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
13176 NDR_PULL_ALLOC(ndr, r->fields);
13181 if (ndr_flags & NDR_BUFFERS) {
13183 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
13184 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13185 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
13186 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
13187 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
13188 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13189 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13190 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
13192 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
13193 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
13196 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
13199 return NDR_ERR_SUCCESS;
13202 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
13204 uint32_t cntr_fields_1;
13205 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
13207 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13208 ndr_print_uint16(ndr, "u1", r->u1);
13209 ndr_print_uint32(ndr, "u2", r->u2);
13210 ndr_print_uint32(ndr, "u3", r->u3);
13211 ndr_print_uint32(ndr, "count", r->count);
13212 ndr_print_ptr(ndr, "fields", r->fields);
13215 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
13217 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
13219 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
13220 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
13230 static enum ndr_err_code ndr_push_spoolssNotifyOptionFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13233 return NDR_ERR_SUCCESS;
13236 static enum ndr_err_code ndr_pull_spoolssNotifyOptionFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13239 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13241 return NDR_ERR_SUCCESS;
13244 _PUBLIC_ void ndr_print_spoolssNotifyOptionFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13246 ndr_print_uint32(ndr, name, r);
13248 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_OPTIONS_REFRESH", PRINTER_NOTIFY_OPTIONS_REFRESH, r);
13252 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
13254 uint32_t cntr_types_1;
13255 if (ndr_flags & NDR_SCALARS) {
13256 NDR_CHECK(ndr_push_align(ndr, 4));
13257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13258 NDR_CHECK(ndr_push_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, r->flags));
13259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
13262 if (ndr_flags & NDR_BUFFERS) {
13264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13265 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13266 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13268 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13269 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13273 return NDR_ERR_SUCCESS;
13276 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
13278 uint32_t _ptr_types;
13279 uint32_t cntr_types_1;
13280 TALLOC_CTX *_mem_save_types_0;
13281 TALLOC_CTX *_mem_save_types_1;
13282 if (ndr_flags & NDR_SCALARS) {
13283 NDR_CHECK(ndr_pull_align(ndr, 4));
13284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13285 NDR_CHECK(ndr_pull_spoolssNotifyOptionFlags(ndr, NDR_SCALARS, &r->flags));
13286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
13289 NDR_PULL_ALLOC(ndr, r->types);
13294 if (ndr_flags & NDR_BUFFERS) {
13296 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
13297 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13298 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
13299 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
13300 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
13301 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13302 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13303 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13305 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13306 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13308 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
13309 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
13312 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
13315 return NDR_ERR_SUCCESS;
13318 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
13320 uint32_t cntr_types_1;
13321 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
13323 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13324 ndr_print_spoolssNotifyOptionFlags(ndr, "flags", r->flags);
13325 ndr_print_uint32(ndr, "count", r->count);
13326 ndr_print_ptr(ndr, "types", r->types);
13329 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
13331 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
13333 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
13334 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
13344 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
13346 if (ndr_flags & NDR_SCALARS) {
13347 NDR_CHECK(ndr_push_align(ndr, 4));
13348 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13349 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
13351 if (ndr_flags & NDR_BUFFERS) {
13353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
13354 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
13357 return NDR_ERR_SUCCESS;
13360 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
13362 uint32_t _ptr_string;
13363 TALLOC_CTX *_mem_save_string_0;
13364 if (ndr_flags & NDR_SCALARS) {
13365 NDR_CHECK(ndr_pull_align(ndr, 4));
13366 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13367 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
13369 NDR_PULL_ALLOC(ndr, r->string);
13374 if (ndr_flags & NDR_BUFFERS) {
13376 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
13377 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
13378 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
13379 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
13380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
13383 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
13386 return NDR_ERR_SUCCESS;
13389 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
13391 ndr_print_struct(ndr, name, "spoolss_NotifyString");
13393 ndr_print_uint32(ndr, "size", r->size);
13394 ndr_print_ptr(ndr, "string", r->string);
13397 ndr_print_string(ndr, "string", r->string);
13403 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
13405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13406 return NDR_ERR_SUCCESS;
13409 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
13412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13414 return NDR_ERR_SUCCESS;
13417 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
13419 const char *val = NULL;
13422 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
13423 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
13424 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
13425 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
13426 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
13428 ndr_print_enum(ndr, name, "ENUM", val, r);
13431 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
13433 if (ndr_flags & NDR_SCALARS) {
13434 int level = ndr_push_get_switch_value(ndr, r);
13435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13438 uint32_t cntr_integer_0;
13439 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
13445 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13449 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
13453 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13457 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13461 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13464 if (ndr_flags & NDR_BUFFERS) {
13465 int level = ndr_push_get_switch_value(ndr, r);
13471 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13475 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
13479 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13483 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13487 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13490 return NDR_ERR_SUCCESS;
13493 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
13497 level = ndr_pull_get_switch_value(ndr, r);
13498 if (ndr_flags & NDR_SCALARS) {
13499 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13500 if (_level != level) {
13501 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13505 uint32_t cntr_integer_0;
13506 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13507 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
13512 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13516 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS, &r->devmode));
13520 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13524 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13528 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13531 if (ndr_flags & NDR_BUFFERS) {
13537 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13541 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_BUFFERS, &r->devmode));
13545 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13549 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13553 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13556 return NDR_ERR_SUCCESS;
13559 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
13562 uint32_t cntr_integer_0;
13563 level = ndr_print_get_switch_value(ndr, r);
13564 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
13567 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
13569 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
13571 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
13572 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
13580 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
13584 ndr_print_spoolss_DevmodeContainer(ndr, "devmode", &r->devmode);
13588 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
13592 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
13596 ndr_print_bad_level(ndr, name, level);
13600 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
13602 if (ndr_flags & NDR_SCALARS) {
13603 NDR_CHECK(ndr_push_align(ndr, 4));
13604 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13605 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
13606 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
13607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
13608 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
13609 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13611 if (ndr_flags & NDR_BUFFERS) {
13612 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13614 return NDR_ERR_SUCCESS;
13617 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
13619 if (ndr_flags & NDR_SCALARS) {
13620 NDR_CHECK(ndr_pull_align(ndr, 4));
13621 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13622 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
13623 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
13624 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
13625 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
13626 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13628 if (ndr_flags & NDR_BUFFERS) {
13629 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13631 return NDR_ERR_SUCCESS;
13634 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
13636 ndr_print_struct(ndr, name, "spoolss_Notify");
13638 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13639 ndr_print_spoolss_Field(ndr, "field", r->field);
13640 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
13641 ndr_print_uint32(ndr, "job_id", r->job_id);
13642 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
13643 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
13647 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
13649 uint32_t cntr_notifies_0;
13650 if (ndr_flags & NDR_SCALARS) {
13651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13652 NDR_CHECK(ndr_push_align(ndr, 4));
13653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13654 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13655 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13656 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13657 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13660 if (ndr_flags & NDR_BUFFERS) {
13661 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13662 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13665 return NDR_ERR_SUCCESS;
13668 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
13670 uint32_t cntr_notifies_0;
13671 TALLOC_CTX *_mem_save_notifies_0;
13672 if (ndr_flags & NDR_SCALARS) {
13673 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
13674 NDR_CHECK(ndr_pull_align(ndr, 4));
13675 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13677 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13678 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
13679 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13680 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13681 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13682 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13686 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
13689 if (ndr_flags & NDR_BUFFERS) {
13690 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13691 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13692 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13693 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13697 return NDR_ERR_SUCCESS;
13700 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
13702 uint32_t cntr_notifies_0;
13703 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
13705 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13706 ndr_print_uint32(ndr, "flags", r->flags);
13707 ndr_print_uint32(ndr, "count", r->count);
13708 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
13710 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
13712 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
13713 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
13721 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
13723 if (ndr_flags & NDR_SCALARS) {
13724 int level = ndr_push_get_switch_value(ndr, r);
13725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13728 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
13732 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13735 if (ndr_flags & NDR_BUFFERS) {
13736 int level = ndr_push_get_switch_value(ndr, r);
13740 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13745 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13748 return NDR_ERR_SUCCESS;
13751 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
13755 TALLOC_CTX *_mem_save_info0_0;
13756 level = ndr_pull_get_switch_value(ndr, r);
13757 if (ndr_flags & NDR_SCALARS) {
13758 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13759 if (_level != level) {
13760 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13764 uint32_t _ptr_info0;
13765 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
13767 NDR_PULL_ALLOC(ndr, r->info0);
13774 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13777 if (ndr_flags & NDR_BUFFERS) {
13781 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
13782 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
13783 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
13789 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13792 return NDR_ERR_SUCCESS;
13795 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
13798 level = ndr_print_get_switch_value(ndr, r);
13799 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
13802 ndr_print_ptr(ndr, "info0", r->info0);
13805 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
13811 ndr_print_bad_level(ndr, name, level);
13815 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13817 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13818 return NDR_ERR_SUCCESS;
13821 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13824 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13826 return NDR_ERR_SUCCESS;
13829 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13831 ndr_print_uint32(ndr, name, r);
13833 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
13834 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
13835 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
13839 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
13841 if (ndr_flags & NDR_SCALARS) {
13842 NDR_CHECK(ndr_push_align(ndr, 4));
13843 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13845 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13847 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13848 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13849 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13851 if (ndr_flags & NDR_BUFFERS) {
13853 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13856 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13861 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13862 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13865 return NDR_ERR_SUCCESS;
13868 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
13870 uint32_t _ptr_client;
13871 TALLOC_CTX *_mem_save_client_0;
13872 uint32_t _ptr_user;
13873 TALLOC_CTX *_mem_save_user_0;
13874 if (ndr_flags & NDR_SCALARS) {
13875 NDR_CHECK(ndr_pull_align(ndr, 4));
13876 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
13879 NDR_PULL_ALLOC(ndr, r->client);
13883 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
13885 NDR_PULL_ALLOC(ndr, r->user);
13889 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
13890 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
13891 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
13892 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
13894 if (ndr_flags & NDR_BUFFERS) {
13896 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
13897 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
13898 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
13899 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
13900 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
13901 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));
13903 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
13904 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
13905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
13908 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
13909 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
13910 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
13911 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
13912 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
13913 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));
13915 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
13916 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
13917 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
13920 return NDR_ERR_SUCCESS;
13923 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
13925 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
13927 ndr_print_uint32(ndr, "size", r->size);
13928 ndr_print_ptr(ndr, "client", r->client);
13931 ndr_print_string(ndr, "client", r->client);
13934 ndr_print_ptr(ndr, "user", r->user);
13937 ndr_print_string(ndr, "user", r->user);
13940 ndr_print_uint32(ndr, "build", r->build);
13941 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
13942 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
13943 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
13947 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
13949 if (ndr_flags & NDR_SCALARS) {
13950 NDR_CHECK(ndr_push_align(ndr, 4));
13951 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
13953 if (ndr_flags & NDR_BUFFERS) {
13955 return NDR_ERR_SUCCESS;
13958 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
13960 if (ndr_flags & NDR_SCALARS) {
13961 NDR_CHECK(ndr_pull_align(ndr, 4));
13962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
13964 if (ndr_flags & NDR_BUFFERS) {
13966 return NDR_ERR_SUCCESS;
13969 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
13971 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
13973 ndr_print_uint32(ndr, "not_used", r->not_used);
13977 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
13979 if (ndr_flags & NDR_SCALARS) {
13980 NDR_CHECK(ndr_push_align(ndr, 4));
13981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13982 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
13984 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13985 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13987 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13988 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13989 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13990 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
13992 if (ndr_flags & NDR_BUFFERS) {
13994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13995 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13996 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13997 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14002 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
14003 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14006 return NDR_ERR_SUCCESS;
14009 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
14011 uint32_t _ptr_client;
14012 TALLOC_CTX *_mem_save_client_0;
14013 uint32_t _ptr_user;
14014 TALLOC_CTX *_mem_save_user_0;
14015 if (ndr_flags & NDR_SCALARS) {
14016 NDR_CHECK(ndr_pull_align(ndr, 4));
14017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
14019 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
14020 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
14022 NDR_PULL_ALLOC(ndr, r->client);
14026 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
14028 NDR_PULL_ALLOC(ndr, r->user);
14032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
14033 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
14034 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
14035 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
14036 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
14038 if (ndr_flags & NDR_BUFFERS) {
14040 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
14041 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
14042 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
14043 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
14044 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
14045 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));
14047 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
14048 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
14049 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
14052 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
14053 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
14054 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
14055 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
14056 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
14057 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));
14059 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
14060 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
14061 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
14064 return NDR_ERR_SUCCESS;
14067 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
14069 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
14071 ndr_print_uint32(ndr, "size", r->size);
14072 ndr_print_uint32(ndr, "flags", r->flags);
14073 ndr_print_uint32(ndr, "size2", r->size2);
14074 ndr_print_ptr(ndr, "client", r->client);
14077 ndr_print_string(ndr, "client", r->client);
14080 ndr_print_ptr(ndr, "user", r->user);
14083 ndr_print_string(ndr, "user", r->user);
14086 ndr_print_uint32(ndr, "build", r->build);
14087 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
14088 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
14089 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
14090 ndr_print_udlong(ndr, "reserved", r->reserved);
14094 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
14096 if (ndr_flags & NDR_SCALARS) {
14097 int level = ndr_push_get_switch_value(ndr, r);
14098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
14101 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
14105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
14109 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
14113 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14116 if (ndr_flags & NDR_BUFFERS) {
14117 int level = ndr_push_get_switch_value(ndr, r);
14121 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14127 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14133 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14138 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14141 return NDR_ERR_SUCCESS;
14144 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
14148 TALLOC_CTX *_mem_save_level1_0;
14149 TALLOC_CTX *_mem_save_level2_0;
14150 TALLOC_CTX *_mem_save_level3_0;
14151 level = ndr_pull_get_switch_value(ndr, r);
14152 if (ndr_flags & NDR_SCALARS) {
14153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14154 if (_level != level) {
14155 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14159 uint32_t _ptr_level1;
14160 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
14162 NDR_PULL_ALLOC(ndr, r->level1);
14169 uint32_t _ptr_level2;
14170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
14172 NDR_PULL_ALLOC(ndr, r->level2);
14179 uint32_t _ptr_level3;
14180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
14182 NDR_PULL_ALLOC(ndr, r->level3);
14189 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14192 if (ndr_flags & NDR_BUFFERS) {
14196 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14197 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
14198 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14199 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
14205 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14206 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
14207 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14208 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
14214 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
14215 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
14216 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14217 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
14222 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14225 return NDR_ERR_SUCCESS;
14228 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
14231 level = ndr_print_get_switch_value(ndr, r);
14232 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
14235 ndr_print_ptr(ndr, "level1", r->level1);
14238 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
14244 ndr_print_ptr(ndr, "level2", r->level2);
14247 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
14253 ndr_print_ptr(ndr, "level3", r->level3);
14256 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
14262 ndr_print_bad_level(ndr, name, level);
14266 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
14268 if (ndr_flags & NDR_SCALARS) {
14269 NDR_CHECK(ndr_push_align(ndr, 4));
14270 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
14271 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
14272 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14274 if (ndr_flags & NDR_BUFFERS) {
14275 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14277 return NDR_ERR_SUCCESS;
14280 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
14282 if (ndr_flags & NDR_SCALARS) {
14283 NDR_CHECK(ndr_pull_align(ndr, 4));
14284 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
14285 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
14286 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14288 if (ndr_flags & NDR_BUFFERS) {
14289 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14291 return NDR_ERR_SUCCESS;
14294 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
14296 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
14298 ndr_print_uint32(ndr, "level", r->level);
14299 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
14300 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
14304 static enum ndr_err_code ndr_push_spoolss_AccessRights(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14307 return NDR_ERR_SUCCESS;
14310 static enum ndr_err_code ndr_pull_spoolss_AccessRights(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14315 return NDR_ERR_SUCCESS;
14318 _PUBLIC_ void ndr_print_spoolss_AccessRights(struct ndr_print *ndr, const char *name, uint32_t r)
14320 ndr_print_uint32(ndr, name, r);
14322 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ADMINISTER", SERVER_ACCESS_ADMINISTER, r);
14323 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SERVER_ACCESS_ENUMERATE", SERVER_ACCESS_ENUMERATE, r);
14324 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_ADMINISTER", PRINTER_ACCESS_ADMINISTER, r);
14325 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ACCESS_USE", PRINTER_ACCESS_USE, r);
14326 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "JOB_ACCESS_ADMINISTER", JOB_ACCESS_ADMINISTER, r);
14330 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14333 return NDR_ERR_SUCCESS;
14336 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14341 return NDR_ERR_SUCCESS;
14344 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14346 ndr_print_uint32(ndr, name, r);
14348 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
14349 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
14350 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
14354 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
14356 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14357 return NDR_ERR_SUCCESS;
14360 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
14363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14365 return NDR_ERR_SUCCESS;
14368 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
14370 const char *val = NULL;
14373 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
14374 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
14376 ndr_print_enum(ndr, name, "ENUM", val, r);
14379 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
14381 if (ndr_flags & NDR_SCALARS) {
14382 NDR_CHECK(ndr_push_align(ndr, 4));
14383 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
14385 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14388 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14390 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14391 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14392 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14393 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14394 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14399 if (ndr_flags & NDR_BUFFERS) {
14401 return NDR_ERR_SUCCESS;
14404 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
14406 if (ndr_flags & NDR_SCALARS) {
14407 NDR_CHECK(ndr_pull_align(ndr, 4));
14408 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14409 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14410 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14411 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14412 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14413 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14414 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14415 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14416 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14417 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14418 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14419 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14421 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14422 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14424 if (ndr_flags & NDR_BUFFERS) {
14426 return NDR_ERR_SUCCESS;
14429 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
14431 ndr_print_struct(ndr, name, "spoolss_PortData1");
14433 ndr_print_string(ndr, "portname", r->portname);
14434 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
14435 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14436 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14437 ndr_print_uint32(ndr, "reserved", r->reserved);
14438 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14439 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14440 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14441 ndr_print_string(ndr, "queue", r->queue);
14442 ndr_print_string(ndr, "ip_address", r->ip_address);
14443 ndr_print_string(ndr, "hardware_address", r->hardware_address);
14444 ndr_print_string(ndr, "device_type", r->device_type);
14445 ndr_print_uint32(ndr, "port_number", r->port_number);
14446 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14447 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14451 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData2 *r)
14453 if (ndr_flags & NDR_SCALARS) {
14454 NDR_CHECK(ndr_push_align(ndr, 4));
14455 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14456 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000002));
14457 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14458 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14459 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14460 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14461 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14463 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14464 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14465 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_monitor_mib_index));
14470 if (ndr_flags & NDR_BUFFERS) {
14472 return NDR_ERR_SUCCESS;
14475 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData2 *r)
14477 if (ndr_flags & NDR_SCALARS) {
14478 NDR_CHECK(ndr_pull_align(ndr, 4));
14479 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14480 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14481 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14482 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14483 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14484 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 128, sizeof(uint16_t), CH_UTF16));
14485 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14486 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14487 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14488 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14489 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14490 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14492 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_monitor_mib_index));
14494 if (ndr_flags & NDR_BUFFERS) {
14496 return NDR_ERR_SUCCESS;
14499 _PUBLIC_ void ndr_print_spoolss_PortData2(struct ndr_print *ndr, const char *name, const struct spoolss_PortData2 *r)
14501 ndr_print_struct(ndr, name, "spoolss_PortData2");
14503 ndr_print_string(ndr, "portname", r->portname);
14504 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000002:r->version);
14505 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14506 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14507 ndr_print_uint32(ndr, "reserved", r->reserved);
14508 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14509 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14510 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14511 ndr_print_string(ndr, "queue", r->queue);
14512 ndr_print_string(ndr, "device_type", r->device_type);
14513 ndr_print_uint32(ndr, "port_number", r->port_number);
14514 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14515 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14516 ndr_print_uint32(ndr, "port_monitor_mib_index", r->port_monitor_mib_index);
14520 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
14522 if (ndr_flags & NDR_SCALARS) {
14523 NDR_CHECK(ndr_push_align(ndr, 4));
14525 uint32_t _flags_save_string = ndr->flags;
14526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14527 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
14528 ndr->flags = _flags_save_string;
14531 if (ndr_flags & NDR_BUFFERS) {
14533 return NDR_ERR_SUCCESS;
14536 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
14538 if (ndr_flags & NDR_SCALARS) {
14539 NDR_CHECK(ndr_pull_align(ndr, 4));
14541 uint32_t _flags_save_string = ndr->flags;
14542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14543 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
14544 ndr->flags = _flags_save_string;
14547 if (ndr_flags & NDR_BUFFERS) {
14549 return NDR_ERR_SUCCESS;
14552 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
14554 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
14556 ndr_print_string(ndr, "dll_name", r->dll_name);
14560 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(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_AddPrinterDriverExFlags(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_AddPrinterDriverExFlags(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), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
14579 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
14580 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
14581 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
14582 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
14583 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
14584 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
14585 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
14589 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
14591 if (flags & NDR_IN) {
14592 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
14593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
14594 if (r->in.server) {
14595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14596 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14597 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14598 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14600 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14601 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14602 if (r->in.buffer) {
14603 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14607 if (flags & NDR_OUT) {
14608 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14610 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
14612 if (r->out.needed == NULL) {
14613 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14616 if (r->out.count == NULL) {
14617 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
14620 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14622 return NDR_ERR_SUCCESS;
14625 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
14627 uint32_t _ptr_server;
14628 uint32_t _ptr_buffer;
14629 uint32_t _ptr_info;
14630 TALLOC_CTX *_mem_save_server_0;
14631 TALLOC_CTX *_mem_save_buffer_0;
14632 TALLOC_CTX *_mem_save_info_0;
14633 TALLOC_CTX *_mem_save_needed_0;
14634 TALLOC_CTX *_mem_save_count_0;
14635 if (flags & NDR_IN) {
14636 ZERO_STRUCT(r->out);
14638 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
14639 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14641 NDR_PULL_ALLOC(ndr, r->in.server);
14643 r->in.server = NULL;
14645 if (r->in.server) {
14646 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14647 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14648 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14649 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14650 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14651 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));
14653 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14654 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14655 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14660 NDR_PULL_ALLOC(ndr, r->in.buffer);
14662 r->in.buffer = NULL;
14664 if (r->in.buffer) {
14665 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14666 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14667 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14671 NDR_PULL_ALLOC(ndr, r->out.needed);
14672 ZERO_STRUCTP(r->out.needed);
14673 NDR_PULL_ALLOC(ndr, r->out.count);
14674 ZERO_STRUCTP(r->out.count);
14676 if (flags & NDR_OUT) {
14677 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14679 NDR_PULL_ALLOC(ndr, r->out.info);
14681 r->out.info = NULL;
14684 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14685 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14686 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
14687 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14689 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14690 NDR_PULL_ALLOC(ndr, r->out.needed);
14692 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14693 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14694 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14695 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14696 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14697 NDR_PULL_ALLOC(ndr, r->out.count);
14699 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
14700 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
14701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
14702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
14703 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14705 return NDR_ERR_SUCCESS;
14708 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
14710 uint32_t cntr_info_0;
14711 if (flags & NDR_IN) {
14712 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14713 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14715 if (flags & NDR_OUT) {
14716 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14717 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14718 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14720 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14721 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14724 return NDR_ERR_SUCCESS;
14727 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
14729 uint32_t cntr_info_0;
14730 TALLOC_CTX *_mem_save_info_0;
14731 if (flags & NDR_IN) {
14732 ZERO_STRUCT(r->out);
14734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14735 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14737 if (flags & NDR_OUT) {
14738 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
14739 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14740 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14741 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14742 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14743 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14745 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14746 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14750 return NDR_ERR_SUCCESS;
14753 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
14755 uint32_t cntr_info_1;
14756 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
14758 if (flags & NDR_SET_VALUES) {
14759 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14761 if (flags & NDR_IN) {
14762 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
14764 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
14765 ndr_print_ptr(ndr, "server", r->in.server);
14767 if (r->in.server) {
14768 ndr_print_string(ndr, "server", r->in.server);
14771 ndr_print_uint32(ndr, "level", r->in.level);
14772 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14774 if (r->in.buffer) {
14775 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14778 ndr_print_uint32(ndr, "offered", r->in.offered);
14781 if (flags & NDR_OUT) {
14782 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
14784 ndr_print_ptr(ndr, "count", r->out.count);
14786 ndr_print_uint32(ndr, "count", *r->out.count);
14788 ndr_print_ptr(ndr, "info", r->out.info);
14791 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
14793 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
14795 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
14796 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
14797 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
14804 ndr_print_ptr(ndr, "needed", r->out.needed);
14806 ndr_print_uint32(ndr, "needed", *r->out.needed);
14808 ndr_print_WERROR(ndr, "result", r->out.result);
14814 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
14816 if (flags & NDR_IN) {
14817 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
14818 if (r->in.printername) {
14819 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14820 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14821 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14822 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
14825 if (r->in.datatype) {
14826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
14827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
14829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14831 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14832 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
14834 if (flags & NDR_OUT) {
14835 if (r->out.handle == NULL) {
14836 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14838 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14839 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14841 return NDR_ERR_SUCCESS;
14844 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
14846 uint32_t _ptr_printername;
14847 uint32_t _ptr_datatype;
14848 TALLOC_CTX *_mem_save_printername_0;
14849 TALLOC_CTX *_mem_save_datatype_0;
14850 TALLOC_CTX *_mem_save_handle_0;
14851 if (flags & NDR_IN) {
14852 ZERO_STRUCT(r->out);
14854 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
14855 if (_ptr_printername) {
14856 NDR_PULL_ALLOC(ndr, r->in.printername);
14858 r->in.printername = NULL;
14860 if (r->in.printername) {
14861 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
14862 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
14863 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
14864 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
14865 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
14866 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));
14868 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
14869 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
14870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
14872 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14873 if (_ptr_datatype) {
14874 NDR_PULL_ALLOC(ndr, r->in.datatype);
14876 r->in.datatype = NULL;
14878 if (r->in.datatype) {
14879 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14880 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
14881 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
14882 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
14883 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
14884 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
14886 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
14887 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
14888 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14890 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14891 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
14892 NDR_PULL_ALLOC(ndr, r->out.handle);
14893 ZERO_STRUCTP(r->out.handle);
14895 if (flags & NDR_OUT) {
14896 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14897 NDR_PULL_ALLOC(ndr, r->out.handle);
14899 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14900 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
14901 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14903 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14905 return NDR_ERR_SUCCESS;
14908 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
14910 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
14912 if (flags & NDR_SET_VALUES) {
14913 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14915 if (flags & NDR_IN) {
14916 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
14918 ndr_print_ptr(ndr, "printername", r->in.printername);
14920 if (r->in.printername) {
14921 ndr_print_string(ndr, "printername", r->in.printername);
14924 ndr_print_ptr(ndr, "datatype", r->in.datatype);
14926 if (r->in.datatype) {
14927 ndr_print_string(ndr, "datatype", r->in.datatype);
14930 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
14931 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
14934 if (flags & NDR_OUT) {
14935 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
14937 ndr_print_ptr(ndr, "handle", r->out.handle);
14939 ndr_print_policy_handle(ndr, "handle", r->out.handle);
14941 ndr_print_WERROR(ndr, "result", r->out.result);
14947 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
14949 if (flags & NDR_IN) {
14950 if (r->in.handle == NULL) {
14951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14953 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14954 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
14955 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
14957 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14959 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
14961 if (flags & NDR_OUT) {
14962 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14964 return NDR_ERR_SUCCESS;
14967 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
14970 TALLOC_CTX *_mem_save_handle_0;
14971 TALLOC_CTX *_mem_save_ctr_0;
14972 if (flags & NDR_IN) {
14973 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14974 NDR_PULL_ALLOC(ndr, r->in.handle);
14976 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14977 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14978 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14979 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14980 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
14981 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14983 NDR_PULL_ALLOC(ndr, r->in.ctr);
14988 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14989 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
14990 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
14993 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
14995 if (flags & NDR_OUT) {
14996 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14998 return NDR_ERR_SUCCESS;
15001 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
15003 ndr_print_struct(ndr, name, "spoolss_SetJob");
15005 if (flags & NDR_SET_VALUES) {
15006 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15008 if (flags & NDR_IN) {
15009 ndr_print_struct(ndr, "in", "spoolss_SetJob");
15011 ndr_print_ptr(ndr, "handle", r->in.handle);
15013 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15015 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15016 ndr_print_ptr(ndr, "ctr", r->in.ctr);
15019 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
15022 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
15025 if (flags & NDR_OUT) {
15026 ndr_print_struct(ndr, "out", "spoolss_SetJob");
15028 ndr_print_WERROR(ndr, "result", r->out.result);
15034 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
15036 if (flags & NDR_IN) {
15037 if (r->in.handle == NULL) {
15038 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15040 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
15042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15043 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15044 if (r->in.buffer) {
15045 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15049 if (flags & NDR_OUT) {
15050 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15053 struct ndr_push *_ndr_info;
15054 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15055 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15056 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15057 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15060 if (r->out.needed == NULL) {
15061 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15064 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15066 return NDR_ERR_SUCCESS;
15069 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
15071 uint32_t _ptr_buffer;
15072 uint32_t _ptr_info;
15073 TALLOC_CTX *_mem_save_handle_0;
15074 TALLOC_CTX *_mem_save_buffer_0;
15075 TALLOC_CTX *_mem_save_info_0;
15076 TALLOC_CTX *_mem_save_needed_0;
15077 if (flags & NDR_IN) {
15078 ZERO_STRUCT(r->out);
15080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15081 NDR_PULL_ALLOC(ndr, r->in.handle);
15083 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15084 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15085 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15087 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
15088 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15089 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15091 NDR_PULL_ALLOC(ndr, r->in.buffer);
15093 r->in.buffer = NULL;
15095 if (r->in.buffer) {
15096 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15097 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15098 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15099 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15101 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15102 NDR_PULL_ALLOC(ndr, r->out.needed);
15103 ZERO_STRUCTP(r->out.needed);
15105 if (flags & NDR_OUT) {
15106 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15108 NDR_PULL_ALLOC(ndr, r->out.info);
15110 r->out.info = NULL;
15113 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15114 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15116 struct ndr_pull *_ndr_info;
15117 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15118 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15119 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15120 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15122 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15124 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15125 NDR_PULL_ALLOC(ndr, r->out.needed);
15127 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15128 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15130 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15131 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15133 return NDR_ERR_SUCCESS;
15136 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
15138 ndr_print_struct(ndr, name, "spoolss_GetJob");
15140 if (flags & NDR_SET_VALUES) {
15141 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15143 if (flags & NDR_IN) {
15144 ndr_print_struct(ndr, "in", "spoolss_GetJob");
15146 ndr_print_ptr(ndr, "handle", r->in.handle);
15148 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15150 ndr_print_uint32(ndr, "job_id", r->in.job_id);
15151 ndr_print_uint32(ndr, "level", r->in.level);
15152 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15154 if (r->in.buffer) {
15155 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15158 ndr_print_uint32(ndr, "offered", r->in.offered);
15161 if (flags & NDR_OUT) {
15162 ndr_print_struct(ndr, "out", "spoolss_GetJob");
15164 ndr_print_ptr(ndr, "info", r->out.info);
15167 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15168 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
15171 ndr_print_ptr(ndr, "needed", r->out.needed);
15173 ndr_print_uint32(ndr, "needed", *r->out.needed);
15175 ndr_print_WERROR(ndr, "result", r->out.result);
15181 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
15183 if (flags & NDR_IN) {
15184 if (r->in.handle == NULL) {
15185 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15187 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15188 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
15189 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
15190 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15191 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15192 if (r->in.buffer) {
15193 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15197 if (flags & NDR_OUT) {
15198 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15200 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15202 if (r->out.needed == NULL) {
15203 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15206 if (r->out.count == NULL) {
15207 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15210 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15212 return NDR_ERR_SUCCESS;
15215 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
15217 uint32_t _ptr_buffer;
15218 uint32_t _ptr_info;
15219 TALLOC_CTX *_mem_save_handle_0;
15220 TALLOC_CTX *_mem_save_buffer_0;
15221 TALLOC_CTX *_mem_save_info_0;
15222 TALLOC_CTX *_mem_save_needed_0;
15223 TALLOC_CTX *_mem_save_count_0;
15224 if (flags & NDR_IN) {
15225 ZERO_STRUCT(r->out);
15227 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15228 NDR_PULL_ALLOC(ndr, r->in.handle);
15230 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15231 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15232 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15234 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
15235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
15236 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15237 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15239 NDR_PULL_ALLOC(ndr, r->in.buffer);
15241 r->in.buffer = NULL;
15243 if (r->in.buffer) {
15244 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15245 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15246 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15247 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15249 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15250 NDR_PULL_ALLOC(ndr, r->out.needed);
15251 ZERO_STRUCTP(r->out.needed);
15252 NDR_PULL_ALLOC(ndr, r->out.count);
15253 ZERO_STRUCTP(r->out.count);
15255 if (flags & NDR_OUT) {
15256 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15258 NDR_PULL_ALLOC(ndr, r->out.info);
15260 r->out.info = NULL;
15263 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15264 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15265 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15266 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15268 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15269 NDR_PULL_ALLOC(ndr, r->out.needed);
15271 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15272 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15273 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15274 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15275 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15276 NDR_PULL_ALLOC(ndr, r->out.count);
15278 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15279 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15280 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15281 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15282 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15284 return NDR_ERR_SUCCESS;
15287 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
15289 uint32_t cntr_info_0;
15290 if (flags & NDR_IN) {
15291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15292 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15294 if (flags & NDR_OUT) {
15295 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15296 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15297 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15299 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15300 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15303 return NDR_ERR_SUCCESS;
15306 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
15308 uint32_t cntr_info_0;
15309 TALLOC_CTX *_mem_save_info_0;
15310 if (flags & NDR_IN) {
15311 ZERO_STRUCT(r->out);
15313 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15316 if (flags & NDR_OUT) {
15317 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15318 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15319 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15320 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15321 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15322 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15324 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15325 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15327 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15329 return NDR_ERR_SUCCESS;
15332 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
15334 uint32_t cntr_info_1;
15335 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
15337 if (flags & NDR_SET_VALUES) {
15338 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15340 if (flags & NDR_IN) {
15341 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
15343 ndr_print_ptr(ndr, "handle", r->in.handle);
15345 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15347 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
15348 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
15349 ndr_print_uint32(ndr, "level", r->in.level);
15350 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15352 if (r->in.buffer) {
15353 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15356 ndr_print_uint32(ndr, "offered", r->in.offered);
15359 if (flags & NDR_OUT) {
15360 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
15362 ndr_print_ptr(ndr, "count", r->out.count);
15364 ndr_print_uint32(ndr, "count", *r->out.count);
15366 ndr_print_ptr(ndr, "info", r->out.info);
15369 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15371 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15373 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15374 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15375 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
15382 ndr_print_ptr(ndr, "needed", r->out.needed);
15384 ndr_print_uint32(ndr, "needed", *r->out.needed);
15386 ndr_print_WERROR(ndr, "result", r->out.result);
15392 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
15394 if (flags & NDR_IN) {
15396 if (flags & NDR_OUT) {
15397 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15399 return NDR_ERR_SUCCESS;
15402 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
15404 if (flags & NDR_IN) {
15406 if (flags & NDR_OUT) {
15407 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15409 return NDR_ERR_SUCCESS;
15412 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
15414 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
15416 if (flags & NDR_SET_VALUES) {
15417 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15419 if (flags & NDR_IN) {
15420 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
15424 if (flags & NDR_OUT) {
15425 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
15427 ndr_print_WERROR(ndr, "result", r->out.result);
15433 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
15435 if (flags & NDR_IN) {
15436 if (r->in.handle == NULL) {
15437 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15439 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15441 if (flags & NDR_OUT) {
15442 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15444 return NDR_ERR_SUCCESS;
15447 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
15449 TALLOC_CTX *_mem_save_handle_0;
15450 if (flags & NDR_IN) {
15451 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15452 NDR_PULL_ALLOC(ndr, r->in.handle);
15454 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15455 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15456 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15459 if (flags & NDR_OUT) {
15460 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15462 return NDR_ERR_SUCCESS;
15465 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
15467 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
15469 if (flags & NDR_SET_VALUES) {
15470 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15472 if (flags & NDR_IN) {
15473 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
15475 ndr_print_ptr(ndr, "handle", r->in.handle);
15477 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15481 if (flags & NDR_OUT) {
15482 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
15484 ndr_print_WERROR(ndr, "result", r->out.result);
15490 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
15492 if (flags & NDR_IN) {
15493 if (r->in.handle == NULL) {
15494 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15496 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15497 if (r->in.info_ctr == NULL) {
15498 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15500 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15501 if (r->in.devmode_ctr == NULL) {
15502 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15504 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15505 if (r->in.secdesc_ctr == NULL) {
15506 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15508 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15509 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
15511 if (flags & NDR_OUT) {
15512 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15514 return NDR_ERR_SUCCESS;
15517 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
15519 TALLOC_CTX *_mem_save_handle_0;
15520 TALLOC_CTX *_mem_save_info_ctr_0;
15521 TALLOC_CTX *_mem_save_devmode_ctr_0;
15522 TALLOC_CTX *_mem_save_secdesc_ctr_0;
15523 if (flags & NDR_IN) {
15524 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15525 NDR_PULL_ALLOC(ndr, r->in.handle);
15527 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15528 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15529 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15530 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15531 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15532 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15534 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15535 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15536 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15537 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15538 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15539 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
15541 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15542 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
15543 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15545 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15546 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
15548 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15549 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
15550 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15551 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15552 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
15554 if (flags & NDR_OUT) {
15555 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15557 return NDR_ERR_SUCCESS;
15560 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
15562 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
15564 if (flags & NDR_SET_VALUES) {
15565 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15567 if (flags & NDR_IN) {
15568 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
15570 ndr_print_ptr(ndr, "handle", r->in.handle);
15572 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15574 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15576 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15578 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
15580 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
15582 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15584 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15586 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
15589 if (flags & NDR_OUT) {
15590 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
15592 ndr_print_WERROR(ndr, "result", r->out.result);
15598 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
15600 if (flags & NDR_IN) {
15601 if (r->in.handle == NULL) {
15602 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15604 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15605 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15606 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15607 if (r->in.buffer) {
15608 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15612 if (flags & NDR_OUT) {
15613 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15616 struct ndr_push *_ndr_info;
15617 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15618 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15619 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15620 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15623 if (r->out.needed == NULL) {
15624 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15626 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15627 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15629 return NDR_ERR_SUCCESS;
15632 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
15634 uint32_t _ptr_buffer;
15635 uint32_t _ptr_info;
15636 TALLOC_CTX *_mem_save_handle_0;
15637 TALLOC_CTX *_mem_save_buffer_0;
15638 TALLOC_CTX *_mem_save_info_0;
15639 TALLOC_CTX *_mem_save_needed_0;
15640 if (flags & NDR_IN) {
15641 ZERO_STRUCT(r->out);
15643 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15644 NDR_PULL_ALLOC(ndr, r->in.handle);
15646 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15647 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15648 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15653 NDR_PULL_ALLOC(ndr, r->in.buffer);
15655 r->in.buffer = NULL;
15657 if (r->in.buffer) {
15658 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15659 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15660 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15663 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15664 NDR_PULL_ALLOC(ndr, r->out.needed);
15665 ZERO_STRUCTP(r->out.needed);
15667 if (flags & NDR_OUT) {
15668 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15670 NDR_PULL_ALLOC(ndr, r->out.info);
15672 r->out.info = NULL;
15675 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15676 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15678 struct ndr_pull *_ndr_info;
15679 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15680 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15681 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15682 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15684 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15686 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15687 NDR_PULL_ALLOC(ndr, r->out.needed);
15689 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15690 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15691 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15693 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15695 return NDR_ERR_SUCCESS;
15698 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
15700 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
15702 if (flags & NDR_SET_VALUES) {
15703 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15705 if (flags & NDR_IN) {
15706 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
15708 ndr_print_ptr(ndr, "handle", r->in.handle);
15710 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15712 ndr_print_uint32(ndr, "level", r->in.level);
15713 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15715 if (r->in.buffer) {
15716 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15719 ndr_print_uint32(ndr, "offered", r->in.offered);
15722 if (flags & NDR_OUT) {
15723 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
15725 ndr_print_ptr(ndr, "info", r->out.info);
15728 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15729 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
15732 ndr_print_ptr(ndr, "needed", r->out.needed);
15734 ndr_print_uint32(ndr, "needed", *r->out.needed);
15736 ndr_print_WERROR(ndr, "result", r->out.result);
15742 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
15744 if (flags & NDR_IN) {
15745 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
15746 if (r->in.servername) {
15747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15750 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15752 if (r->in.info_ctr == NULL) {
15753 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15755 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15757 if (flags & NDR_OUT) {
15758 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15760 return NDR_ERR_SUCCESS;
15763 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
15765 uint32_t _ptr_servername;
15766 TALLOC_CTX *_mem_save_servername_0;
15767 TALLOC_CTX *_mem_save_info_ctr_0;
15768 if (flags & NDR_IN) {
15769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
15770 if (_ptr_servername) {
15771 NDR_PULL_ALLOC(ndr, r->in.servername);
15773 r->in.servername = NULL;
15775 if (r->in.servername) {
15776 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
15777 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
15778 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
15779 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
15780 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
15781 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.servername), ndr_get_array_length(ndr, &r->in.servername));
15783 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
15784 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
15785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
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_AddDriverInfoCtr(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);
15795 if (flags & NDR_OUT) {
15796 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15798 return NDR_ERR_SUCCESS;
15801 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
15803 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
15805 if (flags & NDR_SET_VALUES) {
15806 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15808 if (flags & NDR_IN) {
15809 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
15811 ndr_print_ptr(ndr, "servername", r->in.servername);
15813 if (r->in.servername) {
15814 ndr_print_string(ndr, "servername", r->in.servername);
15817 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15819 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15823 if (flags & NDR_OUT) {
15824 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
15826 ndr_print_WERROR(ndr, "result", r->out.result);
15832 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
15834 if (flags & NDR_IN) {
15835 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
15836 if (r->in.server) {
15837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15840 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15842 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
15843 if (r->in.environment) {
15844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15847 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15850 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15851 if (r->in.buffer) {
15852 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15854 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15856 if (flags & NDR_OUT) {
15857 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15859 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15861 if (r->out.needed == NULL) {
15862 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15865 if (r->out.count == NULL) {
15866 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15869 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15871 return NDR_ERR_SUCCESS;
15874 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
15876 uint32_t _ptr_server;
15877 uint32_t _ptr_environment;
15878 uint32_t _ptr_buffer;
15879 uint32_t _ptr_info;
15880 TALLOC_CTX *_mem_save_server_0;
15881 TALLOC_CTX *_mem_save_environment_0;
15882 TALLOC_CTX *_mem_save_buffer_0;
15883 TALLOC_CTX *_mem_save_info_0;
15884 TALLOC_CTX *_mem_save_needed_0;
15885 TALLOC_CTX *_mem_save_count_0;
15886 if (flags & NDR_IN) {
15887 ZERO_STRUCT(r->out);
15889 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
15891 NDR_PULL_ALLOC(ndr, r->in.server);
15893 r->in.server = NULL;
15895 if (r->in.server) {
15896 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
15897 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
15898 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
15899 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
15900 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
15901 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));
15903 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
15904 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
15905 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
15907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
15908 if (_ptr_environment) {
15909 NDR_PULL_ALLOC(ndr, r->in.environment);
15911 r->in.environment = NULL;
15913 if (r->in.environment) {
15914 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
15915 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
15916 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
15917 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
15918 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
15919 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
15921 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
15922 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
15923 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
15925 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15928 NDR_PULL_ALLOC(ndr, r->in.buffer);
15930 r->in.buffer = NULL;
15932 if (r->in.buffer) {
15933 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15934 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15935 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15938 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15939 NDR_PULL_ALLOC(ndr, r->out.needed);
15940 ZERO_STRUCTP(r->out.needed);
15941 NDR_PULL_ALLOC(ndr, r->out.count);
15942 ZERO_STRUCTP(r->out.count);
15944 if (flags & NDR_OUT) {
15945 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15947 NDR_PULL_ALLOC(ndr, r->out.info);
15949 r->out.info = NULL;
15952 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15953 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15954 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15955 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15957 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15958 NDR_PULL_ALLOC(ndr, r->out.needed);
15960 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15961 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15962 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15963 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15964 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15965 NDR_PULL_ALLOC(ndr, r->out.count);
15967 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15968 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15971 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15973 return NDR_ERR_SUCCESS;
15976 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
15978 uint32_t cntr_info_0;
15979 if (flags & NDR_IN) {
15980 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15981 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15983 if (flags & NDR_OUT) {
15984 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15985 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15986 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15988 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15989 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15992 return NDR_ERR_SUCCESS;
15995 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
15997 uint32_t cntr_info_0;
15998 TALLOC_CTX *_mem_save_info_0;
15999 if (flags & NDR_IN) {
16000 ZERO_STRUCT(r->out);
16002 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16005 if (flags & NDR_OUT) {
16006 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16007 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16008 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16009 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16010 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16011 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16013 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16014 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16018 return NDR_ERR_SUCCESS;
16021 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
16023 uint32_t cntr_info_1;
16024 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
16026 if (flags & NDR_SET_VALUES) {
16027 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16029 if (flags & NDR_IN) {
16030 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
16032 ndr_print_ptr(ndr, "server", r->in.server);
16034 if (r->in.server) {
16035 ndr_print_string(ndr, "server", r->in.server);
16038 ndr_print_ptr(ndr, "environment", r->in.environment);
16040 if (r->in.environment) {
16041 ndr_print_string(ndr, "environment", r->in.environment);
16044 ndr_print_uint32(ndr, "level", r->in.level);
16045 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16047 if (r->in.buffer) {
16048 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16051 ndr_print_uint32(ndr, "offered", r->in.offered);
16054 if (flags & NDR_OUT) {
16055 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
16057 ndr_print_ptr(ndr, "count", r->out.count);
16059 ndr_print_uint32(ndr, "count", *r->out.count);
16061 ndr_print_ptr(ndr, "info", r->out.info);
16064 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16066 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16068 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16069 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16070 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
16077 ndr_print_ptr(ndr, "needed", r->out.needed);
16079 ndr_print_uint32(ndr, "needed", *r->out.needed);
16081 ndr_print_WERROR(ndr, "result", r->out.result);
16087 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
16089 if (flags & NDR_IN) {
16091 if (flags & NDR_OUT) {
16092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16094 return NDR_ERR_SUCCESS;
16097 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
16099 if (flags & NDR_IN) {
16101 if (flags & NDR_OUT) {
16102 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16104 return NDR_ERR_SUCCESS;
16107 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
16109 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
16111 if (flags & NDR_SET_VALUES) {
16112 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16114 if (flags & NDR_IN) {
16115 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
16119 if (flags & NDR_OUT) {
16120 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
16122 ndr_print_WERROR(ndr, "result", r->out.result);
16128 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16130 if (flags & NDR_IN) {
16131 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16132 if (r->in.server) {
16133 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16135 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16136 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16138 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16139 if (r->in.environment) {
16140 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16141 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16142 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16143 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16145 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16146 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16147 if (r->in.buffer) {
16148 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16150 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16152 if (flags & NDR_OUT) {
16153 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16156 struct ndr_push *_ndr_info;
16157 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16158 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16159 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16160 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16163 if (r->out.needed == NULL) {
16164 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16166 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16167 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16169 return NDR_ERR_SUCCESS;
16172 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
16174 uint32_t _ptr_server;
16175 uint32_t _ptr_environment;
16176 uint32_t _ptr_buffer;
16177 uint32_t _ptr_info;
16178 TALLOC_CTX *_mem_save_server_0;
16179 TALLOC_CTX *_mem_save_environment_0;
16180 TALLOC_CTX *_mem_save_buffer_0;
16181 TALLOC_CTX *_mem_save_info_0;
16182 TALLOC_CTX *_mem_save_needed_0;
16183 if (flags & NDR_IN) {
16184 ZERO_STRUCT(r->out);
16186 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16188 NDR_PULL_ALLOC(ndr, r->in.server);
16190 r->in.server = NULL;
16192 if (r->in.server) {
16193 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16194 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16195 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16196 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16197 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16198 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));
16200 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16201 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16202 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16205 if (_ptr_environment) {
16206 NDR_PULL_ALLOC(ndr, r->in.environment);
16208 r->in.environment = NULL;
16210 if (r->in.environment) {
16211 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16212 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16213 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16214 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16215 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16216 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
16218 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16219 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16222 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16225 NDR_PULL_ALLOC(ndr, r->in.buffer);
16227 r->in.buffer = NULL;
16229 if (r->in.buffer) {
16230 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16231 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16232 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16233 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16235 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16236 NDR_PULL_ALLOC(ndr, r->out.needed);
16237 ZERO_STRUCTP(r->out.needed);
16239 if (flags & NDR_OUT) {
16240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16242 NDR_PULL_ALLOC(ndr, r->out.info);
16244 r->out.info = NULL;
16247 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16248 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16250 struct ndr_pull *_ndr_info;
16251 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16252 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16253 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16254 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16256 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16258 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16259 NDR_PULL_ALLOC(ndr, r->out.needed);
16261 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16262 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16263 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16265 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16267 return NDR_ERR_SUCCESS;
16270 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16272 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
16274 if (flags & NDR_SET_VALUES) {
16275 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16277 if (flags & NDR_IN) {
16278 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
16280 ndr_print_ptr(ndr, "server", r->in.server);
16282 if (r->in.server) {
16283 ndr_print_string(ndr, "server", r->in.server);
16286 ndr_print_ptr(ndr, "environment", r->in.environment);
16288 if (r->in.environment) {
16289 ndr_print_string(ndr, "environment", r->in.environment);
16292 ndr_print_uint32(ndr, "level", r->in.level);
16293 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16295 if (r->in.buffer) {
16296 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16299 ndr_print_uint32(ndr, "offered", r->in.offered);
16302 if (flags & NDR_OUT) {
16303 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
16305 ndr_print_ptr(ndr, "info", r->out.info);
16308 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16309 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
16312 ndr_print_ptr(ndr, "needed", r->out.needed);
16314 ndr_print_uint32(ndr, "needed", *r->out.needed);
16316 ndr_print_WERROR(ndr, "result", r->out.result);
16322 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
16324 if (flags & NDR_IN) {
16325 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16326 if (r->in.server) {
16327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16330 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16333 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16334 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16335 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16339 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16341 if (flags & NDR_OUT) {
16342 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16344 return NDR_ERR_SUCCESS;
16347 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
16349 uint32_t _ptr_server;
16350 TALLOC_CTX *_mem_save_server_0;
16351 if (flags & NDR_IN) {
16352 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16354 NDR_PULL_ALLOC(ndr, r->in.server);
16356 r->in.server = NULL;
16358 if (r->in.server) {
16359 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16360 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16361 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16362 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16363 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16364 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));
16366 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16367 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16368 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16370 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16371 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16372 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16373 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));
16375 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16376 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16377 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
16378 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
16379 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
16380 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));
16382 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
16383 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
16385 if (flags & NDR_OUT) {
16386 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16388 return NDR_ERR_SUCCESS;
16391 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
16393 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
16395 if (flags & NDR_SET_VALUES) {
16396 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16398 if (flags & NDR_IN) {
16399 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
16401 ndr_print_ptr(ndr, "server", r->in.server);
16403 if (r->in.server) {
16404 ndr_print_string(ndr, "server", r->in.server);
16407 ndr_print_string(ndr, "architecture", r->in.architecture);
16408 ndr_print_string(ndr, "driver", r->in.driver);
16411 if (flags & NDR_OUT) {
16412 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
16414 ndr_print_WERROR(ndr, "result", r->out.result);
16420 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
16422 if (flags & NDR_IN) {
16423 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16424 if (r->in.server) {
16425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16428 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16434 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16435 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16437 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));
16438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16441 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));
16443 if (flags & NDR_OUT) {
16444 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16446 return NDR_ERR_SUCCESS;
16449 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
16451 uint32_t _ptr_server;
16452 TALLOC_CTX *_mem_save_server_0;
16453 if (flags & NDR_IN) {
16454 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16456 NDR_PULL_ALLOC(ndr, r->in.server);
16458 r->in.server = NULL;
16460 if (r->in.server) {
16461 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16462 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16463 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16464 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16465 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16466 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));
16468 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16469 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16472 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16473 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16474 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16475 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));
16477 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16478 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16479 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
16480 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
16481 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
16482 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));
16484 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
16485 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));
16486 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
16487 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
16488 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
16489 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));
16491 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
16492 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));
16494 if (flags & NDR_OUT) {
16495 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16497 return NDR_ERR_SUCCESS;
16500 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
16502 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
16504 if (flags & NDR_SET_VALUES) {
16505 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16507 if (flags & NDR_IN) {
16508 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
16510 ndr_print_ptr(ndr, "server", r->in.server);
16512 if (r->in.server) {
16513 ndr_print_string(ndr, "server", r->in.server);
16516 ndr_print_string(ndr, "architecture", r->in.architecture);
16517 ndr_print_string(ndr, "path_name", r->in.path_name);
16518 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
16521 if (flags & NDR_OUT) {
16522 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
16524 ndr_print_WERROR(ndr, "result", r->out.result);
16530 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
16532 if (flags & NDR_IN) {
16533 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16534 if (r->in.servername) {
16535 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16536 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16537 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16538 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16540 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16541 if (r->in.environment) {
16542 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16543 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16544 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16545 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16547 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16548 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16549 if (r->in.buffer) {
16550 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16552 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16554 if (flags & NDR_OUT) {
16555 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16557 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16559 if (r->out.needed == NULL) {
16560 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16562 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16563 if (r->out.count == NULL) {
16564 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
16567 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16569 return NDR_ERR_SUCCESS;
16572 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
16574 uint32_t _ptr_servername;
16575 uint32_t _ptr_environment;
16576 uint32_t _ptr_buffer;
16577 uint32_t _ptr_info;
16578 TALLOC_CTX *_mem_save_servername_0;
16579 TALLOC_CTX *_mem_save_environment_0;
16580 TALLOC_CTX *_mem_save_buffer_0;
16581 TALLOC_CTX *_mem_save_info_0;
16582 TALLOC_CTX *_mem_save_needed_0;
16583 TALLOC_CTX *_mem_save_count_0;
16584 if (flags & NDR_IN) {
16585 ZERO_STRUCT(r->out);
16587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16588 if (_ptr_servername) {
16589 NDR_PULL_ALLOC(ndr, r->in.servername);
16591 r->in.servername = NULL;
16593 if (r->in.servername) {
16594 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16595 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16596 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16597 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16598 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16599 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));
16601 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16602 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16603 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16605 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16606 if (_ptr_environment) {
16607 NDR_PULL_ALLOC(ndr, r->in.environment);
16609 r->in.environment = NULL;
16611 if (r->in.environment) {
16612 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16613 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16614 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16615 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16616 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16617 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.environment), ndr_get_array_length(ndr, &r->in.environment));
16619 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16620 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16621 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16623 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16624 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16626 NDR_PULL_ALLOC(ndr, r->in.buffer);
16628 r->in.buffer = NULL;
16630 if (r->in.buffer) {
16631 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16632 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16633 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16634 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16636 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16637 NDR_PULL_ALLOC(ndr, r->out.needed);
16638 ZERO_STRUCTP(r->out.needed);
16639 NDR_PULL_ALLOC(ndr, r->out.count);
16640 ZERO_STRUCTP(r->out.count);
16642 if (flags & NDR_OUT) {
16643 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16645 NDR_PULL_ALLOC(ndr, r->out.info);
16647 r->out.info = NULL;
16650 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16651 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16652 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16653 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16655 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16656 NDR_PULL_ALLOC(ndr, r->out.needed);
16658 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16659 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16662 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16663 NDR_PULL_ALLOC(ndr, r->out.count);
16665 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16666 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16667 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16669 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16671 return NDR_ERR_SUCCESS;
16674 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
16676 uint32_t cntr_info_0;
16677 if (flags & NDR_IN) {
16678 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16679 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16681 if (flags & NDR_OUT) {
16682 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16683 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16684 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16686 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16687 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16690 return NDR_ERR_SUCCESS;
16693 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
16695 uint32_t cntr_info_0;
16696 TALLOC_CTX *_mem_save_info_0;
16697 if (flags & NDR_IN) {
16698 ZERO_STRUCT(r->out);
16700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16703 if (flags & NDR_OUT) {
16704 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16705 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16706 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16707 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16708 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16709 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16711 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16712 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16714 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16716 return NDR_ERR_SUCCESS;
16719 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
16721 uint32_t cntr_info_1;
16722 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
16724 if (flags & NDR_SET_VALUES) {
16725 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16727 if (flags & NDR_IN) {
16728 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
16730 ndr_print_ptr(ndr, "servername", r->in.servername);
16732 if (r->in.servername) {
16733 ndr_print_string(ndr, "servername", r->in.servername);
16736 ndr_print_ptr(ndr, "environment", r->in.environment);
16738 if (r->in.environment) {
16739 ndr_print_string(ndr, "environment", r->in.environment);
16742 ndr_print_uint32(ndr, "level", r->in.level);
16743 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16745 if (r->in.buffer) {
16746 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16749 ndr_print_uint32(ndr, "offered", r->in.offered);
16752 if (flags & NDR_OUT) {
16753 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
16755 ndr_print_ptr(ndr, "count", r->out.count);
16757 ndr_print_uint32(ndr, "count", *r->out.count);
16759 ndr_print_ptr(ndr, "info", r->out.info);
16762 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16764 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16766 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16767 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16768 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
16775 ndr_print_ptr(ndr, "needed", r->out.needed);
16777 ndr_print_uint32(ndr, "needed", *r->out.needed);
16779 ndr_print_WERROR(ndr, "result", r->out.result);
16785 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16787 if (flags & NDR_IN) {
16788 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16789 if (r->in.server) {
16790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16791 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16793 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16795 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16796 if (r->in.environment) {
16797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16800 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16802 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16803 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16804 if (r->in.buffer) {
16805 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16807 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16809 if (flags & NDR_OUT) {
16810 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16813 struct ndr_push *_ndr_info;
16814 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16815 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
16816 NDR_CHECK(ndr_push_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16817 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16820 if (r->out.needed == NULL) {
16821 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16824 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16826 return NDR_ERR_SUCCESS;
16829 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
16831 uint32_t _ptr_server;
16832 uint32_t _ptr_environment;
16833 uint32_t _ptr_buffer;
16834 uint32_t _ptr_info;
16835 TALLOC_CTX *_mem_save_server_0;
16836 TALLOC_CTX *_mem_save_environment_0;
16837 TALLOC_CTX *_mem_save_buffer_0;
16838 TALLOC_CTX *_mem_save_info_0;
16839 TALLOC_CTX *_mem_save_needed_0;
16840 if (flags & NDR_IN) {
16841 ZERO_STRUCT(r->out);
16843 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16845 NDR_PULL_ALLOC(ndr, r->in.server);
16847 r->in.server = NULL;
16849 if (r->in.server) {
16850 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16851 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16852 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16853 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16854 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
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.server), ndr_get_array_length(ndr, &r->in.server));
16857 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16858 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_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);
16896 if (flags & NDR_OUT) {
16897 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16899 NDR_PULL_ALLOC(ndr, r->out.info);
16901 r->out.info = NULL;
16904 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16905 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16907 struct ndr_pull *_ndr_info;
16908 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16909 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16910 NDR_CHECK(ndr_pull_spoolss_PrintProcessorDirectoryInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
16911 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16915 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16916 NDR_PULL_ALLOC(ndr, r->out.needed);
16918 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16919 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16920 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16921 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16922 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16924 return NDR_ERR_SUCCESS;
16927 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16929 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
16931 if (flags & NDR_SET_VALUES) {
16932 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16934 if (flags & NDR_IN) {
16935 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
16937 ndr_print_ptr(ndr, "server", r->in.server);
16939 if (r->in.server) {
16940 ndr_print_string(ndr, "server", r->in.server);
16943 ndr_print_ptr(ndr, "environment", r->in.environment);
16945 if (r->in.environment) {
16946 ndr_print_string(ndr, "environment", r->in.environment);
16949 ndr_print_uint32(ndr, "level", r->in.level);
16950 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16952 if (r->in.buffer) {
16953 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16956 ndr_print_uint32(ndr, "offered", r->in.offered);
16959 if (flags & NDR_OUT) {
16960 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
16962 ndr_print_ptr(ndr, "info", r->out.info);
16965 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16966 ndr_print_spoolss_PrintProcessorDirectoryInfo(ndr, "info", r->out.info);
16969 ndr_print_ptr(ndr, "needed", r->out.needed);
16971 ndr_print_uint32(ndr, "needed", *r->out.needed);
16973 ndr_print_WERROR(ndr, "result", r->out.result);
16979 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
16981 if (flags & NDR_IN) {
16982 if (r->in.handle == NULL) {
16983 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16985 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16986 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16987 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
16988 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
16990 if (flags & NDR_OUT) {
16991 if (r->out.job_id == NULL) {
16992 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16994 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
16995 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16997 return NDR_ERR_SUCCESS;
17000 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
17002 TALLOC_CTX *_mem_save_handle_0;
17003 TALLOC_CTX *_mem_save_job_id_0;
17004 if (flags & NDR_IN) {
17005 ZERO_STRUCT(r->out);
17007 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17008 NDR_PULL_ALLOC(ndr, r->in.handle);
17010 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17011 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17012 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17013 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17014 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17015 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
17016 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17017 NDR_PULL_ALLOC(ndr, r->out.job_id);
17018 ZERO_STRUCTP(r->out.job_id);
17020 if (flags & NDR_OUT) {
17021 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17022 NDR_PULL_ALLOC(ndr, r->out.job_id);
17024 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
17025 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
17026 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
17027 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
17028 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17030 return NDR_ERR_SUCCESS;
17033 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
17035 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
17037 if (flags & NDR_SET_VALUES) {
17038 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17040 if (flags & NDR_IN) {
17041 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
17043 ndr_print_ptr(ndr, "handle", r->in.handle);
17045 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17047 ndr_print_uint32(ndr, "level", r->in.level);
17048 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
17049 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
17052 if (flags & NDR_OUT) {
17053 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
17055 ndr_print_ptr(ndr, "job_id", r->out.job_id);
17057 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
17059 ndr_print_WERROR(ndr, "result", r->out.result);
17065 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
17067 if (flags & NDR_IN) {
17068 if (r->in.handle == NULL) {
17069 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17071 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17073 if (flags & NDR_OUT) {
17074 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17076 return NDR_ERR_SUCCESS;
17079 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
17081 TALLOC_CTX *_mem_save_handle_0;
17082 if (flags & NDR_IN) {
17083 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17084 NDR_PULL_ALLOC(ndr, r->in.handle);
17086 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17087 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17088 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17091 if (flags & NDR_OUT) {
17092 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17094 return NDR_ERR_SUCCESS;
17097 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
17099 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
17101 if (flags & NDR_SET_VALUES) {
17102 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17104 if (flags & NDR_IN) {
17105 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
17107 ndr_print_ptr(ndr, "handle", r->in.handle);
17109 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17113 if (flags & NDR_OUT) {
17114 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
17116 ndr_print_WERROR(ndr, "result", r->out.result);
17122 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
17124 if (flags & NDR_IN) {
17125 if (r->in.handle == NULL) {
17126 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17128 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17129 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17130 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
17132 if (flags & NDR_OUT) {
17133 if (r->out.num_written == NULL) {
17134 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17136 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
17137 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17139 return NDR_ERR_SUCCESS;
17142 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
17144 TALLOC_CTX *_mem_save_handle_0;
17145 TALLOC_CTX *_mem_save_num_written_0;
17146 if (flags & NDR_IN) {
17147 ZERO_STRUCT(r->out);
17149 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17150 NDR_PULL_ALLOC(ndr, r->in.handle);
17152 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17153 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17154 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17155 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17156 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
17157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
17158 NDR_PULL_ALLOC(ndr, r->out.num_written);
17159 ZERO_STRUCTP(r->out.num_written);
17161 if (flags & NDR_OUT) {
17162 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17163 NDR_PULL_ALLOC(ndr, r->out.num_written);
17165 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
17166 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
17167 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
17168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
17169 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17171 return NDR_ERR_SUCCESS;
17174 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
17176 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
17178 if (flags & NDR_SET_VALUES) {
17179 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17181 if (flags & NDR_IN) {
17182 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
17184 ndr_print_ptr(ndr, "handle", r->in.handle);
17186 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17188 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
17189 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
17192 if (flags & NDR_OUT) {
17193 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
17195 ndr_print_ptr(ndr, "num_written", r->out.num_written);
17197 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
17199 ndr_print_WERROR(ndr, "result", r->out.result);
17205 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
17207 if (flags & NDR_IN) {
17208 if (r->in.handle == NULL) {
17209 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17211 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17213 if (flags & NDR_OUT) {
17214 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17216 return NDR_ERR_SUCCESS;
17219 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
17221 TALLOC_CTX *_mem_save_handle_0;
17222 if (flags & NDR_IN) {
17223 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17224 NDR_PULL_ALLOC(ndr, r->in.handle);
17226 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17227 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17228 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17229 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17231 if (flags & NDR_OUT) {
17232 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17234 return NDR_ERR_SUCCESS;
17237 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
17239 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
17241 if (flags & NDR_SET_VALUES) {
17242 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17244 if (flags & NDR_IN) {
17245 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
17247 ndr_print_ptr(ndr, "handle", r->in.handle);
17249 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17253 if (flags & NDR_OUT) {
17254 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
17256 ndr_print_WERROR(ndr, "result", r->out.result);
17262 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
17264 if (flags & NDR_IN) {
17265 if (r->in.handle == NULL) {
17266 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17268 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17270 if (flags & NDR_OUT) {
17271 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17273 return NDR_ERR_SUCCESS;
17276 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
17278 TALLOC_CTX *_mem_save_handle_0;
17279 if (flags & NDR_IN) {
17280 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17281 NDR_PULL_ALLOC(ndr, r->in.handle);
17283 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17284 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17285 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17286 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17288 if (flags & NDR_OUT) {
17289 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17291 return NDR_ERR_SUCCESS;
17294 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
17296 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
17298 if (flags & NDR_SET_VALUES) {
17299 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17301 if (flags & NDR_IN) {
17302 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
17304 ndr_print_ptr(ndr, "handle", r->in.handle);
17306 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17310 if (flags & NDR_OUT) {
17311 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
17313 ndr_print_WERROR(ndr, "result", r->out.result);
17319 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
17321 if (flags & NDR_IN) {
17322 if (r->in.handle == NULL) {
17323 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17325 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17328 if (flags & NDR_OUT) {
17329 if (r->out.data == NULL) {
17330 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
17333 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
17334 if (r->out._data_size == NULL) {
17335 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
17338 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17340 return NDR_ERR_SUCCESS;
17343 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
17345 TALLOC_CTX *_mem_save_handle_0;
17346 TALLOC_CTX *_mem_save__data_size_0;
17347 if (flags & NDR_IN) {
17348 ZERO_STRUCT(r->out);
17350 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17351 NDR_PULL_ALLOC(ndr, r->in.handle);
17353 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17354 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17355 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17357 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
17358 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
17359 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
17360 NDR_PULL_ALLOC(ndr, r->out._data_size);
17361 ZERO_STRUCTP(r->out._data_size);
17363 if (flags & NDR_OUT) {
17364 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
17365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17366 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
17368 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
17369 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17370 NDR_PULL_ALLOC(ndr, r->out._data_size);
17372 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
17373 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
17374 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
17375 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
17376 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17378 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
17381 return NDR_ERR_SUCCESS;
17384 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
17386 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
17388 if (flags & NDR_SET_VALUES) {
17389 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17391 if (flags & NDR_IN) {
17392 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
17394 ndr_print_ptr(ndr, "handle", r->in.handle);
17396 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17398 ndr_print_uint32(ndr, "data_size", r->in.data_size);
17401 if (flags & NDR_OUT) {
17402 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
17404 ndr_print_ptr(ndr, "data", r->out.data);
17406 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
17408 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
17410 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
17412 ndr_print_WERROR(ndr, "result", r->out.result);
17418 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
17420 if (flags & NDR_IN) {
17421 if (r->in.handle == NULL) {
17422 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17424 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17426 if (flags & NDR_OUT) {
17427 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17429 return NDR_ERR_SUCCESS;
17432 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
17434 TALLOC_CTX *_mem_save_handle_0;
17435 if (flags & NDR_IN) {
17436 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17437 NDR_PULL_ALLOC(ndr, r->in.handle);
17439 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17440 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17441 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17442 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17444 if (flags & NDR_OUT) {
17445 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17447 return NDR_ERR_SUCCESS;
17450 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
17452 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
17454 if (flags & NDR_SET_VALUES) {
17455 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17457 if (flags & NDR_IN) {
17458 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
17460 ndr_print_ptr(ndr, "handle", r->in.handle);
17462 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17466 if (flags & NDR_OUT) {
17467 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
17469 ndr_print_WERROR(ndr, "result", r->out.result);
17475 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
17477 if (flags & NDR_IN) {
17478 if (r->in.handle == NULL) {
17479 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17481 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17483 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17484 if (r->in.buffer) {
17485 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17486 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
17488 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17490 if (flags & NDR_OUT) {
17491 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
17492 if (r->out.buffer) {
17493 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17494 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
17496 if (r->out.needed == NULL) {
17497 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17499 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17500 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17502 return NDR_ERR_SUCCESS;
17505 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
17507 uint32_t _ptr_buffer;
17508 TALLOC_CTX *_mem_save_handle_0;
17509 TALLOC_CTX *_mem_save_buffer_0;
17510 TALLOC_CTX *_mem_save_needed_0;
17511 if (flags & NDR_IN) {
17512 ZERO_STRUCT(r->out);
17514 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17515 NDR_PULL_ALLOC(ndr, r->in.handle);
17517 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17518 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17519 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17520 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17522 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17524 NDR_PULL_ALLOC(ndr, r->in.buffer);
17526 r->in.buffer = NULL;
17528 if (r->in.buffer) {
17529 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17530 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17531 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
17532 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
17533 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
17534 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17536 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17537 NDR_PULL_ALLOC(ndr, r->out.needed);
17538 ZERO_STRUCTP(r->out.needed);
17539 if (r->in.buffer) {
17540 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
17543 if (flags & NDR_OUT) {
17544 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17546 NDR_PULL_ALLOC(ndr, r->out.buffer);
17548 r->out.buffer = NULL;
17550 if (r->out.buffer) {
17551 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17552 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
17553 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
17554 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
17555 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
17556 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17558 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17559 NDR_PULL_ALLOC(ndr, r->out.needed);
17561 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17562 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17563 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17564 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17565 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17566 if (r->out.buffer) {
17567 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
17570 return NDR_ERR_SUCCESS;
17573 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
17575 ndr_print_struct(ndr, name, "spoolss_AddJob");
17577 if (flags & NDR_SET_VALUES) {
17578 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17580 if (flags & NDR_IN) {
17581 ndr_print_struct(ndr, "in", "spoolss_AddJob");
17583 ndr_print_ptr(ndr, "handle", r->in.handle);
17585 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17587 ndr_print_uint32(ndr, "level", r->in.level);
17588 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17590 if (r->in.buffer) {
17591 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
17594 ndr_print_uint32(ndr, "offered", r->in.offered);
17597 if (flags & NDR_OUT) {
17598 ndr_print_struct(ndr, "out", "spoolss_AddJob");
17600 ndr_print_ptr(ndr, "buffer", r->out.buffer);
17602 if (r->out.buffer) {
17603 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
17606 ndr_print_ptr(ndr, "needed", r->out.needed);
17608 ndr_print_uint32(ndr, "needed", *r->out.needed);
17610 ndr_print_WERROR(ndr, "result", r->out.result);
17616 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
17618 if (flags & NDR_IN) {
17619 if (r->in.handle == NULL) {
17620 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17622 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
17625 if (flags & NDR_OUT) {
17626 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17628 return NDR_ERR_SUCCESS;
17631 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
17633 TALLOC_CTX *_mem_save_handle_0;
17634 if (flags & NDR_IN) {
17635 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17636 NDR_PULL_ALLOC(ndr, r->in.handle);
17638 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17639 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17640 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17641 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
17644 if (flags & NDR_OUT) {
17645 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17647 return NDR_ERR_SUCCESS;
17650 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
17652 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
17654 if (flags & NDR_SET_VALUES) {
17655 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17657 if (flags & NDR_IN) {
17658 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
17660 ndr_print_ptr(ndr, "handle", r->in.handle);
17662 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17664 ndr_print_uint32(ndr, "jobid", r->in.jobid);
17667 if (flags & NDR_OUT) {
17668 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
17670 ndr_print_WERROR(ndr, "result", r->out.result);
17676 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
17678 if (flags & NDR_IN) {
17679 if (r->in.handle == NULL) {
17680 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17682 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17683 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17684 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17685 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17686 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));
17687 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17689 if (flags & NDR_OUT) {
17690 if (r->out.type == NULL) {
17691 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17693 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
17694 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
17695 if (r->out.needed == NULL) {
17696 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17698 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17699 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17701 return NDR_ERR_SUCCESS;
17704 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
17706 TALLOC_CTX *_mem_save_handle_0;
17707 TALLOC_CTX *_mem_save_type_0;
17708 TALLOC_CTX *_mem_save_needed_0;
17709 if (flags & NDR_IN) {
17710 ZERO_STRUCT(r->out);
17712 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17713 NDR_PULL_ALLOC(ndr, r->in.handle);
17715 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17716 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17717 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17719 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17720 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17721 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17722 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));
17724 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17725 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));
17726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17727 NDR_PULL_ALLOC(ndr, r->out.type);
17728 ZERO_STRUCTP(r->out.type);
17729 NDR_PULL_ALLOC(ndr, r->out.needed);
17730 ZERO_STRUCTP(r->out.needed);
17732 if (flags & NDR_OUT) {
17733 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17734 NDR_PULL_ALLOC(ndr, r->out.type);
17736 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
17737 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
17738 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
17739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
17740 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
17741 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17742 NDR_PULL_ALLOC(ndr, r->out.needed);
17744 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17745 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17746 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17748 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17750 return NDR_ERR_SUCCESS;
17753 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
17755 if (flags & NDR_IN) {
17756 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17758 if (flags & NDR_OUT) {
17759 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17760 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17762 return NDR_ERR_SUCCESS;
17765 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
17767 if (flags & NDR_IN) {
17768 ZERO_STRUCT(r->out);
17770 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17772 if (flags & NDR_OUT) {
17773 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
17774 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17776 return NDR_ERR_SUCCESS;
17779 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
17781 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
17783 if (flags & NDR_SET_VALUES) {
17784 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17786 if (flags & NDR_IN) {
17787 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
17789 ndr_print_ptr(ndr, "handle", r->in.handle);
17791 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17793 ndr_print_string(ndr, "value_name", r->in.value_name);
17794 ndr_print_uint32(ndr, "offered", r->in.offered);
17797 if (flags & NDR_OUT) {
17798 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
17800 ndr_print_ptr(ndr, "type", r->out.type);
17802 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
17804 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
17805 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
17806 ndr_print_ptr(ndr, "needed", r->out.needed);
17808 ndr_print_uint32(ndr, "needed", *r->out.needed);
17810 ndr_print_WERROR(ndr, "result", r->out.result);
17816 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
17818 if (flags & NDR_IN) {
17819 if (r->in.handle == NULL) {
17820 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17822 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17825 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17826 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));
17827 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17828 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
17831 if (flags & NDR_OUT) {
17832 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17834 return NDR_ERR_SUCCESS;
17837 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
17839 if (flags & NDR_IN) {
17840 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17842 if (flags & NDR_OUT) {
17843 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17844 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17846 return NDR_ERR_SUCCESS;
17849 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
17851 TALLOC_CTX *_mem_save_handle_0;
17852 if (flags & NDR_IN) {
17853 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17854 NDR_PULL_ALLOC(ndr, r->in.handle);
17856 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17857 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17858 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17859 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17860 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17861 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17862 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17863 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));
17865 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17866 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));
17867 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17869 struct ndr_pull *_ndr_data;
17870 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
17871 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
17872 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
17873 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
17875 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
17877 if (flags & NDR_OUT) {
17878 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17880 return NDR_ERR_SUCCESS;
17883 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
17885 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
17887 if (flags & NDR_SET_VALUES) {
17888 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17890 if (flags & NDR_IN) {
17891 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
17893 ndr_print_ptr(ndr, "handle", r->in.handle);
17895 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17897 ndr_print_string(ndr, "value_name", r->in.value_name);
17898 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
17899 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
17900 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
17901 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);
17904 if (flags & NDR_OUT) {
17905 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
17907 ndr_print_WERROR(ndr, "result", r->out.result);
17913 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
17915 if (flags & NDR_IN) {
17917 if (flags & NDR_OUT) {
17918 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17920 return NDR_ERR_SUCCESS;
17923 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
17925 if (flags & NDR_IN) {
17927 if (flags & NDR_OUT) {
17928 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17930 return NDR_ERR_SUCCESS;
17933 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
17935 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
17937 if (flags & NDR_SET_VALUES) {
17938 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17940 if (flags & NDR_IN) {
17941 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
17945 if (flags & NDR_OUT) {
17946 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
17948 ndr_print_WERROR(ndr, "result", r->out.result);
17954 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
17956 if (flags & NDR_IN) {
17957 if (r->in.handle == NULL) {
17958 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17960 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17962 if (flags & NDR_OUT) {
17963 if (r->out.handle == NULL) {
17964 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17966 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17967 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17969 return NDR_ERR_SUCCESS;
17972 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
17974 TALLOC_CTX *_mem_save_handle_0;
17975 if (flags & NDR_IN) {
17976 ZERO_STRUCT(r->out);
17978 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17979 NDR_PULL_ALLOC(ndr, r->in.handle);
17981 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17982 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17983 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17984 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17985 NDR_PULL_ALLOC(ndr, r->out.handle);
17986 *r->out.handle = *r->in.handle;
17988 if (flags & NDR_OUT) {
17989 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17990 NDR_PULL_ALLOC(ndr, r->out.handle);
17992 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17993 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
17994 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17996 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17998 return NDR_ERR_SUCCESS;
18001 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
18003 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
18005 if (flags & NDR_SET_VALUES) {
18006 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18008 if (flags & NDR_IN) {
18009 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
18011 ndr_print_ptr(ndr, "handle", r->in.handle);
18013 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18017 if (flags & NDR_OUT) {
18018 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
18020 ndr_print_ptr(ndr, "handle", r->out.handle);
18022 ndr_print_policy_handle(ndr, "handle", r->out.handle);
18024 ndr_print_WERROR(ndr, "result", r->out.result);
18030 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
18032 if (flags & NDR_IN) {
18033 if (r->in.handle == NULL) {
18034 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18036 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18038 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18039 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18041 if (flags & NDR_OUT) {
18042 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18044 return NDR_ERR_SUCCESS;
18047 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
18049 TALLOC_CTX *_mem_save_handle_0;
18050 if (flags & NDR_IN) {
18051 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18052 NDR_PULL_ALLOC(ndr, r->in.handle);
18054 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18055 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18056 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18057 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18058 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18059 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18060 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18062 if (flags & NDR_OUT) {
18063 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18065 return NDR_ERR_SUCCESS;
18068 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
18070 ndr_print_struct(ndr, name, "spoolss_AddForm");
18072 if (flags & NDR_SET_VALUES) {
18073 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18075 if (flags & NDR_IN) {
18076 ndr_print_struct(ndr, "in", "spoolss_AddForm");
18078 ndr_print_ptr(ndr, "handle", r->in.handle);
18080 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18082 ndr_print_uint32(ndr, "level", r->in.level);
18083 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18084 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18087 if (flags & NDR_OUT) {
18088 ndr_print_struct(ndr, "out", "spoolss_AddForm");
18090 ndr_print_WERROR(ndr, "result", r->out.result);
18096 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
18098 if (flags & NDR_IN) {
18099 if (r->in.handle == NULL) {
18100 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18102 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18106 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));
18108 if (flags & NDR_OUT) {
18109 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18111 return NDR_ERR_SUCCESS;
18114 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
18116 TALLOC_CTX *_mem_save_handle_0;
18117 if (flags & NDR_IN) {
18118 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18119 NDR_PULL_ALLOC(ndr, r->in.handle);
18121 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18122 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18123 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18124 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18125 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18126 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18127 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18128 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));
18130 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18131 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));
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_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
18141 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
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_DeleteForm");
18149 ndr_print_ptr(ndr, "handle", r->in.handle);
18151 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18153 ndr_print_string(ndr, "form_name", r->in.form_name);
18156 if (flags & NDR_OUT) {
18157 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
18159 ndr_print_WERROR(ndr, "result", r->out.result);
18165 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
18167 if (flags & NDR_IN) {
18168 if (r->in.handle == NULL) {
18169 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18171 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18172 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18173 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18174 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18175 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));
18176 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18177 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18178 if (r->in.buffer) {
18179 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18181 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18183 if (flags & NDR_OUT) {
18184 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18187 struct ndr_push *_ndr_info;
18188 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18189 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
18190 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18191 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18194 if (r->out.needed == NULL) {
18195 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18197 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18198 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18200 return NDR_ERR_SUCCESS;
18203 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
18205 uint32_t _ptr_buffer;
18206 uint32_t _ptr_info;
18207 TALLOC_CTX *_mem_save_handle_0;
18208 TALLOC_CTX *_mem_save_buffer_0;
18209 TALLOC_CTX *_mem_save_info_0;
18210 TALLOC_CTX *_mem_save_needed_0;
18211 if (flags & NDR_IN) {
18212 ZERO_STRUCT(r->out);
18214 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18215 NDR_PULL_ALLOC(ndr, r->in.handle);
18217 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18218 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18219 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18220 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18221 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18222 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18223 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18224 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));
18226 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18227 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));
18228 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18231 NDR_PULL_ALLOC(ndr, r->in.buffer);
18233 r->in.buffer = NULL;
18235 if (r->in.buffer) {
18236 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18237 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18238 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18241 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18242 NDR_PULL_ALLOC(ndr, r->out.needed);
18243 ZERO_STRUCTP(r->out.needed);
18245 if (flags & NDR_OUT) {
18246 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18248 NDR_PULL_ALLOC(ndr, r->out.info);
18250 r->out.info = NULL;
18253 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18254 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18256 struct ndr_pull *_ndr_info;
18257 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
18258 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
18259 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
18260 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
18262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18264 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18265 NDR_PULL_ALLOC(ndr, r->out.needed);
18267 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18268 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18269 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18270 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18271 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18273 return NDR_ERR_SUCCESS;
18276 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
18278 ndr_print_struct(ndr, name, "spoolss_GetForm");
18280 if (flags & NDR_SET_VALUES) {
18281 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18283 if (flags & NDR_IN) {
18284 ndr_print_struct(ndr, "in", "spoolss_GetForm");
18286 ndr_print_ptr(ndr, "handle", r->in.handle);
18288 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18290 ndr_print_string(ndr, "form_name", r->in.form_name);
18291 ndr_print_uint32(ndr, "level", r->in.level);
18292 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18294 if (r->in.buffer) {
18295 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18298 ndr_print_uint32(ndr, "offered", r->in.offered);
18301 if (flags & NDR_OUT) {
18302 ndr_print_struct(ndr, "out", "spoolss_GetForm");
18304 ndr_print_ptr(ndr, "info", r->out.info);
18307 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
18308 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
18311 ndr_print_ptr(ndr, "needed", r->out.needed);
18313 ndr_print_uint32(ndr, "needed", *r->out.needed);
18315 ndr_print_WERROR(ndr, "result", r->out.result);
18321 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
18323 if (flags & NDR_IN) {
18324 if (r->in.handle == NULL) {
18325 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18327 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18330 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
18331 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));
18332 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18333 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
18334 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18336 if (flags & NDR_OUT) {
18337 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18339 return NDR_ERR_SUCCESS;
18342 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
18344 TALLOC_CTX *_mem_save_handle_0;
18345 if (flags & NDR_IN) {
18346 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18347 NDR_PULL_ALLOC(ndr, r->in.handle);
18349 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18350 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18351 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18353 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
18354 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
18355 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
18356 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));
18358 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
18359 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));
18360 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18361 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
18362 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
18364 if (flags & NDR_OUT) {
18365 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18367 return NDR_ERR_SUCCESS;
18370 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
18372 ndr_print_struct(ndr, name, "spoolss_SetForm");
18374 if (flags & NDR_SET_VALUES) {
18375 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18377 if (flags & NDR_IN) {
18378 ndr_print_struct(ndr, "in", "spoolss_SetForm");
18380 ndr_print_ptr(ndr, "handle", r->in.handle);
18382 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18384 ndr_print_string(ndr, "form_name", r->in.form_name);
18385 ndr_print_uint32(ndr, "level", r->in.level);
18386 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18387 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18390 if (flags & NDR_OUT) {
18391 ndr_print_struct(ndr, "out", "spoolss_SetForm");
18393 ndr_print_WERROR(ndr, "result", r->out.result);
18399 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
18401 if (flags & NDR_IN) {
18402 if (r->in.handle == NULL) {
18403 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18405 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18406 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18407 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18408 if (r->in.buffer) {
18409 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18413 if (flags & NDR_OUT) {
18414 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18416 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18418 if (r->out.needed == NULL) {
18419 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18421 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18422 if (r->out.count == NULL) {
18423 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18426 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18428 return NDR_ERR_SUCCESS;
18431 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
18433 uint32_t _ptr_buffer;
18434 uint32_t _ptr_info;
18435 TALLOC_CTX *_mem_save_handle_0;
18436 TALLOC_CTX *_mem_save_buffer_0;
18437 TALLOC_CTX *_mem_save_info_0;
18438 TALLOC_CTX *_mem_save_needed_0;
18439 TALLOC_CTX *_mem_save_count_0;
18440 if (flags & NDR_IN) {
18441 ZERO_STRUCT(r->out);
18443 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18444 NDR_PULL_ALLOC(ndr, r->in.handle);
18446 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18447 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18448 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18450 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18451 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18453 NDR_PULL_ALLOC(ndr, r->in.buffer);
18455 r->in.buffer = NULL;
18457 if (r->in.buffer) {
18458 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18459 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18460 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18463 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18464 NDR_PULL_ALLOC(ndr, r->out.needed);
18465 ZERO_STRUCTP(r->out.needed);
18466 NDR_PULL_ALLOC(ndr, r->out.count);
18467 ZERO_STRUCTP(r->out.count);
18469 if (flags & NDR_OUT) {
18470 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18472 NDR_PULL_ALLOC(ndr, r->out.info);
18474 r->out.info = NULL;
18477 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18478 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18479 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18480 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18482 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18483 NDR_PULL_ALLOC(ndr, r->out.needed);
18485 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18486 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18487 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18488 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18489 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18490 NDR_PULL_ALLOC(ndr, r->out.count);
18492 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18493 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18494 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18495 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18496 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18498 return NDR_ERR_SUCCESS;
18501 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
18503 uint32_t cntr_info_0;
18504 if (flags & NDR_IN) {
18505 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18506 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18508 if (flags & NDR_OUT) {
18509 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18510 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18511 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18513 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18514 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18517 return NDR_ERR_SUCCESS;
18520 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
18522 uint32_t cntr_info_0;
18523 TALLOC_CTX *_mem_save_info_0;
18524 if (flags & NDR_IN) {
18525 ZERO_STRUCT(r->out);
18527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18528 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18530 if (flags & NDR_OUT) {
18531 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18532 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18533 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18534 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18535 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18536 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18538 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18539 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18541 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18543 return NDR_ERR_SUCCESS;
18546 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
18548 uint32_t cntr_info_1;
18549 ndr_print_struct(ndr, name, "spoolss_EnumForms");
18551 if (flags & NDR_SET_VALUES) {
18552 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18554 if (flags & NDR_IN) {
18555 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
18557 ndr_print_ptr(ndr, "handle", r->in.handle);
18559 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18561 ndr_print_uint32(ndr, "level", r->in.level);
18562 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18564 if (r->in.buffer) {
18565 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18568 ndr_print_uint32(ndr, "offered", r->in.offered);
18571 if (flags & NDR_OUT) {
18572 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
18574 ndr_print_ptr(ndr, "count", r->out.count);
18576 ndr_print_uint32(ndr, "count", *r->out.count);
18578 ndr_print_ptr(ndr, "info", r->out.info);
18581 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18583 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18585 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18586 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18587 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
18594 ndr_print_ptr(ndr, "needed", r->out.needed);
18596 ndr_print_uint32(ndr, "needed", *r->out.needed);
18598 ndr_print_WERROR(ndr, "result", r->out.result);
18604 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
18606 if (flags & NDR_IN) {
18607 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18608 if (r->in.servername) {
18609 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18611 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18612 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18615 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18616 if (r->in.buffer) {
18617 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18619 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18621 if (flags & NDR_OUT) {
18622 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18624 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18626 if (r->out.needed == NULL) {
18627 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18629 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18630 if (r->out.count == NULL) {
18631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18634 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18636 return NDR_ERR_SUCCESS;
18639 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
18641 uint32_t _ptr_servername;
18642 uint32_t _ptr_buffer;
18643 uint32_t _ptr_info;
18644 TALLOC_CTX *_mem_save_servername_0;
18645 TALLOC_CTX *_mem_save_buffer_0;
18646 TALLOC_CTX *_mem_save_info_0;
18647 TALLOC_CTX *_mem_save_needed_0;
18648 TALLOC_CTX *_mem_save_count_0;
18649 if (flags & NDR_IN) {
18650 ZERO_STRUCT(r->out);
18652 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18653 if (_ptr_servername) {
18654 NDR_PULL_ALLOC(ndr, r->in.servername);
18656 r->in.servername = NULL;
18658 if (r->in.servername) {
18659 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18660 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18661 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18662 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18663 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18664 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));
18666 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18667 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18670 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18671 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18673 NDR_PULL_ALLOC(ndr, r->in.buffer);
18675 r->in.buffer = NULL;
18677 if (r->in.buffer) {
18678 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18679 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18680 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18681 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18683 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18684 NDR_PULL_ALLOC(ndr, r->out.needed);
18685 ZERO_STRUCTP(r->out.needed);
18686 NDR_PULL_ALLOC(ndr, r->out.count);
18687 ZERO_STRUCTP(r->out.count);
18689 if (flags & NDR_OUT) {
18690 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18692 NDR_PULL_ALLOC(ndr, r->out.info);
18694 r->out.info = NULL;
18697 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18698 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18699 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18700 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18702 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18703 NDR_PULL_ALLOC(ndr, r->out.needed);
18705 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18706 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18709 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18710 NDR_PULL_ALLOC(ndr, r->out.count);
18712 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18713 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18714 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18716 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18718 return NDR_ERR_SUCCESS;
18721 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
18723 uint32_t cntr_info_0;
18724 if (flags & NDR_IN) {
18725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18726 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18728 if (flags & NDR_OUT) {
18729 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18730 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18731 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18733 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18734 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18737 return NDR_ERR_SUCCESS;
18740 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
18742 uint32_t cntr_info_0;
18743 TALLOC_CTX *_mem_save_info_0;
18744 if (flags & NDR_IN) {
18745 ZERO_STRUCT(r->out);
18747 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18748 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18750 if (flags & NDR_OUT) {
18751 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18752 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18753 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18754 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18755 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18756 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18758 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18759 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18761 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18763 return NDR_ERR_SUCCESS;
18766 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
18768 uint32_t cntr_info_1;
18769 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
18771 if (flags & NDR_SET_VALUES) {
18772 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18774 if (flags & NDR_IN) {
18775 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
18777 ndr_print_ptr(ndr, "servername", r->in.servername);
18779 if (r->in.servername) {
18780 ndr_print_string(ndr, "servername", r->in.servername);
18783 ndr_print_uint32(ndr, "level", r->in.level);
18784 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18786 if (r->in.buffer) {
18787 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18790 ndr_print_uint32(ndr, "offered", r->in.offered);
18793 if (flags & NDR_OUT) {
18794 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
18796 ndr_print_ptr(ndr, "count", r->out.count);
18798 ndr_print_uint32(ndr, "count", *r->out.count);
18800 ndr_print_ptr(ndr, "info", r->out.info);
18803 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18805 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18807 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18808 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18809 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
18816 ndr_print_ptr(ndr, "needed", r->out.needed);
18818 ndr_print_uint32(ndr, "needed", *r->out.needed);
18820 ndr_print_WERROR(ndr, "result", r->out.result);
18826 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
18828 if (flags & NDR_IN) {
18829 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18830 if (r->in.servername) {
18831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18834 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18838 if (r->in.buffer) {
18839 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18843 if (flags & NDR_OUT) {
18844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18846 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18848 if (r->out.needed == NULL) {
18849 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18852 if (r->out.count == NULL) {
18853 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18855 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18856 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18858 return NDR_ERR_SUCCESS;
18861 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
18863 uint32_t _ptr_servername;
18864 uint32_t _ptr_buffer;
18865 uint32_t _ptr_info;
18866 TALLOC_CTX *_mem_save_servername_0;
18867 TALLOC_CTX *_mem_save_buffer_0;
18868 TALLOC_CTX *_mem_save_info_0;
18869 TALLOC_CTX *_mem_save_needed_0;
18870 TALLOC_CTX *_mem_save_count_0;
18871 if (flags & NDR_IN) {
18872 ZERO_STRUCT(r->out);
18874 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18875 if (_ptr_servername) {
18876 NDR_PULL_ALLOC(ndr, r->in.servername);
18878 r->in.servername = NULL;
18880 if (r->in.servername) {
18881 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18882 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18883 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18884 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18885 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18886 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));
18888 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18889 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18890 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18892 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18893 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18895 NDR_PULL_ALLOC(ndr, r->in.buffer);
18897 r->in.buffer = NULL;
18899 if (r->in.buffer) {
18900 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18901 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18902 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18903 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18905 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18906 NDR_PULL_ALLOC(ndr, r->out.needed);
18907 ZERO_STRUCTP(r->out.needed);
18908 NDR_PULL_ALLOC(ndr, r->out.count);
18909 ZERO_STRUCTP(r->out.count);
18911 if (flags & NDR_OUT) {
18912 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18914 NDR_PULL_ALLOC(ndr, r->out.info);
18916 r->out.info = NULL;
18919 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18920 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18921 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18924 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18925 NDR_PULL_ALLOC(ndr, r->out.needed);
18927 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18928 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18929 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18930 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18931 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18932 NDR_PULL_ALLOC(ndr, r->out.count);
18934 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18935 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18936 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18937 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18940 return NDR_ERR_SUCCESS;
18943 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
18945 uint32_t cntr_info_0;
18946 if (flags & NDR_IN) {
18947 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18950 if (flags & NDR_OUT) {
18951 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18952 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18953 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18955 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18956 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18959 return NDR_ERR_SUCCESS;
18962 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
18964 uint32_t cntr_info_0;
18965 TALLOC_CTX *_mem_save_info_0;
18966 if (flags & NDR_IN) {
18967 ZERO_STRUCT(r->out);
18969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18970 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18972 if (flags & NDR_OUT) {
18973 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18974 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18975 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18976 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18977 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18978 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18980 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18981 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18985 return NDR_ERR_SUCCESS;
18988 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
18990 uint32_t cntr_info_1;
18991 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
18993 if (flags & NDR_SET_VALUES) {
18994 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18996 if (flags & NDR_IN) {
18997 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
18999 ndr_print_ptr(ndr, "servername", r->in.servername);
19001 if (r->in.servername) {
19002 ndr_print_string(ndr, "servername", r->in.servername);
19005 ndr_print_uint32(ndr, "level", r->in.level);
19006 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19008 if (r->in.buffer) {
19009 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19012 ndr_print_uint32(ndr, "offered", r->in.offered);
19015 if (flags & NDR_OUT) {
19016 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
19018 ndr_print_ptr(ndr, "count", r->out.count);
19020 ndr_print_uint32(ndr, "count", *r->out.count);
19022 ndr_print_ptr(ndr, "info", r->out.info);
19025 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
19027 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
19029 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
19030 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
19031 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
19038 ndr_print_ptr(ndr, "needed", r->out.needed);
19040 ndr_print_uint32(ndr, "needed", *r->out.needed);
19042 ndr_print_WERROR(ndr, "result", r->out.result);
19048 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
19050 if (flags & NDR_IN) {
19051 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
19052 if (r->in.server_name) {
19053 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19056 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));
19058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
19059 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
19062 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));
19064 if (flags & NDR_OUT) {
19065 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19067 return NDR_ERR_SUCCESS;
19070 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
19072 uint32_t _ptr_server_name;
19073 TALLOC_CTX *_mem_save_server_name_0;
19074 if (flags & NDR_IN) {
19075 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
19076 if (_ptr_server_name) {
19077 NDR_PULL_ALLOC(ndr, r->in.server_name);
19079 r->in.server_name = NULL;
19081 if (r->in.server_name) {
19082 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
19083 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
19084 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
19085 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
19086 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
19087 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));
19089 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
19090 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));
19091 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
19093 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
19094 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
19095 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
19096 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
19097 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));
19099 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
19100 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));
19102 if (flags & NDR_OUT) {
19103 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19105 return NDR_ERR_SUCCESS;
19108 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
19110 ndr_print_struct(ndr, name, "spoolss_AddPort");
19112 if (flags & NDR_SET_VALUES) {
19113 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19115 if (flags & NDR_IN) {
19116 ndr_print_struct(ndr, "in", "spoolss_AddPort");
19118 ndr_print_ptr(ndr, "server_name", r->in.server_name);
19120 if (r->in.server_name) {
19121 ndr_print_string(ndr, "server_name", r->in.server_name);
19124 ndr_print_uint32(ndr, "unknown", r->in.unknown);
19125 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
19128 if (flags & NDR_OUT) {
19129 ndr_print_struct(ndr, "out", "spoolss_AddPort");
19131 ndr_print_WERROR(ndr, "result", r->out.result);
19137 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
19139 if (flags & NDR_IN) {
19141 if (flags & NDR_OUT) {
19142 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19144 return NDR_ERR_SUCCESS;
19147 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
19149 if (flags & NDR_IN) {
19151 if (flags & NDR_OUT) {
19152 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19154 return NDR_ERR_SUCCESS;
19157 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
19159 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
19161 if (flags & NDR_SET_VALUES) {
19162 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19164 if (flags & NDR_IN) {
19165 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
19169 if (flags & NDR_OUT) {
19170 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
19172 ndr_print_WERROR(ndr, "result", r->out.result);
19178 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
19180 if (flags & NDR_IN) {
19182 if (flags & NDR_OUT) {
19183 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19185 return NDR_ERR_SUCCESS;
19188 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
19190 if (flags & NDR_IN) {
19192 if (flags & NDR_OUT) {
19193 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19195 return NDR_ERR_SUCCESS;
19198 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
19200 ndr_print_struct(ndr, name, "spoolss_DeletePort");
19202 if (flags & NDR_SET_VALUES) {
19203 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19205 if (flags & NDR_IN) {
19206 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
19210 if (flags & NDR_OUT) {
19211 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
19213 ndr_print_WERROR(ndr, "result", r->out.result);
19219 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
19221 if (flags & NDR_IN) {
19223 if (flags & NDR_OUT) {
19224 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19226 return NDR_ERR_SUCCESS;
19229 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
19231 if (flags & NDR_IN) {
19233 if (flags & NDR_OUT) {
19234 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19236 return NDR_ERR_SUCCESS;
19239 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
19241 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
19243 if (flags & NDR_SET_VALUES) {
19244 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19246 if (flags & NDR_IN) {
19247 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
19251 if (flags & NDR_OUT) {
19252 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
19254 ndr_print_WERROR(ndr, "result", r->out.result);
19260 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19262 if (flags & NDR_IN) {
19264 if (flags & NDR_OUT) {
19265 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19267 return NDR_ERR_SUCCESS;
19270 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
19272 if (flags & NDR_IN) {
19274 if (flags & NDR_OUT) {
19275 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19277 return NDR_ERR_SUCCESS;
19280 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
19282 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
19284 if (flags & NDR_SET_VALUES) {
19285 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19287 if (flags & NDR_IN) {
19288 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
19292 if (flags & NDR_OUT) {
19293 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
19295 ndr_print_WERROR(ndr, "result", r->out.result);
19301 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
19303 if (flags & NDR_IN) {
19305 if (flags & NDR_OUT) {
19306 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19308 return NDR_ERR_SUCCESS;
19311 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
19313 if (flags & NDR_IN) {
19315 if (flags & NDR_OUT) {
19316 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19318 return NDR_ERR_SUCCESS;
19321 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
19323 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
19325 if (flags & NDR_SET_VALUES) {
19326 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19328 if (flags & NDR_IN) {
19329 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
19333 if (flags & NDR_OUT) {
19334 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
19336 ndr_print_WERROR(ndr, "result", r->out.result);
19342 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
19344 if (flags & NDR_IN) {
19346 if (flags & NDR_OUT) {
19347 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19349 return NDR_ERR_SUCCESS;
19352 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
19354 if (flags & NDR_IN) {
19356 if (flags & NDR_OUT) {
19357 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19359 return NDR_ERR_SUCCESS;
19362 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
19364 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
19366 if (flags & NDR_SET_VALUES) {
19367 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19369 if (flags & NDR_IN) {
19370 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
19374 if (flags & NDR_OUT) {
19375 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
19377 ndr_print_WERROR(ndr, "result", r->out.result);
19383 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
19385 if (flags & NDR_IN) {
19387 if (flags & NDR_OUT) {
19388 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19390 return NDR_ERR_SUCCESS;
19393 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
19395 if (flags & NDR_IN) {
19397 if (flags & NDR_OUT) {
19398 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19400 return NDR_ERR_SUCCESS;
19403 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
19405 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
19407 if (flags & NDR_SET_VALUES) {
19408 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19410 if (flags & NDR_IN) {
19411 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
19415 if (flags & NDR_OUT) {
19416 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
19418 ndr_print_WERROR(ndr, "result", r->out.result);
19424 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
19426 if (flags & NDR_IN) {
19428 if (flags & NDR_OUT) {
19429 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19431 return NDR_ERR_SUCCESS;
19434 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
19436 if (flags & NDR_IN) {
19438 if (flags & NDR_OUT) {
19439 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19441 return NDR_ERR_SUCCESS;
19444 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
19446 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
19448 if (flags & NDR_SET_VALUES) {
19449 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19451 if (flags & NDR_IN) {
19452 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
19456 if (flags & NDR_OUT) {
19457 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
19459 ndr_print_WERROR(ndr, "result", r->out.result);
19465 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
19467 if (flags & NDR_IN) {
19469 if (flags & NDR_OUT) {
19470 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19472 return NDR_ERR_SUCCESS;
19475 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
19477 if (flags & NDR_IN) {
19479 if (flags & NDR_OUT) {
19480 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19482 return NDR_ERR_SUCCESS;
19485 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
19487 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
19489 if (flags & NDR_SET_VALUES) {
19490 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19492 if (flags & NDR_IN) {
19493 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
19497 if (flags & NDR_OUT) {
19498 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
19500 ndr_print_WERROR(ndr, "result", r->out.result);
19506 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
19508 if (flags & NDR_IN) {
19510 if (flags & NDR_OUT) {
19511 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19513 return NDR_ERR_SUCCESS;
19516 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
19518 if (flags & NDR_IN) {
19520 if (flags & NDR_OUT) {
19521 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19523 return NDR_ERR_SUCCESS;
19526 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
19528 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
19530 if (flags & NDR_SET_VALUES) {
19531 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19533 if (flags & NDR_IN) {
19534 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
19538 if (flags & NDR_OUT) {
19539 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
19541 ndr_print_WERROR(ndr, "result", r->out.result);
19547 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
19549 if (flags & NDR_IN) {
19551 if (flags & NDR_OUT) {
19552 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19554 return NDR_ERR_SUCCESS;
19557 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
19559 if (flags & NDR_IN) {
19561 if (flags & NDR_OUT) {
19562 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19564 return NDR_ERR_SUCCESS;
19567 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
19569 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
19571 if (flags & NDR_SET_VALUES) {
19572 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19574 if (flags & NDR_IN) {
19575 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
19579 if (flags & NDR_OUT) {
19580 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
19582 ndr_print_WERROR(ndr, "result", r->out.result);
19588 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
19590 if (flags & NDR_IN) {
19592 if (flags & NDR_OUT) {
19593 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19595 return NDR_ERR_SUCCESS;
19598 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
19600 if (flags & NDR_IN) {
19602 if (flags & NDR_OUT) {
19603 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19605 return NDR_ERR_SUCCESS;
19608 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
19610 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
19612 if (flags & NDR_SET_VALUES) {
19613 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19615 if (flags & NDR_IN) {
19616 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
19620 if (flags & NDR_OUT) {
19621 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
19623 ndr_print_WERROR(ndr, "result", r->out.result);
19629 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
19631 if (flags & NDR_IN) {
19633 if (flags & NDR_OUT) {
19634 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19636 return NDR_ERR_SUCCESS;
19639 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
19641 if (flags & NDR_IN) {
19643 if (flags & NDR_OUT) {
19644 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19646 return NDR_ERR_SUCCESS;
19649 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
19651 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
19653 if (flags & NDR_SET_VALUES) {
19654 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19656 if (flags & NDR_IN) {
19657 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
19661 if (flags & NDR_OUT) {
19662 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
19664 ndr_print_WERROR(ndr, "result", r->out.result);
19670 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19672 if (flags & NDR_IN) {
19674 if (flags & NDR_OUT) {
19675 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19677 return NDR_ERR_SUCCESS;
19680 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
19682 if (flags & NDR_IN) {
19684 if (flags & NDR_OUT) {
19685 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19687 return NDR_ERR_SUCCESS;
19690 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19692 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
19694 if (flags & NDR_SET_VALUES) {
19695 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19697 if (flags & NDR_IN) {
19698 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
19702 if (flags & NDR_OUT) {
19703 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
19705 ndr_print_WERROR(ndr, "result", r->out.result);
19711 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
19713 if (flags & NDR_IN) {
19714 if (r->in.handle == NULL) {
19715 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19717 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19718 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
19719 if (r->in.data_type) {
19720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19723 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));
19725 if (r->in.devmode_ctr == NULL) {
19726 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19728 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19730 if (flags & NDR_OUT) {
19731 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19733 return NDR_ERR_SUCCESS;
19736 static enum ndr_err_code ndr_pull_spoolss_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
19738 uint32_t _ptr_data_type;
19739 TALLOC_CTX *_mem_save_handle_0;
19740 TALLOC_CTX *_mem_save_data_type_0;
19741 TALLOC_CTX *_mem_save_devmode_ctr_0;
19742 if (flags & NDR_IN) {
19743 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19744 NDR_PULL_ALLOC(ndr, r->in.handle);
19746 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19747 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19748 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19749 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
19751 if (_ptr_data_type) {
19752 NDR_PULL_ALLOC(ndr, r->in.data_type);
19754 r->in.data_type = NULL;
19756 if (r->in.data_type) {
19757 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
19758 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
19759 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
19760 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
19761 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
19762 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));
19764 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
19765 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));
19766 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
19768 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19769 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19771 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19772 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19773 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19774 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
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_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
19784 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
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_ResetPrinter");
19792 ndr_print_ptr(ndr, "handle", r->in.handle);
19794 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19796 ndr_print_ptr(ndr, "data_type", r->in.data_type);
19798 if (r->in.data_type) {
19799 ndr_print_string(ndr, "data_type", r->in.data_type);
19802 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19804 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19808 if (flags & NDR_OUT) {
19809 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
19811 ndr_print_WERROR(ndr, "result", r->out.result);
19817 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
19819 if (flags & NDR_IN) {
19820 if (r->in.handle == NULL) {
19821 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19823 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19824 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
19825 if (r->in.architecture) {
19826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19829 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19832 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19833 if (r->in.buffer) {
19834 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19836 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19837 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
19838 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
19840 if (flags & NDR_OUT) {
19841 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19843 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19845 if (r->out.needed == NULL) {
19846 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19849 if (r->out.server_major_version == NULL) {
19850 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
19853 if (r->out.server_minor_version == NULL) {
19854 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
19857 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19859 return NDR_ERR_SUCCESS;
19862 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
19864 uint32_t _ptr_architecture;
19865 uint32_t _ptr_buffer;
19866 uint32_t _ptr_info;
19867 TALLOC_CTX *_mem_save_handle_0;
19868 TALLOC_CTX *_mem_save_architecture_0;
19869 TALLOC_CTX *_mem_save_buffer_0;
19870 TALLOC_CTX *_mem_save_info_0;
19871 TALLOC_CTX *_mem_save_needed_0;
19872 TALLOC_CTX *_mem_save_server_major_version_0;
19873 TALLOC_CTX *_mem_save_server_minor_version_0;
19874 if (flags & NDR_IN) {
19875 ZERO_STRUCT(r->out);
19877 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19878 NDR_PULL_ALLOC(ndr, r->in.handle);
19880 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19881 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19882 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19883 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
19885 if (_ptr_architecture) {
19886 NDR_PULL_ALLOC(ndr, r->in.architecture);
19888 r->in.architecture = NULL;
19890 if (r->in.architecture) {
19891 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
19892 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
19893 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
19894 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
19895 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
19896 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));
19898 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
19899 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
19900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
19902 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19903 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19905 NDR_PULL_ALLOC(ndr, r->in.buffer);
19907 r->in.buffer = NULL;
19909 if (r->in.buffer) {
19910 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19911 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19912 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19915 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19916 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
19917 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
19918 NDR_PULL_ALLOC(ndr, r->out.needed);
19919 ZERO_STRUCTP(r->out.needed);
19920 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19921 ZERO_STRUCTP(r->out.server_major_version);
19922 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19923 ZERO_STRUCTP(r->out.server_minor_version);
19925 if (flags & NDR_OUT) {
19926 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19928 NDR_PULL_ALLOC(ndr, r->out.info);
19930 r->out.info = NULL;
19933 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19934 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19935 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19936 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19938 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19939 NDR_PULL_ALLOC(ndr, r->out.needed);
19941 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19942 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19943 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19944 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19945 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19946 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19948 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19949 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
19950 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
19951 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
19952 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19953 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19955 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19956 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
19957 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
19958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
19959 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19961 return NDR_ERR_SUCCESS;
19964 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
19966 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
19968 if (flags & NDR_SET_VALUES) {
19969 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19971 if (flags & NDR_IN) {
19972 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
19974 ndr_print_ptr(ndr, "handle", r->in.handle);
19976 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19978 ndr_print_ptr(ndr, "architecture", r->in.architecture);
19980 if (r->in.architecture) {
19981 ndr_print_string(ndr, "architecture", r->in.architecture);
19984 ndr_print_uint32(ndr, "level", r->in.level);
19985 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19987 if (r->in.buffer) {
19988 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19991 ndr_print_uint32(ndr, "offered", r->in.offered);
19992 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
19993 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
19996 if (flags & NDR_OUT) {
19997 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
19999 ndr_print_ptr(ndr, "info", r->out.info);
20002 ndr_print_DATA_BLOB(ndr, "info", *r->out.info);
20005 ndr_print_ptr(ndr, "needed", r->out.needed);
20007 ndr_print_uint32(ndr, "needed", *r->out.needed);
20009 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
20011 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
20013 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
20015 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
20017 ndr_print_WERROR(ndr, "result", r->out.result);
20023 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20025 if (flags & NDR_IN) {
20027 if (flags & NDR_OUT) {
20028 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20030 return NDR_ERR_SUCCESS;
20033 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
20035 if (flags & NDR_IN) {
20037 if (flags & NDR_OUT) {
20038 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20040 return NDR_ERR_SUCCESS;
20043 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
20045 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
20047 if (flags & NDR_SET_VALUES) {
20048 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20050 if (flags & NDR_IN) {
20051 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
20055 if (flags & NDR_OUT) {
20056 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
20058 ndr_print_WERROR(ndr, "result", r->out.result);
20064 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20066 if (flags & NDR_IN) {
20068 if (flags & NDR_OUT) {
20069 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20071 return NDR_ERR_SUCCESS;
20074 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
20076 if (flags & NDR_IN) {
20078 if (flags & NDR_OUT) {
20079 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20081 return NDR_ERR_SUCCESS;
20084 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
20086 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
20088 if (flags & NDR_SET_VALUES) {
20089 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20091 if (flags & NDR_IN) {
20092 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
20096 if (flags & NDR_OUT) {
20097 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
20099 ndr_print_WERROR(ndr, "result", r->out.result);
20105 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
20107 if (flags & NDR_IN) {
20108 if (r->in.handle == NULL) {
20109 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20111 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20113 if (flags & NDR_OUT) {
20114 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20116 return NDR_ERR_SUCCESS;
20119 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
20121 TALLOC_CTX *_mem_save_handle_0;
20122 if (flags & NDR_IN) {
20123 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20124 NDR_PULL_ALLOC(ndr, r->in.handle);
20126 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20127 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20128 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20131 if (flags & NDR_OUT) {
20132 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20134 return NDR_ERR_SUCCESS;
20137 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
20139 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
20141 if (flags & NDR_SET_VALUES) {
20142 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20144 if (flags & NDR_IN) {
20145 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
20147 ndr_print_ptr(ndr, "handle", r->in.handle);
20149 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20153 if (flags & NDR_OUT) {
20154 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
20156 ndr_print_WERROR(ndr, "result", r->out.result);
20162 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20164 if (flags & NDR_IN) {
20166 if (flags & NDR_OUT) {
20167 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20169 return NDR_ERR_SUCCESS;
20172 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20174 if (flags & NDR_IN) {
20176 if (flags & NDR_OUT) {
20177 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20179 return NDR_ERR_SUCCESS;
20182 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
20184 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20186 if (flags & NDR_SET_VALUES) {
20187 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20189 if (flags & NDR_IN) {
20190 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20194 if (flags & NDR_OUT) {
20195 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
20197 ndr_print_WERROR(ndr, "result", r->out.result);
20203 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
20205 if (flags & NDR_IN) {
20206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
20209 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));
20210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20211 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
20212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20213 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20214 if (r->in.buffer) {
20215 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20216 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20219 if (flags & NDR_OUT) {
20220 if (r->out.handle == NULL) {
20221 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20223 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20224 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20226 return NDR_ERR_SUCCESS;
20229 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
20231 uint32_t _ptr_buffer;
20232 TALLOC_CTX *_mem_save_buffer_0;
20233 TALLOC_CTX *_mem_save_handle_0;
20234 if (flags & NDR_IN) {
20235 ZERO_STRUCT(r->out);
20237 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
20238 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
20239 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
20240 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));
20242 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
20243 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));
20244 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20245 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
20246 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20247 if (r->in.bufsize > 512) {
20248 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20252 NDR_PULL_ALLOC(ndr, r->in.buffer);
20254 r->in.buffer = NULL;
20256 if (r->in.buffer) {
20257 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20258 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20259 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20260 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20261 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20262 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20264 NDR_PULL_ALLOC(ndr, r->out.handle);
20265 ZERO_STRUCTP(r->out.handle);
20266 if (r->in.buffer) {
20267 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20270 if (flags & NDR_OUT) {
20271 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20272 NDR_PULL_ALLOC(ndr, r->out.handle);
20274 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20275 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20276 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20277 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20278 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20280 return NDR_ERR_SUCCESS;
20283 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
20285 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
20287 if (flags & NDR_SET_VALUES) {
20288 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20290 if (flags & NDR_IN) {
20291 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
20293 ndr_print_string(ndr, "server_name", r->in.server_name);
20294 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20295 ndr_print_winreg_Type(ndr, "type", r->in.type);
20296 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20297 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20299 if (r->in.buffer) {
20300 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20305 if (flags & NDR_OUT) {
20306 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
20308 ndr_print_ptr(ndr, "handle", r->out.handle);
20310 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20312 ndr_print_WERROR(ndr, "result", r->out.result);
20318 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
20320 if (flags & NDR_IN) {
20321 if (r->in.handle == NULL) {
20322 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20324 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20325 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20327 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
20328 if (r->in.buffer) {
20329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
20330 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
20333 if (flags & NDR_OUT) {
20334 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20336 return NDR_ERR_SUCCESS;
20339 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
20341 uint32_t _ptr_buffer;
20342 TALLOC_CTX *_mem_save_handle_0;
20343 TALLOC_CTX *_mem_save_buffer_0;
20344 if (flags & NDR_IN) {
20345 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20346 NDR_PULL_ALLOC(ndr, r->in.handle);
20348 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20349 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20350 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20352 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
20354 if (r->in.bufsize > 512) {
20355 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
20357 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
20359 NDR_PULL_ALLOC(ndr, r->in.buffer);
20361 r->in.buffer = NULL;
20363 if (r->in.buffer) {
20364 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
20365 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
20366 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
20367 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
20368 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
20369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
20371 if (r->in.buffer) {
20372 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
20375 if (flags & NDR_OUT) {
20376 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20378 return NDR_ERR_SUCCESS;
20381 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
20383 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
20385 if (flags & NDR_SET_VALUES) {
20386 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20388 if (flags & NDR_IN) {
20389 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
20391 ndr_print_ptr(ndr, "handle", r->in.handle);
20393 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20395 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20396 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20397 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20399 if (r->in.buffer) {
20400 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20405 if (flags & NDR_OUT) {
20406 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
20408 ndr_print_WERROR(ndr, "result", r->out.result);
20414 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
20416 if (flags & NDR_IN) {
20417 if (r->in.handle == NULL) {
20418 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20420 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20422 if (flags & NDR_OUT) {
20423 if (r->out.handle == NULL) {
20424 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20426 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20427 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20429 return NDR_ERR_SUCCESS;
20432 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
20434 TALLOC_CTX *_mem_save_handle_0;
20435 if (flags & NDR_IN) {
20436 ZERO_STRUCT(r->out);
20438 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20439 NDR_PULL_ALLOC(ndr, r->in.handle);
20441 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20442 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20443 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20444 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20445 NDR_PULL_ALLOC(ndr, r->out.handle);
20446 *r->out.handle = *r->in.handle;
20448 if (flags & NDR_OUT) {
20449 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20450 NDR_PULL_ALLOC(ndr, r->out.handle);
20452 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20453 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20454 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20455 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20456 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20458 return NDR_ERR_SUCCESS;
20461 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
20463 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
20465 if (flags & NDR_SET_VALUES) {
20466 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20468 if (flags & NDR_IN) {
20469 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
20471 ndr_print_ptr(ndr, "handle", r->in.handle);
20473 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20477 if (flags & NDR_OUT) {
20478 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
20480 ndr_print_ptr(ndr, "handle", r->out.handle);
20482 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20484 ndr_print_WERROR(ndr, "result", r->out.result);
20490 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
20492 if (flags & NDR_IN) {
20494 if (flags & NDR_OUT) {
20495 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20497 return NDR_ERR_SUCCESS;
20500 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
20502 if (flags & NDR_IN) {
20504 if (flags & NDR_OUT) {
20505 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20507 return NDR_ERR_SUCCESS;
20510 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
20512 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
20514 if (flags & NDR_SET_VALUES) {
20515 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20517 if (flags & NDR_IN) {
20518 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
20522 if (flags & NDR_OUT) {
20523 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
20525 ndr_print_WERROR(ndr, "result", r->out.result);
20531 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20533 if (flags & NDR_IN) {
20535 if (flags & NDR_OUT) {
20536 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20538 return NDR_ERR_SUCCESS;
20541 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20543 if (flags & NDR_IN) {
20545 if (flags & NDR_OUT) {
20546 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20548 return NDR_ERR_SUCCESS;
20551 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20553 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
20555 if (flags & NDR_SET_VALUES) {
20556 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20558 if (flags & NDR_IN) {
20559 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
20563 if (flags & NDR_OUT) {
20564 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
20566 ndr_print_WERROR(ndr, "result", r->out.result);
20572 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
20574 if (flags & NDR_IN) {
20576 if (flags & NDR_OUT) {
20577 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20579 return NDR_ERR_SUCCESS;
20582 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
20584 if (flags & NDR_IN) {
20586 if (flags & NDR_OUT) {
20587 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20589 return NDR_ERR_SUCCESS;
20592 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
20594 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
20596 if (flags & NDR_SET_VALUES) {
20597 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20599 if (flags & NDR_IN) {
20600 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
20604 if (flags & NDR_OUT) {
20605 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
20607 ndr_print_WERROR(ndr, "result", r->out.result);
20613 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
20615 if (flags & NDR_IN) {
20617 if (flags & NDR_OUT) {
20618 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20620 return NDR_ERR_SUCCESS;
20623 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
20625 if (flags & NDR_IN) {
20627 if (flags & NDR_OUT) {
20628 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20630 return NDR_ERR_SUCCESS;
20633 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
20635 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
20637 if (flags & NDR_SET_VALUES) {
20638 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20640 if (flags & NDR_IN) {
20641 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
20645 if (flags & NDR_OUT) {
20646 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
20648 ndr_print_WERROR(ndr, "result", r->out.result);
20654 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20656 if (flags & NDR_IN) {
20657 if (r->in.handle == NULL) {
20658 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20660 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20661 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
20663 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
20664 if (r->in.local_machine) {
20665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20666 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20668 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));
20670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20671 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
20672 if (r->in.notify_options) {
20673 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20676 if (flags & NDR_OUT) {
20677 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20679 return NDR_ERR_SUCCESS;
20682 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20684 uint32_t _ptr_local_machine;
20685 uint32_t _ptr_notify_options;
20686 TALLOC_CTX *_mem_save_handle_0;
20687 TALLOC_CTX *_mem_save_local_machine_0;
20688 TALLOC_CTX *_mem_save_notify_options_0;
20689 if (flags & NDR_IN) {
20690 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20691 NDR_PULL_ALLOC(ndr, r->in.handle);
20693 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20694 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20695 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20696 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20697 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20698 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
20699 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
20700 if (_ptr_local_machine) {
20701 NDR_PULL_ALLOC(ndr, r->in.local_machine);
20703 r->in.local_machine = NULL;
20705 if (r->in.local_machine) {
20706 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
20707 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
20708 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
20709 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
20710 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
20711 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));
20713 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
20714 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));
20715 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
20717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20718 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
20719 if (_ptr_notify_options) {
20720 NDR_PULL_ALLOC(ndr, r->in.notify_options);
20722 r->in.notify_options = NULL;
20724 if (r->in.notify_options) {
20725 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20726 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
20727 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
20731 if (flags & NDR_OUT) {
20732 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20734 return NDR_ERR_SUCCESS;
20737 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20739 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20741 if (flags & NDR_SET_VALUES) {
20742 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20744 if (flags & NDR_IN) {
20745 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20747 ndr_print_ptr(ndr, "handle", r->in.handle);
20749 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20751 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20752 ndr_print_uint32(ndr, "options", r->in.options);
20753 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
20755 if (r->in.local_machine) {
20756 ndr_print_string(ndr, "local_machine", r->in.local_machine);
20759 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20760 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
20762 if (r->in.notify_options) {
20763 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
20768 if (flags & NDR_OUT) {
20769 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20771 ndr_print_WERROR(ndr, "result", r->out.result);
20777 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20779 if (flags & NDR_IN) {
20780 if (r->in.handle == NULL) {
20781 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20783 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20784 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
20785 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20786 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
20787 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20788 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20790 if (flags & NDR_OUT) {
20791 if (r->out.reply_result == NULL) {
20792 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20794 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
20795 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20797 return NDR_ERR_SUCCESS;
20800 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
20802 TALLOC_CTX *_mem_save_handle_0;
20803 TALLOC_CTX *_mem_save_reply_result_0;
20804 if (flags & NDR_IN) {
20805 ZERO_STRUCT(r->out);
20807 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20808 NDR_PULL_ALLOC(ndr, r->in.handle);
20810 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20811 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20812 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20813 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20814 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
20815 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20816 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
20817 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20818 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20819 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20820 ZERO_STRUCTP(r->out.reply_result);
20822 if (flags & NDR_OUT) {
20823 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20824 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20826 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
20827 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
20828 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
20829 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
20830 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20832 return NDR_ERR_SUCCESS;
20835 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20837 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
20839 if (flags & NDR_SET_VALUES) {
20840 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20842 if (flags & NDR_IN) {
20843 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
20845 ndr_print_ptr(ndr, "handle", r->in.handle);
20847 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20849 ndr_print_uint32(ndr, "color", r->in.color);
20850 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20851 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
20852 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
20853 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
20856 if (flags & NDR_OUT) {
20857 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
20859 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
20861 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
20863 ndr_print_WERROR(ndr, "result", r->out.result);
20869 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20871 if (flags & NDR_IN) {
20872 if (r->in.handle == NULL) {
20873 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20875 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20876 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
20877 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
20878 if (r->in.options) {
20879 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20882 if (flags & NDR_OUT) {
20883 if (r->out.info == NULL) {
20884 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20886 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
20887 if (*r->out.info) {
20888 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20890 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20892 return NDR_ERR_SUCCESS;
20895 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
20897 uint32_t _ptr_options;
20898 uint32_t _ptr_info;
20899 TALLOC_CTX *_mem_save_handle_0;
20900 TALLOC_CTX *_mem_save_options_0;
20901 TALLOC_CTX *_mem_save_info_0;
20902 TALLOC_CTX *_mem_save_info_1;
20903 if (flags & NDR_IN) {
20904 ZERO_STRUCT(r->out);
20906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20907 NDR_PULL_ALLOC(ndr, r->in.handle);
20909 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20910 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20911 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20913 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
20914 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
20915 if (_ptr_options) {
20916 NDR_PULL_ALLOC(ndr, r->in.options);
20918 r->in.options = NULL;
20920 if (r->in.options) {
20921 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20922 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
20923 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20924 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
20926 NDR_PULL_ALLOC(ndr, r->out.info);
20927 ZERO_STRUCTP(r->out.info);
20929 if (flags & NDR_OUT) {
20930 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20931 NDR_PULL_ALLOC(ndr, r->out.info);
20933 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20934 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
20935 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20937 NDR_PULL_ALLOC(ndr, *r->out.info);
20939 *r->out.info = NULL;
20941 if (*r->out.info) {
20942 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
20943 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
20944 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20945 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
20947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
20948 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20950 return NDR_ERR_SUCCESS;
20953 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20955 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
20957 if (flags & NDR_SET_VALUES) {
20958 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20960 if (flags & NDR_IN) {
20961 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
20963 ndr_print_ptr(ndr, "handle", r->in.handle);
20965 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20967 ndr_print_uint32(ndr, "change_low", r->in.change_low);
20968 ndr_print_ptr(ndr, "options", r->in.options);
20970 if (r->in.options) {
20971 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
20976 if (flags & NDR_OUT) {
20977 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
20979 ndr_print_ptr(ndr, "info", r->out.info);
20981 ndr_print_ptr(ndr, "info", *r->out.info);
20983 if (*r->out.info) {
20984 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
20988 ndr_print_WERROR(ndr, "result", r->out.result);
20994 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
20996 if (flags & NDR_IN) {
20998 if (flags & NDR_OUT) {
20999 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21001 return NDR_ERR_SUCCESS;
21004 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
21006 if (flags & NDR_IN) {
21008 if (flags & NDR_OUT) {
21009 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21011 return NDR_ERR_SUCCESS;
21014 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
21016 ndr_print_struct(ndr, name, "spoolss_44");
21018 if (flags & NDR_SET_VALUES) {
21019 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21021 if (flags & NDR_IN) {
21022 ndr_print_struct(ndr, "in", "spoolss_44");
21026 if (flags & NDR_OUT) {
21027 ndr_print_struct(ndr, "out", "spoolss_44");
21029 ndr_print_WERROR(ndr, "result", r->out.result);
21035 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
21037 if (flags & NDR_IN) {
21038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
21039 if (r->in.printername) {
21040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
21043 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21045 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
21046 if (r->in.datatype) {
21047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21048 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21049 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
21050 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21052 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21053 NDR_CHECK(ndr_push_spoolss_AccessRights(ndr, NDR_SCALARS, r->in.access_mask));
21054 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
21055 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21056 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21058 if (flags & NDR_OUT) {
21059 if (r->out.handle == NULL) {
21060 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21062 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21063 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21065 return NDR_ERR_SUCCESS;
21068 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
21070 uint32_t _ptr_printername;
21071 uint32_t _ptr_datatype;
21072 TALLOC_CTX *_mem_save_printername_0;
21073 TALLOC_CTX *_mem_save_datatype_0;
21074 TALLOC_CTX *_mem_save_handle_0;
21075 if (flags & NDR_IN) {
21076 ZERO_STRUCT(r->out);
21078 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
21079 if (_ptr_printername) {
21080 NDR_PULL_ALLOC(ndr, r->in.printername);
21082 r->in.printername = NULL;
21084 if (r->in.printername) {
21085 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
21086 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
21087 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
21088 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
21089 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
21090 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));
21092 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
21093 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
21094 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
21096 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
21097 if (_ptr_datatype) {
21098 NDR_PULL_ALLOC(ndr, r->in.datatype);
21100 r->in.datatype = NULL;
21102 if (r->in.datatype) {
21103 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
21104 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
21105 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
21106 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
21107 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
21108 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->in.datatype), ndr_get_array_length(ndr, &r->in.datatype));
21110 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
21111 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
21112 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
21114 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
21115 NDR_CHECK(ndr_pull_spoolss_AccessRights(ndr, NDR_SCALARS, &r->in.access_mask));
21116 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
21117 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
21118 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
21119 NDR_PULL_ALLOC(ndr, r->out.handle);
21120 ZERO_STRUCTP(r->out.handle);
21122 if (flags & NDR_OUT) {
21123 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21124 NDR_PULL_ALLOC(ndr, r->out.handle);
21126 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21127 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21128 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21129 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21130 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21132 return NDR_ERR_SUCCESS;
21135 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
21137 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
21139 if (flags & NDR_SET_VALUES) {
21140 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21142 if (flags & NDR_IN) {
21143 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
21145 ndr_print_ptr(ndr, "printername", r->in.printername);
21147 if (r->in.printername) {
21148 ndr_print_string(ndr, "printername", r->in.printername);
21151 ndr_print_ptr(ndr, "datatype", r->in.datatype);
21153 if (r->in.datatype) {
21154 ndr_print_string(ndr, "datatype", r->in.datatype);
21157 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
21158 ndr_print_spoolss_AccessRights(ndr, "access_mask", r->in.access_mask);
21159 ndr_print_uint32(ndr, "level", r->in.level);
21160 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
21161 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
21164 if (flags & NDR_OUT) {
21165 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
21167 ndr_print_ptr(ndr, "handle", r->out.handle);
21169 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21171 ndr_print_WERROR(ndr, "result", r->out.result);
21177 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
21179 if (flags & NDR_IN) {
21180 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
21181 if (r->in.server) {
21182 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21183 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21184 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
21185 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21187 if (r->in.info_ctr == NULL) {
21188 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21190 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21191 if (r->in.devmode_ctr == NULL) {
21192 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21194 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21195 if (r->in.secdesc_ctr == NULL) {
21196 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21198 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21199 if (r->in.userlevel_ctr == NULL) {
21200 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21202 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21204 if (flags & NDR_OUT) {
21205 if (r->out.handle == NULL) {
21206 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21208 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21209 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21211 return NDR_ERR_SUCCESS;
21214 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
21216 uint32_t _ptr_server;
21217 TALLOC_CTX *_mem_save_server_0;
21218 TALLOC_CTX *_mem_save_info_ctr_0;
21219 TALLOC_CTX *_mem_save_devmode_ctr_0;
21220 TALLOC_CTX *_mem_save_secdesc_ctr_0;
21221 TALLOC_CTX *_mem_save_userlevel_ctr_0;
21222 TALLOC_CTX *_mem_save_handle_0;
21223 if (flags & NDR_IN) {
21224 ZERO_STRUCT(r->out);
21226 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
21228 NDR_PULL_ALLOC(ndr, r->in.server);
21230 r->in.server = NULL;
21232 if (r->in.server) {
21233 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
21234 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
21235 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
21236 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
21237 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
21238 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));
21240 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
21241 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
21242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
21244 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21245 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
21247 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21248 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
21249 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
21250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21251 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21252 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
21254 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21255 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
21256 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
21257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21258 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21259 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
21261 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21262 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
21263 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
21264 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21265 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21266 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
21268 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
21269 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
21270 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
21271 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
21272 NDR_PULL_ALLOC(ndr, r->out.handle);
21273 ZERO_STRUCTP(r->out.handle);
21275 if (flags & NDR_OUT) {
21276 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21277 NDR_PULL_ALLOC(ndr, r->out.handle);
21279 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21280 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
21281 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
21282 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21283 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21285 return NDR_ERR_SUCCESS;
21288 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
21290 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
21292 if (flags & NDR_SET_VALUES) {
21293 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21295 if (flags & NDR_IN) {
21296 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
21298 ndr_print_ptr(ndr, "server", r->in.server);
21300 if (r->in.server) {
21301 ndr_print_string(ndr, "server", r->in.server);
21304 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
21306 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
21308 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
21310 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
21312 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21314 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
21316 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21318 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
21322 if (flags & NDR_OUT) {
21323 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
21325 ndr_print_ptr(ndr, "handle", r->out.handle);
21327 ndr_print_policy_handle(ndr, "handle", r->out.handle);
21329 ndr_print_WERROR(ndr, "result", r->out.result);
21335 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
21337 if (flags & NDR_IN) {
21339 if (flags & NDR_OUT) {
21340 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21342 return NDR_ERR_SUCCESS;
21345 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
21347 if (flags & NDR_IN) {
21349 if (flags & NDR_OUT) {
21350 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21352 return NDR_ERR_SUCCESS;
21355 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
21357 ndr_print_struct(ndr, name, "spoolss_47");
21359 if (flags & NDR_SET_VALUES) {
21360 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21362 if (flags & NDR_IN) {
21363 ndr_print_struct(ndr, "in", "spoolss_47");
21367 if (flags & NDR_OUT) {
21368 ndr_print_struct(ndr, "out", "spoolss_47");
21370 ndr_print_WERROR(ndr, "result", r->out.result);
21376 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
21378 if (flags & NDR_IN) {
21379 if (r->in.handle == NULL) {
21380 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21382 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21383 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
21384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
21385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
21387 if (flags & NDR_OUT) {
21388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
21389 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
21390 if (r->out.value_needed == NULL) {
21391 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
21394 if (r->out.printerdata_type == NULL) {
21395 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
21398 if (r->out.buffer == NULL) {
21399 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21401 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
21402 if (r->out.data_needed == NULL) {
21403 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
21406 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21408 return NDR_ERR_SUCCESS;
21411 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
21413 TALLOC_CTX *_mem_save_handle_0;
21414 TALLOC_CTX *_mem_save_value_needed_0;
21415 TALLOC_CTX *_mem_save_printerdata_type_0;
21416 TALLOC_CTX *_mem_save_buffer_0;
21417 TALLOC_CTX *_mem_save_data_needed_0;
21418 if (flags & NDR_IN) {
21419 ZERO_STRUCT(r->out);
21421 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21422 NDR_PULL_ALLOC(ndr, r->in.handle);
21424 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21425 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21426 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21427 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21428 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
21429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
21430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
21431 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21432 ZERO_STRUCTP(r->out.value_needed);
21433 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21434 ZERO_STRUCTP(r->out.printerdata_type);
21435 NDR_PULL_ALLOC(ndr, r->out.buffer);
21436 ZERO_STRUCTP(r->out.buffer);
21437 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21438 ZERO_STRUCTP(r->out.data_needed);
21440 if (flags & NDR_OUT) {
21441 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
21442 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));
21443 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21444 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21446 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21447 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
21448 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
21449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
21450 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21451 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21453 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21454 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
21455 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
21456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
21457 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21458 NDR_PULL_ALLOC(ndr, r->out.buffer);
21460 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21461 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
21462 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
21463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
21464 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21465 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21467 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21468 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
21469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
21470 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
21471 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21472 if (r->out.value_name) {
21473 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
21476 return NDR_ERR_SUCCESS;
21479 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
21481 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
21483 if (flags & NDR_SET_VALUES) {
21484 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21486 if (flags & NDR_IN) {
21487 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
21489 ndr_print_ptr(ndr, "handle", r->in.handle);
21491 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21493 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
21494 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
21495 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
21498 if (flags & NDR_OUT) {
21499 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
21501 ndr_print_string(ndr, "value_name", r->out.value_name);
21502 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
21504 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
21506 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
21508 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
21510 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21512 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
21514 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
21516 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
21518 ndr_print_WERROR(ndr, "result", r->out.result);
21524 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
21526 if (flags & NDR_IN) {
21527 if (r->in.handle == NULL) {
21528 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21530 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21531 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21532 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21533 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21534 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));
21536 if (flags & NDR_OUT) {
21537 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21539 return NDR_ERR_SUCCESS;
21542 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
21544 TALLOC_CTX *_mem_save_handle_0;
21545 if (flags & NDR_IN) {
21546 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21547 NDR_PULL_ALLOC(ndr, r->in.handle);
21549 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21550 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21551 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21553 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21554 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21555 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21556 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));
21558 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21559 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));
21561 if (flags & NDR_OUT) {
21562 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21564 return NDR_ERR_SUCCESS;
21567 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
21569 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
21571 if (flags & NDR_SET_VALUES) {
21572 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21574 if (flags & NDR_IN) {
21575 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
21577 ndr_print_ptr(ndr, "handle", r->in.handle);
21579 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21581 ndr_print_string(ndr, "value_name", r->in.value_name);
21584 if (flags & NDR_OUT) {
21585 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
21587 ndr_print_WERROR(ndr, "result", r->out.result);
21593 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
21595 if (flags & NDR_IN) {
21597 if (flags & NDR_OUT) {
21598 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21600 return NDR_ERR_SUCCESS;
21603 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
21605 if (flags & NDR_IN) {
21607 if (flags & NDR_OUT) {
21608 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21610 return NDR_ERR_SUCCESS;
21613 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
21615 ndr_print_struct(ndr, name, "spoolss_4a");
21617 if (flags & NDR_SET_VALUES) {
21618 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21620 if (flags & NDR_IN) {
21621 ndr_print_struct(ndr, "in", "spoolss_4a");
21625 if (flags & NDR_OUT) {
21626 ndr_print_struct(ndr, "out", "spoolss_4a");
21628 ndr_print_WERROR(ndr, "result", r->out.result);
21634 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
21636 if (flags & NDR_IN) {
21638 if (flags & NDR_OUT) {
21639 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21641 return NDR_ERR_SUCCESS;
21644 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
21646 if (flags & NDR_IN) {
21648 if (flags & NDR_OUT) {
21649 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21651 return NDR_ERR_SUCCESS;
21654 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
21656 ndr_print_struct(ndr, name, "spoolss_4b");
21658 if (flags & NDR_SET_VALUES) {
21659 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21661 if (flags & NDR_IN) {
21662 ndr_print_struct(ndr, "in", "spoolss_4b");
21666 if (flags & NDR_OUT) {
21667 ndr_print_struct(ndr, "out", "spoolss_4b");
21669 ndr_print_WERROR(ndr, "result", r->out.result);
21675 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
21677 if (flags & NDR_IN) {
21679 if (flags & NDR_OUT) {
21680 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21682 return NDR_ERR_SUCCESS;
21685 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
21687 if (flags & NDR_IN) {
21689 if (flags & NDR_OUT) {
21690 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21692 return NDR_ERR_SUCCESS;
21695 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
21697 ndr_print_struct(ndr, name, "spoolss_4c");
21699 if (flags & NDR_SET_VALUES) {
21700 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21702 if (flags & NDR_IN) {
21703 ndr_print_struct(ndr, "in", "spoolss_4c");
21707 if (flags & NDR_OUT) {
21708 ndr_print_struct(ndr, "out", "spoolss_4c");
21710 ndr_print_WERROR(ndr, "result", r->out.result);
21716 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
21718 if (flags & NDR_IN) {
21719 if (r->in.handle == NULL) {
21720 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21722 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21726 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));
21727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21730 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));
21731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
21732 if (r->in.buffer == NULL) {
21733 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21736 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21737 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21739 if (flags & NDR_OUT) {
21740 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21742 return NDR_ERR_SUCCESS;
21745 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
21747 TALLOC_CTX *_mem_save_handle_0;
21748 if (flags & NDR_IN) {
21749 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21750 NDR_PULL_ALLOC(ndr, r->in.handle);
21752 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21753 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21754 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21755 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21756 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21757 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21758 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21759 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));
21761 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21762 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));
21763 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21764 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21765 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21766 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));
21768 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21769 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));
21770 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
21771 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21772 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21773 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21775 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21776 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21777 if (r->in.buffer) {
21778 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21781 if (flags & NDR_OUT) {
21782 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21784 return NDR_ERR_SUCCESS;
21787 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
21789 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
21791 if (flags & NDR_SET_VALUES) {
21792 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21794 if (flags & NDR_IN) {
21795 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
21797 ndr_print_ptr(ndr, "handle", r->in.handle);
21799 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21801 ndr_print_string(ndr, "key_name", r->in.key_name);
21802 ndr_print_string(ndr, "value_name", r->in.value_name);
21803 ndr_print_uint32(ndr, "type", r->in.type);
21804 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21806 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21808 ndr_print_uint32(ndr, "offered", r->in.offered);
21811 if (flags & NDR_OUT) {
21812 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
21814 ndr_print_WERROR(ndr, "result", r->out.result);
21820 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
21822 if (flags & NDR_IN) {
21823 if (r->in.handle == NULL) {
21824 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21826 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21827 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21829 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21830 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));
21831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21834 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));
21835 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21837 if (flags & NDR_OUT) {
21838 if (r->out.type == NULL) {
21839 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21841 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
21842 if (r->out.buffer == NULL) {
21843 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21846 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21847 if (r->out.needed == NULL) {
21848 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21851 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21853 return NDR_ERR_SUCCESS;
21856 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
21858 TALLOC_CTX *_mem_save_handle_0;
21859 TALLOC_CTX *_mem_save_type_0;
21860 TALLOC_CTX *_mem_save_needed_0;
21861 if (flags & NDR_IN) {
21862 ZERO_STRUCT(r->out);
21864 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21865 NDR_PULL_ALLOC(ndr, r->in.handle);
21867 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21868 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21869 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21870 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21871 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21872 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21873 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21874 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));
21876 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21877 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));
21878 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21879 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21880 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21881 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));
21883 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21884 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));
21885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21886 NDR_PULL_ALLOC(ndr, r->out.type);
21887 ZERO_STRUCTP(r->out.type);
21888 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
21889 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
21890 NDR_PULL_ALLOC(ndr, r->out.needed);
21891 ZERO_STRUCTP(r->out.needed);
21893 if (flags & NDR_OUT) {
21894 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21895 NDR_PULL_ALLOC(ndr, r->out.type);
21897 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21898 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
21900 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21901 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21902 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21903 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21905 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21906 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21907 NDR_PULL_ALLOC(ndr, r->out.needed);
21909 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21910 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21911 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21913 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21914 if (r->out.buffer) {
21915 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21918 return NDR_ERR_SUCCESS;
21921 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
21923 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
21925 if (flags & NDR_SET_VALUES) {
21926 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21928 if (flags & NDR_IN) {
21929 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
21931 ndr_print_ptr(ndr, "handle", r->in.handle);
21933 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21935 ndr_print_string(ndr, "key_name", r->in.key_name);
21936 ndr_print_string(ndr, "value_name", r->in.value_name);
21937 ndr_print_uint32(ndr, "offered", r->in.offered);
21940 if (flags & NDR_OUT) {
21941 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
21943 ndr_print_ptr(ndr, "type", r->out.type);
21945 ndr_print_uint32(ndr, "type", *r->out.type);
21947 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21949 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21951 ndr_print_ptr(ndr, "needed", r->out.needed);
21953 ndr_print_uint32(ndr, "needed", *r->out.needed);
21955 ndr_print_WERROR(ndr, "result", r->out.result);
21961 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
21963 if (flags & NDR_IN) {
21964 if (r->in.handle == NULL) {
21965 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21967 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21971 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));
21972 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21974 if (flags & NDR_OUT) {
21975 if (r->out.buffer == NULL) {
21976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21979 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21980 if (r->out.needed == NULL) {
21981 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21983 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21984 if (r->out.count == NULL) {
21985 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21987 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21988 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21990 return NDR_ERR_SUCCESS;
21993 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
21995 TALLOC_CTX *_mem_save_handle_0;
21996 TALLOC_CTX *_mem_save_needed_0;
21997 TALLOC_CTX *_mem_save_count_0;
21998 if (flags & NDR_IN) {
21999 ZERO_STRUCT(r->out);
22001 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22002 NDR_PULL_ALLOC(ndr, r->in.handle);
22004 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22005 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22006 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22008 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22009 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22010 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22011 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));
22013 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22014 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));
22015 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
22016 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
22017 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
22018 NDR_PULL_ALLOC(ndr, r->out.needed);
22019 ZERO_STRUCTP(r->out.needed);
22020 NDR_PULL_ALLOC(ndr, r->out.count);
22021 ZERO_STRUCTP(r->out.count);
22023 if (flags & NDR_OUT) {
22024 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
22025 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22026 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
22028 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
22029 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22030 NDR_PULL_ALLOC(ndr, r->out.needed);
22032 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22033 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22034 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22036 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22037 NDR_PULL_ALLOC(ndr, r->out.count);
22039 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
22040 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
22041 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
22042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
22043 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22044 if (r->out.buffer) {
22045 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
22048 return NDR_ERR_SUCCESS;
22051 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
22053 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
22055 if (flags & NDR_SET_VALUES) {
22056 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22058 if (flags & NDR_IN) {
22059 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
22061 ndr_print_ptr(ndr, "handle", r->in.handle);
22063 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22065 ndr_print_string(ndr, "key_name", r->in.key_name);
22066 ndr_print_uint32(ndr, "offered", r->in.offered);
22069 if (flags & NDR_OUT) {
22070 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
22072 ndr_print_ptr(ndr, "buffer", r->out.buffer);
22074 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
22076 ndr_print_ptr(ndr, "needed", r->out.needed);
22078 ndr_print_uint32(ndr, "needed", *r->out.needed);
22080 ndr_print_ptr(ndr, "count", r->out.count);
22082 ndr_print_uint32(ndr, "count", *r->out.count);
22084 ndr_print_WERROR(ndr, "result", r->out.result);
22090 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
22092 uint32_t cntr_key_buffer_1;
22093 if (flags & NDR_IN) {
22094 if (r->in.handle == NULL) {
22095 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22097 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22101 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));
22102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
22104 if (flags & NDR_OUT) {
22105 if (r->out.key_buffer == NULL) {
22106 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
22109 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22110 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
22112 if (r->out.needed == NULL) {
22113 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22116 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22118 return NDR_ERR_SUCCESS;
22121 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
22123 uint32_t cntr_key_buffer_1;
22124 TALLOC_CTX *_mem_save_handle_0;
22125 TALLOC_CTX *_mem_save_key_buffer_1;
22126 TALLOC_CTX *_mem_save_needed_0;
22127 if (flags & NDR_IN) {
22128 ZERO_STRUCT(r->out);
22130 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22131 NDR_PULL_ALLOC(ndr, r->in.handle);
22133 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22134 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22135 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22137 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22138 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22139 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22140 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));
22142 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22143 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));
22144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
22145 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
22146 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
22147 NDR_PULL_ALLOC(ndr, r->out.needed);
22148 ZERO_STRUCTP(r->out.needed);
22150 if (flags & NDR_OUT) {
22151 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
22152 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22153 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
22155 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
22156 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
22157 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
22158 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
22160 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
22161 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22162 NDR_PULL_ALLOC(ndr, r->out.needed);
22164 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22165 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22168 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22169 if (r->out.key_buffer) {
22170 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
22173 return NDR_ERR_SUCCESS;
22176 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
22178 uint32_t cntr_key_buffer_1;
22179 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
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_EnumPrinterKey");
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_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
22195 if (flags & NDR_OUT) {
22196 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
22198 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
22200 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
22202 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
22204 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
22205 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
22211 ndr_print_ptr(ndr, "needed", r->out.needed);
22213 ndr_print_uint32(ndr, "needed", *r->out.needed);
22215 ndr_print_WERROR(ndr, "result", r->out.result);
22221 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
22223 if (flags & NDR_IN) {
22224 if (r->in.handle == NULL) {
22225 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22227 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22231 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));
22232 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
22235 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));
22237 if (flags & NDR_OUT) {
22238 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22240 return NDR_ERR_SUCCESS;
22243 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
22245 TALLOC_CTX *_mem_save_handle_0;
22246 if (flags & NDR_IN) {
22247 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22248 NDR_PULL_ALLOC(ndr, r->in.handle);
22250 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22251 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22252 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22253 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22254 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22255 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22256 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22257 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));
22259 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22260 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));
22261 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
22262 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
22263 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
22264 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));
22266 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
22267 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));
22269 if (flags & NDR_OUT) {
22270 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22272 return NDR_ERR_SUCCESS;
22275 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
22277 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
22279 if (flags & NDR_SET_VALUES) {
22280 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22282 if (flags & NDR_IN) {
22283 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
22285 ndr_print_ptr(ndr, "handle", r->in.handle);
22287 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22289 ndr_print_string(ndr, "key_name", r->in.key_name);
22290 ndr_print_string(ndr, "value_name", r->in.value_name);
22293 if (flags & NDR_OUT) {
22294 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
22296 ndr_print_WERROR(ndr, "result", r->out.result);
22302 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
22304 if (flags & NDR_IN) {
22305 if (r->in.handle == NULL) {
22306 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22308 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22309 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
22312 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));
22314 if (flags & NDR_OUT) {
22315 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22317 return NDR_ERR_SUCCESS;
22320 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
22322 TALLOC_CTX *_mem_save_handle_0;
22323 if (flags & NDR_IN) {
22324 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22325 NDR_PULL_ALLOC(ndr, r->in.handle);
22327 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22328 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22329 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22330 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22331 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
22332 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
22333 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
22334 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));
22336 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
22337 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));
22339 if (flags & NDR_OUT) {
22340 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22342 return NDR_ERR_SUCCESS;
22345 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
22347 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
22349 if (flags & NDR_SET_VALUES) {
22350 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22352 if (flags & NDR_IN) {
22353 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
22355 ndr_print_ptr(ndr, "handle", r->in.handle);
22357 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22359 ndr_print_string(ndr, "key_name", r->in.key_name);
22362 if (flags & NDR_OUT) {
22363 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
22365 ndr_print_WERROR(ndr, "result", r->out.result);
22371 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
22373 if (flags & NDR_IN) {
22375 if (flags & NDR_OUT) {
22376 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22378 return NDR_ERR_SUCCESS;
22381 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
22383 if (flags & NDR_IN) {
22385 if (flags & NDR_OUT) {
22386 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22388 return NDR_ERR_SUCCESS;
22391 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
22393 ndr_print_struct(ndr, name, "spoolss_53");
22395 if (flags & NDR_SET_VALUES) {
22396 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22398 if (flags & NDR_IN) {
22399 ndr_print_struct(ndr, "in", "spoolss_53");
22403 if (flags & NDR_OUT) {
22404 ndr_print_struct(ndr, "out", "spoolss_53");
22406 ndr_print_WERROR(ndr, "result", r->out.result);
22412 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22414 if (flags & NDR_IN) {
22415 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22416 if (r->in.server) {
22417 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22420 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22422 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22423 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22425 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22427 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22428 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22429 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22430 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
22431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
22433 if (flags & NDR_OUT) {
22434 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22436 return NDR_ERR_SUCCESS;
22439 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
22441 uint32_t _ptr_server;
22442 TALLOC_CTX *_mem_save_server_0;
22443 if (flags & NDR_IN) {
22444 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22446 NDR_PULL_ALLOC(ndr, r->in.server);
22448 r->in.server = NULL;
22450 if (r->in.server) {
22451 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22452 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22453 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22454 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22455 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22456 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));
22458 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22459 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22460 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22462 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22463 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22464 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22465 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));
22467 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22468 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22469 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22470 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22471 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22472 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));
22474 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22475 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22476 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
22477 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
22479 if (flags & NDR_OUT) {
22480 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22482 return NDR_ERR_SUCCESS;
22485 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22487 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
22489 if (flags & NDR_SET_VALUES) {
22490 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22492 if (flags & NDR_IN) {
22493 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
22495 ndr_print_ptr(ndr, "server", r->in.server);
22497 if (r->in.server) {
22498 ndr_print_string(ndr, "server", r->in.server);
22501 ndr_print_string(ndr, "architecture", r->in.architecture);
22502 ndr_print_string(ndr, "driver", r->in.driver);
22503 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
22504 ndr_print_uint32(ndr, "version", r->in.version);
22507 if (flags & NDR_OUT) {
22508 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
22510 ndr_print_WERROR(ndr, "result", r->out.result);
22516 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
22518 if (flags & NDR_IN) {
22520 if (flags & NDR_OUT) {
22521 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22523 return NDR_ERR_SUCCESS;
22526 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
22528 if (flags & NDR_IN) {
22530 if (flags & NDR_OUT) {
22531 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22533 return NDR_ERR_SUCCESS;
22536 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
22538 ndr_print_struct(ndr, name, "spoolss_55");
22540 if (flags & NDR_SET_VALUES) {
22541 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22543 if (flags & NDR_IN) {
22544 ndr_print_struct(ndr, "in", "spoolss_55");
22548 if (flags & NDR_OUT) {
22549 ndr_print_struct(ndr, "out", "spoolss_55");
22551 ndr_print_WERROR(ndr, "result", r->out.result);
22557 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
22559 if (flags & NDR_IN) {
22561 if (flags & NDR_OUT) {
22562 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22564 return NDR_ERR_SUCCESS;
22567 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
22569 if (flags & NDR_IN) {
22571 if (flags & NDR_OUT) {
22572 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22574 return NDR_ERR_SUCCESS;
22577 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
22579 ndr_print_struct(ndr, name, "spoolss_56");
22581 if (flags & NDR_SET_VALUES) {
22582 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22584 if (flags & NDR_IN) {
22585 ndr_print_struct(ndr, "in", "spoolss_56");
22589 if (flags & NDR_OUT) {
22590 ndr_print_struct(ndr, "out", "spoolss_56");
22592 ndr_print_WERROR(ndr, "result", r->out.result);
22598 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
22600 if (flags & NDR_IN) {
22602 if (flags & NDR_OUT) {
22603 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22605 return NDR_ERR_SUCCESS;
22608 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
22610 if (flags & NDR_IN) {
22612 if (flags & NDR_OUT) {
22613 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22615 return NDR_ERR_SUCCESS;
22618 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
22620 ndr_print_struct(ndr, name, "spoolss_57");
22622 if (flags & NDR_SET_VALUES) {
22623 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22625 if (flags & NDR_IN) {
22626 ndr_print_struct(ndr, "in", "spoolss_57");
22630 if (flags & NDR_OUT) {
22631 ndr_print_struct(ndr, "out", "spoolss_57");
22633 ndr_print_WERROR(ndr, "result", r->out.result);
22639 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
22641 if (flags & NDR_IN) {
22642 if (r->in.handle == NULL) {
22643 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22645 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22646 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22647 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22648 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22649 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));
22650 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
22651 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
22652 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22653 if (r->in.status_code == NULL) {
22654 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
22658 if (flags & NDR_OUT) {
22659 if (r->out.out_data == NULL) {
22660 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22663 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
22664 if (r->out.needed == NULL) {
22665 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22667 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22668 if (r->out.status_code == NULL) {
22669 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
22672 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22674 return NDR_ERR_SUCCESS;
22677 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
22679 TALLOC_CTX *_mem_save_handle_0;
22680 TALLOC_CTX *_mem_save_needed_0;
22681 TALLOC_CTX *_mem_save_status_code_0;
22682 if (flags & NDR_IN) {
22683 ZERO_STRUCT(r->out);
22685 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22686 NDR_PULL_ALLOC(ndr, r->in.handle);
22688 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22689 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22690 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22691 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22692 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
22693 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
22694 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
22695 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));
22697 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
22698 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));
22699 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
22700 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
22701 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
22702 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22703 NDR_PULL_ALLOC(ndr, r->in.status_code);
22705 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22706 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
22707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
22708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22709 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
22710 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
22711 NDR_PULL_ALLOC(ndr, r->out.needed);
22712 ZERO_STRUCTP(r->out.needed);
22713 NDR_PULL_ALLOC(ndr, r->out.status_code);
22714 *r->out.status_code = *r->in.status_code;
22716 if (flags & NDR_OUT) {
22717 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
22718 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22719 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
22721 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
22722 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22723 NDR_PULL_ALLOC(ndr, r->out.needed);
22725 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22726 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22729 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22730 NDR_PULL_ALLOC(ndr, r->out.status_code);
22732 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22733 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
22734 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
22735 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22736 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22737 if (r->out.out_data) {
22738 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
22741 return NDR_ERR_SUCCESS;
22744 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
22746 ndr_print_struct(ndr, name, "spoolss_XcvData");
22748 if (flags & NDR_SET_VALUES) {
22749 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22751 if (flags & NDR_IN) {
22752 ndr_print_struct(ndr, "in", "spoolss_XcvData");
22754 ndr_print_ptr(ndr, "handle", r->in.handle);
22756 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22758 ndr_print_string(ndr, "function_name", r->in.function_name);
22759 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
22760 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
22761 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
22762 ndr_print_ptr(ndr, "status_code", r->in.status_code);
22764 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
22768 if (flags & NDR_OUT) {
22769 ndr_print_struct(ndr, "out", "spoolss_XcvData");
22771 ndr_print_ptr(ndr, "out_data", r->out.out_data);
22773 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
22775 ndr_print_ptr(ndr, "needed", r->out.needed);
22777 ndr_print_uint32(ndr, "needed", *r->out.needed);
22779 ndr_print_ptr(ndr, "status_code", r->out.status_code);
22781 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
22783 ndr_print_WERROR(ndr, "result", r->out.result);
22789 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
22791 if (flags & NDR_IN) {
22792 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22793 if (r->in.servername) {
22794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22796 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22797 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22799 if (r->in.info_ctr == NULL) {
22800 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22802 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22803 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
22805 if (flags & NDR_OUT) {
22806 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22808 return NDR_ERR_SUCCESS;
22811 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
22813 uint32_t _ptr_servername;
22814 TALLOC_CTX *_mem_save_servername_0;
22815 TALLOC_CTX *_mem_save_info_ctr_0;
22816 if (flags & NDR_IN) {
22817 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22818 if (_ptr_servername) {
22819 NDR_PULL_ALLOC(ndr, r->in.servername);
22821 r->in.servername = NULL;
22823 if (r->in.servername) {
22824 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22825 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22826 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22827 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22828 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22829 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));
22831 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22832 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22833 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22835 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22836 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
22838 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
22839 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
22840 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22841 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
22842 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
22844 if (flags & NDR_OUT) {
22845 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22847 return NDR_ERR_SUCCESS;
22850 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
22852 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
22854 if (flags & NDR_SET_VALUES) {
22855 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22857 if (flags & NDR_IN) {
22858 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
22860 ndr_print_ptr(ndr, "servername", r->in.servername);
22862 if (r->in.servername) {
22863 ndr_print_string(ndr, "servername", r->in.servername);
22866 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
22868 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
22870 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
22873 if (flags & NDR_OUT) {
22874 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
22876 ndr_print_WERROR(ndr, "result", r->out.result);
22882 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
22884 if (flags & NDR_IN) {
22886 if (flags & NDR_OUT) {
22887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22889 return NDR_ERR_SUCCESS;
22892 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
22894 if (flags & NDR_IN) {
22896 if (flags & NDR_OUT) {
22897 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22899 return NDR_ERR_SUCCESS;
22902 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
22904 ndr_print_struct(ndr, name, "spoolss_5a");
22906 if (flags & NDR_SET_VALUES) {
22907 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22909 if (flags & NDR_IN) {
22910 ndr_print_struct(ndr, "in", "spoolss_5a");
22914 if (flags & NDR_OUT) {
22915 ndr_print_struct(ndr, "out", "spoolss_5a");
22917 ndr_print_WERROR(ndr, "result", r->out.result);
22923 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
22925 if (flags & NDR_IN) {
22927 if (flags & NDR_OUT) {
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_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
22935 if (flags & NDR_IN) {
22937 if (flags & NDR_OUT) {
22938 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22940 return NDR_ERR_SUCCESS;
22943 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
22945 ndr_print_struct(ndr, name, "spoolss_5b");
22947 if (flags & NDR_SET_VALUES) {
22948 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22950 if (flags & NDR_IN) {
22951 ndr_print_struct(ndr, "in", "spoolss_5b");
22955 if (flags & NDR_OUT) {
22956 ndr_print_struct(ndr, "out", "spoolss_5b");
22958 ndr_print_WERROR(ndr, "result", r->out.result);
22964 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
22966 if (flags & NDR_IN) {
22968 if (flags & NDR_OUT) {
22969 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22971 return NDR_ERR_SUCCESS;
22974 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
22976 if (flags & NDR_IN) {
22978 if (flags & NDR_OUT) {
22979 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22981 return NDR_ERR_SUCCESS;
22984 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
22986 ndr_print_struct(ndr, name, "spoolss_5c");
22988 if (flags & NDR_SET_VALUES) {
22989 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22991 if (flags & NDR_IN) {
22992 ndr_print_struct(ndr, "in", "spoolss_5c");
22996 if (flags & NDR_OUT) {
22997 ndr_print_struct(ndr, "out", "spoolss_5c");
22999 ndr_print_WERROR(ndr, "result", r->out.result);
23005 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
23007 if (flags & NDR_IN) {
23009 if (flags & NDR_OUT) {
23010 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23012 return NDR_ERR_SUCCESS;
23015 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
23017 if (flags & NDR_IN) {
23019 if (flags & NDR_OUT) {
23020 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23022 return NDR_ERR_SUCCESS;
23025 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
23027 ndr_print_struct(ndr, name, "spoolss_5d");
23029 if (flags & NDR_SET_VALUES) {
23030 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23032 if (flags & NDR_IN) {
23033 ndr_print_struct(ndr, "in", "spoolss_5d");
23037 if (flags & NDR_OUT) {
23038 ndr_print_struct(ndr, "out", "spoolss_5d");
23040 ndr_print_WERROR(ndr, "result", r->out.result);
23046 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
23048 if (flags & NDR_IN) {
23050 if (flags & NDR_OUT) {
23051 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23053 return NDR_ERR_SUCCESS;
23056 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
23058 if (flags & NDR_IN) {
23060 if (flags & NDR_OUT) {
23061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23063 return NDR_ERR_SUCCESS;
23066 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
23068 ndr_print_struct(ndr, name, "spoolss_5e");
23070 if (flags & NDR_SET_VALUES) {
23071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23073 if (flags & NDR_IN) {
23074 ndr_print_struct(ndr, "in", "spoolss_5e");
23078 if (flags & NDR_OUT) {
23079 ndr_print_struct(ndr, "out", "spoolss_5e");
23081 ndr_print_WERROR(ndr, "result", r->out.result);
23087 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
23089 if (flags & NDR_IN) {
23091 if (flags & NDR_OUT) {
23092 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
23094 return NDR_ERR_SUCCESS;
23097 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
23099 if (flags & NDR_IN) {
23101 if (flags & NDR_OUT) {
23102 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
23104 return NDR_ERR_SUCCESS;
23107 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
23109 ndr_print_struct(ndr, name, "spoolss_5f");
23111 if (flags & NDR_SET_VALUES) {
23112 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
23114 if (flags & NDR_IN) {
23115 ndr_print_struct(ndr, "in", "spoolss_5f");
23119 if (flags & NDR_OUT) {
23120 ndr_print_struct(ndr, "out", "spoolss_5f");
23122 ndr_print_WERROR(ndr, "result", r->out.result);
23128 static const struct ndr_interface_call spoolss_calls[] = {
23130 "spoolss_EnumPrinters",
23131 sizeof(struct spoolss_EnumPrinters),
23132 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
23133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
23134 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
23138 "spoolss_OpenPrinter",
23139 sizeof(struct spoolss_OpenPrinter),
23140 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
23141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
23142 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
23147 sizeof(struct spoolss_SetJob),
23148 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
23149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
23150 (ndr_print_function_t) ndr_print_spoolss_SetJob,
23155 sizeof(struct spoolss_GetJob),
23156 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
23157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
23158 (ndr_print_function_t) ndr_print_spoolss_GetJob,
23162 "spoolss_EnumJobs",
23163 sizeof(struct spoolss_EnumJobs),
23164 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
23165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
23166 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
23170 "spoolss_AddPrinter",
23171 sizeof(struct spoolss_AddPrinter),
23172 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
23173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
23174 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
23178 "spoolss_DeletePrinter",
23179 sizeof(struct spoolss_DeletePrinter),
23180 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
23181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
23182 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
23186 "spoolss_SetPrinter",
23187 sizeof(struct spoolss_SetPrinter),
23188 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
23189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
23190 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
23194 "spoolss_GetPrinter",
23195 sizeof(struct spoolss_GetPrinter),
23196 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
23197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
23198 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
23202 "spoolss_AddPrinterDriver",
23203 sizeof(struct spoolss_AddPrinterDriver),
23204 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
23205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
23206 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
23210 "spoolss_EnumPrinterDrivers",
23211 sizeof(struct spoolss_EnumPrinterDrivers),
23212 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
23213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
23214 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
23218 "spoolss_GetPrinterDriver",
23219 sizeof(struct spoolss_GetPrinterDriver),
23220 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
23221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
23222 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
23226 "spoolss_GetPrinterDriverDirectory",
23227 sizeof(struct spoolss_GetPrinterDriverDirectory),
23228 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
23229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
23230 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
23234 "spoolss_DeletePrinterDriver",
23235 sizeof(struct spoolss_DeletePrinterDriver),
23236 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
23237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
23238 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
23242 "spoolss_AddPrintProcessor",
23243 sizeof(struct spoolss_AddPrintProcessor),
23244 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
23245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
23246 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
23250 "spoolss_EnumPrintProcessors",
23251 sizeof(struct spoolss_EnumPrintProcessors),
23252 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
23253 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
23254 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
23258 "spoolss_GetPrintProcessorDirectory",
23259 sizeof(struct spoolss_GetPrintProcessorDirectory),
23260 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
23261 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
23262 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
23266 "spoolss_StartDocPrinter",
23267 sizeof(struct spoolss_StartDocPrinter),
23268 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
23269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
23270 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
23274 "spoolss_StartPagePrinter",
23275 sizeof(struct spoolss_StartPagePrinter),
23276 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
23277 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
23278 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
23282 "spoolss_WritePrinter",
23283 sizeof(struct spoolss_WritePrinter),
23284 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
23285 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
23286 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
23290 "spoolss_EndPagePrinter",
23291 sizeof(struct spoolss_EndPagePrinter),
23292 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
23293 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
23294 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
23298 "spoolss_AbortPrinter",
23299 sizeof(struct spoolss_AbortPrinter),
23300 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
23301 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
23302 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
23306 "spoolss_ReadPrinter",
23307 sizeof(struct spoolss_ReadPrinter),
23308 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
23309 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
23310 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
23314 "spoolss_EndDocPrinter",
23315 sizeof(struct spoolss_EndDocPrinter),
23316 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
23317 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
23318 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
23323 sizeof(struct spoolss_AddJob),
23324 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
23325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
23326 (ndr_print_function_t) ndr_print_spoolss_AddJob,
23330 "spoolss_ScheduleJob",
23331 sizeof(struct spoolss_ScheduleJob),
23332 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
23333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
23334 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
23338 "spoolss_GetPrinterData",
23339 sizeof(struct spoolss_GetPrinterData),
23340 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
23341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
23342 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
23346 "spoolss_SetPrinterData",
23347 sizeof(struct spoolss_SetPrinterData),
23348 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
23349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
23350 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
23354 "spoolss_WaitForPrinterChange",
23355 sizeof(struct spoolss_WaitForPrinterChange),
23356 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
23357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
23358 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
23362 "spoolss_ClosePrinter",
23363 sizeof(struct spoolss_ClosePrinter),
23364 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
23365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
23366 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
23371 sizeof(struct spoolss_AddForm),
23372 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
23373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
23374 (ndr_print_function_t) ndr_print_spoolss_AddForm,
23378 "spoolss_DeleteForm",
23379 sizeof(struct spoolss_DeleteForm),
23380 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
23381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
23382 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
23387 sizeof(struct spoolss_GetForm),
23388 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
23389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
23390 (ndr_print_function_t) ndr_print_spoolss_GetForm,
23395 sizeof(struct spoolss_SetForm),
23396 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
23397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
23398 (ndr_print_function_t) ndr_print_spoolss_SetForm,
23402 "spoolss_EnumForms",
23403 sizeof(struct spoolss_EnumForms),
23404 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
23405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
23406 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
23410 "spoolss_EnumPorts",
23411 sizeof(struct spoolss_EnumPorts),
23412 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
23413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
23414 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
23418 "spoolss_EnumMonitors",
23419 sizeof(struct spoolss_EnumMonitors),
23420 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
23421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
23422 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
23427 sizeof(struct spoolss_AddPort),
23428 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
23429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
23430 (ndr_print_function_t) ndr_print_spoolss_AddPort,
23434 "spoolss_ConfigurePort",
23435 sizeof(struct spoolss_ConfigurePort),
23436 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
23437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
23438 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
23442 "spoolss_DeletePort",
23443 sizeof(struct spoolss_DeletePort),
23444 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
23445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
23446 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
23450 "spoolss_CreatePrinterIC",
23451 sizeof(struct spoolss_CreatePrinterIC),
23452 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
23453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
23454 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
23458 "spoolss_PlayGDIScriptOnPrinterIC",
23459 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
23460 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
23461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
23462 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
23466 "spoolss_DeletePrinterIC",
23467 sizeof(struct spoolss_DeletePrinterIC),
23468 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
23469 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
23470 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
23474 "spoolss_AddPrinterConnection",
23475 sizeof(struct spoolss_AddPrinterConnection),
23476 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
23477 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
23478 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
23482 "spoolss_DeletePrinterConnection",
23483 sizeof(struct spoolss_DeletePrinterConnection),
23484 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
23485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
23486 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
23490 "spoolss_PrinterMessageBox",
23491 sizeof(struct spoolss_PrinterMessageBox),
23492 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
23493 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
23494 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
23498 "spoolss_AddMonitor",
23499 sizeof(struct spoolss_AddMonitor),
23500 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
23501 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
23502 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
23506 "spoolss_DeleteMonitor",
23507 sizeof(struct spoolss_DeleteMonitor),
23508 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
23509 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
23510 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
23514 "spoolss_DeletePrintProcessor",
23515 sizeof(struct spoolss_DeletePrintProcessor),
23516 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
23517 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
23518 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
23522 "spoolss_AddPrintProvidor",
23523 sizeof(struct spoolss_AddPrintProvidor),
23524 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
23525 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
23526 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
23530 "spoolss_DeletePrintProvidor",
23531 sizeof(struct spoolss_DeletePrintProvidor),
23532 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
23533 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
23534 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
23538 "spoolss_EnumPrintProcDataTypes",
23539 sizeof(struct spoolss_EnumPrintProcDataTypes),
23540 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
23541 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
23542 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
23546 "spoolss_ResetPrinter",
23547 sizeof(struct spoolss_ResetPrinter),
23548 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
23549 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
23550 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
23554 "spoolss_GetPrinterDriver2",
23555 sizeof(struct spoolss_GetPrinterDriver2),
23556 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
23557 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
23558 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
23562 "spoolss_FindFirstPrinterChangeNotification",
23563 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
23564 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
23565 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
23566 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
23570 "spoolss_FindNextPrinterChangeNotification",
23571 sizeof(struct spoolss_FindNextPrinterChangeNotification),
23572 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
23573 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
23574 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
23578 "spoolss_FindClosePrinterNotify",
23579 sizeof(struct spoolss_FindClosePrinterNotify),
23580 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
23581 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
23582 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
23586 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
23587 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
23588 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23589 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23590 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23594 "spoolss_ReplyOpenPrinter",
23595 sizeof(struct spoolss_ReplyOpenPrinter),
23596 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
23597 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
23598 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
23602 "spoolss_RouterReplyPrinter",
23603 sizeof(struct spoolss_RouterReplyPrinter),
23604 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
23605 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
23606 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
23610 "spoolss_ReplyClosePrinter",
23611 sizeof(struct spoolss_ReplyClosePrinter),
23612 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
23613 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
23614 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
23618 "spoolss_AddPortEx",
23619 sizeof(struct spoolss_AddPortEx),
23620 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
23621 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
23622 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
23626 "spoolss_RouterFindFirstPrinterChangeNotification",
23627 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
23628 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
23629 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
23630 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
23634 "spoolss_SpoolerInit",
23635 sizeof(struct spoolss_SpoolerInit),
23636 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
23637 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
23638 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
23642 "spoolss_ResetPrinterEx",
23643 sizeof(struct spoolss_ResetPrinterEx),
23644 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
23645 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
23646 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
23650 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
23651 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
23652 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23653 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23654 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23658 "spoolss_RouterReplyPrinterEx",
23659 sizeof(struct spoolss_RouterReplyPrinterEx),
23660 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
23661 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
23662 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
23666 "spoolss_RouterRefreshPrinterChangeNotify",
23667 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
23668 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
23669 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
23670 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
23675 sizeof(struct spoolss_44),
23676 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
23677 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
23678 (ndr_print_function_t) ndr_print_spoolss_44,
23682 "spoolss_OpenPrinterEx",
23683 sizeof(struct spoolss_OpenPrinterEx),
23684 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
23685 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
23686 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
23690 "spoolss_AddPrinterEx",
23691 sizeof(struct spoolss_AddPrinterEx),
23692 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
23693 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
23694 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
23699 sizeof(struct spoolss_47),
23700 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
23701 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
23702 (ndr_print_function_t) ndr_print_spoolss_47,
23706 "spoolss_EnumPrinterData",
23707 sizeof(struct spoolss_EnumPrinterData),
23708 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
23709 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
23710 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
23714 "spoolss_DeletePrinterData",
23715 sizeof(struct spoolss_DeletePrinterData),
23716 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
23717 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
23718 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
23723 sizeof(struct spoolss_4a),
23724 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
23725 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
23726 (ndr_print_function_t) ndr_print_spoolss_4a,
23731 sizeof(struct spoolss_4b),
23732 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
23733 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
23734 (ndr_print_function_t) ndr_print_spoolss_4b,
23739 sizeof(struct spoolss_4c),
23740 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
23741 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
23742 (ndr_print_function_t) ndr_print_spoolss_4c,
23746 "spoolss_SetPrinterDataEx",
23747 sizeof(struct spoolss_SetPrinterDataEx),
23748 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
23749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
23750 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
23754 "spoolss_GetPrinterDataEx",
23755 sizeof(struct spoolss_GetPrinterDataEx),
23756 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
23757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
23758 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
23762 "spoolss_EnumPrinterDataEx",
23763 sizeof(struct spoolss_EnumPrinterDataEx),
23764 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
23765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
23766 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
23770 "spoolss_EnumPrinterKey",
23771 sizeof(struct spoolss_EnumPrinterKey),
23772 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
23773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
23774 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
23778 "spoolss_DeletePrinterDataEx",
23779 sizeof(struct spoolss_DeletePrinterDataEx),
23780 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
23781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
23782 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
23786 "spoolss_DeletePrinterKey",
23787 sizeof(struct spoolss_DeletePrinterKey),
23788 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
23789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
23790 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
23795 sizeof(struct spoolss_53),
23796 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
23797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
23798 (ndr_print_function_t) ndr_print_spoolss_53,
23802 "spoolss_DeletePrinterDriverEx",
23803 sizeof(struct spoolss_DeletePrinterDriverEx),
23804 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
23805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
23806 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
23811 sizeof(struct spoolss_55),
23812 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
23813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
23814 (ndr_print_function_t) ndr_print_spoolss_55,
23819 sizeof(struct spoolss_56),
23820 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
23821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
23822 (ndr_print_function_t) ndr_print_spoolss_56,
23827 sizeof(struct spoolss_57),
23828 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
23829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
23830 (ndr_print_function_t) ndr_print_spoolss_57,
23835 sizeof(struct spoolss_XcvData),
23836 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
23837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
23838 (ndr_print_function_t) ndr_print_spoolss_XcvData,
23842 "spoolss_AddPrinterDriverEx",
23843 sizeof(struct spoolss_AddPrinterDriverEx),
23844 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
23845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
23846 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
23851 sizeof(struct spoolss_5a),
23852 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
23853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
23854 (ndr_print_function_t) ndr_print_spoolss_5a,
23859 sizeof(struct spoolss_5b),
23860 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
23861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
23862 (ndr_print_function_t) ndr_print_spoolss_5b,
23867 sizeof(struct spoolss_5c),
23868 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
23869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
23870 (ndr_print_function_t) ndr_print_spoolss_5c,
23875 sizeof(struct spoolss_5d),
23876 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
23877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
23878 (ndr_print_function_t) ndr_print_spoolss_5d,
23883 sizeof(struct spoolss_5e),
23884 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
23885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
23886 (ndr_print_function_t) ndr_print_spoolss_5e,
23891 sizeof(struct spoolss_5f),
23892 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
23893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
23894 (ndr_print_function_t) ndr_print_spoolss_5f,
23897 { NULL, 0, NULL, NULL, NULL, false }
23900 static const char * const spoolss_endpoint_strings[] = {
23901 "ncacn_np:[\\pipe\\spoolss]",
23904 static const struct ndr_interface_string_array spoolss_endpoints = {
23906 .names = spoolss_endpoint_strings
23909 static const char * const spoolss_authservice_strings[] = {
23913 static const struct ndr_interface_string_array spoolss_authservices = {
23915 .names = spoolss_authservice_strings
23919 const struct ndr_interface_table ndr_table_spoolss = {
23922 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
23923 NDR_SPOOLSS_VERSION
23925 .helpstring = NDR_SPOOLSS_HELPSTRING,
23927 .calls = spoolss_calls,
23928 .endpoints = &spoolss_endpoints,
23929 .authservices = &spoolss_authservices