1 /* parser auto-generated by pidl */
4 #include "../librpc/gen_ndr/ndr_spoolss.h"
6 #include "librpc/gen_ndr/ndr_misc.h"
7 #include "librpc/gen_ndr/ndr_security.h"
8 #include "librpc/gen_ndr/ndr_winreg.h"
9 static enum ndr_err_code ndr_push_spoolss_Time(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Time *r)
11 if (ndr_flags & NDR_SCALARS) {
12 NDR_CHECK(ndr_push_align(ndr, 2));
13 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->year));
14 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->month));
15 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day_of_week));
16 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->day));
17 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->hour));
18 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->minute));
19 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->second));
20 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->millisecond));
22 if (ndr_flags & NDR_BUFFERS) {
24 return NDR_ERR_SUCCESS;
27 static enum ndr_err_code ndr_pull_spoolss_Time(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Time *r)
29 if (ndr_flags & NDR_SCALARS) {
30 NDR_CHECK(ndr_pull_align(ndr, 2));
31 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->year));
32 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->month));
33 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day_of_week));
34 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->day));
35 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->hour));
36 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->minute));
37 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->second));
38 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->millisecond));
40 if (ndr_flags & NDR_BUFFERS) {
42 return NDR_ERR_SUCCESS;
45 _PUBLIC_ void ndr_print_spoolss_Time(struct ndr_print *ndr, const char *name, const struct spoolss_Time *r)
47 ndr_print_struct(ndr, name, "spoolss_Time");
49 ndr_print_uint16(ndr, "year", r->year);
50 ndr_print_uint16(ndr, "month", r->month);
51 ndr_print_uint16(ndr, "day_of_week", r->day_of_week);
52 ndr_print_uint16(ndr, "day", r->day);
53 ndr_print_uint16(ndr, "hour", r->hour);
54 ndr_print_uint16(ndr, "minute", r->minute);
55 ndr_print_uint16(ndr, "second", r->second);
56 ndr_print_uint16(ndr, "millisecond", r->millisecond);
60 static size_t ndr_size_spoolss_Time(const struct spoolss_Time *r, struct smb_iconv_convenience *ic, int flags)
62 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_Time, ic);
65 static enum ndr_err_code ndr_push_spoolss_TimeCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_TimeCtr *r)
67 if (ndr_flags & NDR_SCALARS) {
68 NDR_CHECK(ndr_push_align(ndr, 4));
69 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags)));
70 NDR_CHECK(ndr_push_unique_ptr(ndr, r->time));
72 if (ndr_flags & NDR_BUFFERS) {
74 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, r->time));
77 return NDR_ERR_SUCCESS;
80 static enum ndr_err_code ndr_pull_spoolss_TimeCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_TimeCtr *r)
83 TALLOC_CTX *_mem_save_time_0;
84 if (ndr_flags & NDR_SCALARS) {
85 NDR_CHECK(ndr_pull_align(ndr, 4));
86 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
87 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_time));
89 NDR_PULL_ALLOC(ndr, r->time);
94 if (ndr_flags & NDR_BUFFERS) {
96 _mem_save_time_0 = NDR_PULL_GET_MEM_CTX(ndr);
97 NDR_PULL_SET_MEM_CTX(ndr, r->time, 0);
98 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, r->time));
99 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_time_0, 0);
102 return NDR_ERR_SUCCESS;
105 _PUBLIC_ void ndr_print_spoolss_TimeCtr(struct ndr_print *ndr, const char *name, const struct spoolss_TimeCtr *r)
107 ndr_print_struct(ndr, name, "spoolss_TimeCtr");
109 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?ndr_size_spoolss_Time(r->time, ndr->iconv_convenience, ndr->flags):r->size);
110 ndr_print_ptr(ndr, "time", r->time);
113 ndr_print_spoolss_Time(ndr, "time", r->time);
119 static enum ndr_err_code ndr_push_spoolss_ProcessorArchitecture(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture r)
121 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
122 return NDR_ERR_SUCCESS;
125 static enum ndr_err_code ndr_pull_spoolss_ProcessorArchitecture(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorArchitecture *r)
128 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
130 return NDR_ERR_SUCCESS;
133 _PUBLIC_ void ndr_print_spoolss_ProcessorArchitecture(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorArchitecture r)
135 const char *val = NULL;
138 case PROCESSOR_ARCHITECTURE_INTEL: val = "PROCESSOR_ARCHITECTURE_INTEL"; break;
139 case PROCESSOR_ARCHITECTURE_IA64: val = "PROCESSOR_ARCHITECTURE_IA64"; break;
140 case PROCESSOR_ARCHITECTURE_AMD64: val = "PROCESSOR_ARCHITECTURE_AMD64"; break;
142 ndr_print_enum(ndr, name, "ENUM", val, r);
145 static enum ndr_err_code ndr_push_spoolss_ProcessorType(struct ndr_push *ndr, int ndr_flags, enum spoolss_ProcessorType r)
147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
148 return NDR_ERR_SUCCESS;
151 static enum ndr_err_code ndr_pull_spoolss_ProcessorType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_ProcessorType *r)
154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
156 return NDR_ERR_SUCCESS;
159 _PUBLIC_ void ndr_print_spoolss_ProcessorType(struct ndr_print *ndr, const char *name, enum spoolss_ProcessorType r)
161 const char *val = NULL;
164 case PROCESSOR_INTEL_386: val = "PROCESSOR_INTEL_386"; break;
165 case PROCESSOR_INTEL_486: val = "PROCESSOR_INTEL_486"; break;
166 case PROCESSOR_INTEL_PENTIUM: val = "PROCESSOR_INTEL_PENTIUM"; break;
167 case PROCESSOR_INTEL_IA64: val = "PROCESSOR_INTEL_IA64"; break;
168 case PROCESSOR_AMD_X8664: val = "PROCESSOR_AMD_X8664"; break;
170 ndr_print_enum(ndr, name, "ENUM", val, r);
173 static enum ndr_err_code ndr_push_spoolss_MajorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MajorVersion r)
175 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
176 return NDR_ERR_SUCCESS;
179 static enum ndr_err_code ndr_pull_spoolss_MajorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MajorVersion *r)
182 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
184 return NDR_ERR_SUCCESS;
187 _PUBLIC_ void ndr_print_spoolss_MajorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MajorVersion r)
189 const char *val = NULL;
192 case SPOOLSS_MAJOR_VERSION_NT4_95_98_ME: val = "SPOOLSS_MAJOR_VERSION_NT4_95_98_ME"; break;
193 case SPOOLSS_MAJOR_VERSION_2000_2003_XP: val = "SPOOLSS_MAJOR_VERSION_2000_2003_XP"; break;
194 case SPOOLSS_MAJOR_VERSION_2008_VISTA: val = "SPOOLSS_MAJOR_VERSION_2008_VISTA"; break;
196 ndr_print_enum(ndr, name, "ENUM", val, r);
199 static enum ndr_err_code ndr_push_spoolss_MinorVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_MinorVersion r)
201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
202 return NDR_ERR_SUCCESS;
205 static enum ndr_err_code ndr_pull_spoolss_MinorVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_MinorVersion *r)
208 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
210 return NDR_ERR_SUCCESS;
213 _PUBLIC_ void ndr_print_spoolss_MinorVersion(struct ndr_print *ndr, const char *name, enum spoolss_MinorVersion r)
215 const char *val = NULL;
218 case SPOOLSS_MINOR_VERSION_0: val = "SPOOLSS_MINOR_VERSION_0"; break;
219 case SPOOLSS_MINOR_VERSION_XP: val = "SPOOLSS_MINOR_VERSION_XP"; break;
220 case SPOOLSS_MINOR_VERSION_2003_XP64: val = "SPOOLSS_MINOR_VERSION_2003_XP64"; break;
221 case SPOOLSS_MINOR_VERSION_98: val = "SPOOLSS_MINOR_VERSION_98"; break;
222 case SPOOLSS_MINOR_VERSION_ME: val = "SPOOLSS_MINOR_VERSION_ME"; break;
224 ndr_print_enum(ndr, name, "ENUM", val, r);
227 static enum ndr_err_code ndr_push_spoolss_PrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo0 *r)
229 if (ndr_flags & NDR_SCALARS) {
230 NDR_CHECK(ndr_push_align(ndr, 4));
232 uint32_t _flags_save_string = ndr->flags;
233 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
234 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
235 ndr->flags = _flags_save_string;
238 uint32_t _flags_save_string = ndr->flags;
239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
240 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
241 ndr->flags = _flags_save_string;
243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
244 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
246 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
251 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
252 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
256 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
257 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
258 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
261 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
265 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
266 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
269 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
271 if (ndr_flags & NDR_BUFFERS) {
273 uint32_t _flags_save_string = ndr->flags;
274 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
275 if (r->printername) {
276 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
277 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
279 ndr->flags = _flags_save_string;
282 uint32_t _flags_save_string = ndr->flags;
283 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
285 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
286 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
288 ndr->flags = _flags_save_string;
291 return NDR_ERR_SUCCESS;
294 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo0 *r)
296 uint32_t _ptr_printername;
297 TALLOC_CTX *_mem_save_printername_0;
298 uint32_t _ptr_servername;
299 TALLOC_CTX *_mem_save_servername_0;
300 if (ndr_flags & NDR_SCALARS) {
301 NDR_CHECK(ndr_pull_align(ndr, 4));
303 uint32_t _flags_save_string = ndr->flags;
304 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
305 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
306 if (_ptr_printername) {
307 NDR_PULL_ALLOC(ndr, r->printername);
308 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
310 r->printername = NULL;
312 ndr->flags = _flags_save_string;
315 uint32_t _flags_save_string = ndr->flags;
316 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
317 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
318 if (_ptr_servername) {
319 NDR_PULL_ALLOC(ndr, r->servername);
320 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
322 r->servername = NULL;
324 ndr->flags = _flags_save_string;
326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
328 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
329 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
331 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
332 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
334 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
335 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
336 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
337 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
339 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
340 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
341 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
344 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
345 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
348 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
349 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
354 if (ndr_flags & NDR_BUFFERS) {
356 uint32_t _flags_save_string = ndr->flags;
357 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
358 if (r->printername) {
359 uint32_t _relative_save_offset;
360 _relative_save_offset = ndr->offset;
361 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
362 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
363 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
364 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
366 ndr->offset = _relative_save_offset;
368 ndr->flags = _flags_save_string;
371 uint32_t _flags_save_string = ndr->flags;
372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
374 uint32_t _relative_save_offset;
375 _relative_save_offset = ndr->offset;
376 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
377 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
378 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
379 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
380 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
381 ndr->offset = _relative_save_offset;
383 ndr->flags = _flags_save_string;
386 return NDR_ERR_SUCCESS;
389 _PUBLIC_ void ndr_print_spoolss_PrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo0 *r)
391 ndr_print_struct(ndr, name, "spoolss_PrinterInfo0");
393 ndr_print_ptr(ndr, "printername", r->printername);
395 if (r->printername) {
396 ndr_print_string(ndr, "printername", r->printername);
399 ndr_print_ptr(ndr, "servername", r->servername);
402 ndr_print_string(ndr, "servername", r->servername);
405 ndr_print_uint32(ndr, "cjobs", r->cjobs);
406 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
407 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
408 ndr_print_spoolss_Time(ndr, "time", &r->time);
409 ndr_print_uint32(ndr, "global_counter", r->global_counter);
410 ndr_print_uint32(ndr, "total_pages", r->total_pages);
411 ndr_print_uint32(ndr, "version", r->version);
412 ndr_print_uint32(ndr, "free_build", r->free_build);
413 ndr_print_uint32(ndr, "spooling", r->spooling);
414 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
415 ndr_print_uint32(ndr, "session_counter", r->session_counter);
416 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
417 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
418 ndr_print_uint32(ndr, "job_error", r->job_error);
419 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
420 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
421 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
422 ndr_print_uint32(ndr, "change_id", r->change_id);
423 ndr_print_WERROR(ndr, "last_error", r->last_error);
424 ndr_print_uint32(ndr, "status", r->status);
425 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
426 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
427 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
428 ndr_print_uint16(ndr, "processor_level", r->processor_level);
429 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
430 ndr_print_uint32(ndr, "reserved2", r->reserved2);
431 ndr_print_uint32(ndr, "reserved3", r->reserved3);
435 static enum ndr_err_code ndr_push_spoolss_DeviceModeFields(struct ndr_push *ndr, int ndr_flags, uint32_t r)
437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
438 return NDR_ERR_SUCCESS;
441 static enum ndr_err_code ndr_pull_spoolss_DeviceModeFields(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
444 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
446 return NDR_ERR_SUCCESS;
449 _PUBLIC_ void ndr_print_spoolss_DeviceModeFields(struct ndr_print *ndr, const char *name, uint32_t r)
451 ndr_print_uint32(ndr, name, r);
453 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ORIENTATION", DEVMODE_ORIENTATION, r);
454 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERSIZE", DEVMODE_PAPERSIZE, r);
455 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERLENGTH", DEVMODE_PAPERLENGTH, r);
456 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PAPERWIDTH", DEVMODE_PAPERWIDTH, r);
457 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_SCALE", DEVMODE_SCALE, r);
458 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_POSITION", DEVMODE_POSITION, r);
459 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_NUP", DEVMODE_NUP, r);
460 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COPIES", DEVMODE_COPIES, r);
461 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DEFAULTSOURCE", DEVMODE_DEFAULTSOURCE, r);
462 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PRINTQUALITY", DEVMODE_PRINTQUALITY, r);
463 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLOR", DEVMODE_COLOR, r);
464 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DUPLEX", DEVMODE_DUPLEX, r);
465 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_YRESOLUTION", DEVMODE_YRESOLUTION, r);
466 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_TTOPTION", DEVMODE_TTOPTION, r);
467 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_COLLATE", DEVMODE_COLLATE, r);
468 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_FORMNAME", DEVMODE_FORMNAME, r);
469 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_LOGPIXELS", DEVMODE_LOGPIXELS, r);
470 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_BITSPERPEL", DEVMODE_BITSPERPEL, r);
471 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSWIDTH", DEVMODE_PELSWIDTH, r);
472 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PELSHEIGHT", DEVMODE_PELSHEIGHT, r);
473 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFLAGS", DEVMODE_DISPLAYFLAGS, r);
474 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DISPLAYFREQUENCY", DEVMODE_DISPLAYFREQUENCY, r);
475 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMMETHOD", DEVMODE_ICMMETHOD, r);
476 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_ICMINTENT", DEVMODE_ICMINTENT, r);
477 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_MEDIATYPE", DEVMODE_MEDIATYPE, r);
478 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_DITHERTYPE", DEVMODE_DITHERTYPE, r);
479 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGWIDTH", DEVMODE_PANNINGWIDTH, r);
480 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DEVMODE_PANNINGHEIGHT", DEVMODE_PANNINGHEIGHT, r);
484 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeviceMode(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceMode *r)
486 if (ndr_flags & NDR_SCALARS) {
487 NDR_CHECK(ndr_push_align(ndr, 4));
488 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->devicename, 32, sizeof(uint16_t), CH_UTF16));
489 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->specversion));
490 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverversion));
491 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->size));
492 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->driverextra_data.length));
493 NDR_CHECK(ndr_push_spoolss_DeviceModeFields(ndr, NDR_SCALARS, r->fields));
494 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->orientation));
495 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->papersize));
496 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperlength));
497 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->paperwidth));
498 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->scale));
499 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->copies));
500 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->defaultsource));
501 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->printquality));
502 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->color));
503 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->duplex));
504 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->yresolution));
505 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->ttoption));
506 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->collate));
507 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->formname, 32, sizeof(uint16_t), CH_UTF16));
508 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->logpixels));
509 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bitsperpel));
510 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelswidth));
511 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pelsheight));
512 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayflags));
513 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->displayfrequency));
514 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmmethod));
515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->icmintent));
516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->mediatype));
517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dithertype));
518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved1));
519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
520 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningwidth));
521 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->panningheight));
523 uint32_t _flags_save_DATA_BLOB = ndr->flags;
524 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
526 struct ndr_push *_ndr_driverextra_data;
527 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->driverextra_data.length));
528 NDR_CHECK(ndr_push_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, r->driverextra_data));
529 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_driverextra_data, 0, r->driverextra_data.length));
531 ndr->flags = _flags_save_DATA_BLOB;
534 if (ndr_flags & NDR_BUFFERS) {
536 return NDR_ERR_SUCCESS;
539 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeviceMode(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceMode *r)
541 if (ndr_flags & NDR_SCALARS) {
542 NDR_CHECK(ndr_pull_align(ndr, 4));
543 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->devicename, 32, sizeof(uint16_t), CH_UTF16));
544 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->specversion));
545 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->driverversion));
546 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->size));
547 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->__driverextra_length));
548 NDR_CHECK(ndr_pull_spoolss_DeviceModeFields(ndr, NDR_SCALARS, &r->fields));
549 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->orientation));
550 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->papersize));
551 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperlength));
552 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->paperwidth));
553 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->scale));
554 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->copies));
555 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->defaultsource));
556 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->printquality));
557 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->color));
558 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->duplex));
559 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->yresolution));
560 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->ttoption));
561 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->collate));
562 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->formname, 32, sizeof(uint16_t), CH_UTF16));
563 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->logpixels));
564 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bitsperpel));
565 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelswidth));
566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pelsheight));
567 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayflags));
568 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->displayfrequency));
569 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmmethod));
570 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->icmintent));
571 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->mediatype));
572 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dithertype));
573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved1));
574 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
575 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningwidth));
576 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->panningheight));
578 uint32_t _flags_save_DATA_BLOB = ndr->flags;
579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
581 struct ndr_pull *_ndr_driverextra_data;
582 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_driverextra_data, 0, r->__driverextra_length));
583 NDR_CHECK(ndr_pull_DATA_BLOB(_ndr_driverextra_data, NDR_SCALARS, &r->driverextra_data));
584 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_driverextra_data, 0, r->__driverextra_length));
586 ndr->flags = _flags_save_DATA_BLOB;
589 if (ndr_flags & NDR_BUFFERS) {
591 return NDR_ERR_SUCCESS;
594 _PUBLIC_ void ndr_print_spoolss_DeviceMode(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceMode *r)
596 ndr_print_struct(ndr, name, "spoolss_DeviceMode");
598 ndr_print_string(ndr, "devicename", r->devicename);
599 ndr_print_uint16(ndr, "specversion", r->specversion);
600 ndr_print_uint16(ndr, "driverversion", r->driverversion);
601 ndr_print_uint16(ndr, "size", r->size);
602 ndr_print_uint16(ndr, "__driverextra_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->driverextra_data.length:r->__driverextra_length);
603 ndr_print_spoolss_DeviceModeFields(ndr, "fields", r->fields);
604 ndr_print_uint16(ndr, "orientation", r->orientation);
605 ndr_print_uint16(ndr, "papersize", r->papersize);
606 ndr_print_uint16(ndr, "paperlength", r->paperlength);
607 ndr_print_uint16(ndr, "paperwidth", r->paperwidth);
608 ndr_print_uint16(ndr, "scale", r->scale);
609 ndr_print_uint16(ndr, "copies", r->copies);
610 ndr_print_uint16(ndr, "defaultsource", r->defaultsource);
611 ndr_print_uint16(ndr, "printquality", r->printquality);
612 ndr_print_uint16(ndr, "color", r->color);
613 ndr_print_uint16(ndr, "duplex", r->duplex);
614 ndr_print_uint16(ndr, "yresolution", r->yresolution);
615 ndr_print_uint16(ndr, "ttoption", r->ttoption);
616 ndr_print_uint16(ndr, "collate", r->collate);
617 ndr_print_string(ndr, "formname", r->formname);
618 ndr_print_uint16(ndr, "logpixels", r->logpixels);
619 ndr_print_uint32(ndr, "bitsperpel", r->bitsperpel);
620 ndr_print_uint32(ndr, "pelswidth", r->pelswidth);
621 ndr_print_uint32(ndr, "pelsheight", r->pelsheight);
622 ndr_print_uint32(ndr, "displayflags", r->displayflags);
623 ndr_print_uint32(ndr, "displayfrequency", r->displayfrequency);
624 ndr_print_uint32(ndr, "icmmethod", r->icmmethod);
625 ndr_print_uint32(ndr, "icmintent", r->icmintent);
626 ndr_print_uint32(ndr, "mediatype", r->mediatype);
627 ndr_print_uint32(ndr, "dithertype", r->dithertype);
628 ndr_print_uint32(ndr, "reserved1", r->reserved1);
629 ndr_print_uint32(ndr, "reserved2", r->reserved2);
630 ndr_print_uint32(ndr, "panningwidth", r->panningwidth);
631 ndr_print_uint32(ndr, "panningheight", r->panningheight);
632 ndr_print_DATA_BLOB(ndr, "driverextra_data", r->driverextra_data);
636 _PUBLIC_ size_t ndr_size_spoolss_DeviceMode(const struct spoolss_DeviceMode *r, struct smb_iconv_convenience *ic, int flags)
638 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_DeviceMode, ic);
641 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
643 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
644 return NDR_ERR_SUCCESS;
647 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
652 return NDR_ERR_SUCCESS;
655 _PUBLIC_ void ndr_print_spoolss_EnumPrinterFlags(struct ndr_print *ndr, const char *name, uint32_t r)
657 ndr_print_uint32(ndr, name, r);
659 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_DEFAULT", PRINTER_ENUM_DEFAULT, r);
660 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_LOCAL", PRINTER_ENUM_LOCAL, r);
661 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONNECTIONS", PRINTER_ENUM_CONNECTIONS, r);
662 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_FAVORITE", PRINTER_ENUM_FAVORITE, r);
663 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NAME", PRINTER_ENUM_NAME, r);
664 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_REMOTE", PRINTER_ENUM_REMOTE, r);
665 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_SHARED", PRINTER_ENUM_SHARED, r);
666 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_NETWORK", PRINTER_ENUM_NETWORK, r);
667 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_EXPAND", PRINTER_ENUM_EXPAND, r);
668 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_CONTAINER", PRINTER_ENUM_CONTAINER, r);
669 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON1", PRINTER_ENUM_ICON1, r);
670 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON2", PRINTER_ENUM_ICON2, r);
671 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON3", PRINTER_ENUM_ICON3, r);
672 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON4", PRINTER_ENUM_ICON4, r);
673 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON5", PRINTER_ENUM_ICON5, r);
674 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON6", PRINTER_ENUM_ICON6, r);
675 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON7", PRINTER_ENUM_ICON7, r);
676 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_ICON8", PRINTER_ENUM_ICON8, r);
677 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ENUM_HIDE", PRINTER_ENUM_HIDE, r);
681 static enum ndr_err_code ndr_push_spoolss_PrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo1 *r)
683 if (ndr_flags & NDR_SCALARS) {
684 NDR_CHECK(ndr_push_align(ndr, 4));
685 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
687 uint32_t _flags_save_string = ndr->flags;
688 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
689 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->name));
690 ndr->flags = _flags_save_string;
693 uint32_t _flags_save_string = ndr->flags;
694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
695 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
696 ndr->flags = _flags_save_string;
699 uint32_t _flags_save_string = ndr->flags;
700 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
701 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
702 ndr->flags = _flags_save_string;
705 if (ndr_flags & NDR_BUFFERS) {
707 uint32_t _flags_save_string = ndr->flags;
708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
710 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->name));
711 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->name));
713 ndr->flags = _flags_save_string;
716 uint32_t _flags_save_string = ndr->flags;
717 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
718 if (r->description) {
719 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
720 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
722 ndr->flags = _flags_save_string;
725 uint32_t _flags_save_string = ndr->flags;
726 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
728 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
729 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
731 ndr->flags = _flags_save_string;
734 return NDR_ERR_SUCCESS;
737 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo1 *r)
740 TALLOC_CTX *_mem_save_name_0;
741 uint32_t _ptr_description;
742 TALLOC_CTX *_mem_save_description_0;
743 uint32_t _ptr_comment;
744 TALLOC_CTX *_mem_save_comment_0;
745 if (ndr_flags & NDR_SCALARS) {
746 NDR_CHECK(ndr_pull_align(ndr, 4));
747 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
749 uint32_t _flags_save_string = ndr->flags;
750 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
751 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
753 NDR_PULL_ALLOC(ndr, r->name);
754 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->name, _ptr_name));
758 ndr->flags = _flags_save_string;
761 uint32_t _flags_save_string = ndr->flags;
762 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
763 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
764 if (_ptr_description) {
765 NDR_PULL_ALLOC(ndr, r->description);
766 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
768 r->description = NULL;
770 ndr->flags = _flags_save_string;
773 uint32_t _flags_save_string = ndr->flags;
774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
775 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
777 NDR_PULL_ALLOC(ndr, r->comment);
778 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
782 ndr->flags = _flags_save_string;
785 if (ndr_flags & NDR_BUFFERS) {
787 uint32_t _flags_save_string = ndr->flags;
788 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
790 uint32_t _relative_save_offset;
791 _relative_save_offset = ndr->offset;
792 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->name));
793 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
794 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
795 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->name));
796 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
797 ndr->offset = _relative_save_offset;
799 ndr->flags = _flags_save_string;
802 uint32_t _flags_save_string = ndr->flags;
803 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
804 if (r->description) {
805 uint32_t _relative_save_offset;
806 _relative_save_offset = ndr->offset;
807 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
808 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
809 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
810 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
811 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
812 ndr->offset = _relative_save_offset;
814 ndr->flags = _flags_save_string;
817 uint32_t _flags_save_string = ndr->flags;
818 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
820 uint32_t _relative_save_offset;
821 _relative_save_offset = ndr->offset;
822 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
823 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
824 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
825 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
826 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
827 ndr->offset = _relative_save_offset;
829 ndr->flags = _flags_save_string;
832 return NDR_ERR_SUCCESS;
835 _PUBLIC_ void ndr_print_spoolss_PrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo1 *r)
837 ndr_print_struct(ndr, name, "spoolss_PrinterInfo1");
839 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
840 ndr_print_ptr(ndr, "name", r->name);
843 ndr_print_string(ndr, "name", r->name);
846 ndr_print_ptr(ndr, "description", r->description);
848 if (r->description) {
849 ndr_print_string(ndr, "description", r->description);
852 ndr_print_ptr(ndr, "comment", r->comment);
855 ndr_print_string(ndr, "comment", r->comment);
861 static enum ndr_err_code ndr_push_spoolss_PrinterAttributes(struct ndr_push *ndr, int ndr_flags, uint32_t r)
863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
864 return NDR_ERR_SUCCESS;
867 static enum ndr_err_code ndr_pull_spoolss_PrinterAttributes(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
872 return NDR_ERR_SUCCESS;
875 _PUBLIC_ void ndr_print_spoolss_PrinterAttributes(struct ndr_print *ndr, const char *name, uint32_t r)
877 ndr_print_uint32(ndr, name, r);
879 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_QUEUED", PRINTER_ATTRIBUTE_QUEUED, r);
880 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DIRECT", PRINTER_ATTRIBUTE_DIRECT, r);
881 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DEFAULT", PRINTER_ATTRIBUTE_DEFAULT, r);
882 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_SHARED", PRINTER_ATTRIBUTE_SHARED, r);
883 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_NETWORK", PRINTER_ATTRIBUTE_NETWORK, r);
884 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_HIDDEN", PRINTER_ATTRIBUTE_HIDDEN, r);
885 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_LOCAL", PRINTER_ATTRIBUTE_LOCAL, r);
886 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_DEVQ", PRINTER_ATTRIBUTE_ENABLE_DEVQ, r);
887 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS", PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS, r);
888 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST", PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST, r);
889 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_WORK_OFFLINE", PRINTER_ATTRIBUTE_WORK_OFFLINE, r);
890 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_ENABLE_BIDI", PRINTER_ATTRIBUTE_ENABLE_BIDI, r);
891 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_RAW_ONLY", PRINTER_ATTRIBUTE_RAW_ONLY, r);
892 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_PUBLISHED", PRINTER_ATTRIBUTE_PUBLISHED, r);
893 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_FAX", PRINTER_ATTRIBUTE_FAX, r);
894 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_ATTRIBUTE_TS", PRINTER_ATTRIBUTE_TS, r);
898 static enum ndr_err_code ndr_push_spoolss_PrinterStatus(struct ndr_push *ndr, int ndr_flags, uint32_t r)
900 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
901 return NDR_ERR_SUCCESS;
904 static enum ndr_err_code ndr_pull_spoolss_PrinterStatus(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
907 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
909 return NDR_ERR_SUCCESS;
912 _PUBLIC_ void ndr_print_spoolss_PrinterStatus(struct ndr_print *ndr, const char *name, uint32_t r)
914 ndr_print_uint32(ndr, name, r);
916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAUSED", PRINTER_STATUS_PAUSED, r);
917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_ERROR", PRINTER_STATUS_ERROR, r);
918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PENDING_DELETION", PRINTER_STATUS_PENDING_DELETION, r);
919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_JAM", PRINTER_STATUS_PAPER_JAM, r);
920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_OUT", PRINTER_STATUS_PAPER_OUT, r);
921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_MANUAL_FEED", PRINTER_STATUS_MANUAL_FEED, r);
922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAPER_PROBLEM", PRINTER_STATUS_PAPER_PROBLEM, r);
923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OFFLINE", PRINTER_STATUS_OFFLINE, r);
924 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_IO_ACTIVE", PRINTER_STATUS_IO_ACTIVE, r);
925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_BUSY", PRINTER_STATUS_BUSY, r);
926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PRINTING", PRINTER_STATUS_PRINTING, r);
927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUTPUT_BIN_FULL", PRINTER_STATUS_OUTPUT_BIN_FULL, r);
928 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NOT_AVAILABLE", PRINTER_STATUS_NOT_AVAILABLE, r);
929 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WAITING", PRINTER_STATUS_WAITING, r);
930 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PROCESSING", PRINTER_STATUS_PROCESSING, r);
931 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_INITIALIZING", PRINTER_STATUS_INITIALIZING, r);
932 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_WARMING_UP", PRINTER_STATUS_WARMING_UP, r);
933 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_TONER_LOW", PRINTER_STATUS_TONER_LOW, r);
934 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_NO_TONER", PRINTER_STATUS_NO_TONER, r);
935 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_PAGE_PUNT", PRINTER_STATUS_PAGE_PUNT, r);
936 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_USER_INTERVENTION", PRINTER_STATUS_USER_INTERVENTION, r);
937 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_OUT_OF_MEMORY", PRINTER_STATUS_OUT_OF_MEMORY, r);
938 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_DOOR_OPEN", PRINTER_STATUS_DOOR_OPEN, r);
939 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_SERVER_UNKNOWN", PRINTER_STATUS_SERVER_UNKNOWN, r);
940 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_STATUS_POWER_SAVE", PRINTER_STATUS_POWER_SAVE, r);
944 static enum ndr_err_code ndr_push_spoolss_PrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo2 *r)
946 if (ndr_flags & NDR_SCALARS) {
947 NDR_CHECK(ndr_push_align(ndr, 4));
949 uint32_t _flags_save_string = ndr->flags;
950 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
951 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
952 ndr->flags = _flags_save_string;
955 uint32_t _flags_save_string = ndr->flags;
956 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
957 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
958 ndr->flags = _flags_save_string;
961 uint32_t _flags_save_string = ndr->flags;
962 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
963 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sharename));
964 ndr->flags = _flags_save_string;
967 uint32_t _flags_save_string = ndr->flags;
968 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
969 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
970 ndr->flags = _flags_save_string;
973 uint32_t _flags_save_string = ndr->flags;
974 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
975 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->drivername));
976 ndr->flags = _flags_save_string;
979 uint32_t _flags_save_string = ndr->flags;
980 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
981 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->comment));
982 ndr->flags = _flags_save_string;
985 uint32_t _flags_save_string = ndr->flags;
986 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
987 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->location));
988 ndr->flags = _flags_save_string;
990 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
992 uint32_t _flags_save_string = ndr->flags;
993 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
994 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->sepfile));
995 ndr->flags = _flags_save_string;
998 uint32_t _flags_save_string = ndr->flags;
999 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1000 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printprocessor));
1001 ndr->flags = _flags_save_string;
1004 uint32_t _flags_save_string = ndr->flags;
1005 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1006 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->datatype));
1007 ndr->flags = _flags_save_string;
1010 uint32_t _flags_save_string = ndr->flags;
1011 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1012 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->parameters));
1013 ndr->flags = _flags_save_string;
1015 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1016 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1017 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
1018 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
1019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
1020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
1021 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
1023 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
1025 if (ndr_flags & NDR_BUFFERS) {
1027 uint32_t _flags_save_string = ndr->flags;
1028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1029 if (r->servername) {
1030 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1031 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1033 ndr->flags = _flags_save_string;
1036 uint32_t _flags_save_string = ndr->flags;
1037 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1038 if (r->printername) {
1039 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1040 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1042 ndr->flags = _flags_save_string;
1045 uint32_t _flags_save_string = ndr->flags;
1046 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1048 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sharename));
1049 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sharename));
1051 ndr->flags = _flags_save_string;
1054 uint32_t _flags_save_string = ndr->flags;
1055 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1057 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1058 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1060 ndr->flags = _flags_save_string;
1063 uint32_t _flags_save_string = ndr->flags;
1064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1065 if (r->drivername) {
1066 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->drivername));
1067 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->drivername));
1069 ndr->flags = _flags_save_string;
1072 uint32_t _flags_save_string = ndr->flags;
1073 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1075 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->comment));
1076 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->comment));
1078 ndr->flags = _flags_save_string;
1081 uint32_t _flags_save_string = ndr->flags;
1082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1084 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->location));
1085 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->location));
1087 ndr->flags = _flags_save_string;
1090 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
1092 struct ndr_push *_ndr_devmode;
1093 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1094 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1095 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
1099 uint32_t _flags_save_string = ndr->flags;
1100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->sepfile));
1103 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->sepfile));
1105 ndr->flags = _flags_save_string;
1108 uint32_t _flags_save_string = ndr->flags;
1109 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1110 if (r->printprocessor) {
1111 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printprocessor));
1112 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printprocessor));
1114 ndr->flags = _flags_save_string;
1117 uint32_t _flags_save_string = ndr->flags;
1118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1120 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->datatype));
1121 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->datatype));
1123 ndr->flags = _flags_save_string;
1126 uint32_t _flags_save_string = ndr->flags;
1127 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1128 if (r->parameters) {
1129 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->parameters));
1130 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->parameters));
1132 ndr->flags = _flags_save_string;
1135 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1137 struct ndr_push *_ndr_secdesc;
1138 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1139 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1140 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1144 return NDR_ERR_SUCCESS;
1147 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo2 *r)
1149 uint32_t _ptr_servername;
1150 TALLOC_CTX *_mem_save_servername_0;
1151 uint32_t _ptr_printername;
1152 TALLOC_CTX *_mem_save_printername_0;
1153 uint32_t _ptr_sharename;
1154 TALLOC_CTX *_mem_save_sharename_0;
1155 uint32_t _ptr_portname;
1156 TALLOC_CTX *_mem_save_portname_0;
1157 uint32_t _ptr_drivername;
1158 TALLOC_CTX *_mem_save_drivername_0;
1159 uint32_t _ptr_comment;
1160 TALLOC_CTX *_mem_save_comment_0;
1161 uint32_t _ptr_location;
1162 TALLOC_CTX *_mem_save_location_0;
1163 uint32_t _ptr_devmode;
1164 TALLOC_CTX *_mem_save_devmode_0;
1165 uint32_t _ptr_sepfile;
1166 TALLOC_CTX *_mem_save_sepfile_0;
1167 uint32_t _ptr_printprocessor;
1168 TALLOC_CTX *_mem_save_printprocessor_0;
1169 uint32_t _ptr_datatype;
1170 TALLOC_CTX *_mem_save_datatype_0;
1171 uint32_t _ptr_parameters;
1172 TALLOC_CTX *_mem_save_parameters_0;
1173 uint32_t _ptr_secdesc;
1174 TALLOC_CTX *_mem_save_secdesc_0;
1175 if (ndr_flags & NDR_SCALARS) {
1176 NDR_CHECK(ndr_pull_align(ndr, 4));
1178 uint32_t _flags_save_string = ndr->flags;
1179 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1180 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1181 if (_ptr_servername) {
1182 NDR_PULL_ALLOC(ndr, r->servername);
1183 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1185 r->servername = NULL;
1187 ndr->flags = _flags_save_string;
1190 uint32_t _flags_save_string = ndr->flags;
1191 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1192 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1193 if (_ptr_printername) {
1194 NDR_PULL_ALLOC(ndr, r->printername);
1195 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1197 r->printername = NULL;
1199 ndr->flags = _flags_save_string;
1202 uint32_t _flags_save_string = ndr->flags;
1203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1204 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
1205 if (_ptr_sharename) {
1206 NDR_PULL_ALLOC(ndr, r->sharename);
1207 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sharename, _ptr_sharename));
1209 r->sharename = NULL;
1211 ndr->flags = _flags_save_string;
1214 uint32_t _flags_save_string = ndr->flags;
1215 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1216 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1217 if (_ptr_portname) {
1218 NDR_PULL_ALLOC(ndr, r->portname);
1219 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1223 ndr->flags = _flags_save_string;
1226 uint32_t _flags_save_string = ndr->flags;
1227 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1228 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
1229 if (_ptr_drivername) {
1230 NDR_PULL_ALLOC(ndr, r->drivername);
1231 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->drivername, _ptr_drivername));
1233 r->drivername = NULL;
1235 ndr->flags = _flags_save_string;
1238 uint32_t _flags_save_string = ndr->flags;
1239 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1240 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
1242 NDR_PULL_ALLOC(ndr, r->comment);
1243 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->comment, _ptr_comment));
1247 ndr->flags = _flags_save_string;
1250 uint32_t _flags_save_string = ndr->flags;
1251 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1252 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
1253 if (_ptr_location) {
1254 NDR_PULL_ALLOC(ndr, r->location);
1255 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->location, _ptr_location));
1259 ndr->flags = _flags_save_string;
1261 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
1263 NDR_PULL_ALLOC(ndr, r->devmode);
1264 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
1269 uint32_t _flags_save_string = ndr->flags;
1270 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1271 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
1273 NDR_PULL_ALLOC(ndr, r->sepfile);
1274 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->sepfile, _ptr_sepfile));
1278 ndr->flags = _flags_save_string;
1281 uint32_t _flags_save_string = ndr->flags;
1282 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1283 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
1284 if (_ptr_printprocessor) {
1285 NDR_PULL_ALLOC(ndr, r->printprocessor);
1286 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printprocessor, _ptr_printprocessor));
1288 r->printprocessor = NULL;
1290 ndr->flags = _flags_save_string;
1293 uint32_t _flags_save_string = ndr->flags;
1294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1295 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
1296 if (_ptr_datatype) {
1297 NDR_PULL_ALLOC(ndr, r->datatype);
1298 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->datatype, _ptr_datatype));
1302 ndr->flags = _flags_save_string;
1305 uint32_t _flags_save_string = ndr->flags;
1306 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1307 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
1308 if (_ptr_parameters) {
1309 NDR_PULL_ALLOC(ndr, r->parameters);
1310 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->parameters, _ptr_parameters));
1312 r->parameters = NULL;
1314 ndr->flags = _flags_save_string;
1316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1318 NDR_PULL_ALLOC(ndr, r->secdesc);
1319 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1323 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1324 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
1325 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
1326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
1327 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
1328 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1329 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
1330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
1332 if (ndr_flags & NDR_BUFFERS) {
1334 uint32_t _flags_save_string = ndr->flags;
1335 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1336 if (r->servername) {
1337 uint32_t _relative_save_offset;
1338 _relative_save_offset = ndr->offset;
1339 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1340 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1341 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1342 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1343 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1344 ndr->offset = _relative_save_offset;
1346 ndr->flags = _flags_save_string;
1349 uint32_t _flags_save_string = ndr->flags;
1350 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1351 if (r->printername) {
1352 uint32_t _relative_save_offset;
1353 _relative_save_offset = ndr->offset;
1354 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1355 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1356 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1357 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1358 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1359 ndr->offset = _relative_save_offset;
1361 ndr->flags = _flags_save_string;
1364 uint32_t _flags_save_string = ndr->flags;
1365 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1367 uint32_t _relative_save_offset;
1368 _relative_save_offset = ndr->offset;
1369 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sharename));
1370 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
1371 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
1372 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sharename));
1373 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
1374 ndr->offset = _relative_save_offset;
1376 ndr->flags = _flags_save_string;
1379 uint32_t _flags_save_string = ndr->flags;
1380 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1382 uint32_t _relative_save_offset;
1383 _relative_save_offset = ndr->offset;
1384 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1385 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1386 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1387 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1388 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1389 ndr->offset = _relative_save_offset;
1391 ndr->flags = _flags_save_string;
1394 uint32_t _flags_save_string = ndr->flags;
1395 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1396 if (r->drivername) {
1397 uint32_t _relative_save_offset;
1398 _relative_save_offset = ndr->offset;
1399 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->drivername));
1400 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1401 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
1402 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->drivername));
1403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
1404 ndr->offset = _relative_save_offset;
1406 ndr->flags = _flags_save_string;
1409 uint32_t _flags_save_string = ndr->flags;
1410 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1412 uint32_t _relative_save_offset;
1413 _relative_save_offset = ndr->offset;
1414 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->comment));
1415 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
1416 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
1417 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->comment));
1418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
1419 ndr->offset = _relative_save_offset;
1421 ndr->flags = _flags_save_string;
1424 uint32_t _flags_save_string = ndr->flags;
1425 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1427 uint32_t _relative_save_offset;
1428 _relative_save_offset = ndr->offset;
1429 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->location));
1430 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
1431 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
1432 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->location));
1433 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
1434 ndr->offset = _relative_save_offset;
1436 ndr->flags = _flags_save_string;
1439 uint32_t _relative_save_offset;
1440 _relative_save_offset = ndr->offset;
1441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
1442 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
1443 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
1445 struct ndr_pull *_ndr_devmode;
1446 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
1447 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
1448 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
1450 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
1451 ndr->offset = _relative_save_offset;
1454 uint32_t _flags_save_string = ndr->flags;
1455 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1457 uint32_t _relative_save_offset;
1458 _relative_save_offset = ndr->offset;
1459 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->sepfile));
1460 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
1461 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
1462 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->sepfile));
1463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
1464 ndr->offset = _relative_save_offset;
1466 ndr->flags = _flags_save_string;
1469 uint32_t _flags_save_string = ndr->flags;
1470 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1471 if (r->printprocessor) {
1472 uint32_t _relative_save_offset;
1473 _relative_save_offset = ndr->offset;
1474 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printprocessor));
1475 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
1476 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
1477 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printprocessor));
1478 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
1479 ndr->offset = _relative_save_offset;
1481 ndr->flags = _flags_save_string;
1484 uint32_t _flags_save_string = ndr->flags;
1485 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1487 uint32_t _relative_save_offset;
1488 _relative_save_offset = ndr->offset;
1489 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->datatype));
1490 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
1491 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
1492 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->datatype));
1493 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
1494 ndr->offset = _relative_save_offset;
1496 ndr->flags = _flags_save_string;
1499 uint32_t _flags_save_string = ndr->flags;
1500 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1501 if (r->parameters) {
1502 uint32_t _relative_save_offset;
1503 _relative_save_offset = ndr->offset;
1504 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->parameters));
1505 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
1506 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
1507 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->parameters));
1508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
1509 ndr->offset = _relative_save_offset;
1511 ndr->flags = _flags_save_string;
1514 uint32_t _relative_save_offset;
1515 _relative_save_offset = ndr->offset;
1516 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1517 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1518 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1520 struct ndr_pull *_ndr_secdesc;
1521 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1522 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1523 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1525 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1526 ndr->offset = _relative_save_offset;
1529 return NDR_ERR_SUCCESS;
1532 _PUBLIC_ void ndr_print_spoolss_PrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo2 *r)
1534 ndr_print_struct(ndr, name, "spoolss_PrinterInfo2");
1536 ndr_print_ptr(ndr, "servername", r->servername);
1538 if (r->servername) {
1539 ndr_print_string(ndr, "servername", r->servername);
1542 ndr_print_ptr(ndr, "printername", r->printername);
1544 if (r->printername) {
1545 ndr_print_string(ndr, "printername", r->printername);
1548 ndr_print_ptr(ndr, "sharename", r->sharename);
1551 ndr_print_string(ndr, "sharename", r->sharename);
1554 ndr_print_ptr(ndr, "portname", r->portname);
1557 ndr_print_string(ndr, "portname", r->portname);
1560 ndr_print_ptr(ndr, "drivername", r->drivername);
1562 if (r->drivername) {
1563 ndr_print_string(ndr, "drivername", r->drivername);
1566 ndr_print_ptr(ndr, "comment", r->comment);
1569 ndr_print_string(ndr, "comment", r->comment);
1572 ndr_print_ptr(ndr, "location", r->location);
1575 ndr_print_string(ndr, "location", r->location);
1578 ndr_print_ptr(ndr, "devmode", r->devmode);
1581 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
1584 ndr_print_ptr(ndr, "sepfile", r->sepfile);
1587 ndr_print_string(ndr, "sepfile", r->sepfile);
1590 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
1592 if (r->printprocessor) {
1593 ndr_print_string(ndr, "printprocessor", r->printprocessor);
1596 ndr_print_ptr(ndr, "datatype", r->datatype);
1599 ndr_print_string(ndr, "datatype", r->datatype);
1602 ndr_print_ptr(ndr, "parameters", r->parameters);
1604 if (r->parameters) {
1605 ndr_print_string(ndr, "parameters", r->parameters);
1608 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1611 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1614 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1615 ndr_print_uint32(ndr, "priority", r->priority);
1616 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
1617 ndr_print_uint32(ndr, "starttime", r->starttime);
1618 ndr_print_uint32(ndr, "untiltime", r->untiltime);
1619 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1620 ndr_print_uint32(ndr, "cjobs", r->cjobs);
1621 ndr_print_uint32(ndr, "averageppm", r->averageppm);
1625 static enum ndr_err_code ndr_push_spoolss_PrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo3 *r)
1627 if (ndr_flags & NDR_SCALARS) {
1628 NDR_CHECK(ndr_push_align(ndr, 4));
1629 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->secdesc));
1631 if (ndr_flags & NDR_BUFFERS) {
1633 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->secdesc));
1635 struct ndr_push *_ndr_secdesc;
1636 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1637 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1638 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1642 return NDR_ERR_SUCCESS;
1645 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo3 *r)
1647 uint32_t _ptr_secdesc;
1648 TALLOC_CTX *_mem_save_secdesc_0;
1649 if (ndr_flags & NDR_SCALARS) {
1650 NDR_CHECK(ndr_pull_align(ndr, 4));
1651 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
1653 NDR_PULL_ALLOC(ndr, r->secdesc);
1654 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->secdesc, _ptr_secdesc));
1659 if (ndr_flags & NDR_BUFFERS) {
1661 uint32_t _relative_save_offset;
1662 _relative_save_offset = ndr->offset;
1663 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->secdesc));
1664 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
1665 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
1667 struct ndr_pull *_ndr_secdesc;
1668 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
1669 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
1670 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
1672 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
1673 ndr->offset = _relative_save_offset;
1676 return NDR_ERR_SUCCESS;
1679 _PUBLIC_ void ndr_print_spoolss_PrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo3 *r)
1681 ndr_print_struct(ndr, name, "spoolss_PrinterInfo3");
1683 ndr_print_ptr(ndr, "secdesc", r->secdesc);
1686 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
1692 static enum ndr_err_code ndr_push_spoolss_PrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo4 *r)
1694 if (ndr_flags & NDR_SCALARS) {
1695 NDR_CHECK(ndr_push_align(ndr, 4));
1697 uint32_t _flags_save_string = ndr->flags;
1698 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1699 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1700 ndr->flags = _flags_save_string;
1703 uint32_t _flags_save_string = ndr->flags;
1704 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1705 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->servername));
1706 ndr->flags = _flags_save_string;
1708 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1710 if (ndr_flags & NDR_BUFFERS) {
1712 uint32_t _flags_save_string = ndr->flags;
1713 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1714 if (r->printername) {
1715 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1716 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1718 ndr->flags = _flags_save_string;
1721 uint32_t _flags_save_string = ndr->flags;
1722 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1723 if (r->servername) {
1724 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->servername));
1725 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->servername));
1727 ndr->flags = _flags_save_string;
1730 return NDR_ERR_SUCCESS;
1733 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo4 *r)
1735 uint32_t _ptr_printername;
1736 TALLOC_CTX *_mem_save_printername_0;
1737 uint32_t _ptr_servername;
1738 TALLOC_CTX *_mem_save_servername_0;
1739 if (ndr_flags & NDR_SCALARS) {
1740 NDR_CHECK(ndr_pull_align(ndr, 4));
1742 uint32_t _flags_save_string = ndr->flags;
1743 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1744 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1745 if (_ptr_printername) {
1746 NDR_PULL_ALLOC(ndr, r->printername);
1747 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1749 r->printername = NULL;
1751 ndr->flags = _flags_save_string;
1754 uint32_t _flags_save_string = ndr->flags;
1755 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1756 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
1757 if (_ptr_servername) {
1758 NDR_PULL_ALLOC(ndr, r->servername);
1759 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->servername, _ptr_servername));
1761 r->servername = NULL;
1763 ndr->flags = _flags_save_string;
1765 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1767 if (ndr_flags & NDR_BUFFERS) {
1769 uint32_t _flags_save_string = ndr->flags;
1770 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1771 if (r->printername) {
1772 uint32_t _relative_save_offset;
1773 _relative_save_offset = ndr->offset;
1774 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1775 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1776 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1777 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1778 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1779 ndr->offset = _relative_save_offset;
1781 ndr->flags = _flags_save_string;
1784 uint32_t _flags_save_string = ndr->flags;
1785 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1786 if (r->servername) {
1787 uint32_t _relative_save_offset;
1788 _relative_save_offset = ndr->offset;
1789 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->servername));
1790 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1791 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
1792 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->servername));
1793 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
1794 ndr->offset = _relative_save_offset;
1796 ndr->flags = _flags_save_string;
1799 return NDR_ERR_SUCCESS;
1802 _PUBLIC_ void ndr_print_spoolss_PrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo4 *r)
1804 ndr_print_struct(ndr, name, "spoolss_PrinterInfo4");
1806 ndr_print_ptr(ndr, "printername", r->printername);
1808 if (r->printername) {
1809 ndr_print_string(ndr, "printername", r->printername);
1812 ndr_print_ptr(ndr, "servername", r->servername);
1814 if (r->servername) {
1815 ndr_print_string(ndr, "servername", r->servername);
1818 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1822 static enum ndr_err_code ndr_push_spoolss_PrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo5 *r)
1824 if (ndr_flags & NDR_SCALARS) {
1825 NDR_CHECK(ndr_push_align(ndr, 4));
1827 uint32_t _flags_save_string = ndr->flags;
1828 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1829 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printername));
1830 ndr->flags = _flags_save_string;
1833 uint32_t _flags_save_string = ndr->flags;
1834 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1835 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->portname));
1836 ndr->flags = _flags_save_string;
1838 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
1839 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
1840 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
1842 if (ndr_flags & NDR_BUFFERS) {
1844 uint32_t _flags_save_string = ndr->flags;
1845 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1846 if (r->printername) {
1847 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printername));
1848 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printername));
1850 ndr->flags = _flags_save_string;
1853 uint32_t _flags_save_string = ndr->flags;
1854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1856 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->portname));
1857 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->portname));
1859 ndr->flags = _flags_save_string;
1862 return NDR_ERR_SUCCESS;
1865 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo5 *r)
1867 uint32_t _ptr_printername;
1868 TALLOC_CTX *_mem_save_printername_0;
1869 uint32_t _ptr_portname;
1870 TALLOC_CTX *_mem_save_portname_0;
1871 if (ndr_flags & NDR_SCALARS) {
1872 NDR_CHECK(ndr_pull_align(ndr, 4));
1874 uint32_t _flags_save_string = ndr->flags;
1875 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1876 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
1877 if (_ptr_printername) {
1878 NDR_PULL_ALLOC(ndr, r->printername);
1879 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printername, _ptr_printername));
1881 r->printername = NULL;
1883 ndr->flags = _flags_save_string;
1886 uint32_t _flags_save_string = ndr->flags;
1887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1888 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
1889 if (_ptr_portname) {
1890 NDR_PULL_ALLOC(ndr, r->portname);
1891 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->portname, _ptr_portname));
1895 ndr->flags = _flags_save_string;
1897 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
1898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
1899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
1901 if (ndr_flags & NDR_BUFFERS) {
1903 uint32_t _flags_save_string = ndr->flags;
1904 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1905 if (r->printername) {
1906 uint32_t _relative_save_offset;
1907 _relative_save_offset = ndr->offset;
1908 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printername));
1909 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
1910 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
1911 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printername));
1912 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
1913 ndr->offset = _relative_save_offset;
1915 ndr->flags = _flags_save_string;
1918 uint32_t _flags_save_string = ndr->flags;
1919 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
1921 uint32_t _relative_save_offset;
1922 _relative_save_offset = ndr->offset;
1923 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->portname));
1924 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
1925 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
1926 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->portname));
1927 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
1928 ndr->offset = _relative_save_offset;
1930 ndr->flags = _flags_save_string;
1933 return NDR_ERR_SUCCESS;
1936 _PUBLIC_ void ndr_print_spoolss_PrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo5 *r)
1938 ndr_print_struct(ndr, name, "spoolss_PrinterInfo5");
1940 ndr_print_ptr(ndr, "printername", r->printername);
1942 if (r->printername) {
1943 ndr_print_string(ndr, "printername", r->printername);
1946 ndr_print_ptr(ndr, "portname", r->portname);
1949 ndr_print_string(ndr, "portname", r->portname);
1952 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
1953 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
1954 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
1958 static enum ndr_err_code ndr_push_spoolss_PrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo6 *r)
1960 if (ndr_flags & NDR_SCALARS) {
1961 NDR_CHECK(ndr_push_align(ndr, 4));
1962 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
1964 if (ndr_flags & NDR_BUFFERS) {
1966 return NDR_ERR_SUCCESS;
1969 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo6 *r)
1971 if (ndr_flags & NDR_SCALARS) {
1972 NDR_CHECK(ndr_pull_align(ndr, 4));
1973 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
1975 if (ndr_flags & NDR_BUFFERS) {
1977 return NDR_ERR_SUCCESS;
1980 _PUBLIC_ void ndr_print_spoolss_PrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo6 *r)
1982 ndr_print_struct(ndr, name, "spoolss_PrinterInfo6");
1984 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
1988 static enum ndr_err_code ndr_push_spoolss_DsPrintAction(struct ndr_push *ndr, int ndr_flags, uint32_t r)
1990 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
1991 return NDR_ERR_SUCCESS;
1994 static enum ndr_err_code ndr_pull_spoolss_DsPrintAction(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
1997 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
1999 return NDR_ERR_SUCCESS;
2002 _PUBLIC_ void ndr_print_spoolss_DsPrintAction(struct ndr_print *ndr, const char *name, uint32_t r)
2004 ndr_print_uint32(ndr, name, r);
2006 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PUBLISH", DSPRINT_PUBLISH, r);
2007 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UPDATE", DSPRINT_UPDATE, r);
2008 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_UNPUBLISH", DSPRINT_UNPUBLISH, r);
2009 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_REPUBLISH", DSPRINT_REPUBLISH, r);
2010 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DSPRINT_PENDING", DSPRINT_PENDING, r);
2014 static enum ndr_err_code ndr_push_spoolss_PrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PrinterInfo7 *r)
2016 if (ndr_flags & NDR_SCALARS) {
2017 NDR_CHECK(ndr_push_align(ndr, 4));
2019 uint32_t _flags_save_string = ndr->flags;
2020 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2021 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->guid));
2022 ndr->flags = _flags_save_string;
2024 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
2026 if (ndr_flags & NDR_BUFFERS) {
2028 uint32_t _flags_save_string = ndr->flags;
2029 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2031 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->guid));
2032 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->guid));
2034 ndr->flags = _flags_save_string;
2037 return NDR_ERR_SUCCESS;
2040 static enum ndr_err_code ndr_pull_spoolss_PrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PrinterInfo7 *r)
2043 TALLOC_CTX *_mem_save_guid_0;
2044 if (ndr_flags & NDR_SCALARS) {
2045 NDR_CHECK(ndr_pull_align(ndr, 4));
2047 uint32_t _flags_save_string = ndr->flags;
2048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2049 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
2051 NDR_PULL_ALLOC(ndr, r->guid);
2052 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->guid, _ptr_guid));
2056 ndr->flags = _flags_save_string;
2058 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
2060 if (ndr_flags & NDR_BUFFERS) {
2062 uint32_t _flags_save_string = ndr->flags;
2063 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2065 uint32_t _relative_save_offset;
2066 _relative_save_offset = ndr->offset;
2067 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->guid));
2068 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
2069 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
2070 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->guid));
2071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
2072 ndr->offset = _relative_save_offset;
2074 ndr->flags = _flags_save_string;
2077 return NDR_ERR_SUCCESS;
2080 _PUBLIC_ void ndr_print_spoolss_PrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_PrinterInfo7 *r)
2082 ndr_print_struct(ndr, name, "spoolss_PrinterInfo7");
2084 ndr_print_ptr(ndr, "guid", r->guid);
2087 ndr_print_string(ndr, "guid", r->guid);
2090 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
2094 static enum ndr_err_code ndr_push_spoolss_DeviceModeInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DeviceModeInfo *r)
2096 if (ndr_flags & NDR_SCALARS) {
2097 NDR_CHECK(ndr_push_align(ndr, 4));
2098 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->devmode));
2100 if (ndr_flags & NDR_BUFFERS) {
2102 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->devmode));
2104 struct ndr_push *_ndr_devmode;
2105 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2106 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2107 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
2111 return NDR_ERR_SUCCESS;
2114 static enum ndr_err_code ndr_pull_spoolss_DeviceModeInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DeviceModeInfo *r)
2116 uint32_t _ptr_devmode;
2117 TALLOC_CTX *_mem_save_devmode_0;
2118 if (ndr_flags & NDR_SCALARS) {
2119 NDR_CHECK(ndr_pull_align(ndr, 4));
2120 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2122 NDR_PULL_ALLOC(ndr, r->devmode);
2123 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->devmode, _ptr_devmode));
2128 if (ndr_flags & NDR_BUFFERS) {
2130 uint32_t _relative_save_offset;
2131 _relative_save_offset = ndr->offset;
2132 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->devmode));
2133 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2134 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2136 struct ndr_pull *_ndr_devmode;
2137 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
2138 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2139 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
2141 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2142 ndr->offset = _relative_save_offset;
2145 return NDR_ERR_SUCCESS;
2148 _PUBLIC_ void ndr_print_spoolss_DeviceModeInfo(struct ndr_print *ndr, const char *name, const struct spoolss_DeviceModeInfo *r)
2150 ndr_print_struct(ndr, name, "spoolss_DeviceModeInfo");
2152 ndr_print_ptr(ndr, "devmode", r->devmode);
2155 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2161 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterInfo *r)
2163 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2164 if (ndr_flags & NDR_SCALARS) {
2165 int level = ndr_push_get_switch_value(ndr, r);
2168 NDR_CHECK(ndr_push_align(ndr, 4));
2169 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2170 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2174 NDR_CHECK(ndr_push_align(ndr, 4));
2175 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2176 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2180 NDR_CHECK(ndr_push_align(ndr, 4));
2181 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2182 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2186 NDR_CHECK(ndr_push_align(ndr, 4));
2187 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2188 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2192 NDR_CHECK(ndr_push_align(ndr, 4));
2193 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2194 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2198 NDR_CHECK(ndr_push_align(ndr, 4));
2199 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2200 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2204 NDR_CHECK(ndr_push_align(ndr, 4));
2205 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2206 NDR_CHECK(ndr_push_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2210 NDR_CHECK(ndr_push_align(ndr, 4));
2211 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2212 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2216 NDR_CHECK(ndr_push_align(ndr, 4));
2217 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2218 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2222 NDR_CHECK(ndr_push_align(ndr, 4));
2223 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2224 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2232 if (ndr_flags & NDR_BUFFERS) {
2233 int level = ndr_push_get_switch_value(ndr, r);
2234 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2237 NDR_CHECK(ndr_push_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2241 NDR_CHECK(ndr_push_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2245 NDR_CHECK(ndr_push_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2249 NDR_CHECK(ndr_push_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2253 NDR_CHECK(ndr_push_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2257 NDR_CHECK(ndr_push_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2264 NDR_CHECK(ndr_push_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2268 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2272 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2280 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2281 return NDR_ERR_SUCCESS;
2284 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterInfo *r)
2286 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2288 level = ndr_pull_get_switch_value(ndr, r);
2289 if (ndr_flags & NDR_SCALARS) {
2292 NDR_CHECK(ndr_pull_align(ndr, 4));
2293 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2294 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_SCALARS, &r->info0));
2298 NDR_CHECK(ndr_pull_align(ndr, 4));
2299 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2300 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_SCALARS, &r->info1));
2304 NDR_CHECK(ndr_pull_align(ndr, 4));
2305 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2306 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_SCALARS, &r->info2));
2310 NDR_CHECK(ndr_pull_align(ndr, 4));
2311 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2312 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_SCALARS, &r->info3));
2316 NDR_CHECK(ndr_pull_align(ndr, 4));
2317 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2318 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_SCALARS, &r->info4));
2322 NDR_CHECK(ndr_pull_align(ndr, 4));
2323 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2324 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_SCALARS, &r->info5));
2328 NDR_CHECK(ndr_pull_align(ndr, 4));
2329 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2330 NDR_CHECK(ndr_pull_spoolss_PrinterInfo6(ndr, NDR_SCALARS, &r->info6));
2334 NDR_CHECK(ndr_pull_align(ndr, 4));
2335 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2336 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_SCALARS, &r->info7));
2340 NDR_CHECK(ndr_pull_align(ndr, 4));
2341 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2342 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info8));
2346 NDR_CHECK(ndr_pull_align(ndr, 4));
2347 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2348 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS, &r->info9));
2356 if (ndr_flags & NDR_BUFFERS) {
2357 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2360 NDR_CHECK(ndr_pull_spoolss_PrinterInfo0(ndr, NDR_BUFFERS, &r->info0));
2364 NDR_CHECK(ndr_pull_spoolss_PrinterInfo1(ndr, NDR_BUFFERS, &r->info1));
2368 NDR_CHECK(ndr_pull_spoolss_PrinterInfo2(ndr, NDR_BUFFERS, &r->info2));
2372 NDR_CHECK(ndr_pull_spoolss_PrinterInfo3(ndr, NDR_BUFFERS, &r->info3));
2376 NDR_CHECK(ndr_pull_spoolss_PrinterInfo4(ndr, NDR_BUFFERS, &r->info4));
2380 NDR_CHECK(ndr_pull_spoolss_PrinterInfo5(ndr, NDR_BUFFERS, &r->info5));
2387 NDR_CHECK(ndr_pull_spoolss_PrinterInfo7(ndr, NDR_BUFFERS, &r->info7));
2391 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info8));
2395 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_BUFFERS, &r->info9));
2403 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2404 return NDR_ERR_SUCCESS;
2407 _PUBLIC_ void ndr_print_spoolss_PrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_PrinterInfo *r)
2410 level = ndr_print_get_switch_value(ndr, r);
2411 ndr_print_union(ndr, name, level, "spoolss_PrinterInfo");
2414 ndr_print_spoolss_PrinterInfo0(ndr, "info0", &r->info0);
2418 ndr_print_spoolss_PrinterInfo1(ndr, "info1", &r->info1);
2422 ndr_print_spoolss_PrinterInfo2(ndr, "info2", &r->info2);
2426 ndr_print_spoolss_PrinterInfo3(ndr, "info3", &r->info3);
2430 ndr_print_spoolss_PrinterInfo4(ndr, "info4", &r->info4);
2434 ndr_print_spoolss_PrinterInfo5(ndr, "info5", &r->info5);
2438 ndr_print_spoolss_PrinterInfo6(ndr, "info6", &r->info6);
2442 ndr_print_spoolss_PrinterInfo7(ndr, "info7", &r->info7);
2446 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", &r->info8);
2450 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", &r->info9);
2459 static enum ndr_err_code ndr_push_spoolss_DevmodeContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DevmodeContainer *r)
2461 if (ndr_flags & NDR_SCALARS) {
2462 NDR_CHECK(ndr_push_align(ndr, 4));
2463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2464 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
2466 if (ndr_flags & NDR_BUFFERS) {
2469 struct ndr_push *_ndr_devmode;
2470 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2471 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2472 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 4, _ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags)));
2476 return NDR_ERR_SUCCESS;
2479 static enum ndr_err_code ndr_pull_spoolss_DevmodeContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DevmodeContainer *r)
2481 uint32_t _ptr_devmode;
2482 TALLOC_CTX *_mem_save_devmode_0;
2483 if (ndr_flags & NDR_SCALARS) {
2484 NDR_CHECK(ndr_pull_align(ndr, 4));
2485 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
2486 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
2488 NDR_PULL_ALLOC(ndr, r->devmode);
2493 if (ndr_flags & NDR_BUFFERS) {
2495 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
2496 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
2498 struct ndr_pull *_ndr_devmode;
2499 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 4, r->_ndr_size));
2500 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
2501 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 4, r->_ndr_size));
2503 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
2506 return NDR_ERR_SUCCESS;
2509 _PUBLIC_ void ndr_print_spoolss_DevmodeContainer(struct ndr_print *ndr, const char *name, const struct spoolss_DevmodeContainer *r)
2511 ndr_print_struct(ndr, name, "spoolss_DevmodeContainer");
2513 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?_ndr_size_spoolss_DeviceMode(r->devmode, ndr->iconv_convenience, ndr->flags):r->_ndr_size);
2514 ndr_print_ptr(ndr, "devmode", r->devmode);
2517 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
2523 static enum ndr_err_code ndr_push_spoolss_JobInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfo1 *r)
2525 if (ndr_flags & NDR_SCALARS) {
2526 NDR_CHECK(ndr_push_align(ndr, 4));
2527 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
2529 uint32_t _flags_save_string = ndr->flags;
2530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->printer_name));
2532 ndr->flags = _flags_save_string;
2535 uint32_t _flags_save_string = ndr->flags;
2536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->server_name));
2538 ndr->flags = _flags_save_string;
2541 uint32_t _flags_save_string = ndr->flags;
2542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->user_name));
2544 ndr->flags = _flags_save_string;
2547 uint32_t _flags_save_string = ndr->flags;
2548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->document_name));
2550 ndr->flags = _flags_save_string;
2553 uint32_t _flags_save_string = ndr->flags;
2554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_type));
2556 ndr->flags = _flags_save_string;
2559 uint32_t _flags_save_string = ndr->flags;
2560 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2561 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->text_status));
2562 ndr->flags = _flags_save_string;
2564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
2565 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
2566 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->position));
2567 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
2568 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->pages_printed));
2569 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2571 if (ndr_flags & NDR_BUFFERS) {
2573 uint32_t _flags_save_string = ndr->flags;
2574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2575 if (r->printer_name) {
2576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->printer_name));
2577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->printer_name));
2579 ndr->flags = _flags_save_string;
2582 uint32_t _flags_save_string = ndr->flags;
2583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2584 if (r->server_name) {
2585 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->server_name));
2586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->server_name));
2588 ndr->flags = _flags_save_string;
2591 uint32_t _flags_save_string = ndr->flags;
2592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2594 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->user_name));
2595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->user_name));
2597 ndr->flags = _flags_save_string;
2600 uint32_t _flags_save_string = ndr->flags;
2601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2602 if (r->document_name) {
2603 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->document_name));
2604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->document_name));
2606 ndr->flags = _flags_save_string;
2609 uint32_t _flags_save_string = ndr->flags;
2610 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2612 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_type));
2613 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_type));
2615 ndr->flags = _flags_save_string;
2618 uint32_t _flags_save_string = ndr->flags;
2619 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2620 if (r->text_status) {
2621 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->text_status));
2622 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->text_status));
2624 ndr->flags = _flags_save_string;
2627 return NDR_ERR_SUCCESS;
2630 static enum ndr_err_code ndr_pull_spoolss_JobInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfo1 *r)
2632 uint32_t _ptr_printer_name;
2633 TALLOC_CTX *_mem_save_printer_name_0;
2634 uint32_t _ptr_server_name;
2635 TALLOC_CTX *_mem_save_server_name_0;
2636 uint32_t _ptr_user_name;
2637 TALLOC_CTX *_mem_save_user_name_0;
2638 uint32_t _ptr_document_name;
2639 TALLOC_CTX *_mem_save_document_name_0;
2640 uint32_t _ptr_data_type;
2641 TALLOC_CTX *_mem_save_data_type_0;
2642 uint32_t _ptr_text_status;
2643 TALLOC_CTX *_mem_save_text_status_0;
2644 if (ndr_flags & NDR_SCALARS) {
2645 NDR_CHECK(ndr_pull_align(ndr, 4));
2646 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
2648 uint32_t _flags_save_string = ndr->flags;
2649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2650 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printer_name));
2651 if (_ptr_printer_name) {
2652 NDR_PULL_ALLOC(ndr, r->printer_name);
2653 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->printer_name, _ptr_printer_name));
2655 r->printer_name = NULL;
2657 ndr->flags = _flags_save_string;
2660 uint32_t _flags_save_string = ndr->flags;
2661 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2662 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
2663 if (_ptr_server_name) {
2664 NDR_PULL_ALLOC(ndr, r->server_name);
2665 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->server_name, _ptr_server_name));
2667 r->server_name = NULL;
2669 ndr->flags = _flags_save_string;
2672 uint32_t _flags_save_string = ndr->flags;
2673 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2674 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user_name));
2675 if (_ptr_user_name) {
2676 NDR_PULL_ALLOC(ndr, r->user_name);
2677 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->user_name, _ptr_user_name));
2679 r->user_name = NULL;
2681 ndr->flags = _flags_save_string;
2684 uint32_t _flags_save_string = ndr->flags;
2685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2686 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
2687 if (_ptr_document_name) {
2688 NDR_PULL_ALLOC(ndr, r->document_name);
2689 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->document_name, _ptr_document_name));
2691 r->document_name = NULL;
2693 ndr->flags = _flags_save_string;
2696 uint32_t _flags_save_string = ndr->flags;
2697 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2698 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
2699 if (_ptr_data_type) {
2700 NDR_PULL_ALLOC(ndr, r->data_type);
2701 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_type, _ptr_data_type));
2703 r->data_type = NULL;
2705 ndr->flags = _flags_save_string;
2708 uint32_t _flags_save_string = ndr->flags;
2709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2710 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_text_status));
2711 if (_ptr_text_status) {
2712 NDR_PULL_ALLOC(ndr, r->text_status);
2713 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->text_status, _ptr_text_status));
2715 r->text_status = NULL;
2717 ndr->flags = _flags_save_string;
2719 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
2720 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
2721 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->position));
2722 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
2723 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->pages_printed));
2724 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
2726 if (ndr_flags & NDR_BUFFERS) {
2728 uint32_t _flags_save_string = ndr->flags;
2729 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2730 if (r->printer_name) {
2731 uint32_t _relative_save_offset;
2732 _relative_save_offset = ndr->offset;
2733 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->printer_name));
2734 _mem_save_printer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2735 NDR_PULL_SET_MEM_CTX(ndr, r->printer_name, 0);
2736 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->printer_name));
2737 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printer_name_0, 0);
2738 ndr->offset = _relative_save_offset;
2740 ndr->flags = _flags_save_string;
2743 uint32_t _flags_save_string = ndr->flags;
2744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2745 if (r->server_name) {
2746 uint32_t _relative_save_offset;
2747 _relative_save_offset = ndr->offset;
2748 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->server_name));
2749 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2750 NDR_PULL_SET_MEM_CTX(ndr, r->server_name, 0);
2751 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->server_name));
2752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
2753 ndr->offset = _relative_save_offset;
2755 ndr->flags = _flags_save_string;
2758 uint32_t _flags_save_string = ndr->flags;
2759 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2761 uint32_t _relative_save_offset;
2762 _relative_save_offset = ndr->offset;
2763 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->user_name));
2764 _mem_save_user_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2765 NDR_PULL_SET_MEM_CTX(ndr, r->user_name, 0);
2766 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->user_name));
2767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_name_0, 0);
2768 ndr->offset = _relative_save_offset;
2770 ndr->flags = _flags_save_string;
2773 uint32_t _flags_save_string = ndr->flags;
2774 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2775 if (r->document_name) {
2776 uint32_t _relative_save_offset;
2777 _relative_save_offset = ndr->offset;
2778 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->document_name));
2779 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
2780 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
2781 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->document_name));
2782 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
2783 ndr->offset = _relative_save_offset;
2785 ndr->flags = _flags_save_string;
2788 uint32_t _flags_save_string = ndr->flags;
2789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2791 uint32_t _relative_save_offset;
2792 _relative_save_offset = ndr->offset;
2793 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_type));
2794 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
2795 NDR_PULL_SET_MEM_CTX(ndr, r->data_type, 0);
2796 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_type));
2797 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
2798 ndr->offset = _relative_save_offset;
2800 ndr->flags = _flags_save_string;
2803 uint32_t _flags_save_string = ndr->flags;
2804 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
2805 if (r->text_status) {
2806 uint32_t _relative_save_offset;
2807 _relative_save_offset = ndr->offset;
2808 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->text_status));
2809 _mem_save_text_status_0 = NDR_PULL_GET_MEM_CTX(ndr);
2810 NDR_PULL_SET_MEM_CTX(ndr, r->text_status, 0);
2811 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->text_status));
2812 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_text_status_0, 0);
2813 ndr->offset = _relative_save_offset;
2815 ndr->flags = _flags_save_string;
2818 return NDR_ERR_SUCCESS;
2821 _PUBLIC_ void ndr_print_spoolss_JobInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfo1 *r)
2823 ndr_print_struct(ndr, name, "spoolss_JobInfo1");
2825 ndr_print_uint32(ndr, "job_id", r->job_id);
2826 ndr_print_ptr(ndr, "printer_name", r->printer_name);
2828 if (r->printer_name) {
2829 ndr_print_string(ndr, "printer_name", r->printer_name);
2832 ndr_print_ptr(ndr, "server_name", r->server_name);
2834 if (r->server_name) {
2835 ndr_print_string(ndr, "server_name", r->server_name);
2838 ndr_print_ptr(ndr, "user_name", r->user_name);
2841 ndr_print_string(ndr, "user_name", r->user_name);
2844 ndr_print_ptr(ndr, "document_name", r->document_name);
2846 if (r->document_name) {
2847 ndr_print_string(ndr, "document_name", r->document_name);
2850 ndr_print_ptr(ndr, "data_type", r->data_type);
2853 ndr_print_string(ndr, "data_type", r->data_type);
2856 ndr_print_ptr(ndr, "text_status", r->text_status);
2858 if (r->text_status) {
2859 ndr_print_string(ndr, "text_status", r->text_status);
2862 ndr_print_uint32(ndr, "status", r->status);
2863 ndr_print_uint32(ndr, "priority", r->priority);
2864 ndr_print_uint32(ndr, "position", r->position);
2865 ndr_print_uint32(ndr, "total_pages", r->total_pages);
2866 ndr_print_uint32(ndr, "pages_printed", r->pages_printed);
2867 ndr_print_spoolss_Time(ndr, "time", &r->time);
2871 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_JobInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_JobInfo *r)
2873 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
2874 if (ndr_flags & NDR_SCALARS) {
2875 int level = ndr_push_get_switch_value(ndr, r);
2878 NDR_CHECK(ndr_push_align(ndr, 4));
2879 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
2880 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2894 if (ndr_flags & NDR_BUFFERS) {
2895 int level = ndr_push_get_switch_value(ndr, r);
2896 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
2899 NDR_CHECK(ndr_push_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2913 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
2914 return NDR_ERR_SUCCESS;
2917 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_JobInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_JobInfo *r)
2919 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
2921 level = ndr_pull_get_switch_value(ndr, r);
2922 if (ndr_flags & NDR_SCALARS) {
2925 NDR_CHECK(ndr_pull_align(ndr, 4));
2926 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
2927 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_SCALARS, &r->info1));
2941 if (ndr_flags & NDR_BUFFERS) {
2942 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
2945 NDR_CHECK(ndr_pull_spoolss_JobInfo1(ndr, NDR_BUFFERS, &r->info1));
2959 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
2960 return NDR_ERR_SUCCESS;
2963 _PUBLIC_ void ndr_print_spoolss_JobInfo(struct ndr_print *ndr, const char *name, const union spoolss_JobInfo *r)
2966 level = ndr_print_get_switch_value(ndr, r);
2967 ndr_print_union(ndr, name, level, "spoolss_JobInfo");
2970 ndr_print_spoolss_JobInfo1(ndr, "info1", &r->info1);
2985 static enum ndr_err_code ndr_push_spoolss_JobInfoContainer(struct ndr_push *ndr, int ndr_flags, const struct spoolss_JobInfoContainer *r)
2987 if (ndr_flags & NDR_SCALARS) {
2988 NDR_CHECK(ndr_push_align(ndr, 4));
2989 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
2990 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
2991 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
2993 if (ndr_flags & NDR_BUFFERS) {
2994 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
2996 return NDR_ERR_SUCCESS;
2999 static enum ndr_err_code ndr_pull_spoolss_JobInfoContainer(struct ndr_pull *ndr, int ndr_flags, struct spoolss_JobInfoContainer *r)
3001 if (ndr_flags & NDR_SCALARS) {
3002 NDR_CHECK(ndr_pull_align(ndr, 4));
3003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
3004 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
3005 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->info));
3007 if (ndr_flags & NDR_BUFFERS) {
3008 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->info));
3010 return NDR_ERR_SUCCESS;
3013 _PUBLIC_ void ndr_print_spoolss_JobInfoContainer(struct ndr_print *ndr, const char *name, const struct spoolss_JobInfoContainer *r)
3015 ndr_print_struct(ndr, name, "spoolss_JobInfoContainer");
3017 ndr_print_uint32(ndr, "level", r->level);
3018 ndr_print_set_switch_value(ndr, &r->info, r->level);
3019 ndr_print_spoolss_JobInfo(ndr, "info", &r->info);
3023 static enum ndr_err_code ndr_push_spoolss_JobControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_JobControl r)
3025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3026 return NDR_ERR_SUCCESS;
3029 static enum ndr_err_code ndr_pull_spoolss_JobControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_JobControl *r)
3032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3034 return NDR_ERR_SUCCESS;
3037 _PUBLIC_ void ndr_print_spoolss_JobControl(struct ndr_print *ndr, const char *name, enum spoolss_JobControl r)
3039 const char *val = NULL;
3042 case SPOOLSS_JOB_CONTROL_PAUSE: val = "SPOOLSS_JOB_CONTROL_PAUSE"; break;
3043 case SPOOLSS_JOB_CONTROL_RESUME: val = "SPOOLSS_JOB_CONTROL_RESUME"; break;
3044 case SPOOLSS_JOB_CONTROL_CANCEL: val = "SPOOLSS_JOB_CONTROL_CANCEL"; break;
3045 case SPOOLSS_JOB_CONTROL_RESTART: val = "SPOOLSS_JOB_CONTROL_RESTART"; break;
3046 case SPOOLSS_JOB_CONTROL_DELETE: val = "SPOOLSS_JOB_CONTROL_DELETE"; break;
3047 case SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER: val = "SPOOLSS_JOB_CONTROL_SEND_TO_PRINTER"; break;
3048 case SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED: val = "SPOOLSS_JOB_CONTROL_LAST_PAGE_EJECTED"; break;
3050 ndr_print_enum(ndr, name, "ENUM", val, r);
3053 static enum ndr_err_code ndr_push_spoolss_PrinterControl(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterControl r)
3055 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
3056 return NDR_ERR_SUCCESS;
3059 static enum ndr_err_code ndr_pull_spoolss_PrinterControl(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterControl *r)
3062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
3064 return NDR_ERR_SUCCESS;
3067 _PUBLIC_ void ndr_print_spoolss_PrinterControl(struct ndr_print *ndr, const char *name, enum spoolss_PrinterControl r)
3069 const char *val = NULL;
3072 case SPOOLSS_PRINTER_CONTROL_UNPAUSE: val = "SPOOLSS_PRINTER_CONTROL_UNPAUSE"; break;
3073 case SPOOLSS_PRINTER_CONTROL_PAUSE: val = "SPOOLSS_PRINTER_CONTROL_PAUSE"; break;
3074 case SPOOLSS_PRINTER_CONTROL_RESUME: val = "SPOOLSS_PRINTER_CONTROL_RESUME"; break;
3075 case SPOOLSS_PRINTER_CONTROL_PURGE: val = "SPOOLSS_PRINTER_CONTROL_PURGE"; break;
3076 case SPOOLSS_PRINTER_CONTROL_SET_STATUS: val = "SPOOLSS_PRINTER_CONTROL_SET_STATUS"; break;
3078 ndr_print_enum(ndr, name, "ENUM", val, r);
3081 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo0(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo0 *r)
3083 if (ndr_flags & NDR_SCALARS) {
3084 NDR_CHECK(ndr_push_align(ndr, 4));
3085 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3086 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
3088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_jobs));
3089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_bytes));
3090 NDR_CHECK(ndr_push_spoolss_Time(ndr, NDR_SCALARS, &r->time));
3091 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->global_counter));
3092 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->total_pages));
3093 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->version));
3094 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->free_build));
3095 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->spooling));
3096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->max_spooling));
3097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->session_counter));
3098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_out_of_paper));
3099 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->num_error_not_ready));
3100 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_error));
3101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->number_of_processors));
3102 NDR_CHECK(ndr_push_spoolss_ProcessorType(ndr, NDR_SCALARS, r->processor_type));
3103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->high_part_total_bytes));
3104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->change_id));
3105 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->last_error));
3106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->status));
3107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->enumerate_network_printers));
3108 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->c_setprinter));
3109 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor_architecture));
3110 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->processor_level));
3111 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->ref_ic));
3112 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved2));
3113 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved3));
3115 if (ndr_flags & NDR_BUFFERS) {
3116 if (r->servername) {
3117 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3118 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3119 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3120 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3122 if (r->printername) {
3123 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3124 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3125 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3126 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3129 return NDR_ERR_SUCCESS;
3132 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo0(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo0 *r)
3134 uint32_t _ptr_servername;
3135 TALLOC_CTX *_mem_save_servername_0;
3136 uint32_t _ptr_printername;
3137 TALLOC_CTX *_mem_save_printername_0;
3138 if (ndr_flags & NDR_SCALARS) {
3139 NDR_CHECK(ndr_pull_align(ndr, 4));
3140 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3141 if (_ptr_servername) {
3142 NDR_PULL_ALLOC(ndr, r->servername);
3144 r->servername = NULL;
3146 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3147 if (_ptr_printername) {
3148 NDR_PULL_ALLOC(ndr, r->printername);
3150 r->printername = NULL;
3152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
3153 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_jobs));
3154 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_bytes));
3155 NDR_CHECK(ndr_pull_spoolss_Time(ndr, NDR_SCALARS, &r->time));
3156 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->global_counter));
3157 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->total_pages));
3158 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
3159 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->free_build));
3160 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->spooling));
3161 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->max_spooling));
3162 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->session_counter));
3163 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_out_of_paper));
3164 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->num_error_not_ready));
3165 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_error));
3166 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->number_of_processors));
3167 NDR_CHECK(ndr_pull_spoolss_ProcessorType(ndr, NDR_SCALARS, &r->processor_type));
3168 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->high_part_total_bytes));
3169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->change_id));
3170 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->last_error));
3171 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->status));
3172 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->enumerate_network_printers));
3173 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->c_setprinter));
3174 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor_architecture));
3175 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->processor_level));
3176 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->ref_ic));
3177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved2));
3178 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved3));
3180 if (ndr_flags & NDR_BUFFERS) {
3181 if (r->servername) {
3182 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3183 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3184 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3185 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3186 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3187 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
3189 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3190 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3191 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3193 if (r->printername) {
3194 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3195 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3196 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3197 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3198 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3199 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
3201 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3202 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3203 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3206 return NDR_ERR_SUCCESS;
3209 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo0(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo0 *r)
3211 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo0");
3213 ndr_print_ptr(ndr, "servername", r->servername);
3215 if (r->servername) {
3216 ndr_print_string(ndr, "servername", r->servername);
3219 ndr_print_ptr(ndr, "printername", r->printername);
3221 if (r->printername) {
3222 ndr_print_string(ndr, "printername", r->printername);
3225 ndr_print_uint32(ndr, "cjobs", r->cjobs);
3226 ndr_print_uint32(ndr, "total_jobs", r->total_jobs);
3227 ndr_print_uint32(ndr, "total_bytes", r->total_bytes);
3228 ndr_print_spoolss_Time(ndr, "time", &r->time);
3229 ndr_print_uint32(ndr, "global_counter", r->global_counter);
3230 ndr_print_uint32(ndr, "total_pages", r->total_pages);
3231 ndr_print_uint32(ndr, "version", r->version);
3232 ndr_print_uint32(ndr, "free_build", r->free_build);
3233 ndr_print_uint32(ndr, "spooling", r->spooling);
3234 ndr_print_uint32(ndr, "max_spooling", r->max_spooling);
3235 ndr_print_uint32(ndr, "session_counter", r->session_counter);
3236 ndr_print_uint32(ndr, "num_error_out_of_paper", r->num_error_out_of_paper);
3237 ndr_print_uint32(ndr, "num_error_not_ready", r->num_error_not_ready);
3238 ndr_print_uint32(ndr, "job_error", r->job_error);
3239 ndr_print_uint32(ndr, "number_of_processors", r->number_of_processors);
3240 ndr_print_spoolss_ProcessorType(ndr, "processor_type", r->processor_type);
3241 ndr_print_uint32(ndr, "high_part_total_bytes", r->high_part_total_bytes);
3242 ndr_print_uint32(ndr, "change_id", r->change_id);
3243 ndr_print_WERROR(ndr, "last_error", r->last_error);
3244 ndr_print_uint32(ndr, "status", r->status);
3245 ndr_print_uint32(ndr, "enumerate_network_printers", r->enumerate_network_printers);
3246 ndr_print_uint32(ndr, "c_setprinter", r->c_setprinter);
3247 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor_architecture", r->processor_architecture);
3248 ndr_print_uint16(ndr, "processor_level", r->processor_level);
3249 ndr_print_uint32(ndr, "ref_ic", r->ref_ic);
3250 ndr_print_uint32(ndr, "reserved2", r->reserved2);
3251 ndr_print_uint32(ndr, "reserved3", r->reserved3);
3255 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo1 *r)
3257 if (ndr_flags & NDR_SCALARS) {
3258 NDR_CHECK(ndr_push_align(ndr, 4));
3259 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->flags));
3260 NDR_CHECK(ndr_push_unique_ptr(ndr, r->name));
3261 NDR_CHECK(ndr_push_unique_ptr(ndr, r->description));
3262 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
3264 if (ndr_flags & NDR_BUFFERS) {
3266 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
3267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->name, CH_UTF16)));
3269 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->name, ndr_charset_length(r->name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3271 if (r->description) {
3272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
3273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3274 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->description, CH_UTF16)));
3275 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->description, ndr_charset_length(r->description, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3281 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3284 return NDR_ERR_SUCCESS;
3287 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo1 *r)
3290 TALLOC_CTX *_mem_save_name_0;
3291 uint32_t _ptr_description;
3292 TALLOC_CTX *_mem_save_description_0;
3293 uint32_t _ptr_comment;
3294 TALLOC_CTX *_mem_save_comment_0;
3295 if (ndr_flags & NDR_SCALARS) {
3296 NDR_CHECK(ndr_pull_align(ndr, 4));
3297 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->flags));
3298 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_name));
3300 NDR_PULL_ALLOC(ndr, r->name);
3304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
3305 if (_ptr_description) {
3306 NDR_PULL_ALLOC(ndr, r->description);
3308 r->description = NULL;
3310 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
3312 NDR_PULL_ALLOC(ndr, r->comment);
3317 if (ndr_flags & NDR_BUFFERS) {
3319 _mem_save_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
3320 NDR_PULL_SET_MEM_CTX(ndr, r->name, 0);
3321 NDR_CHECK(ndr_pull_array_size(ndr, &r->name));
3322 NDR_CHECK(ndr_pull_array_length(ndr, &r->name));
3323 if (ndr_get_array_length(ndr, &r->name) > ndr_get_array_size(ndr, &r->name)) {
3324 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->name), ndr_get_array_length(ndr, &r->name));
3326 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t)));
3327 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->name, ndr_get_array_length(ndr, &r->name), sizeof(uint16_t), CH_UTF16));
3328 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_name_0, 0);
3330 if (r->description) {
3331 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
3332 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
3333 NDR_CHECK(ndr_pull_array_size(ndr, &r->description));
3334 NDR_CHECK(ndr_pull_array_length(ndr, &r->description));
3335 if (ndr_get_array_length(ndr, &r->description) > ndr_get_array_size(ndr, &r->description)) {
3336 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->description), ndr_get_array_length(ndr, &r->description));
3338 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t)));
3339 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->description, ndr_get_array_length(ndr, &r->description), sizeof(uint16_t), CH_UTF16));
3340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
3343 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
3344 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
3345 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
3346 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
3347 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
3348 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
3350 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
3351 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
3352 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
3355 return NDR_ERR_SUCCESS;
3358 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo1 *r)
3360 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo1");
3362 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->flags);
3363 ndr_print_ptr(ndr, "name", r->name);
3366 ndr_print_string(ndr, "name", r->name);
3369 ndr_print_ptr(ndr, "description", r->description);
3371 if (r->description) {
3372 ndr_print_string(ndr, "description", r->description);
3375 ndr_print_ptr(ndr, "comment", r->comment);
3378 ndr_print_string(ndr, "comment", r->comment);
3384 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo2 *r)
3386 if (ndr_flags & NDR_SCALARS) {
3387 NDR_CHECK(ndr_push_align(ndr, 4));
3388 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3389 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3390 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sharename));
3391 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
3392 NDR_CHECK(ndr_push_unique_ptr(ndr, r->drivername));
3393 NDR_CHECK(ndr_push_unique_ptr(ndr, r->comment));
3394 NDR_CHECK(ndr_push_unique_ptr(ndr, r->location));
3395 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
3396 NDR_CHECK(ndr_push_unique_ptr(ndr, r->sepfile));
3397 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printprocessor));
3398 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
3399 NDR_CHECK(ndr_push_unique_ptr(ndr, r->parameters));
3400 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
3401 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->priority));
3403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->defaultpriority));
3404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->starttime));
3405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->untiltime));
3406 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
3407 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->cjobs));
3408 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->averageppm));
3410 if (ndr_flags & NDR_BUFFERS) {
3411 if (r->servername) {
3412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3413 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3414 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3415 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3417 if (r->printername) {
3418 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3419 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3420 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3421 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3424 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
3425 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3426 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sharename, CH_UTF16)));
3427 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sharename, ndr_charset_length(r->sharename, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3430 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
3431 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3432 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
3433 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3435 if (r->drivername) {
3436 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
3437 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3438 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->drivername, CH_UTF16)));
3439 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->drivername, ndr_charset_length(r->drivername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->comment, CH_UTF16)));
3445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->comment, ndr_charset_length(r->comment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
3449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3450 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->location, CH_UTF16)));
3451 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->location, ndr_charset_length(r->location, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3455 struct ndr_push *_ndr_devmode;
3456 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3457 NDR_CHECK(ndr_push_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3458 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_devmode, 0, -1));
3462 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
3463 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->sepfile, CH_UTF16)));
3465 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->sepfile, ndr_charset_length(r->sepfile, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3467 if (r->printprocessor) {
3468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
3469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3470 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printprocessor, CH_UTF16)));
3471 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printprocessor, ndr_charset_length(r->printprocessor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3474 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
3475 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3476 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
3477 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3479 if (r->parameters) {
3480 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
3481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->parameters, CH_UTF16)));
3483 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->parameters, ndr_charset_length(r->parameters, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3487 struct ndr_push *_ndr_secdesc;
3488 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3489 NDR_CHECK(ndr_push_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3490 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3494 return NDR_ERR_SUCCESS;
3497 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo2 *r)
3499 uint32_t _ptr_servername;
3500 TALLOC_CTX *_mem_save_servername_0;
3501 uint32_t _ptr_printername;
3502 TALLOC_CTX *_mem_save_printername_0;
3503 uint32_t _ptr_sharename;
3504 TALLOC_CTX *_mem_save_sharename_0;
3505 uint32_t _ptr_portname;
3506 TALLOC_CTX *_mem_save_portname_0;
3507 uint32_t _ptr_drivername;
3508 TALLOC_CTX *_mem_save_drivername_0;
3509 uint32_t _ptr_comment;
3510 TALLOC_CTX *_mem_save_comment_0;
3511 uint32_t _ptr_location;
3512 TALLOC_CTX *_mem_save_location_0;
3513 uint32_t _ptr_devmode;
3514 TALLOC_CTX *_mem_save_devmode_0;
3515 uint32_t _ptr_sepfile;
3516 TALLOC_CTX *_mem_save_sepfile_0;
3517 uint32_t _ptr_printprocessor;
3518 TALLOC_CTX *_mem_save_printprocessor_0;
3519 uint32_t _ptr_datatype;
3520 TALLOC_CTX *_mem_save_datatype_0;
3521 uint32_t _ptr_parameters;
3522 TALLOC_CTX *_mem_save_parameters_0;
3523 uint32_t _ptr_secdesc;
3524 TALLOC_CTX *_mem_save_secdesc_0;
3525 if (ndr_flags & NDR_SCALARS) {
3526 NDR_CHECK(ndr_pull_align(ndr, 4));
3527 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3528 if (_ptr_servername) {
3529 NDR_PULL_ALLOC(ndr, r->servername);
3531 r->servername = NULL;
3533 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3534 if (_ptr_printername) {
3535 NDR_PULL_ALLOC(ndr, r->printername);
3537 r->printername = NULL;
3539 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sharename));
3540 if (_ptr_sharename) {
3541 NDR_PULL_ALLOC(ndr, r->sharename);
3543 r->sharename = NULL;
3545 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
3546 if (_ptr_portname) {
3547 NDR_PULL_ALLOC(ndr, r->portname);
3551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_drivername));
3552 if (_ptr_drivername) {
3553 NDR_PULL_ALLOC(ndr, r->drivername);
3555 r->drivername = NULL;
3557 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_comment));
3559 NDR_PULL_ALLOC(ndr, r->comment);
3563 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_location));
3564 if (_ptr_location) {
3565 NDR_PULL_ALLOC(ndr, r->location);
3569 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
3571 NDR_PULL_ALLOC(ndr, r->devmode);
3575 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_sepfile));
3577 NDR_PULL_ALLOC(ndr, r->sepfile);
3581 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printprocessor));
3582 if (_ptr_printprocessor) {
3583 NDR_PULL_ALLOC(ndr, r->printprocessor);
3585 r->printprocessor = NULL;
3587 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
3588 if (_ptr_datatype) {
3589 NDR_PULL_ALLOC(ndr, r->datatype);
3593 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_parameters));
3594 if (_ptr_parameters) {
3595 NDR_PULL_ALLOC(ndr, r->parameters);
3597 r->parameters = NULL;
3599 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3601 NDR_PULL_ALLOC(ndr, r->secdesc);
3605 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3606 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->priority));
3607 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->defaultpriority));
3608 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->starttime));
3609 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->untiltime));
3610 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
3611 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->cjobs));
3612 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->averageppm));
3614 if (ndr_flags & NDR_BUFFERS) {
3615 if (r->servername) {
3616 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3617 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3618 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3619 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3620 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3621 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
3623 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3624 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3625 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3627 if (r->printername) {
3628 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3629 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3630 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3631 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3632 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3633 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
3635 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3636 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3637 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3640 _mem_save_sharename_0 = NDR_PULL_GET_MEM_CTX(ndr);
3641 NDR_PULL_SET_MEM_CTX(ndr, r->sharename, 0);
3642 NDR_CHECK(ndr_pull_array_size(ndr, &r->sharename));
3643 NDR_CHECK(ndr_pull_array_length(ndr, &r->sharename));
3644 if (ndr_get_array_length(ndr, &r->sharename) > ndr_get_array_size(ndr, &r->sharename)) {
3645 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sharename), ndr_get_array_length(ndr, &r->sharename));
3647 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t)));
3648 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sharename, ndr_get_array_length(ndr, &r->sharename), sizeof(uint16_t), CH_UTF16));
3649 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sharename_0, 0);
3652 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
3653 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
3654 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
3655 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
3656 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
3657 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
3659 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
3660 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
3661 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
3663 if (r->drivername) {
3664 _mem_save_drivername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3665 NDR_PULL_SET_MEM_CTX(ndr, r->drivername, 0);
3666 NDR_CHECK(ndr_pull_array_size(ndr, &r->drivername));
3667 NDR_CHECK(ndr_pull_array_length(ndr, &r->drivername));
3668 if (ndr_get_array_length(ndr, &r->drivername) > ndr_get_array_size(ndr, &r->drivername)) {
3669 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->drivername), ndr_get_array_length(ndr, &r->drivername));
3671 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t)));
3672 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->drivername, ndr_get_array_length(ndr, &r->drivername), sizeof(uint16_t), CH_UTF16));
3673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_drivername_0, 0);
3676 _mem_save_comment_0 = NDR_PULL_GET_MEM_CTX(ndr);
3677 NDR_PULL_SET_MEM_CTX(ndr, r->comment, 0);
3678 NDR_CHECK(ndr_pull_array_size(ndr, &r->comment));
3679 NDR_CHECK(ndr_pull_array_length(ndr, &r->comment));
3680 if (ndr_get_array_length(ndr, &r->comment) > ndr_get_array_size(ndr, &r->comment)) {
3681 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->comment), ndr_get_array_length(ndr, &r->comment));
3683 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t)));
3684 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->comment, ndr_get_array_length(ndr, &r->comment), sizeof(uint16_t), CH_UTF16));
3685 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_comment_0, 0);
3688 _mem_save_location_0 = NDR_PULL_GET_MEM_CTX(ndr);
3689 NDR_PULL_SET_MEM_CTX(ndr, r->location, 0);
3690 NDR_CHECK(ndr_pull_array_size(ndr, &r->location));
3691 NDR_CHECK(ndr_pull_array_length(ndr, &r->location));
3692 if (ndr_get_array_length(ndr, &r->location) > ndr_get_array_size(ndr, &r->location)) {
3693 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->location), ndr_get_array_length(ndr, &r->location));
3695 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t)));
3696 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->location, ndr_get_array_length(ndr, &r->location), sizeof(uint16_t), CH_UTF16));
3697 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_location_0, 0);
3700 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
3701 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
3703 struct ndr_pull *_ndr_devmode;
3704 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_devmode, 0, -1));
3705 NDR_CHECK(ndr_pull_spoolss_DeviceMode(_ndr_devmode, NDR_SCALARS, r->devmode));
3706 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_devmode, 0, -1));
3708 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
3711 _mem_save_sepfile_0 = NDR_PULL_GET_MEM_CTX(ndr);
3712 NDR_PULL_SET_MEM_CTX(ndr, r->sepfile, 0);
3713 NDR_CHECK(ndr_pull_array_size(ndr, &r->sepfile));
3714 NDR_CHECK(ndr_pull_array_length(ndr, &r->sepfile));
3715 if (ndr_get_array_length(ndr, &r->sepfile) > ndr_get_array_size(ndr, &r->sepfile)) {
3716 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->sepfile), ndr_get_array_length(ndr, &r->sepfile));
3718 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t)));
3719 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->sepfile, ndr_get_array_length(ndr, &r->sepfile), sizeof(uint16_t), CH_UTF16));
3720 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_sepfile_0, 0);
3722 if (r->printprocessor) {
3723 _mem_save_printprocessor_0 = NDR_PULL_GET_MEM_CTX(ndr);
3724 NDR_PULL_SET_MEM_CTX(ndr, r->printprocessor, 0);
3725 NDR_CHECK(ndr_pull_array_size(ndr, &r->printprocessor));
3726 NDR_CHECK(ndr_pull_array_length(ndr, &r->printprocessor));
3727 if (ndr_get_array_length(ndr, &r->printprocessor) > ndr_get_array_size(ndr, &r->printprocessor)) {
3728 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printprocessor), ndr_get_array_length(ndr, &r->printprocessor));
3730 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t)));
3731 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printprocessor, ndr_get_array_length(ndr, &r->printprocessor), sizeof(uint16_t), CH_UTF16));
3732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printprocessor_0, 0);
3735 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
3736 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
3737 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
3738 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
3739 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
3740 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->datatype), ndr_get_array_length(ndr, &r->datatype));
3742 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
3743 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
3744 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
3746 if (r->parameters) {
3747 _mem_save_parameters_0 = NDR_PULL_GET_MEM_CTX(ndr);
3748 NDR_PULL_SET_MEM_CTX(ndr, r->parameters, 0);
3749 NDR_CHECK(ndr_pull_array_size(ndr, &r->parameters));
3750 NDR_CHECK(ndr_pull_array_length(ndr, &r->parameters));
3751 if (ndr_get_array_length(ndr, &r->parameters) > ndr_get_array_size(ndr, &r->parameters)) {
3752 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->parameters), ndr_get_array_length(ndr, &r->parameters));
3754 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t)));
3755 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->parameters, ndr_get_array_length(ndr, &r->parameters), sizeof(uint16_t), CH_UTF16));
3756 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_parameters_0, 0);
3759 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3760 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3762 struct ndr_pull *_ndr_secdesc;
3763 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_secdesc, 0, -1));
3764 NDR_CHECK(ndr_pull_security_descriptor(_ndr_secdesc, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3765 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_secdesc, 0, -1));
3767 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3770 return NDR_ERR_SUCCESS;
3773 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo2 *r)
3775 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo2");
3777 ndr_print_ptr(ndr, "servername", r->servername);
3779 if (r->servername) {
3780 ndr_print_string(ndr, "servername", r->servername);
3783 ndr_print_ptr(ndr, "printername", r->printername);
3785 if (r->printername) {
3786 ndr_print_string(ndr, "printername", r->printername);
3789 ndr_print_ptr(ndr, "sharename", r->sharename);
3792 ndr_print_string(ndr, "sharename", r->sharename);
3795 ndr_print_ptr(ndr, "portname", r->portname);
3798 ndr_print_string(ndr, "portname", r->portname);
3801 ndr_print_ptr(ndr, "drivername", r->drivername);
3803 if (r->drivername) {
3804 ndr_print_string(ndr, "drivername", r->drivername);
3807 ndr_print_ptr(ndr, "comment", r->comment);
3810 ndr_print_string(ndr, "comment", r->comment);
3813 ndr_print_ptr(ndr, "location", r->location);
3816 ndr_print_string(ndr, "location", r->location);
3819 ndr_print_ptr(ndr, "devmode", r->devmode);
3822 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
3825 ndr_print_ptr(ndr, "sepfile", r->sepfile);
3828 ndr_print_string(ndr, "sepfile", r->sepfile);
3831 ndr_print_ptr(ndr, "printprocessor", r->printprocessor);
3833 if (r->printprocessor) {
3834 ndr_print_string(ndr, "printprocessor", r->printprocessor);
3837 ndr_print_ptr(ndr, "datatype", r->datatype);
3840 ndr_print_string(ndr, "datatype", r->datatype);
3843 ndr_print_ptr(ndr, "parameters", r->parameters);
3845 if (r->parameters) {
3846 ndr_print_string(ndr, "parameters", r->parameters);
3849 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3852 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3855 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
3856 ndr_print_uint32(ndr, "priority", r->priority);
3857 ndr_print_uint32(ndr, "defaultpriority", r->defaultpriority);
3858 ndr_print_uint32(ndr, "starttime", r->starttime);
3859 ndr_print_uint32(ndr, "untiltime", r->untiltime);
3860 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
3861 ndr_print_uint32(ndr, "cjobs", r->cjobs);
3862 ndr_print_uint32(ndr, "averageppm", r->averageppm);
3866 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo3 *r)
3868 if (ndr_flags & NDR_SCALARS) {
3869 NDR_CHECK(ndr_push_align(ndr, 4));
3870 NDR_CHECK(ndr_push_unique_ptr(ndr, r->secdesc));
3872 if (ndr_flags & NDR_BUFFERS) {
3874 NDR_CHECK(ndr_push_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3877 return NDR_ERR_SUCCESS;
3880 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo3 *r)
3882 uint32_t _ptr_secdesc;
3883 TALLOC_CTX *_mem_save_secdesc_0;
3884 if (ndr_flags & NDR_SCALARS) {
3885 NDR_CHECK(ndr_pull_align(ndr, 4));
3886 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_secdesc));
3888 NDR_PULL_ALLOC(ndr, r->secdesc);
3893 if (ndr_flags & NDR_BUFFERS) {
3895 _mem_save_secdesc_0 = NDR_PULL_GET_MEM_CTX(ndr);
3896 NDR_PULL_SET_MEM_CTX(ndr, r->secdesc, 0);
3897 NDR_CHECK(ndr_pull_security_descriptor(ndr, NDR_SCALARS|NDR_BUFFERS, r->secdesc));
3898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_0, 0);
3901 return NDR_ERR_SUCCESS;
3904 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo3 *r)
3906 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo3");
3908 ndr_print_ptr(ndr, "secdesc", r->secdesc);
3911 ndr_print_security_descriptor(ndr, "secdesc", r->secdesc);
3917 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo4 *r)
3919 if (ndr_flags & NDR_SCALARS) {
3920 NDR_CHECK(ndr_push_align(ndr, 4));
3921 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
3922 NDR_CHECK(ndr_push_unique_ptr(ndr, r->servername));
3923 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
3925 if (ndr_flags & NDR_BUFFERS) {
3926 if (r->printername) {
3927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3928 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3929 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
3930 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3932 if (r->servername) {
3933 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3934 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
3935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->servername, CH_UTF16)));
3936 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->servername, ndr_charset_length(r->servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
3939 return NDR_ERR_SUCCESS;
3942 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo4 *r)
3944 uint32_t _ptr_printername;
3945 TALLOC_CTX *_mem_save_printername_0;
3946 uint32_t _ptr_servername;
3947 TALLOC_CTX *_mem_save_servername_0;
3948 if (ndr_flags & NDR_SCALARS) {
3949 NDR_CHECK(ndr_pull_align(ndr, 4));
3950 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
3951 if (_ptr_printername) {
3952 NDR_PULL_ALLOC(ndr, r->printername);
3954 r->printername = NULL;
3956 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
3957 if (_ptr_servername) {
3958 NDR_PULL_ALLOC(ndr, r->servername);
3960 r->servername = NULL;
3962 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
3964 if (ndr_flags & NDR_BUFFERS) {
3965 if (r->printername) {
3966 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3967 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
3968 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
3969 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
3970 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
3971 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
3973 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
3974 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
3975 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
3977 if (r->servername) {
3978 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
3979 NDR_PULL_SET_MEM_CTX(ndr, r->servername, 0);
3980 NDR_CHECK(ndr_pull_array_size(ndr, &r->servername));
3981 NDR_CHECK(ndr_pull_array_length(ndr, &r->servername));
3982 if (ndr_get_array_length(ndr, &r->servername) > ndr_get_array_size(ndr, &r->servername)) {
3983 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->servername), ndr_get_array_length(ndr, &r->servername));
3985 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t)));
3986 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->servername, ndr_get_array_length(ndr, &r->servername), sizeof(uint16_t), CH_UTF16));
3987 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
3990 return NDR_ERR_SUCCESS;
3993 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo4 *r)
3995 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo4");
3997 ndr_print_ptr(ndr, "printername", r->printername);
3999 if (r->printername) {
4000 ndr_print_string(ndr, "printername", r->printername);
4003 ndr_print_ptr(ndr, "servername", r->servername);
4005 if (r->servername) {
4006 ndr_print_string(ndr, "servername", r->servername);
4009 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4013 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo5 *r)
4015 if (ndr_flags & NDR_SCALARS) {
4016 NDR_CHECK(ndr_push_align(ndr, 4));
4017 NDR_CHECK(ndr_push_unique_ptr(ndr, r->printername));
4018 NDR_CHECK(ndr_push_unique_ptr(ndr, r->portname));
4019 NDR_CHECK(ndr_push_spoolss_PrinterAttributes(ndr, NDR_SCALARS, r->attributes));
4020 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->device_not_selected_timeout));
4021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->transmission_retry_timeout));
4023 if (ndr_flags & NDR_BUFFERS) {
4024 if (r->printername) {
4025 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4026 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->printername, CH_UTF16)));
4028 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->printername, ndr_charset_length(r->printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4031 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4032 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->portname, CH_UTF16)));
4034 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, ndr_charset_length(r->portname, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4037 return NDR_ERR_SUCCESS;
4040 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo5 *r)
4042 uint32_t _ptr_printername;
4043 TALLOC_CTX *_mem_save_printername_0;
4044 uint32_t _ptr_portname;
4045 TALLOC_CTX *_mem_save_portname_0;
4046 if (ndr_flags & NDR_SCALARS) {
4047 NDR_CHECK(ndr_pull_align(ndr, 4));
4048 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
4049 if (_ptr_printername) {
4050 NDR_PULL_ALLOC(ndr, r->printername);
4052 r->printername = NULL;
4054 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_portname));
4055 if (_ptr_portname) {
4056 NDR_PULL_ALLOC(ndr, r->portname);
4060 NDR_CHECK(ndr_pull_spoolss_PrinterAttributes(ndr, NDR_SCALARS, &r->attributes));
4061 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->device_not_selected_timeout));
4062 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->transmission_retry_timeout));
4064 if (ndr_flags & NDR_BUFFERS) {
4065 if (r->printername) {
4066 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
4067 NDR_PULL_SET_MEM_CTX(ndr, r->printername, 0);
4068 NDR_CHECK(ndr_pull_array_size(ndr, &r->printername));
4069 NDR_CHECK(ndr_pull_array_length(ndr, &r->printername));
4070 if (ndr_get_array_length(ndr, &r->printername) > ndr_get_array_size(ndr, &r->printername)) {
4071 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->printername), ndr_get_array_length(ndr, &r->printername));
4073 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t)));
4074 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->printername, ndr_get_array_length(ndr, &r->printername), sizeof(uint16_t), CH_UTF16));
4075 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
4078 _mem_save_portname_0 = NDR_PULL_GET_MEM_CTX(ndr);
4079 NDR_PULL_SET_MEM_CTX(ndr, r->portname, 0);
4080 NDR_CHECK(ndr_pull_array_size(ndr, &r->portname));
4081 NDR_CHECK(ndr_pull_array_length(ndr, &r->portname));
4082 if (ndr_get_array_length(ndr, &r->portname) > ndr_get_array_size(ndr, &r->portname)) {
4083 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->portname), ndr_get_array_length(ndr, &r->portname));
4085 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t)));
4086 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, ndr_get_array_length(ndr, &r->portname), sizeof(uint16_t), CH_UTF16));
4087 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_portname_0, 0);
4090 return NDR_ERR_SUCCESS;
4093 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo5 *r)
4095 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo5");
4097 ndr_print_ptr(ndr, "printername", r->printername);
4099 if (r->printername) {
4100 ndr_print_string(ndr, "printername", r->printername);
4103 ndr_print_ptr(ndr, "portname", r->portname);
4106 ndr_print_string(ndr, "portname", r->portname);
4109 ndr_print_spoolss_PrinterAttributes(ndr, "attributes", r->attributes);
4110 ndr_print_uint32(ndr, "device_not_selected_timeout", r->device_not_selected_timeout);
4111 ndr_print_uint32(ndr, "transmission_retry_timeout", r->transmission_retry_timeout);
4115 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo6 *r)
4117 if (ndr_flags & NDR_SCALARS) {
4118 NDR_CHECK(ndr_push_align(ndr, 4));
4119 NDR_CHECK(ndr_push_spoolss_PrinterStatus(ndr, NDR_SCALARS, r->status));
4121 if (ndr_flags & NDR_BUFFERS) {
4123 return NDR_ERR_SUCCESS;
4126 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo6 *r)
4128 if (ndr_flags & NDR_SCALARS) {
4129 NDR_CHECK(ndr_pull_align(ndr, 4));
4130 NDR_CHECK(ndr_pull_spoolss_PrinterStatus(ndr, NDR_SCALARS, &r->status));
4132 if (ndr_flags & NDR_BUFFERS) {
4134 return NDR_ERR_SUCCESS;
4137 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo6 *r)
4139 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo6");
4141 ndr_print_spoolss_PrinterStatus(ndr, "status", r->status);
4145 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo7(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfo7 *r)
4147 if (ndr_flags & NDR_SCALARS) {
4148 NDR_CHECK(ndr_push_align(ndr, 4));
4149 NDR_CHECK(ndr_push_unique_ptr(ndr, r->guid));
4150 NDR_CHECK(ndr_push_spoolss_DsPrintAction(ndr, NDR_SCALARS, r->action));
4152 if (ndr_flags & NDR_BUFFERS) {
4154 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4155 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4156 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->guid, CH_UTF16)));
4157 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->guid, ndr_charset_length(r->guid, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4160 return NDR_ERR_SUCCESS;
4163 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo7(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfo7 *r)
4166 TALLOC_CTX *_mem_save_guid_0;
4167 if (ndr_flags & NDR_SCALARS) {
4168 NDR_CHECK(ndr_pull_align(ndr, 4));
4169 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_guid));
4171 NDR_PULL_ALLOC(ndr, r->guid);
4175 NDR_CHECK(ndr_pull_spoolss_DsPrintAction(ndr, NDR_SCALARS, &r->action));
4177 if (ndr_flags & NDR_BUFFERS) {
4179 _mem_save_guid_0 = NDR_PULL_GET_MEM_CTX(ndr);
4180 NDR_PULL_SET_MEM_CTX(ndr, r->guid, 0);
4181 NDR_CHECK(ndr_pull_array_size(ndr, &r->guid));
4182 NDR_CHECK(ndr_pull_array_length(ndr, &r->guid));
4183 if (ndr_get_array_length(ndr, &r->guid) > ndr_get_array_size(ndr, &r->guid)) {
4184 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->guid), ndr_get_array_length(ndr, &r->guid));
4186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t)));
4187 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->guid, ndr_get_array_length(ndr, &r->guid), sizeof(uint16_t), CH_UTF16));
4188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_guid_0, 0);
4191 return NDR_ERR_SUCCESS;
4194 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo7(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfo7 *r)
4196 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfo7");
4198 ndr_print_ptr(ndr, "guid", r->guid);
4201 ndr_print_string(ndr, "guid", r->guid);
4204 ndr_print_spoolss_DsPrintAction(ndr, "action", r->action);
4208 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_SetPrinterInfo *r)
4210 if (ndr_flags & NDR_SCALARS) {
4211 int level = ndr_push_get_switch_value(ndr, r);
4212 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
4215 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
4219 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
4223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
4227 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
4231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
4235 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info5));
4239 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
4243 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info7));
4247 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
4251 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info9));
4259 if (ndr_flags & NDR_BUFFERS) {
4260 int level = ndr_push_get_switch_value(ndr, r);
4264 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4270 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4276 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4282 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
4288 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4294 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4300 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4306 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4312 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4318 NDR_CHECK(ndr_push_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4327 return NDR_ERR_SUCCESS;
4330 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_SetPrinterInfo *r)
4334 TALLOC_CTX *_mem_save_info0_0;
4335 TALLOC_CTX *_mem_save_info1_0;
4336 TALLOC_CTX *_mem_save_info2_0;
4337 TALLOC_CTX *_mem_save_info3_0;
4338 TALLOC_CTX *_mem_save_info4_0;
4339 TALLOC_CTX *_mem_save_info5_0;
4340 TALLOC_CTX *_mem_save_info6_0;
4341 TALLOC_CTX *_mem_save_info7_0;
4342 TALLOC_CTX *_mem_save_info8_0;
4343 TALLOC_CTX *_mem_save_info9_0;
4344 level = ndr_pull_get_switch_value(ndr, r);
4345 if (ndr_flags & NDR_SCALARS) {
4346 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
4347 if (_level != level) {
4348 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
4352 uint32_t _ptr_info0;
4353 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
4355 NDR_PULL_ALLOC(ndr, r->info0);
4362 uint32_t _ptr_info1;
4363 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
4365 NDR_PULL_ALLOC(ndr, r->info1);
4372 uint32_t _ptr_info2;
4373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
4375 NDR_PULL_ALLOC(ndr, r->info2);
4382 uint32_t _ptr_info3;
4383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
4385 NDR_PULL_ALLOC(ndr, r->info3);
4392 uint32_t _ptr_info4;
4393 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
4395 NDR_PULL_ALLOC(ndr, r->info4);
4402 uint32_t _ptr_info5;
4403 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info5));
4405 NDR_PULL_ALLOC(ndr, r->info5);
4412 uint32_t _ptr_info6;
4413 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
4415 NDR_PULL_ALLOC(ndr, r->info6);
4422 uint32_t _ptr_info7;
4423 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info7));
4425 NDR_PULL_ALLOC(ndr, r->info7);
4432 uint32_t _ptr_info8;
4433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
4435 NDR_PULL_ALLOC(ndr, r->info8);
4442 uint32_t _ptr_info9;
4443 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info9));
4445 NDR_PULL_ALLOC(ndr, r->info9);
4456 if (ndr_flags & NDR_BUFFERS) {
4460 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
4461 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
4462 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo0(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
4463 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
4469 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
4470 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
4471 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
4472 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
4478 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
4479 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
4480 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
4481 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
4487 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
4488 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
4489 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
4490 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
4496 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
4497 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
4498 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
4499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
4505 _mem_save_info5_0 = NDR_PULL_GET_MEM_CTX(ndr);
4506 NDR_PULL_SET_MEM_CTX(ndr, r->info5, 0);
4507 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo5(ndr, NDR_SCALARS|NDR_BUFFERS, r->info5));
4508 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info5_0, 0);
4514 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
4515 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
4516 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo6(ndr, NDR_SCALARS, r->info6));
4517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
4523 _mem_save_info7_0 = NDR_PULL_GET_MEM_CTX(ndr);
4524 NDR_PULL_SET_MEM_CTX(ndr, r->info7, 0);
4525 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo7(ndr, NDR_SCALARS|NDR_BUFFERS, r->info7));
4526 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info7_0, 0);
4532 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
4533 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
4534 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
4535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
4541 _mem_save_info9_0 = NDR_PULL_GET_MEM_CTX(ndr);
4542 NDR_PULL_SET_MEM_CTX(ndr, r->info9, 0);
4543 NDR_CHECK(ndr_pull_spoolss_DeviceModeInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info9));
4544 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info9_0, 0);
4553 return NDR_ERR_SUCCESS;
4556 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_SetPrinterInfo *r)
4559 level = ndr_print_get_switch_value(ndr, r);
4560 ndr_print_union(ndr, name, level, "spoolss_SetPrinterInfo");
4563 ndr_print_ptr(ndr, "info0", r->info0);
4566 ndr_print_spoolss_SetPrinterInfo0(ndr, "info0", r->info0);
4572 ndr_print_ptr(ndr, "info1", r->info1);
4575 ndr_print_spoolss_SetPrinterInfo1(ndr, "info1", r->info1);
4581 ndr_print_ptr(ndr, "info2", r->info2);
4584 ndr_print_spoolss_SetPrinterInfo2(ndr, "info2", r->info2);
4590 ndr_print_ptr(ndr, "info3", r->info3);
4593 ndr_print_spoolss_SetPrinterInfo3(ndr, "info3", r->info3);
4599 ndr_print_ptr(ndr, "info4", r->info4);
4602 ndr_print_spoolss_SetPrinterInfo4(ndr, "info4", r->info4);
4608 ndr_print_ptr(ndr, "info5", r->info5);
4611 ndr_print_spoolss_SetPrinterInfo5(ndr, "info5", r->info5);
4617 ndr_print_ptr(ndr, "info6", r->info6);
4620 ndr_print_spoolss_SetPrinterInfo6(ndr, "info6", r->info6);
4626 ndr_print_ptr(ndr, "info7", r->info7);
4629 ndr_print_spoolss_SetPrinterInfo7(ndr, "info7", r->info7);
4635 ndr_print_ptr(ndr, "info8", r->info8);
4638 ndr_print_spoolss_DeviceModeInfo(ndr, "info8", r->info8);
4644 ndr_print_ptr(ndr, "info9", r->info9);
4647 ndr_print_spoolss_DeviceModeInfo(ndr, "info9", r->info9);
4658 static enum ndr_err_code ndr_push_spoolss_SetPrinterInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_SetPrinterInfoCtr *r)
4660 if (ndr_flags & NDR_SCALARS) {
4661 NDR_CHECK(ndr_push_align(ndr, 4));
4662 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
4663 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
4664 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4666 if (ndr_flags & NDR_BUFFERS) {
4667 NDR_CHECK(ndr_push_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4669 return NDR_ERR_SUCCESS;
4672 static enum ndr_err_code ndr_pull_spoolss_SetPrinterInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_SetPrinterInfoCtr *r)
4674 if (ndr_flags & NDR_SCALARS) {
4675 NDR_CHECK(ndr_pull_align(ndr, 4));
4676 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
4677 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
4678 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_SCALARS, &r->info));
4680 if (ndr_flags & NDR_BUFFERS) {
4681 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfo(ndr, NDR_BUFFERS, &r->info));
4683 return NDR_ERR_SUCCESS;
4686 _PUBLIC_ void ndr_print_spoolss_SetPrinterInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_SetPrinterInfoCtr *r)
4688 ndr_print_struct(ndr, name, "spoolss_SetPrinterInfoCtr");
4690 ndr_print_uint32(ndr, "level", r->level);
4691 ndr_print_set_switch_value(ndr, &r->info, r->level);
4692 ndr_print_spoolss_SetPrinterInfo(ndr, "info", &r->info);
4696 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_StringArray(struct ndr_push *ndr, int ndr_flags, const struct spoolss_StringArray *r)
4698 if (ndr_flags & NDR_SCALARS) {
4699 NDR_CHECK(ndr_push_align(ndr, 4));
4700 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, (ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2));
4702 uint32_t _flags_save_string_array = ndr->flags;
4703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4704 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string));
4705 ndr->flags = _flags_save_string_array;
4708 if (ndr_flags & NDR_BUFFERS) {
4710 return NDR_ERR_SUCCESS;
4713 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_StringArray(struct ndr_pull *ndr, int ndr_flags, struct spoolss_StringArray *r)
4715 if (ndr_flags & NDR_SCALARS) {
4716 NDR_CHECK(ndr_pull_align(ndr, 4));
4717 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
4719 uint32_t _flags_save_string_array = ndr->flags;
4720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
4721 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string));
4722 ndr->flags = _flags_save_string_array;
4725 if (ndr_flags & NDR_BUFFERS) {
4727 return NDR_ERR_SUCCESS;
4730 _PUBLIC_ void ndr_print_spoolss_StringArray(struct ndr_print *ndr, const char *name, const struct spoolss_StringArray *r)
4732 ndr_print_struct(ndr, name, "spoolss_StringArray");
4734 ndr_print_uint32(ndr, "_ndr_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?(ndr_size_spoolss_StringArray(r, ndr->iconv_convenience, ndr->flags) - 4) / 2:r->_ndr_size);
4735 ndr_print_string_array(ndr, "string", r->string);
4739 _PUBLIC_ size_t ndr_size_spoolss_StringArray(const struct spoolss_StringArray *r, struct smb_iconv_convenience *ic, int flags)
4741 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_StringArray, ic);
4744 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo1 *r)
4746 if (ndr_flags & NDR_SCALARS) {
4747 NDR_CHECK(ndr_push_align(ndr, 4));
4748 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4750 if (ndr_flags & NDR_BUFFERS) {
4751 if (r->driver_name) {
4752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4754 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4755 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4758 return NDR_ERR_SUCCESS;
4761 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo1 *r)
4763 uint32_t _ptr_driver_name;
4764 TALLOC_CTX *_mem_save_driver_name_0;
4765 if (ndr_flags & NDR_SCALARS) {
4766 NDR_CHECK(ndr_pull_align(ndr, 4));
4767 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4768 if (_ptr_driver_name) {
4769 NDR_PULL_ALLOC(ndr, r->driver_name);
4771 r->driver_name = NULL;
4774 if (ndr_flags & NDR_BUFFERS) {
4775 if (r->driver_name) {
4776 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4777 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4778 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4779 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4780 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4781 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
4783 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4784 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4788 return NDR_ERR_SUCCESS;
4791 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo1 *r)
4793 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo1");
4795 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4797 if (r->driver_name) {
4798 ndr_print_string(ndr, "driver_name", r->driver_name);
4804 static enum ndr_err_code ndr_push_spoolss_DriverOSVersion(struct ndr_push *ndr, int ndr_flags, enum spoolss_DriverOSVersion r)
4806 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
4807 return NDR_ERR_SUCCESS;
4810 static enum ndr_err_code ndr_pull_spoolss_DriverOSVersion(struct ndr_pull *ndr, int ndr_flags, enum spoolss_DriverOSVersion *r)
4813 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
4815 return NDR_ERR_SUCCESS;
4818 _PUBLIC_ void ndr_print_spoolss_DriverOSVersion(struct ndr_print *ndr, const char *name, enum spoolss_DriverOSVersion r)
4820 const char *val = NULL;
4823 case SPOOLSS_DRIVER_VERSION_9X: val = "SPOOLSS_DRIVER_VERSION_9X"; break;
4824 case SPOOLSS_DRIVER_VERSION_NT35: val = "SPOOLSS_DRIVER_VERSION_NT35"; break;
4825 case SPOOLSS_DRIVER_VERSION_NT4: val = "SPOOLSS_DRIVER_VERSION_NT4"; break;
4826 case SPOOLSS_DRIVER_VERSION_200X: val = "SPOOLSS_DRIVER_VERSION_200X"; break;
4828 ndr_print_enum(ndr, name, "ENUM", val, r);
4831 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo2 *r)
4833 if (ndr_flags & NDR_SCALARS) {
4834 NDR_CHECK(ndr_push_align(ndr, 4));
4835 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
4836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
4837 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
4838 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
4839 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
4840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
4842 if (ndr_flags & NDR_BUFFERS) {
4843 if (r->driver_name) {
4844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
4847 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4849 if (r->architecture) {
4850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4851 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4852 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
4853 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4855 if (r->driver_path) {
4856 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4857 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
4859 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4862 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4863 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
4865 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4867 if (r->config_file) {
4868 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4869 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
4870 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
4871 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
4874 return NDR_ERR_SUCCESS;
4877 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo2 *r)
4879 uint32_t _ptr_driver_name;
4880 TALLOC_CTX *_mem_save_driver_name_0;
4881 uint32_t _ptr_architecture;
4882 TALLOC_CTX *_mem_save_architecture_0;
4883 uint32_t _ptr_driver_path;
4884 TALLOC_CTX *_mem_save_driver_path_0;
4885 uint32_t _ptr_data_file;
4886 TALLOC_CTX *_mem_save_data_file_0;
4887 uint32_t _ptr_config_file;
4888 TALLOC_CTX *_mem_save_config_file_0;
4889 if (ndr_flags & NDR_SCALARS) {
4890 NDR_CHECK(ndr_pull_align(ndr, 4));
4891 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
4892 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
4893 if (_ptr_driver_name) {
4894 NDR_PULL_ALLOC(ndr, r->driver_name);
4896 r->driver_name = NULL;
4898 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
4899 if (_ptr_architecture) {
4900 NDR_PULL_ALLOC(ndr, r->architecture);
4902 r->architecture = NULL;
4904 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
4905 if (_ptr_driver_path) {
4906 NDR_PULL_ALLOC(ndr, r->driver_path);
4908 r->driver_path = NULL;
4910 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
4911 if (_ptr_data_file) {
4912 NDR_PULL_ALLOC(ndr, r->data_file);
4914 r->data_file = NULL;
4916 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
4917 if (_ptr_config_file) {
4918 NDR_PULL_ALLOC(ndr, r->config_file);
4920 r->config_file = NULL;
4923 if (ndr_flags & NDR_BUFFERS) {
4924 if (r->driver_name) {
4925 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
4926 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
4927 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
4928 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
4929 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
4930 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
4932 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
4933 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
4934 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
4936 if (r->architecture) {
4937 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
4938 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
4939 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
4940 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
4941 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
4942 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
4944 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
4945 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
4946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
4948 if (r->driver_path) {
4949 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
4950 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
4951 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
4952 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
4953 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
4954 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
4956 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
4957 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
4958 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
4961 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4962 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
4963 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
4964 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
4965 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
4966 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
4968 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
4969 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
4970 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
4972 if (r->config_file) {
4973 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
4974 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
4975 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
4976 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
4977 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
4978 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
4980 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
4981 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
4982 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
4985 return NDR_ERR_SUCCESS;
4988 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo2 *r)
4990 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo2");
4992 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
4993 ndr_print_ptr(ndr, "driver_name", r->driver_name);
4995 if (r->driver_name) {
4996 ndr_print_string(ndr, "driver_name", r->driver_name);
4999 ndr_print_ptr(ndr, "architecture", r->architecture);
5001 if (r->architecture) {
5002 ndr_print_string(ndr, "architecture", r->architecture);
5005 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5007 if (r->driver_path) {
5008 ndr_print_string(ndr, "driver_path", r->driver_path);
5011 ndr_print_ptr(ndr, "data_file", r->data_file);
5014 ndr_print_string(ndr, "data_file", r->data_file);
5017 ndr_print_ptr(ndr, "config_file", r->config_file);
5019 if (r->config_file) {
5020 ndr_print_string(ndr, "config_file", r->config_file);
5026 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo3 *r)
5028 if (ndr_flags & NDR_SCALARS) {
5029 NDR_CHECK(ndr_push_align(ndr, 4));
5030 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5032 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5034 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5035 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5036 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5037 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5038 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5040 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5042 if (ndr_flags & NDR_BUFFERS) {
5043 if (r->driver_name) {
5044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5045 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5046 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5047 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5049 if (r->architecture) {
5050 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5051 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5052 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5053 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5055 if (r->driver_path) {
5056 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5057 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5058 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5059 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5062 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5063 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5064 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5065 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5067 if (r->config_file) {
5068 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5069 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5070 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5071 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5074 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5075 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5077 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5079 if (r->monitor_name) {
5080 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5081 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5083 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5085 if (r->default_datatype) {
5086 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5087 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5089 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5091 if (r->dependent_files) {
5092 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5095 return NDR_ERR_SUCCESS;
5098 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo3 *r)
5100 uint32_t _ptr_driver_name;
5101 TALLOC_CTX *_mem_save_driver_name_0;
5102 uint32_t _ptr_architecture;
5103 TALLOC_CTX *_mem_save_architecture_0;
5104 uint32_t _ptr_driver_path;
5105 TALLOC_CTX *_mem_save_driver_path_0;
5106 uint32_t _ptr_data_file;
5107 TALLOC_CTX *_mem_save_data_file_0;
5108 uint32_t _ptr_config_file;
5109 TALLOC_CTX *_mem_save_config_file_0;
5110 uint32_t _ptr_help_file;
5111 TALLOC_CTX *_mem_save_help_file_0;
5112 uint32_t _ptr_monitor_name;
5113 TALLOC_CTX *_mem_save_monitor_name_0;
5114 uint32_t _ptr_default_datatype;
5115 TALLOC_CTX *_mem_save_default_datatype_0;
5116 uint32_t _ptr_dependent_files;
5117 TALLOC_CTX *_mem_save_dependent_files_0;
5118 if (ndr_flags & NDR_SCALARS) {
5119 NDR_CHECK(ndr_pull_align(ndr, 4));
5120 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5122 if (_ptr_driver_name) {
5123 NDR_PULL_ALLOC(ndr, r->driver_name);
5125 r->driver_name = NULL;
5127 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5128 if (_ptr_architecture) {
5129 NDR_PULL_ALLOC(ndr, r->architecture);
5131 r->architecture = NULL;
5133 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5134 if (_ptr_driver_path) {
5135 NDR_PULL_ALLOC(ndr, r->driver_path);
5137 r->driver_path = NULL;
5139 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5140 if (_ptr_data_file) {
5141 NDR_PULL_ALLOC(ndr, r->data_file);
5143 r->data_file = NULL;
5145 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5146 if (_ptr_config_file) {
5147 NDR_PULL_ALLOC(ndr, r->config_file);
5149 r->config_file = NULL;
5151 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5152 if (_ptr_help_file) {
5153 NDR_PULL_ALLOC(ndr, r->help_file);
5155 r->help_file = NULL;
5157 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5158 if (_ptr_monitor_name) {
5159 NDR_PULL_ALLOC(ndr, r->monitor_name);
5161 r->monitor_name = NULL;
5163 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5164 if (_ptr_default_datatype) {
5165 NDR_PULL_ALLOC(ndr, r->default_datatype);
5167 r->default_datatype = NULL;
5169 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5170 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5171 if (_ptr_dependent_files) {
5172 NDR_PULL_ALLOC(ndr, r->dependent_files);
5174 r->dependent_files = NULL;
5177 if (ndr_flags & NDR_BUFFERS) {
5178 if (r->driver_name) {
5179 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5180 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5181 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5182 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5183 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5184 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5186 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5187 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5188 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5190 if (r->architecture) {
5191 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5192 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5193 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5194 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5195 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5196 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
5198 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5199 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5200 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5202 if (r->driver_path) {
5203 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5204 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5205 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5206 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5207 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5208 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
5210 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5211 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5215 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5216 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5217 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5218 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5219 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5220 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
5222 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5223 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5224 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5226 if (r->config_file) {
5227 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5228 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5229 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5230 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5231 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5232 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
5234 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5235 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5236 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5239 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5240 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5241 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5242 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5243 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5244 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
5246 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5247 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5248 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5250 if (r->monitor_name) {
5251 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5252 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5253 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5254 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5255 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5256 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
5258 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5259 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5260 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5262 if (r->default_datatype) {
5263 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5264 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5265 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5266 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5267 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5268 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
5270 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5271 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5274 if (r->dependent_files) {
5275 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5276 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5277 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5278 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5281 return NDR_ERR_SUCCESS;
5284 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo3 *r)
5286 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo3");
5288 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5289 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5291 if (r->driver_name) {
5292 ndr_print_string(ndr, "driver_name", r->driver_name);
5295 ndr_print_ptr(ndr, "architecture", r->architecture);
5297 if (r->architecture) {
5298 ndr_print_string(ndr, "architecture", r->architecture);
5301 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5303 if (r->driver_path) {
5304 ndr_print_string(ndr, "driver_path", r->driver_path);
5307 ndr_print_ptr(ndr, "data_file", r->data_file);
5310 ndr_print_string(ndr, "data_file", r->data_file);
5313 ndr_print_ptr(ndr, "config_file", r->config_file);
5315 if (r->config_file) {
5316 ndr_print_string(ndr, "config_file", r->config_file);
5319 ndr_print_ptr(ndr, "help_file", r->help_file);
5322 ndr_print_string(ndr, "help_file", r->help_file);
5325 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5327 if (r->monitor_name) {
5328 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5331 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5333 if (r->default_datatype) {
5334 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5337 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
5338 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5340 if (r->dependent_files) {
5341 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5347 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo4 *r)
5349 if (ndr_flags & NDR_SCALARS) {
5350 NDR_CHECK(ndr_push_align(ndr, 4));
5351 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5352 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5353 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5354 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5355 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5356 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5357 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5358 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5359 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5360 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5361 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5362 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5363 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5365 if (ndr_flags & NDR_BUFFERS) {
5366 if (r->driver_name) {
5367 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5368 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5370 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5372 if (r->architecture) {
5373 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5375 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5376 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5378 if (r->driver_path) {
5379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5380 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5381 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5382 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5385 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5386 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5387 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5388 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5390 if (r->config_file) {
5391 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5392 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5393 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5394 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5400 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5402 if (r->monitor_name) {
5403 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5404 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5405 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5406 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5408 if (r->default_datatype) {
5409 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5412 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5414 if (r->dependent_files) {
5415 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5417 if (r->previous_names) {
5418 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5421 return NDR_ERR_SUCCESS;
5424 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo4 *r)
5426 uint32_t _ptr_driver_name;
5427 TALLOC_CTX *_mem_save_driver_name_0;
5428 uint32_t _ptr_architecture;
5429 TALLOC_CTX *_mem_save_architecture_0;
5430 uint32_t _ptr_driver_path;
5431 TALLOC_CTX *_mem_save_driver_path_0;
5432 uint32_t _ptr_data_file;
5433 TALLOC_CTX *_mem_save_data_file_0;
5434 uint32_t _ptr_config_file;
5435 TALLOC_CTX *_mem_save_config_file_0;
5436 uint32_t _ptr_help_file;
5437 TALLOC_CTX *_mem_save_help_file_0;
5438 uint32_t _ptr_monitor_name;
5439 TALLOC_CTX *_mem_save_monitor_name_0;
5440 uint32_t _ptr_default_datatype;
5441 TALLOC_CTX *_mem_save_default_datatype_0;
5442 uint32_t _ptr_dependent_files;
5443 TALLOC_CTX *_mem_save_dependent_files_0;
5444 uint32_t _ptr_previous_names;
5445 TALLOC_CTX *_mem_save_previous_names_0;
5446 if (ndr_flags & NDR_SCALARS) {
5447 NDR_CHECK(ndr_pull_align(ndr, 4));
5448 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5449 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5450 if (_ptr_driver_name) {
5451 NDR_PULL_ALLOC(ndr, r->driver_name);
5453 r->driver_name = NULL;
5455 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5456 if (_ptr_architecture) {
5457 NDR_PULL_ALLOC(ndr, r->architecture);
5459 r->architecture = NULL;
5461 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5462 if (_ptr_driver_path) {
5463 NDR_PULL_ALLOC(ndr, r->driver_path);
5465 r->driver_path = NULL;
5467 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5468 if (_ptr_data_file) {
5469 NDR_PULL_ALLOC(ndr, r->data_file);
5471 r->data_file = NULL;
5473 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5474 if (_ptr_config_file) {
5475 NDR_PULL_ALLOC(ndr, r->config_file);
5477 r->config_file = NULL;
5479 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5480 if (_ptr_help_file) {
5481 NDR_PULL_ALLOC(ndr, r->help_file);
5483 r->help_file = NULL;
5485 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5486 if (_ptr_monitor_name) {
5487 NDR_PULL_ALLOC(ndr, r->monitor_name);
5489 r->monitor_name = NULL;
5491 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5492 if (_ptr_default_datatype) {
5493 NDR_PULL_ALLOC(ndr, r->default_datatype);
5495 r->default_datatype = NULL;
5497 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5498 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5499 if (_ptr_dependent_files) {
5500 NDR_PULL_ALLOC(ndr, r->dependent_files);
5502 r->dependent_files = NULL;
5504 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5505 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5506 if (_ptr_previous_names) {
5507 NDR_PULL_ALLOC(ndr, r->previous_names);
5509 r->previous_names = NULL;
5512 if (ndr_flags & NDR_BUFFERS) {
5513 if (r->driver_name) {
5514 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5515 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5516 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5517 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5518 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5519 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5521 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5522 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5523 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5525 if (r->architecture) {
5526 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5527 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5528 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5529 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5530 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5531 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
5533 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5534 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5535 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5537 if (r->driver_path) {
5538 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5539 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5540 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5541 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5542 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5543 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
5545 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5546 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5547 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5550 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5551 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5552 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5553 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5554 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5555 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
5557 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5558 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5561 if (r->config_file) {
5562 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5563 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5564 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5565 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5566 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5567 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
5569 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5570 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5571 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5574 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5575 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5576 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5577 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5578 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5579 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
5581 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5582 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5585 if (r->monitor_name) {
5586 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5587 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
5588 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
5589 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
5590 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
5591 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
5593 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
5594 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
5595 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
5597 if (r->default_datatype) {
5598 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
5599 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
5600 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
5601 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
5602 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
5603 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
5605 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
5606 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
5607 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
5609 if (r->dependent_files) {
5610 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
5611 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
5612 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5613 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
5615 if (r->previous_names) {
5616 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
5617 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
5618 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5619 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
5622 return NDR_ERR_SUCCESS;
5625 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo4 *r)
5627 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo4");
5629 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
5630 ndr_print_ptr(ndr, "driver_name", r->driver_name);
5632 if (r->driver_name) {
5633 ndr_print_string(ndr, "driver_name", r->driver_name);
5636 ndr_print_ptr(ndr, "architecture", r->architecture);
5638 if (r->architecture) {
5639 ndr_print_string(ndr, "architecture", r->architecture);
5642 ndr_print_ptr(ndr, "driver_path", r->driver_path);
5644 if (r->driver_path) {
5645 ndr_print_string(ndr, "driver_path", r->driver_path);
5648 ndr_print_ptr(ndr, "data_file", r->data_file);
5651 ndr_print_string(ndr, "data_file", r->data_file);
5654 ndr_print_ptr(ndr, "config_file", r->config_file);
5656 if (r->config_file) {
5657 ndr_print_string(ndr, "config_file", r->config_file);
5660 ndr_print_ptr(ndr, "help_file", r->help_file);
5663 ndr_print_string(ndr, "help_file", r->help_file);
5666 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
5668 if (r->monitor_name) {
5669 ndr_print_string(ndr, "monitor_name", r->monitor_name);
5672 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
5674 if (r->default_datatype) {
5675 ndr_print_string(ndr, "default_datatype", r->default_datatype);
5678 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
5679 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
5681 if (r->dependent_files) {
5682 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
5685 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
5686 ndr_print_ptr(ndr, "previous_names", r->previous_names);
5688 if (r->previous_names) {
5689 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
5695 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo6 *r)
5697 if (ndr_flags & NDR_SCALARS) {
5698 NDR_CHECK(ndr_push_align(ndr, 8));
5699 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
5700 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
5701 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
5702 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
5703 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
5704 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
5705 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
5706 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
5707 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
5708 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
5710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
5711 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
5712 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
5713 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
5714 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
5715 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
5716 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
5717 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
5719 if (ndr_flags & NDR_BUFFERS) {
5720 if (r->driver_name) {
5721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5722 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
5724 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5726 if (r->architecture) {
5727 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5728 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5729 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
5730 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5732 if (r->driver_path) {
5733 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5734 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5735 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
5736 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5739 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5740 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5741 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
5742 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5744 if (r->config_file) {
5745 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
5748 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5751 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5753 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
5754 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5756 if (r->monitor_name) {
5757 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5758 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5759 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
5760 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5762 if (r->default_datatype) {
5763 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5764 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5765 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
5766 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5768 if (r->dependent_files) {
5769 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
5771 if (r->previous_names) {
5772 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
5774 if (r->manufacturer_name) {
5775 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5776 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5777 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
5778 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5780 if (r->manufacturer_url) {
5781 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5782 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5783 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
5784 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5786 if (r->hardware_id) {
5787 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
5790 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5793 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5794 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
5795 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
5796 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
5799 return NDR_ERR_SUCCESS;
5802 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo6 *r)
5804 uint32_t _ptr_driver_name;
5805 TALLOC_CTX *_mem_save_driver_name_0;
5806 uint32_t _ptr_architecture;
5807 TALLOC_CTX *_mem_save_architecture_0;
5808 uint32_t _ptr_driver_path;
5809 TALLOC_CTX *_mem_save_driver_path_0;
5810 uint32_t _ptr_data_file;
5811 TALLOC_CTX *_mem_save_data_file_0;
5812 uint32_t _ptr_config_file;
5813 TALLOC_CTX *_mem_save_config_file_0;
5814 uint32_t _ptr_help_file;
5815 TALLOC_CTX *_mem_save_help_file_0;
5816 uint32_t _ptr_monitor_name;
5817 TALLOC_CTX *_mem_save_monitor_name_0;
5818 uint32_t _ptr_default_datatype;
5819 TALLOC_CTX *_mem_save_default_datatype_0;
5820 uint32_t _ptr_dependent_files;
5821 TALLOC_CTX *_mem_save_dependent_files_0;
5822 uint32_t _ptr_previous_names;
5823 TALLOC_CTX *_mem_save_previous_names_0;
5824 uint32_t _ptr_manufacturer_name;
5825 TALLOC_CTX *_mem_save_manufacturer_name_0;
5826 uint32_t _ptr_manufacturer_url;
5827 TALLOC_CTX *_mem_save_manufacturer_url_0;
5828 uint32_t _ptr_hardware_id;
5829 TALLOC_CTX *_mem_save_hardware_id_0;
5830 uint32_t _ptr_provider;
5831 TALLOC_CTX *_mem_save_provider_0;
5832 if (ndr_flags & NDR_SCALARS) {
5833 NDR_CHECK(ndr_pull_align(ndr, 8));
5834 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
5835 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
5836 if (_ptr_driver_name) {
5837 NDR_PULL_ALLOC(ndr, r->driver_name);
5839 r->driver_name = NULL;
5841 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
5842 if (_ptr_architecture) {
5843 NDR_PULL_ALLOC(ndr, r->architecture);
5845 r->architecture = NULL;
5847 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
5848 if (_ptr_driver_path) {
5849 NDR_PULL_ALLOC(ndr, r->driver_path);
5851 r->driver_path = NULL;
5853 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
5854 if (_ptr_data_file) {
5855 NDR_PULL_ALLOC(ndr, r->data_file);
5857 r->data_file = NULL;
5859 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
5860 if (_ptr_config_file) {
5861 NDR_PULL_ALLOC(ndr, r->config_file);
5863 r->config_file = NULL;
5865 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
5866 if (_ptr_help_file) {
5867 NDR_PULL_ALLOC(ndr, r->help_file);
5869 r->help_file = NULL;
5871 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
5872 if (_ptr_monitor_name) {
5873 NDR_PULL_ALLOC(ndr, r->monitor_name);
5875 r->monitor_name = NULL;
5877 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
5878 if (_ptr_default_datatype) {
5879 NDR_PULL_ALLOC(ndr, r->default_datatype);
5881 r->default_datatype = NULL;
5883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
5884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
5885 if (_ptr_dependent_files) {
5886 NDR_PULL_ALLOC(ndr, r->dependent_files);
5888 r->dependent_files = NULL;
5890 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
5891 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
5892 if (_ptr_previous_names) {
5893 NDR_PULL_ALLOC(ndr, r->previous_names);
5895 r->previous_names = NULL;
5897 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
5898 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
5899 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
5900 if (_ptr_manufacturer_name) {
5901 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
5903 r->manufacturer_name = NULL;
5905 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
5906 if (_ptr_manufacturer_url) {
5907 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
5909 r->manufacturer_url = NULL;
5911 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
5912 if (_ptr_hardware_id) {
5913 NDR_PULL_ALLOC(ndr, r->hardware_id);
5915 r->hardware_id = NULL;
5917 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
5918 if (_ptr_provider) {
5919 NDR_PULL_ALLOC(ndr, r->provider);
5924 if (ndr_flags & NDR_BUFFERS) {
5925 if (r->driver_name) {
5926 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5927 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
5928 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
5929 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
5930 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
5931 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
5933 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
5934 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
5935 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
5937 if (r->architecture) {
5938 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
5939 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
5940 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
5941 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
5942 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
5943 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
5945 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
5946 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
5947 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
5949 if (r->driver_path) {
5950 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
5951 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
5952 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
5953 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
5954 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
5955 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
5957 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
5958 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
5959 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
5962 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5963 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
5964 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
5965 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
5966 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
5967 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
5969 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
5970 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
5971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
5973 if (r->config_file) {
5974 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5975 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
5976 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
5977 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
5978 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
5979 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
5981 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
5982 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
5983 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
5986 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
5987 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
5988 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
5989 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
5990 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
5991 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
5993 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
5994 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
5995 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
5997 if (r->monitor_name) {
5998 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
5999 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
6000 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
6001 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
6002 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
6003 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
6005 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6006 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6007 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6009 if (r->default_datatype) {
6010 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6011 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6012 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6013 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6014 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6015 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
6017 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6018 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6019 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6021 if (r->dependent_files) {
6022 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6023 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6024 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6027 if (r->previous_names) {
6028 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6029 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6030 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6031 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6033 if (r->manufacturer_name) {
6034 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6035 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6036 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6037 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6038 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6039 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
6041 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6042 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6045 if (r->manufacturer_url) {
6046 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6047 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6048 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6049 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6050 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6051 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
6053 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6054 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6055 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6057 if (r->hardware_id) {
6058 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6059 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6060 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6061 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6062 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6063 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
6065 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6066 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6067 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6070 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6071 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6072 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6073 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6074 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6075 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
6077 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6078 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6082 return NDR_ERR_SUCCESS;
6085 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo6 *r)
6087 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo6");
6089 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6090 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6092 if (r->driver_name) {
6093 ndr_print_string(ndr, "driver_name", r->driver_name);
6096 ndr_print_ptr(ndr, "architecture", r->architecture);
6098 if (r->architecture) {
6099 ndr_print_string(ndr, "architecture", r->architecture);
6102 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6104 if (r->driver_path) {
6105 ndr_print_string(ndr, "driver_path", r->driver_path);
6108 ndr_print_ptr(ndr, "data_file", r->data_file);
6111 ndr_print_string(ndr, "data_file", r->data_file);
6114 ndr_print_ptr(ndr, "config_file", r->config_file);
6116 if (r->config_file) {
6117 ndr_print_string(ndr, "config_file", r->config_file);
6120 ndr_print_ptr(ndr, "help_file", r->help_file);
6123 ndr_print_string(ndr, "help_file", r->help_file);
6126 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6128 if (r->monitor_name) {
6129 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6132 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6134 if (r->default_datatype) {
6135 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6138 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
6139 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6141 if (r->dependent_files) {
6142 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6145 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
6146 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6148 if (r->previous_names) {
6149 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6152 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6153 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6154 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6156 if (r->manufacturer_name) {
6157 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6160 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6162 if (r->manufacturer_url) {
6163 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6166 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6168 if (r->hardware_id) {
6169 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6172 ndr_print_ptr(ndr, "provider", r->provider);
6175 ndr_print_string(ndr, "provider", r->provider);
6181 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfo8 *r)
6183 if (ndr_flags & NDR_SCALARS) {
6184 NDR_CHECK(ndr_push_align(ndr, 8));
6185 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
6186 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_name));
6187 NDR_CHECK(ndr_push_unique_ptr(ndr, r->architecture));
6188 NDR_CHECK(ndr_push_unique_ptr(ndr, r->driver_path));
6189 NDR_CHECK(ndr_push_unique_ptr(ndr, r->data_file));
6190 NDR_CHECK(ndr_push_unique_ptr(ndr, r->config_file));
6191 NDR_CHECK(ndr_push_unique_ptr(ndr, r->help_file));
6192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->monitor_name));
6193 NDR_CHECK(ndr_push_unique_ptr(ndr, r->default_datatype));
6194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6195 NDR_CHECK(ndr_push_unique_ptr(ndr, r->dependent_files));
6196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6197 NDR_CHECK(ndr_push_unique_ptr(ndr, r->previous_names));
6198 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
6199 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
6200 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_name));
6201 NDR_CHECK(ndr_push_unique_ptr(ndr, r->manufacturer_url));
6202 NDR_CHECK(ndr_push_unique_ptr(ndr, r->hardware_id));
6203 NDR_CHECK(ndr_push_unique_ptr(ndr, r->provider));
6204 NDR_CHECK(ndr_push_unique_ptr(ndr, r->print_processor));
6205 NDR_CHECK(ndr_push_unique_ptr(ndr, r->vendor_setup));
6206 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6207 NDR_CHECK(ndr_push_unique_ptr(ndr, r->color_profiles));
6208 NDR_CHECK(ndr_push_unique_ptr(ndr, r->inf_path));
6209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
6210 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2)));
6211 NDR_CHECK(ndr_push_unique_ptr(ndr, r->core_driver_dependencies));
6212 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
6213 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
6215 if (ndr_flags & NDR_BUFFERS) {
6216 if (r->driver_name) {
6217 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6218 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6219 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_name, CH_UTF16)));
6220 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_name, ndr_charset_length(r->driver_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6222 if (r->architecture) {
6223 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->architecture, CH_UTF16)));
6226 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->architecture, ndr_charset_length(r->architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6228 if (r->driver_path) {
6229 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6231 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->driver_path, CH_UTF16)));
6232 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->driver_path, ndr_charset_length(r->driver_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6236 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6237 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->data_file, CH_UTF16)));
6238 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->data_file, ndr_charset_length(r->data_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6240 if (r->config_file) {
6241 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6242 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6243 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->config_file, CH_UTF16)));
6244 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->config_file, ndr_charset_length(r->config_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6247 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6248 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->help_file, CH_UTF16)));
6250 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->help_file, ndr_charset_length(r->help_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6252 if (r->monitor_name) {
6253 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6254 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6255 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->monitor_name, CH_UTF16)));
6256 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->monitor_name, ndr_charset_length(r->monitor_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6258 if (r->default_datatype) {
6259 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6260 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6261 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->default_datatype, CH_UTF16)));
6262 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->default_datatype, ndr_charset_length(r->default_datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6264 if (r->dependent_files) {
6265 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6267 if (r->previous_names) {
6268 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6270 if (r->manufacturer_name) {
6271 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6273 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_name, CH_UTF16)));
6274 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_name, ndr_charset_length(r->manufacturer_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6276 if (r->manufacturer_url) {
6277 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6279 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->manufacturer_url, CH_UTF16)));
6280 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->manufacturer_url, ndr_charset_length(r->manufacturer_url, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6282 if (r->hardware_id) {
6283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6284 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->hardware_id, CH_UTF16)));
6286 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_id, ndr_charset_length(r->hardware_id, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6289 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6290 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6291 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->provider, CH_UTF16)));
6292 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->provider, ndr_charset_length(r->provider, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6294 if (r->print_processor) {
6295 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6296 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6297 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->print_processor, CH_UTF16)));
6298 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->print_processor, ndr_charset_length(r->print_processor, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6300 if (r->vendor_setup) {
6301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6302 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->vendor_setup, CH_UTF16)));
6304 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->vendor_setup, ndr_charset_length(r->vendor_setup, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6306 if (r->color_profiles) {
6307 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6310 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
6312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->inf_path, CH_UTF16)));
6313 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->inf_path, ndr_charset_length(r->inf_path, CH_UTF16), sizeof(uint16_t), CH_UTF16));
6315 if (r->core_driver_dependencies) {
6316 NDR_CHECK(ndr_push_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6319 return NDR_ERR_SUCCESS;
6322 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfo8 *r)
6324 uint32_t _ptr_driver_name;
6325 TALLOC_CTX *_mem_save_driver_name_0;
6326 uint32_t _ptr_architecture;
6327 TALLOC_CTX *_mem_save_architecture_0;
6328 uint32_t _ptr_driver_path;
6329 TALLOC_CTX *_mem_save_driver_path_0;
6330 uint32_t _ptr_data_file;
6331 TALLOC_CTX *_mem_save_data_file_0;
6332 uint32_t _ptr_config_file;
6333 TALLOC_CTX *_mem_save_config_file_0;
6334 uint32_t _ptr_help_file;
6335 TALLOC_CTX *_mem_save_help_file_0;
6336 uint32_t _ptr_monitor_name;
6337 TALLOC_CTX *_mem_save_monitor_name_0;
6338 uint32_t _ptr_default_datatype;
6339 TALLOC_CTX *_mem_save_default_datatype_0;
6340 uint32_t _ptr_dependent_files;
6341 TALLOC_CTX *_mem_save_dependent_files_0;
6342 uint32_t _ptr_previous_names;
6343 TALLOC_CTX *_mem_save_previous_names_0;
6344 uint32_t _ptr_manufacturer_name;
6345 TALLOC_CTX *_mem_save_manufacturer_name_0;
6346 uint32_t _ptr_manufacturer_url;
6347 TALLOC_CTX *_mem_save_manufacturer_url_0;
6348 uint32_t _ptr_hardware_id;
6349 TALLOC_CTX *_mem_save_hardware_id_0;
6350 uint32_t _ptr_provider;
6351 TALLOC_CTX *_mem_save_provider_0;
6352 uint32_t _ptr_print_processor;
6353 TALLOC_CTX *_mem_save_print_processor_0;
6354 uint32_t _ptr_vendor_setup;
6355 TALLOC_CTX *_mem_save_vendor_setup_0;
6356 uint32_t _ptr_color_profiles;
6357 TALLOC_CTX *_mem_save_color_profiles_0;
6358 uint32_t _ptr_inf_path;
6359 TALLOC_CTX *_mem_save_inf_path_0;
6360 uint32_t _ptr_core_driver_dependencies;
6361 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
6362 if (ndr_flags & NDR_SCALARS) {
6363 NDR_CHECK(ndr_pull_align(ndr, 8));
6364 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
6365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
6366 if (_ptr_driver_name) {
6367 NDR_PULL_ALLOC(ndr, r->driver_name);
6369 r->driver_name = NULL;
6371 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
6372 if (_ptr_architecture) {
6373 NDR_PULL_ALLOC(ndr, r->architecture);
6375 r->architecture = NULL;
6377 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
6378 if (_ptr_driver_path) {
6379 NDR_PULL_ALLOC(ndr, r->driver_path);
6381 r->driver_path = NULL;
6383 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
6384 if (_ptr_data_file) {
6385 NDR_PULL_ALLOC(ndr, r->data_file);
6387 r->data_file = NULL;
6389 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
6390 if (_ptr_config_file) {
6391 NDR_PULL_ALLOC(ndr, r->config_file);
6393 r->config_file = NULL;
6395 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
6396 if (_ptr_help_file) {
6397 NDR_PULL_ALLOC(ndr, r->help_file);
6399 r->help_file = NULL;
6401 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
6402 if (_ptr_monitor_name) {
6403 NDR_PULL_ALLOC(ndr, r->monitor_name);
6405 r->monitor_name = NULL;
6407 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
6408 if (_ptr_default_datatype) {
6409 NDR_PULL_ALLOC(ndr, r->default_datatype);
6411 r->default_datatype = NULL;
6413 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_dependent_files));
6414 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
6415 if (_ptr_dependent_files) {
6416 NDR_PULL_ALLOC(ndr, r->dependent_files);
6418 r->dependent_files = NULL;
6420 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_previous_names));
6421 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
6422 if (_ptr_previous_names) {
6423 NDR_PULL_ALLOC(ndr, r->previous_names);
6425 r->previous_names = NULL;
6427 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
6428 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
6429 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
6430 if (_ptr_manufacturer_name) {
6431 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
6433 r->manufacturer_name = NULL;
6435 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
6436 if (_ptr_manufacturer_url) {
6437 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
6439 r->manufacturer_url = NULL;
6441 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
6442 if (_ptr_hardware_id) {
6443 NDR_PULL_ALLOC(ndr, r->hardware_id);
6445 r->hardware_id = NULL;
6447 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
6448 if (_ptr_provider) {
6449 NDR_PULL_ALLOC(ndr, r->provider);
6453 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
6454 if (_ptr_print_processor) {
6455 NDR_PULL_ALLOC(ndr, r->print_processor);
6457 r->print_processor = NULL;
6459 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
6460 if (_ptr_vendor_setup) {
6461 NDR_PULL_ALLOC(ndr, r->vendor_setup);
6463 r->vendor_setup = NULL;
6465 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_color_profiles));
6466 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
6467 if (_ptr_color_profiles) {
6468 NDR_PULL_ALLOC(ndr, r->color_profiles);
6470 r->color_profiles = NULL;
6472 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
6473 if (_ptr_inf_path) {
6474 NDR_PULL_ALLOC(ndr, r->inf_path);
6478 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
6479 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size_core_driver_dependencies));
6480 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
6481 if (_ptr_core_driver_dependencies) {
6482 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
6484 r->core_driver_dependencies = NULL;
6486 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
6487 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
6489 if (ndr_flags & NDR_BUFFERS) {
6490 if (r->driver_name) {
6491 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6492 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
6493 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_name));
6494 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_name));
6495 if (ndr_get_array_length(ndr, &r->driver_name) > ndr_get_array_size(ndr, &r->driver_name)) {
6496 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_name), ndr_get_array_length(ndr, &r->driver_name));
6498 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t)));
6499 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_name, ndr_get_array_length(ndr, &r->driver_name), sizeof(uint16_t), CH_UTF16));
6500 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
6502 if (r->architecture) {
6503 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
6504 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
6505 NDR_CHECK(ndr_pull_array_size(ndr, &r->architecture));
6506 NDR_CHECK(ndr_pull_array_length(ndr, &r->architecture));
6507 if (ndr_get_array_length(ndr, &r->architecture) > ndr_get_array_size(ndr, &r->architecture)) {
6508 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->architecture), ndr_get_array_length(ndr, &r->architecture));
6510 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t)));
6511 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->architecture, ndr_get_array_length(ndr, &r->architecture), sizeof(uint16_t), CH_UTF16));
6512 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
6514 if (r->driver_path) {
6515 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6516 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
6517 NDR_CHECK(ndr_pull_array_size(ndr, &r->driver_path));
6518 NDR_CHECK(ndr_pull_array_length(ndr, &r->driver_path));
6519 if (ndr_get_array_length(ndr, &r->driver_path) > ndr_get_array_size(ndr, &r->driver_path)) {
6520 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->driver_path), ndr_get_array_length(ndr, &r->driver_path));
6522 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t)));
6523 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->driver_path, ndr_get_array_length(ndr, &r->driver_path), sizeof(uint16_t), CH_UTF16));
6524 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
6527 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6528 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
6529 NDR_CHECK(ndr_pull_array_size(ndr, &r->data_file));
6530 NDR_CHECK(ndr_pull_array_length(ndr, &r->data_file));
6531 if (ndr_get_array_length(ndr, &r->data_file) > ndr_get_array_size(ndr, &r->data_file)) {
6532 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->data_file), ndr_get_array_length(ndr, &r->data_file));
6534 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t)));
6535 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->data_file, ndr_get_array_length(ndr, &r->data_file), sizeof(uint16_t), CH_UTF16));
6536 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
6538 if (r->config_file) {
6539 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6540 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
6541 NDR_CHECK(ndr_pull_array_size(ndr, &r->config_file));
6542 NDR_CHECK(ndr_pull_array_length(ndr, &r->config_file));
6543 if (ndr_get_array_length(ndr, &r->config_file) > ndr_get_array_size(ndr, &r->config_file)) {
6544 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->config_file), ndr_get_array_length(ndr, &r->config_file));
6546 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t)));
6547 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->config_file, ndr_get_array_length(ndr, &r->config_file), sizeof(uint16_t), CH_UTF16));
6548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
6551 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
6552 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
6553 NDR_CHECK(ndr_pull_array_size(ndr, &r->help_file));
6554 NDR_CHECK(ndr_pull_array_length(ndr, &r->help_file));
6555 if (ndr_get_array_length(ndr, &r->help_file) > ndr_get_array_size(ndr, &r->help_file)) {
6556 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->help_file), ndr_get_array_length(ndr, &r->help_file));
6558 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t)));
6559 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->help_file, ndr_get_array_length(ndr, &r->help_file), sizeof(uint16_t), CH_UTF16));
6560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
6562 if (r->monitor_name) {
6563 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6564 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
6565 NDR_CHECK(ndr_pull_array_size(ndr, &r->monitor_name));
6566 NDR_CHECK(ndr_pull_array_length(ndr, &r->monitor_name));
6567 if (ndr_get_array_length(ndr, &r->monitor_name) > ndr_get_array_size(ndr, &r->monitor_name)) {
6568 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->monitor_name), ndr_get_array_length(ndr, &r->monitor_name));
6570 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t)));
6571 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->monitor_name, ndr_get_array_length(ndr, &r->monitor_name), sizeof(uint16_t), CH_UTF16));
6572 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
6574 if (r->default_datatype) {
6575 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
6576 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
6577 NDR_CHECK(ndr_pull_array_size(ndr, &r->default_datatype));
6578 NDR_CHECK(ndr_pull_array_length(ndr, &r->default_datatype));
6579 if (ndr_get_array_length(ndr, &r->default_datatype) > ndr_get_array_size(ndr, &r->default_datatype)) {
6580 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->default_datatype), ndr_get_array_length(ndr, &r->default_datatype));
6582 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t)));
6583 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->default_datatype, ndr_get_array_length(ndr, &r->default_datatype), sizeof(uint16_t), CH_UTF16));
6584 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
6586 if (r->dependent_files) {
6587 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
6588 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
6589 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->dependent_files));
6590 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
6592 if (r->previous_names) {
6593 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
6594 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
6595 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->previous_names));
6596 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
6598 if (r->manufacturer_name) {
6599 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
6600 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
6601 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_name));
6602 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_name));
6603 if (ndr_get_array_length(ndr, &r->manufacturer_name) > ndr_get_array_size(ndr, &r->manufacturer_name)) {
6604 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_name), ndr_get_array_length(ndr, &r->manufacturer_name));
6606 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t)));
6607 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_name, ndr_get_array_length(ndr, &r->manufacturer_name), sizeof(uint16_t), CH_UTF16));
6608 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
6610 if (r->manufacturer_url) {
6611 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
6612 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
6613 NDR_CHECK(ndr_pull_array_size(ndr, &r->manufacturer_url));
6614 NDR_CHECK(ndr_pull_array_length(ndr, &r->manufacturer_url));
6615 if (ndr_get_array_length(ndr, &r->manufacturer_url) > ndr_get_array_size(ndr, &r->manufacturer_url)) {
6616 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->manufacturer_url), ndr_get_array_length(ndr, &r->manufacturer_url));
6618 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t)));
6619 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->manufacturer_url, ndr_get_array_length(ndr, &r->manufacturer_url), sizeof(uint16_t), CH_UTF16));
6620 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
6622 if (r->hardware_id) {
6623 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
6624 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
6625 NDR_CHECK(ndr_pull_array_size(ndr, &r->hardware_id));
6626 NDR_CHECK(ndr_pull_array_length(ndr, &r->hardware_id));
6627 if (ndr_get_array_length(ndr, &r->hardware_id) > ndr_get_array_size(ndr, &r->hardware_id)) {
6628 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->hardware_id), ndr_get_array_length(ndr, &r->hardware_id));
6630 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t)));
6631 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_id, ndr_get_array_length(ndr, &r->hardware_id), sizeof(uint16_t), CH_UTF16));
6632 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
6635 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
6636 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
6637 NDR_CHECK(ndr_pull_array_size(ndr, &r->provider));
6638 NDR_CHECK(ndr_pull_array_length(ndr, &r->provider));
6639 if (ndr_get_array_length(ndr, &r->provider) > ndr_get_array_size(ndr, &r->provider)) {
6640 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->provider), ndr_get_array_length(ndr, &r->provider));
6642 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t)));
6643 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->provider, ndr_get_array_length(ndr, &r->provider), sizeof(uint16_t), CH_UTF16));
6644 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
6646 if (r->print_processor) {
6647 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
6648 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
6649 NDR_CHECK(ndr_pull_array_size(ndr, &r->print_processor));
6650 NDR_CHECK(ndr_pull_array_length(ndr, &r->print_processor));
6651 if (ndr_get_array_length(ndr, &r->print_processor) > ndr_get_array_size(ndr, &r->print_processor)) {
6652 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->print_processor), ndr_get_array_length(ndr, &r->print_processor));
6654 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t)));
6655 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->print_processor, ndr_get_array_length(ndr, &r->print_processor), sizeof(uint16_t), CH_UTF16));
6656 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
6658 if (r->vendor_setup) {
6659 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
6660 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
6661 NDR_CHECK(ndr_pull_array_size(ndr, &r->vendor_setup));
6662 NDR_CHECK(ndr_pull_array_length(ndr, &r->vendor_setup));
6663 if (ndr_get_array_length(ndr, &r->vendor_setup) > ndr_get_array_size(ndr, &r->vendor_setup)) {
6664 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->vendor_setup), ndr_get_array_length(ndr, &r->vendor_setup));
6666 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t)));
6667 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->vendor_setup, ndr_get_array_length(ndr, &r->vendor_setup), sizeof(uint16_t), CH_UTF16));
6668 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
6670 if (r->color_profiles) {
6671 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
6672 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
6673 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->color_profiles));
6674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
6677 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
6678 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
6679 NDR_CHECK(ndr_pull_array_size(ndr, &r->inf_path));
6680 NDR_CHECK(ndr_pull_array_length(ndr, &r->inf_path));
6681 if (ndr_get_array_length(ndr, &r->inf_path) > ndr_get_array_size(ndr, &r->inf_path)) {
6682 return ndr_pull_error(ndr, NDR_ERR_ARRAY_SIZE, "Bad array size %u should exceed array length %u", ndr_get_array_size(ndr, &r->inf_path), ndr_get_array_length(ndr, &r->inf_path));
6684 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t)));
6685 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->inf_path, ndr_get_array_length(ndr, &r->inf_path), sizeof(uint16_t), CH_UTF16));
6686 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
6688 if (r->core_driver_dependencies) {
6689 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
6690 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
6691 NDR_CHECK(ndr_pull_spoolss_StringArray(ndr, NDR_SCALARS, r->core_driver_dependencies));
6692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
6695 return NDR_ERR_SUCCESS;
6698 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfo8 *r)
6700 ndr_print_struct(ndr, name, "spoolss_AddDriverInfo8");
6702 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
6703 ndr_print_ptr(ndr, "driver_name", r->driver_name);
6705 if (r->driver_name) {
6706 ndr_print_string(ndr, "driver_name", r->driver_name);
6709 ndr_print_ptr(ndr, "architecture", r->architecture);
6711 if (r->architecture) {
6712 ndr_print_string(ndr, "architecture", r->architecture);
6715 ndr_print_ptr(ndr, "driver_path", r->driver_path);
6717 if (r->driver_path) {
6718 ndr_print_string(ndr, "driver_path", r->driver_path);
6721 ndr_print_ptr(ndr, "data_file", r->data_file);
6724 ndr_print_string(ndr, "data_file", r->data_file);
6727 ndr_print_ptr(ndr, "config_file", r->config_file);
6729 if (r->config_file) {
6730 ndr_print_string(ndr, "config_file", r->config_file);
6733 ndr_print_ptr(ndr, "help_file", r->help_file);
6736 ndr_print_string(ndr, "help_file", r->help_file);
6739 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
6741 if (r->monitor_name) {
6742 ndr_print_string(ndr, "monitor_name", r->monitor_name);
6745 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
6747 if (r->default_datatype) {
6748 ndr_print_string(ndr, "default_datatype", r->default_datatype);
6751 ndr_print_uint32(ndr, "_ndr_size_dependent_files", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->dependent_files, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_dependent_files);
6752 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
6754 if (r->dependent_files) {
6755 ndr_print_spoolss_StringArray(ndr, "dependent_files", r->dependent_files);
6758 ndr_print_uint32(ndr, "_ndr_size_previous_names", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->previous_names, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_previous_names);
6759 ndr_print_ptr(ndr, "previous_names", r->previous_names);
6761 if (r->previous_names) {
6762 ndr_print_spoolss_StringArray(ndr, "previous_names", r->previous_names);
6765 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
6766 ndr_print_hyper(ndr, "driver_version", r->driver_version);
6767 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
6769 if (r->manufacturer_name) {
6770 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
6773 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
6775 if (r->manufacturer_url) {
6776 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
6779 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
6781 if (r->hardware_id) {
6782 ndr_print_string(ndr, "hardware_id", r->hardware_id);
6785 ndr_print_ptr(ndr, "provider", r->provider);
6788 ndr_print_string(ndr, "provider", r->provider);
6791 ndr_print_ptr(ndr, "print_processor", r->print_processor);
6793 if (r->print_processor) {
6794 ndr_print_string(ndr, "print_processor", r->print_processor);
6797 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
6799 if (r->vendor_setup) {
6800 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
6803 ndr_print_uint32(ndr, "_ndr_size_color_profiles", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->color_profiles, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_color_profiles);
6804 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
6806 if (r->color_profiles) {
6807 ndr_print_spoolss_StringArray(ndr, "color_profiles", r->color_profiles);
6810 ndr_print_ptr(ndr, "inf_path", r->inf_path);
6813 ndr_print_string(ndr, "inf_path", r->inf_path);
6816 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
6817 ndr_print_uint32(ndr, "_ndr_size_core_driver_dependencies", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?((ndr_size_spoolss_StringArray(r->core_driver_dependencies, ndr->iconv_convenience, ndr->flags) - 4) / 2):r->_ndr_size_core_driver_dependencies);
6818 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6820 if (r->core_driver_dependencies) {
6821 ndr_print_spoolss_StringArray(ndr, "core_driver_dependencies", r->core_driver_dependencies);
6824 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
6825 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
6829 static enum ndr_err_code ndr_push_spoolss_AddDriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddDriverInfo *r)
6831 if (ndr_flags & NDR_SCALARS) {
6832 int level = ndr_push_get_switch_value(ndr, r);
6833 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
6836 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
6840 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info2));
6844 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info3));
6848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info4));
6852 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info6));
6856 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info8));
6860 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6863 if (ndr_flags & NDR_BUFFERS) {
6864 int level = ndr_push_get_switch_value(ndr, r);
6868 NDR_CHECK(ndr_push_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6874 NDR_CHECK(ndr_push_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
6880 NDR_CHECK(ndr_push_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
6886 NDR_CHECK(ndr_push_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
6892 NDR_CHECK(ndr_push_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
6898 NDR_CHECK(ndr_push_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
6903 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6906 return NDR_ERR_SUCCESS;
6909 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddDriverInfo *r)
6913 TALLOC_CTX *_mem_save_info1_0;
6914 TALLOC_CTX *_mem_save_info2_0;
6915 TALLOC_CTX *_mem_save_info3_0;
6916 TALLOC_CTX *_mem_save_info4_0;
6917 TALLOC_CTX *_mem_save_info6_0;
6918 TALLOC_CTX *_mem_save_info8_0;
6919 level = ndr_pull_get_switch_value(ndr, r);
6920 if (ndr_flags & NDR_SCALARS) {
6921 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
6922 if (_level != level) {
6923 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
6927 uint32_t _ptr_info1;
6928 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
6930 NDR_PULL_ALLOC(ndr, r->info1);
6937 uint32_t _ptr_info2;
6938 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info2));
6940 NDR_PULL_ALLOC(ndr, r->info2);
6947 uint32_t _ptr_info3;
6948 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info3));
6950 NDR_PULL_ALLOC(ndr, r->info3);
6957 uint32_t _ptr_info4;
6958 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info4));
6960 NDR_PULL_ALLOC(ndr, r->info4);
6967 uint32_t _ptr_info6;
6968 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info6));
6970 NDR_PULL_ALLOC(ndr, r->info6);
6977 uint32_t _ptr_info8;
6978 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info8));
6980 NDR_PULL_ALLOC(ndr, r->info8);
6987 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
6990 if (ndr_flags & NDR_BUFFERS) {
6994 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
6995 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
6996 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
6997 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
7003 _mem_save_info2_0 = NDR_PULL_GET_MEM_CTX(ndr);
7004 NDR_PULL_SET_MEM_CTX(ndr, r->info2, 0);
7005 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo2(ndr, NDR_SCALARS|NDR_BUFFERS, r->info2));
7006 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info2_0, 0);
7012 _mem_save_info3_0 = NDR_PULL_GET_MEM_CTX(ndr);
7013 NDR_PULL_SET_MEM_CTX(ndr, r->info3, 0);
7014 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo3(ndr, NDR_SCALARS|NDR_BUFFERS, r->info3));
7015 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info3_0, 0);
7021 _mem_save_info4_0 = NDR_PULL_GET_MEM_CTX(ndr);
7022 NDR_PULL_SET_MEM_CTX(ndr, r->info4, 0);
7023 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo4(ndr, NDR_SCALARS|NDR_BUFFERS, r->info4));
7024 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info4_0, 0);
7030 _mem_save_info6_0 = NDR_PULL_GET_MEM_CTX(ndr);
7031 NDR_PULL_SET_MEM_CTX(ndr, r->info6, 0);
7032 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo6(ndr, NDR_SCALARS|NDR_BUFFERS, r->info6));
7033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info6_0, 0);
7039 _mem_save_info8_0 = NDR_PULL_GET_MEM_CTX(ndr);
7040 NDR_PULL_SET_MEM_CTX(ndr, r->info8, 0);
7041 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo8(ndr, NDR_SCALARS|NDR_BUFFERS, r->info8));
7042 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info8_0, 0);
7047 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
7050 return NDR_ERR_SUCCESS;
7053 _PUBLIC_ void ndr_print_spoolss_AddDriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddDriverInfo *r)
7056 level = ndr_print_get_switch_value(ndr, r);
7057 ndr_print_union(ndr, name, level, "spoolss_AddDriverInfo");
7060 ndr_print_ptr(ndr, "info1", r->info1);
7063 ndr_print_spoolss_AddDriverInfo1(ndr, "info1", r->info1);
7069 ndr_print_ptr(ndr, "info2", r->info2);
7072 ndr_print_spoolss_AddDriverInfo2(ndr, "info2", r->info2);
7078 ndr_print_ptr(ndr, "info3", r->info3);
7081 ndr_print_spoolss_AddDriverInfo3(ndr, "info3", r->info3);
7087 ndr_print_ptr(ndr, "info4", r->info4);
7090 ndr_print_spoolss_AddDriverInfo4(ndr, "info4", r->info4);
7096 ndr_print_ptr(ndr, "info6", r->info6);
7099 ndr_print_spoolss_AddDriverInfo6(ndr, "info6", r->info6);
7105 ndr_print_ptr(ndr, "info8", r->info8);
7108 ndr_print_spoolss_AddDriverInfo8(ndr, "info8", r->info8);
7114 ndr_print_bad_level(ndr, name, level);
7118 static enum ndr_err_code ndr_push_spoolss_AddDriverInfoCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddDriverInfoCtr *r)
7120 if (ndr_flags & NDR_SCALARS) {
7121 NDR_CHECK(ndr_push_align(ndr, 4));
7122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
7123 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->info, r->level));
7124 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7126 if (ndr_flags & NDR_BUFFERS) {
7127 NDR_CHECK(ndr_push_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7129 return NDR_ERR_SUCCESS;
7132 static enum ndr_err_code ndr_pull_spoolss_AddDriverInfoCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddDriverInfoCtr *r)
7134 if (ndr_flags & NDR_SCALARS) {
7135 NDR_CHECK(ndr_pull_align(ndr, 4));
7136 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
7137 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->info, r->level));
7138 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_SCALARS, &r->info));
7140 if (ndr_flags & NDR_BUFFERS) {
7141 NDR_CHECK(ndr_pull_spoolss_AddDriverInfo(ndr, NDR_BUFFERS, &r->info));
7143 return NDR_ERR_SUCCESS;
7146 _PUBLIC_ void ndr_print_spoolss_AddDriverInfoCtr(struct ndr_print *ndr, const char *name, const struct spoolss_AddDriverInfoCtr *r)
7148 ndr_print_struct(ndr, name, "spoolss_AddDriverInfoCtr");
7150 ndr_print_uint32(ndr, "level", r->level);
7151 ndr_print_set_switch_value(ndr, &r->info, r->level);
7152 ndr_print_spoolss_AddDriverInfo(ndr, "info", &r->info);
7156 static enum ndr_err_code ndr_push_spoolss_DriverInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo1 *r)
7158 if (ndr_flags & NDR_SCALARS) {
7159 NDR_CHECK(ndr_push_align(ndr, 4));
7161 uint32_t _flags_save_string = ndr->flags;
7162 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7163 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7164 ndr->flags = _flags_save_string;
7167 if (ndr_flags & NDR_BUFFERS) {
7169 uint32_t _flags_save_string = ndr->flags;
7170 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7171 if (r->driver_name) {
7172 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7173 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7175 ndr->flags = _flags_save_string;
7178 return NDR_ERR_SUCCESS;
7181 static enum ndr_err_code ndr_pull_spoolss_DriverInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo1 *r)
7183 uint32_t _ptr_driver_name;
7184 TALLOC_CTX *_mem_save_driver_name_0;
7185 if (ndr_flags & NDR_SCALARS) {
7186 NDR_CHECK(ndr_pull_align(ndr, 4));
7188 uint32_t _flags_save_string = ndr->flags;
7189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7190 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7191 if (_ptr_driver_name) {
7192 NDR_PULL_ALLOC(ndr, r->driver_name);
7193 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7195 r->driver_name = NULL;
7197 ndr->flags = _flags_save_string;
7200 if (ndr_flags & NDR_BUFFERS) {
7202 uint32_t _flags_save_string = ndr->flags;
7203 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7204 if (r->driver_name) {
7205 uint32_t _relative_save_offset;
7206 _relative_save_offset = ndr->offset;
7207 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7208 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7209 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7210 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7211 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7212 ndr->offset = _relative_save_offset;
7214 ndr->flags = _flags_save_string;
7217 return NDR_ERR_SUCCESS;
7220 _PUBLIC_ void ndr_print_spoolss_DriverInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo1 *r)
7222 ndr_print_struct(ndr, name, "spoolss_DriverInfo1");
7224 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7226 if (r->driver_name) {
7227 ndr_print_string(ndr, "driver_name", r->driver_name);
7233 static enum ndr_err_code ndr_push_spoolss_DriverInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo2 *r)
7235 if (ndr_flags & NDR_SCALARS) {
7236 NDR_CHECK(ndr_push_align(ndr, 4));
7237 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7239 uint32_t _flags_save_string = ndr->flags;
7240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7242 ndr->flags = _flags_save_string;
7245 uint32_t _flags_save_string = ndr->flags;
7246 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7247 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7248 ndr->flags = _flags_save_string;
7251 uint32_t _flags_save_string = ndr->flags;
7252 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7253 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7254 ndr->flags = _flags_save_string;
7257 uint32_t _flags_save_string = ndr->flags;
7258 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7259 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7260 ndr->flags = _flags_save_string;
7263 uint32_t _flags_save_string = ndr->flags;
7264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7265 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7266 ndr->flags = _flags_save_string;
7269 if (ndr_flags & NDR_BUFFERS) {
7271 uint32_t _flags_save_string = ndr->flags;
7272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7273 if (r->driver_name) {
7274 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7275 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7277 ndr->flags = _flags_save_string;
7280 uint32_t _flags_save_string = ndr->flags;
7281 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7282 if (r->architecture) {
7283 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7284 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7286 ndr->flags = _flags_save_string;
7289 uint32_t _flags_save_string = ndr->flags;
7290 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7291 if (r->driver_path) {
7292 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7293 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7295 ndr->flags = _flags_save_string;
7298 uint32_t _flags_save_string = ndr->flags;
7299 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7301 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7302 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7304 ndr->flags = _flags_save_string;
7307 uint32_t _flags_save_string = ndr->flags;
7308 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7309 if (r->config_file) {
7310 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7311 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7313 ndr->flags = _flags_save_string;
7316 return NDR_ERR_SUCCESS;
7319 static enum ndr_err_code ndr_pull_spoolss_DriverInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo2 *r)
7321 uint32_t _ptr_driver_name;
7322 TALLOC_CTX *_mem_save_driver_name_0;
7323 uint32_t _ptr_architecture;
7324 TALLOC_CTX *_mem_save_architecture_0;
7325 uint32_t _ptr_driver_path;
7326 TALLOC_CTX *_mem_save_driver_path_0;
7327 uint32_t _ptr_data_file;
7328 TALLOC_CTX *_mem_save_data_file_0;
7329 uint32_t _ptr_config_file;
7330 TALLOC_CTX *_mem_save_config_file_0;
7331 if (ndr_flags & NDR_SCALARS) {
7332 NDR_CHECK(ndr_pull_align(ndr, 4));
7333 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7335 uint32_t _flags_save_string = ndr->flags;
7336 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7337 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7338 if (_ptr_driver_name) {
7339 NDR_PULL_ALLOC(ndr, r->driver_name);
7340 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7342 r->driver_name = NULL;
7344 ndr->flags = _flags_save_string;
7347 uint32_t _flags_save_string = ndr->flags;
7348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7349 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7350 if (_ptr_architecture) {
7351 NDR_PULL_ALLOC(ndr, r->architecture);
7352 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7354 r->architecture = NULL;
7356 ndr->flags = _flags_save_string;
7359 uint32_t _flags_save_string = ndr->flags;
7360 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7361 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7362 if (_ptr_driver_path) {
7363 NDR_PULL_ALLOC(ndr, r->driver_path);
7364 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7366 r->driver_path = NULL;
7368 ndr->flags = _flags_save_string;
7371 uint32_t _flags_save_string = ndr->flags;
7372 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7373 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7374 if (_ptr_data_file) {
7375 NDR_PULL_ALLOC(ndr, r->data_file);
7376 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7378 r->data_file = NULL;
7380 ndr->flags = _flags_save_string;
7383 uint32_t _flags_save_string = ndr->flags;
7384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7385 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7386 if (_ptr_config_file) {
7387 NDR_PULL_ALLOC(ndr, r->config_file);
7388 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7390 r->config_file = NULL;
7392 ndr->flags = _flags_save_string;
7395 if (ndr_flags & NDR_BUFFERS) {
7397 uint32_t _flags_save_string = ndr->flags;
7398 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7399 if (r->driver_name) {
7400 uint32_t _relative_save_offset;
7401 _relative_save_offset = ndr->offset;
7402 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7403 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7404 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7405 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7406 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7407 ndr->offset = _relative_save_offset;
7409 ndr->flags = _flags_save_string;
7412 uint32_t _flags_save_string = ndr->flags;
7413 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7414 if (r->architecture) {
7415 uint32_t _relative_save_offset;
7416 _relative_save_offset = ndr->offset;
7417 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7418 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7419 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7420 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7421 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7422 ndr->offset = _relative_save_offset;
7424 ndr->flags = _flags_save_string;
7427 uint32_t _flags_save_string = ndr->flags;
7428 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7429 if (r->driver_path) {
7430 uint32_t _relative_save_offset;
7431 _relative_save_offset = ndr->offset;
7432 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7433 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7434 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7435 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7436 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7437 ndr->offset = _relative_save_offset;
7439 ndr->flags = _flags_save_string;
7442 uint32_t _flags_save_string = ndr->flags;
7443 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7445 uint32_t _relative_save_offset;
7446 _relative_save_offset = ndr->offset;
7447 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7448 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7449 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7450 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7451 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7452 ndr->offset = _relative_save_offset;
7454 ndr->flags = _flags_save_string;
7457 uint32_t _flags_save_string = ndr->flags;
7458 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7459 if (r->config_file) {
7460 uint32_t _relative_save_offset;
7461 _relative_save_offset = ndr->offset;
7462 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7463 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7464 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7465 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7466 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7467 ndr->offset = _relative_save_offset;
7469 ndr->flags = _flags_save_string;
7472 return NDR_ERR_SUCCESS;
7475 _PUBLIC_ void ndr_print_spoolss_DriverInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo2 *r)
7477 ndr_print_struct(ndr, name, "spoolss_DriverInfo2");
7479 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7480 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7482 if (r->driver_name) {
7483 ndr_print_string(ndr, "driver_name", r->driver_name);
7486 ndr_print_ptr(ndr, "architecture", r->architecture);
7488 if (r->architecture) {
7489 ndr_print_string(ndr, "architecture", r->architecture);
7492 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7494 if (r->driver_path) {
7495 ndr_print_string(ndr, "driver_path", r->driver_path);
7498 ndr_print_ptr(ndr, "data_file", r->data_file);
7501 ndr_print_string(ndr, "data_file", r->data_file);
7504 ndr_print_ptr(ndr, "config_file", r->config_file);
7506 if (r->config_file) {
7507 ndr_print_string(ndr, "config_file", r->config_file);
7513 static enum ndr_err_code ndr_push_spoolss_DriverInfo3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo3 *r)
7515 if (ndr_flags & NDR_SCALARS) {
7516 NDR_CHECK(ndr_push_align(ndr, 4));
7517 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7519 uint32_t _flags_save_string = ndr->flags;
7520 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7521 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
7522 ndr->flags = _flags_save_string;
7525 uint32_t _flags_save_string = ndr->flags;
7526 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7527 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
7528 ndr->flags = _flags_save_string;
7531 uint32_t _flags_save_string = ndr->flags;
7532 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7533 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
7534 ndr->flags = _flags_save_string;
7537 uint32_t _flags_save_string = ndr->flags;
7538 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7539 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
7540 ndr->flags = _flags_save_string;
7543 uint32_t _flags_save_string = ndr->flags;
7544 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7545 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
7546 ndr->flags = _flags_save_string;
7549 uint32_t _flags_save_string = ndr->flags;
7550 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7551 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
7552 ndr->flags = _flags_save_string;
7555 uint32_t _flags_save_string_array = ndr->flags;
7556 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7557 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
7558 ndr->flags = _flags_save_string_array;
7561 uint32_t _flags_save_string = ndr->flags;
7562 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7563 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
7564 ndr->flags = _flags_save_string;
7567 uint32_t _flags_save_string = ndr->flags;
7568 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7569 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
7570 ndr->flags = _flags_save_string;
7573 if (ndr_flags & NDR_BUFFERS) {
7575 uint32_t _flags_save_string = ndr->flags;
7576 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7577 if (r->driver_name) {
7578 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
7579 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
7581 ndr->flags = _flags_save_string;
7584 uint32_t _flags_save_string = ndr->flags;
7585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7586 if (r->architecture) {
7587 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
7588 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
7590 ndr->flags = _flags_save_string;
7593 uint32_t _flags_save_string = ndr->flags;
7594 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7595 if (r->driver_path) {
7596 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
7597 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
7599 ndr->flags = _flags_save_string;
7602 uint32_t _flags_save_string = ndr->flags;
7603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7605 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
7606 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
7608 ndr->flags = _flags_save_string;
7611 uint32_t _flags_save_string = ndr->flags;
7612 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7613 if (r->config_file) {
7614 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
7615 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
7617 ndr->flags = _flags_save_string;
7620 uint32_t _flags_save_string = ndr->flags;
7621 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7623 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
7624 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
7626 ndr->flags = _flags_save_string;
7629 uint32_t _flags_save_string_array = ndr->flags;
7630 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7631 if (r->dependent_files) {
7632 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
7633 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
7635 ndr->flags = _flags_save_string_array;
7638 uint32_t _flags_save_string = ndr->flags;
7639 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7640 if (r->monitor_name) {
7641 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
7642 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
7644 ndr->flags = _flags_save_string;
7647 uint32_t _flags_save_string = ndr->flags;
7648 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7649 if (r->default_datatype) {
7650 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
7651 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
7653 ndr->flags = _flags_save_string;
7656 return NDR_ERR_SUCCESS;
7659 static enum ndr_err_code ndr_pull_spoolss_DriverInfo3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo3 *r)
7661 uint32_t _ptr_driver_name;
7662 TALLOC_CTX *_mem_save_driver_name_0;
7663 uint32_t _ptr_architecture;
7664 TALLOC_CTX *_mem_save_architecture_0;
7665 uint32_t _ptr_driver_path;
7666 TALLOC_CTX *_mem_save_driver_path_0;
7667 uint32_t _ptr_data_file;
7668 TALLOC_CTX *_mem_save_data_file_0;
7669 uint32_t _ptr_config_file;
7670 TALLOC_CTX *_mem_save_config_file_0;
7671 uint32_t _ptr_help_file;
7672 TALLOC_CTX *_mem_save_help_file_0;
7673 uint32_t _ptr_dependent_files;
7674 TALLOC_CTX *_mem_save_dependent_files_0;
7675 uint32_t _ptr_monitor_name;
7676 TALLOC_CTX *_mem_save_monitor_name_0;
7677 uint32_t _ptr_default_datatype;
7678 TALLOC_CTX *_mem_save_default_datatype_0;
7679 if (ndr_flags & NDR_SCALARS) {
7680 NDR_CHECK(ndr_pull_align(ndr, 4));
7681 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
7683 uint32_t _flags_save_string = ndr->flags;
7684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
7686 if (_ptr_driver_name) {
7687 NDR_PULL_ALLOC(ndr, r->driver_name);
7688 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
7690 r->driver_name = NULL;
7692 ndr->flags = _flags_save_string;
7695 uint32_t _flags_save_string = ndr->flags;
7696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7697 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
7698 if (_ptr_architecture) {
7699 NDR_PULL_ALLOC(ndr, r->architecture);
7700 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
7702 r->architecture = NULL;
7704 ndr->flags = _flags_save_string;
7707 uint32_t _flags_save_string = ndr->flags;
7708 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7709 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
7710 if (_ptr_driver_path) {
7711 NDR_PULL_ALLOC(ndr, r->driver_path);
7712 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
7714 r->driver_path = NULL;
7716 ndr->flags = _flags_save_string;
7719 uint32_t _flags_save_string = ndr->flags;
7720 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7721 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
7722 if (_ptr_data_file) {
7723 NDR_PULL_ALLOC(ndr, r->data_file);
7724 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
7726 r->data_file = NULL;
7728 ndr->flags = _flags_save_string;
7731 uint32_t _flags_save_string = ndr->flags;
7732 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7733 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
7734 if (_ptr_config_file) {
7735 NDR_PULL_ALLOC(ndr, r->config_file);
7736 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
7738 r->config_file = NULL;
7740 ndr->flags = _flags_save_string;
7743 uint32_t _flags_save_string = ndr->flags;
7744 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7745 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
7746 if (_ptr_help_file) {
7747 NDR_PULL_ALLOC(ndr, r->help_file);
7748 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
7750 r->help_file = NULL;
7752 ndr->flags = _flags_save_string;
7755 uint32_t _flags_save_string_array = ndr->flags;
7756 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7757 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
7758 if (_ptr_dependent_files) {
7759 NDR_PULL_ALLOC(ndr, r->dependent_files);
7760 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
7762 r->dependent_files = NULL;
7764 ndr->flags = _flags_save_string_array;
7767 uint32_t _flags_save_string = ndr->flags;
7768 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7769 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
7770 if (_ptr_monitor_name) {
7771 NDR_PULL_ALLOC(ndr, r->monitor_name);
7772 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
7774 r->monitor_name = NULL;
7776 ndr->flags = _flags_save_string;
7779 uint32_t _flags_save_string = ndr->flags;
7780 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7781 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
7782 if (_ptr_default_datatype) {
7783 NDR_PULL_ALLOC(ndr, r->default_datatype);
7784 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
7786 r->default_datatype = NULL;
7788 ndr->flags = _flags_save_string;
7791 if (ndr_flags & NDR_BUFFERS) {
7793 uint32_t _flags_save_string = ndr->flags;
7794 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7795 if (r->driver_name) {
7796 uint32_t _relative_save_offset;
7797 _relative_save_offset = ndr->offset;
7798 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
7799 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7800 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
7801 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
7802 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
7803 ndr->offset = _relative_save_offset;
7805 ndr->flags = _flags_save_string;
7808 uint32_t _flags_save_string = ndr->flags;
7809 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7810 if (r->architecture) {
7811 uint32_t _relative_save_offset;
7812 _relative_save_offset = ndr->offset;
7813 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
7814 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
7815 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
7816 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
7817 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
7818 ndr->offset = _relative_save_offset;
7820 ndr->flags = _flags_save_string;
7823 uint32_t _flags_save_string = ndr->flags;
7824 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7825 if (r->driver_path) {
7826 uint32_t _relative_save_offset;
7827 _relative_save_offset = ndr->offset;
7828 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
7829 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
7830 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
7831 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
7832 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
7833 ndr->offset = _relative_save_offset;
7835 ndr->flags = _flags_save_string;
7838 uint32_t _flags_save_string = ndr->flags;
7839 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7841 uint32_t _relative_save_offset;
7842 _relative_save_offset = ndr->offset;
7843 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
7844 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7845 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
7846 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
7847 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
7848 ndr->offset = _relative_save_offset;
7850 ndr->flags = _flags_save_string;
7853 uint32_t _flags_save_string = ndr->flags;
7854 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7855 if (r->config_file) {
7856 uint32_t _relative_save_offset;
7857 _relative_save_offset = ndr->offset;
7858 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
7859 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7860 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
7861 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
7862 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
7863 ndr->offset = _relative_save_offset;
7865 ndr->flags = _flags_save_string;
7868 uint32_t _flags_save_string = ndr->flags;
7869 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7871 uint32_t _relative_save_offset;
7872 _relative_save_offset = ndr->offset;
7873 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
7874 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
7875 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
7876 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
7877 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
7878 ndr->offset = _relative_save_offset;
7880 ndr->flags = _flags_save_string;
7883 uint32_t _flags_save_string_array = ndr->flags;
7884 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7885 if (r->dependent_files) {
7886 uint32_t _relative_save_offset;
7887 _relative_save_offset = ndr->offset;
7888 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
7889 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
7890 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
7891 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
7892 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
7893 ndr->offset = _relative_save_offset;
7895 ndr->flags = _flags_save_string_array;
7898 uint32_t _flags_save_string = ndr->flags;
7899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7900 if (r->monitor_name) {
7901 uint32_t _relative_save_offset;
7902 _relative_save_offset = ndr->offset;
7903 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
7904 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
7905 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
7906 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
7907 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
7908 ndr->offset = _relative_save_offset;
7910 ndr->flags = _flags_save_string;
7913 uint32_t _flags_save_string = ndr->flags;
7914 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
7915 if (r->default_datatype) {
7916 uint32_t _relative_save_offset;
7917 _relative_save_offset = ndr->offset;
7918 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
7919 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
7920 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
7921 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
7922 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
7923 ndr->offset = _relative_save_offset;
7925 ndr->flags = _flags_save_string;
7928 return NDR_ERR_SUCCESS;
7931 _PUBLIC_ void ndr_print_spoolss_DriverInfo3(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo3 *r)
7933 ndr_print_struct(ndr, name, "spoolss_DriverInfo3");
7935 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
7936 ndr_print_ptr(ndr, "driver_name", r->driver_name);
7938 if (r->driver_name) {
7939 ndr_print_string(ndr, "driver_name", r->driver_name);
7942 ndr_print_ptr(ndr, "architecture", r->architecture);
7944 if (r->architecture) {
7945 ndr_print_string(ndr, "architecture", r->architecture);
7948 ndr_print_ptr(ndr, "driver_path", r->driver_path);
7950 if (r->driver_path) {
7951 ndr_print_string(ndr, "driver_path", r->driver_path);
7954 ndr_print_ptr(ndr, "data_file", r->data_file);
7957 ndr_print_string(ndr, "data_file", r->data_file);
7960 ndr_print_ptr(ndr, "config_file", r->config_file);
7962 if (r->config_file) {
7963 ndr_print_string(ndr, "config_file", r->config_file);
7966 ndr_print_ptr(ndr, "help_file", r->help_file);
7969 ndr_print_string(ndr, "help_file", r->help_file);
7972 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
7974 if (r->dependent_files) {
7975 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
7978 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
7980 if (r->monitor_name) {
7981 ndr_print_string(ndr, "monitor_name", r->monitor_name);
7984 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
7986 if (r->default_datatype) {
7987 ndr_print_string(ndr, "default_datatype", r->default_datatype);
7993 static enum ndr_err_code ndr_push_spoolss_DriverInfo4(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo4 *r)
7995 if (ndr_flags & NDR_SCALARS) {
7996 NDR_CHECK(ndr_push_align(ndr, 4));
7997 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
7999 uint32_t _flags_save_string = ndr->flags;
8000 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8001 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8002 ndr->flags = _flags_save_string;
8005 uint32_t _flags_save_string = ndr->flags;
8006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8007 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8008 ndr->flags = _flags_save_string;
8011 uint32_t _flags_save_string = ndr->flags;
8012 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8013 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8014 ndr->flags = _flags_save_string;
8017 uint32_t _flags_save_string = ndr->flags;
8018 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8019 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8020 ndr->flags = _flags_save_string;
8023 uint32_t _flags_save_string = ndr->flags;
8024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8025 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8026 ndr->flags = _flags_save_string;
8029 uint32_t _flags_save_string = ndr->flags;
8030 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8031 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8032 ndr->flags = _flags_save_string;
8035 uint32_t _flags_save_string_array = ndr->flags;
8036 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8037 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8038 ndr->flags = _flags_save_string_array;
8041 uint32_t _flags_save_string = ndr->flags;
8042 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8043 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8044 ndr->flags = _flags_save_string;
8047 uint32_t _flags_save_string = ndr->flags;
8048 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8049 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8050 ndr->flags = _flags_save_string;
8053 uint32_t _flags_save_string_array = ndr->flags;
8054 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8055 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8056 ndr->flags = _flags_save_string_array;
8059 if (ndr_flags & NDR_BUFFERS) {
8061 uint32_t _flags_save_string = ndr->flags;
8062 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8063 if (r->driver_name) {
8064 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8065 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8067 ndr->flags = _flags_save_string;
8070 uint32_t _flags_save_string = ndr->flags;
8071 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8072 if (r->architecture) {
8073 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8074 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8076 ndr->flags = _flags_save_string;
8079 uint32_t _flags_save_string = ndr->flags;
8080 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8081 if (r->driver_path) {
8082 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8083 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8085 ndr->flags = _flags_save_string;
8088 uint32_t _flags_save_string = ndr->flags;
8089 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8091 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8092 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8094 ndr->flags = _flags_save_string;
8097 uint32_t _flags_save_string = ndr->flags;
8098 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8099 if (r->config_file) {
8100 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8101 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8103 ndr->flags = _flags_save_string;
8106 uint32_t _flags_save_string = ndr->flags;
8107 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8109 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8110 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8112 ndr->flags = _flags_save_string;
8115 uint32_t _flags_save_string_array = ndr->flags;
8116 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8117 if (r->dependent_files) {
8118 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8119 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8121 ndr->flags = _flags_save_string_array;
8124 uint32_t _flags_save_string = ndr->flags;
8125 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8126 if (r->monitor_name) {
8127 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8128 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8130 ndr->flags = _flags_save_string;
8133 uint32_t _flags_save_string = ndr->flags;
8134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8135 if (r->default_datatype) {
8136 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8137 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8139 ndr->flags = _flags_save_string;
8142 uint32_t _flags_save_string_array = ndr->flags;
8143 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8144 if (r->previous_names) {
8145 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8146 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8148 ndr->flags = _flags_save_string_array;
8151 return NDR_ERR_SUCCESS;
8154 static enum ndr_err_code ndr_pull_spoolss_DriverInfo4(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo4 *r)
8156 uint32_t _ptr_driver_name;
8157 TALLOC_CTX *_mem_save_driver_name_0;
8158 uint32_t _ptr_architecture;
8159 TALLOC_CTX *_mem_save_architecture_0;
8160 uint32_t _ptr_driver_path;
8161 TALLOC_CTX *_mem_save_driver_path_0;
8162 uint32_t _ptr_data_file;
8163 TALLOC_CTX *_mem_save_data_file_0;
8164 uint32_t _ptr_config_file;
8165 TALLOC_CTX *_mem_save_config_file_0;
8166 uint32_t _ptr_help_file;
8167 TALLOC_CTX *_mem_save_help_file_0;
8168 uint32_t _ptr_dependent_files;
8169 TALLOC_CTX *_mem_save_dependent_files_0;
8170 uint32_t _ptr_monitor_name;
8171 TALLOC_CTX *_mem_save_monitor_name_0;
8172 uint32_t _ptr_default_datatype;
8173 TALLOC_CTX *_mem_save_default_datatype_0;
8174 uint32_t _ptr_previous_names;
8175 TALLOC_CTX *_mem_save_previous_names_0;
8176 if (ndr_flags & NDR_SCALARS) {
8177 NDR_CHECK(ndr_pull_align(ndr, 4));
8178 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8180 uint32_t _flags_save_string = ndr->flags;
8181 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8182 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8183 if (_ptr_driver_name) {
8184 NDR_PULL_ALLOC(ndr, r->driver_name);
8185 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8187 r->driver_name = NULL;
8189 ndr->flags = _flags_save_string;
8192 uint32_t _flags_save_string = ndr->flags;
8193 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8194 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8195 if (_ptr_architecture) {
8196 NDR_PULL_ALLOC(ndr, r->architecture);
8197 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8199 r->architecture = NULL;
8201 ndr->flags = _flags_save_string;
8204 uint32_t _flags_save_string = ndr->flags;
8205 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8206 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8207 if (_ptr_driver_path) {
8208 NDR_PULL_ALLOC(ndr, r->driver_path);
8209 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8211 r->driver_path = NULL;
8213 ndr->flags = _flags_save_string;
8216 uint32_t _flags_save_string = ndr->flags;
8217 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8218 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8219 if (_ptr_data_file) {
8220 NDR_PULL_ALLOC(ndr, r->data_file);
8221 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8223 r->data_file = NULL;
8225 ndr->flags = _flags_save_string;
8228 uint32_t _flags_save_string = ndr->flags;
8229 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8230 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8231 if (_ptr_config_file) {
8232 NDR_PULL_ALLOC(ndr, r->config_file);
8233 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8235 r->config_file = NULL;
8237 ndr->flags = _flags_save_string;
8240 uint32_t _flags_save_string = ndr->flags;
8241 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8242 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
8243 if (_ptr_help_file) {
8244 NDR_PULL_ALLOC(ndr, r->help_file);
8245 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
8247 r->help_file = NULL;
8249 ndr->flags = _flags_save_string;
8252 uint32_t _flags_save_string_array = ndr->flags;
8253 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8254 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
8255 if (_ptr_dependent_files) {
8256 NDR_PULL_ALLOC(ndr, r->dependent_files);
8257 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
8259 r->dependent_files = NULL;
8261 ndr->flags = _flags_save_string_array;
8264 uint32_t _flags_save_string = ndr->flags;
8265 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8266 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
8267 if (_ptr_monitor_name) {
8268 NDR_PULL_ALLOC(ndr, r->monitor_name);
8269 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
8271 r->monitor_name = NULL;
8273 ndr->flags = _flags_save_string;
8276 uint32_t _flags_save_string = ndr->flags;
8277 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8278 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
8279 if (_ptr_default_datatype) {
8280 NDR_PULL_ALLOC(ndr, r->default_datatype);
8281 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
8283 r->default_datatype = NULL;
8285 ndr->flags = _flags_save_string;
8288 uint32_t _flags_save_string_array = ndr->flags;
8289 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8290 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
8291 if (_ptr_previous_names) {
8292 NDR_PULL_ALLOC(ndr, r->previous_names);
8293 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
8295 r->previous_names = NULL;
8297 ndr->flags = _flags_save_string_array;
8300 if (ndr_flags & NDR_BUFFERS) {
8302 uint32_t _flags_save_string = ndr->flags;
8303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8304 if (r->driver_name) {
8305 uint32_t _relative_save_offset;
8306 _relative_save_offset = ndr->offset;
8307 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8308 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8309 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8310 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8311 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8312 ndr->offset = _relative_save_offset;
8314 ndr->flags = _flags_save_string;
8317 uint32_t _flags_save_string = ndr->flags;
8318 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8319 if (r->architecture) {
8320 uint32_t _relative_save_offset;
8321 _relative_save_offset = ndr->offset;
8322 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8323 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8324 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8325 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8326 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8327 ndr->offset = _relative_save_offset;
8329 ndr->flags = _flags_save_string;
8332 uint32_t _flags_save_string = ndr->flags;
8333 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8334 if (r->driver_path) {
8335 uint32_t _relative_save_offset;
8336 _relative_save_offset = ndr->offset;
8337 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8338 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8339 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8340 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8341 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8342 ndr->offset = _relative_save_offset;
8344 ndr->flags = _flags_save_string;
8347 uint32_t _flags_save_string = ndr->flags;
8348 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8350 uint32_t _relative_save_offset;
8351 _relative_save_offset = ndr->offset;
8352 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8353 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8354 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8355 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8356 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8357 ndr->offset = _relative_save_offset;
8359 ndr->flags = _flags_save_string;
8362 uint32_t _flags_save_string = ndr->flags;
8363 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8364 if (r->config_file) {
8365 uint32_t _relative_save_offset;
8366 _relative_save_offset = ndr->offset;
8367 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8368 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8369 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8370 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8372 ndr->offset = _relative_save_offset;
8374 ndr->flags = _flags_save_string;
8377 uint32_t _flags_save_string = ndr->flags;
8378 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8380 uint32_t _relative_save_offset;
8381 _relative_save_offset = ndr->offset;
8382 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
8383 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8384 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
8385 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
8386 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
8387 ndr->offset = _relative_save_offset;
8389 ndr->flags = _flags_save_string;
8392 uint32_t _flags_save_string_array = ndr->flags;
8393 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8394 if (r->dependent_files) {
8395 uint32_t _relative_save_offset;
8396 _relative_save_offset = ndr->offset;
8397 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
8398 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
8399 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
8400 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
8401 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
8402 ndr->offset = _relative_save_offset;
8404 ndr->flags = _flags_save_string_array;
8407 uint32_t _flags_save_string = ndr->flags;
8408 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8409 if (r->monitor_name) {
8410 uint32_t _relative_save_offset;
8411 _relative_save_offset = ndr->offset;
8412 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
8413 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8414 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
8415 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
8416 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
8417 ndr->offset = _relative_save_offset;
8419 ndr->flags = _flags_save_string;
8422 uint32_t _flags_save_string = ndr->flags;
8423 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8424 if (r->default_datatype) {
8425 uint32_t _relative_save_offset;
8426 _relative_save_offset = ndr->offset;
8427 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
8428 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
8429 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
8430 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
8431 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
8432 ndr->offset = _relative_save_offset;
8434 ndr->flags = _flags_save_string;
8437 uint32_t _flags_save_string_array = ndr->flags;
8438 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8439 if (r->previous_names) {
8440 uint32_t _relative_save_offset;
8441 _relative_save_offset = ndr->offset;
8442 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
8443 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
8444 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
8445 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
8446 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
8447 ndr->offset = _relative_save_offset;
8449 ndr->flags = _flags_save_string_array;
8452 return NDR_ERR_SUCCESS;
8455 _PUBLIC_ void ndr_print_spoolss_DriverInfo4(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo4 *r)
8457 ndr_print_struct(ndr, name, "spoolss_DriverInfo4");
8459 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8460 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8462 if (r->driver_name) {
8463 ndr_print_string(ndr, "driver_name", r->driver_name);
8466 ndr_print_ptr(ndr, "architecture", r->architecture);
8468 if (r->architecture) {
8469 ndr_print_string(ndr, "architecture", r->architecture);
8472 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8474 if (r->driver_path) {
8475 ndr_print_string(ndr, "driver_path", r->driver_path);
8478 ndr_print_ptr(ndr, "data_file", r->data_file);
8481 ndr_print_string(ndr, "data_file", r->data_file);
8484 ndr_print_ptr(ndr, "config_file", r->config_file);
8486 if (r->config_file) {
8487 ndr_print_string(ndr, "config_file", r->config_file);
8490 ndr_print_ptr(ndr, "help_file", r->help_file);
8493 ndr_print_string(ndr, "help_file", r->help_file);
8496 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
8498 if (r->dependent_files) {
8499 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
8502 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
8504 if (r->monitor_name) {
8505 ndr_print_string(ndr, "monitor_name", r->monitor_name);
8508 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
8510 if (r->default_datatype) {
8511 ndr_print_string(ndr, "default_datatype", r->default_datatype);
8514 ndr_print_ptr(ndr, "previous_names", r->previous_names);
8516 if (r->previous_names) {
8517 ndr_print_string_array(ndr, "previous_names", r->previous_names);
8523 static enum ndr_err_code ndr_push_spoolss_DriverInfo5(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo5 *r)
8525 if (ndr_flags & NDR_SCALARS) {
8526 NDR_CHECK(ndr_push_align(ndr, 4));
8527 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8529 uint32_t _flags_save_string = ndr->flags;
8530 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8531 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8532 ndr->flags = _flags_save_string;
8535 uint32_t _flags_save_string = ndr->flags;
8536 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8537 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8538 ndr->flags = _flags_save_string;
8541 uint32_t _flags_save_string = ndr->flags;
8542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8543 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8544 ndr->flags = _flags_save_string;
8547 uint32_t _flags_save_string = ndr->flags;
8548 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8549 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8550 ndr->flags = _flags_save_string;
8553 uint32_t _flags_save_string = ndr->flags;
8554 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8555 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8556 ndr->flags = _flags_save_string;
8558 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_attributes));
8559 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->config_version));
8560 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->driver_version));
8562 if (ndr_flags & NDR_BUFFERS) {
8564 uint32_t _flags_save_string = ndr->flags;
8565 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8566 if (r->driver_name) {
8567 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8568 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8570 ndr->flags = _flags_save_string;
8573 uint32_t _flags_save_string = ndr->flags;
8574 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8575 if (r->architecture) {
8576 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8577 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8579 ndr->flags = _flags_save_string;
8582 uint32_t _flags_save_string = ndr->flags;
8583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8584 if (r->driver_path) {
8585 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8586 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8588 ndr->flags = _flags_save_string;
8591 uint32_t _flags_save_string = ndr->flags;
8592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8594 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8595 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8597 ndr->flags = _flags_save_string;
8600 uint32_t _flags_save_string = ndr->flags;
8601 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8602 if (r->config_file) {
8603 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8604 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8606 ndr->flags = _flags_save_string;
8609 return NDR_ERR_SUCCESS;
8612 static enum ndr_err_code ndr_pull_spoolss_DriverInfo5(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo5 *r)
8614 uint32_t _ptr_driver_name;
8615 TALLOC_CTX *_mem_save_driver_name_0;
8616 uint32_t _ptr_architecture;
8617 TALLOC_CTX *_mem_save_architecture_0;
8618 uint32_t _ptr_driver_path;
8619 TALLOC_CTX *_mem_save_driver_path_0;
8620 uint32_t _ptr_data_file;
8621 TALLOC_CTX *_mem_save_data_file_0;
8622 uint32_t _ptr_config_file;
8623 TALLOC_CTX *_mem_save_config_file_0;
8624 if (ndr_flags & NDR_SCALARS) {
8625 NDR_CHECK(ndr_pull_align(ndr, 4));
8626 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
8628 uint32_t _flags_save_string = ndr->flags;
8629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8630 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
8631 if (_ptr_driver_name) {
8632 NDR_PULL_ALLOC(ndr, r->driver_name);
8633 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
8635 r->driver_name = NULL;
8637 ndr->flags = _flags_save_string;
8640 uint32_t _flags_save_string = ndr->flags;
8641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8642 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
8643 if (_ptr_architecture) {
8644 NDR_PULL_ALLOC(ndr, r->architecture);
8645 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
8647 r->architecture = NULL;
8649 ndr->flags = _flags_save_string;
8652 uint32_t _flags_save_string = ndr->flags;
8653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8654 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
8655 if (_ptr_driver_path) {
8656 NDR_PULL_ALLOC(ndr, r->driver_path);
8657 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
8659 r->driver_path = NULL;
8661 ndr->flags = _flags_save_string;
8664 uint32_t _flags_save_string = ndr->flags;
8665 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8666 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
8667 if (_ptr_data_file) {
8668 NDR_PULL_ALLOC(ndr, r->data_file);
8669 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
8671 r->data_file = NULL;
8673 ndr->flags = _flags_save_string;
8676 uint32_t _flags_save_string = ndr->flags;
8677 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8678 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
8679 if (_ptr_config_file) {
8680 NDR_PULL_ALLOC(ndr, r->config_file);
8681 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
8683 r->config_file = NULL;
8685 ndr->flags = _flags_save_string;
8687 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_attributes));
8688 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->config_version));
8689 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->driver_version));
8691 if (ndr_flags & NDR_BUFFERS) {
8693 uint32_t _flags_save_string = ndr->flags;
8694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8695 if (r->driver_name) {
8696 uint32_t _relative_save_offset;
8697 _relative_save_offset = ndr->offset;
8698 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
8699 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
8700 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
8701 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
8702 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
8703 ndr->offset = _relative_save_offset;
8705 ndr->flags = _flags_save_string;
8708 uint32_t _flags_save_string = ndr->flags;
8709 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8710 if (r->architecture) {
8711 uint32_t _relative_save_offset;
8712 _relative_save_offset = ndr->offset;
8713 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
8714 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
8715 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
8716 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
8717 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
8718 ndr->offset = _relative_save_offset;
8720 ndr->flags = _flags_save_string;
8723 uint32_t _flags_save_string = ndr->flags;
8724 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8725 if (r->driver_path) {
8726 uint32_t _relative_save_offset;
8727 _relative_save_offset = ndr->offset;
8728 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
8729 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
8730 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
8731 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
8732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
8733 ndr->offset = _relative_save_offset;
8735 ndr->flags = _flags_save_string;
8738 uint32_t _flags_save_string = ndr->flags;
8739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8741 uint32_t _relative_save_offset;
8742 _relative_save_offset = ndr->offset;
8743 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
8744 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8745 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
8746 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
8747 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
8748 ndr->offset = _relative_save_offset;
8750 ndr->flags = _flags_save_string;
8753 uint32_t _flags_save_string = ndr->flags;
8754 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8755 if (r->config_file) {
8756 uint32_t _relative_save_offset;
8757 _relative_save_offset = ndr->offset;
8758 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
8759 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
8760 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
8761 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
8762 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
8763 ndr->offset = _relative_save_offset;
8765 ndr->flags = _flags_save_string;
8768 return NDR_ERR_SUCCESS;
8771 _PUBLIC_ void ndr_print_spoolss_DriverInfo5(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo5 *r)
8773 ndr_print_struct(ndr, name, "spoolss_DriverInfo5");
8775 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
8776 ndr_print_ptr(ndr, "driver_name", r->driver_name);
8778 if (r->driver_name) {
8779 ndr_print_string(ndr, "driver_name", r->driver_name);
8782 ndr_print_ptr(ndr, "architecture", r->architecture);
8784 if (r->architecture) {
8785 ndr_print_string(ndr, "architecture", r->architecture);
8788 ndr_print_ptr(ndr, "driver_path", r->driver_path);
8790 if (r->driver_path) {
8791 ndr_print_string(ndr, "driver_path", r->driver_path);
8794 ndr_print_ptr(ndr, "data_file", r->data_file);
8797 ndr_print_string(ndr, "data_file", r->data_file);
8800 ndr_print_ptr(ndr, "config_file", r->config_file);
8802 if (r->config_file) {
8803 ndr_print_string(ndr, "config_file", r->config_file);
8806 ndr_print_uint32(ndr, "driver_attributes", r->driver_attributes);
8807 ndr_print_uint32(ndr, "config_version", r->config_version);
8808 ndr_print_uint32(ndr, "driver_version", r->driver_version);
8812 static enum ndr_err_code ndr_push_spoolss_DriverInfo6(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo6 *r)
8814 if (ndr_flags & NDR_SCALARS) {
8815 NDR_CHECK(ndr_push_align(ndr, 8));
8816 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
8818 uint32_t _flags_save_string = ndr->flags;
8819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8820 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
8821 ndr->flags = _flags_save_string;
8824 uint32_t _flags_save_string = ndr->flags;
8825 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8826 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
8827 ndr->flags = _flags_save_string;
8830 uint32_t _flags_save_string = ndr->flags;
8831 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8832 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
8833 ndr->flags = _flags_save_string;
8836 uint32_t _flags_save_string = ndr->flags;
8837 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8838 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
8839 ndr->flags = _flags_save_string;
8842 uint32_t _flags_save_string = ndr->flags;
8843 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8844 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
8845 ndr->flags = _flags_save_string;
8848 uint32_t _flags_save_string = ndr->flags;
8849 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8850 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
8851 ndr->flags = _flags_save_string;
8854 uint32_t _flags_save_string_array = ndr->flags;
8855 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8856 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
8857 ndr->flags = _flags_save_string_array;
8860 uint32_t _flags_save_string = ndr->flags;
8861 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8862 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
8863 ndr->flags = _flags_save_string;
8866 uint32_t _flags_save_string = ndr->flags;
8867 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8868 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
8869 ndr->flags = _flags_save_string;
8872 uint32_t _flags_save_string_array = ndr->flags;
8873 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8874 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
8875 ndr->flags = _flags_save_string_array;
8877 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
8878 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
8880 uint32_t _flags_save_string = ndr->flags;
8881 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8882 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
8883 ndr->flags = _flags_save_string;
8886 uint32_t _flags_save_string = ndr->flags;
8887 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8888 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
8889 ndr->flags = _flags_save_string;
8892 uint32_t _flags_save_string = ndr->flags;
8893 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8894 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
8895 ndr->flags = _flags_save_string;
8898 uint32_t _flags_save_string = ndr->flags;
8899 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8900 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
8901 ndr->flags = _flags_save_string;
8904 if (ndr_flags & NDR_BUFFERS) {
8906 uint32_t _flags_save_string = ndr->flags;
8907 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8908 if (r->driver_name) {
8909 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
8910 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
8912 ndr->flags = _flags_save_string;
8915 uint32_t _flags_save_string = ndr->flags;
8916 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8917 if (r->architecture) {
8918 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
8919 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
8921 ndr->flags = _flags_save_string;
8924 uint32_t _flags_save_string = ndr->flags;
8925 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8926 if (r->driver_path) {
8927 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
8928 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
8930 ndr->flags = _flags_save_string;
8933 uint32_t _flags_save_string = ndr->flags;
8934 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8936 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
8937 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
8939 ndr->flags = _flags_save_string;
8942 uint32_t _flags_save_string = ndr->flags;
8943 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8944 if (r->config_file) {
8945 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
8946 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
8948 ndr->flags = _flags_save_string;
8951 uint32_t _flags_save_string = ndr->flags;
8952 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8954 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
8955 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
8957 ndr->flags = _flags_save_string;
8960 uint32_t _flags_save_string_array = ndr->flags;
8961 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8962 if (r->dependent_files) {
8963 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
8964 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
8966 ndr->flags = _flags_save_string_array;
8969 uint32_t _flags_save_string = ndr->flags;
8970 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8971 if (r->monitor_name) {
8972 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
8973 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
8975 ndr->flags = _flags_save_string;
8978 uint32_t _flags_save_string = ndr->flags;
8979 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8980 if (r->default_datatype) {
8981 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
8982 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
8984 ndr->flags = _flags_save_string;
8987 uint32_t _flags_save_string_array = ndr->flags;
8988 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8989 if (r->previous_names) {
8990 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
8991 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
8993 ndr->flags = _flags_save_string_array;
8996 uint32_t _flags_save_string = ndr->flags;
8997 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
8998 if (r->manufacturer_name) {
8999 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9000 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9002 ndr->flags = _flags_save_string;
9005 uint32_t _flags_save_string = ndr->flags;
9006 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9007 if (r->manufacturer_url) {
9008 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9009 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9011 ndr->flags = _flags_save_string;
9014 uint32_t _flags_save_string = ndr->flags;
9015 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9016 if (r->hardware_id) {
9017 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9018 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9020 ndr->flags = _flags_save_string;
9023 uint32_t _flags_save_string = ndr->flags;
9024 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9026 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9027 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9029 ndr->flags = _flags_save_string;
9032 return NDR_ERR_SUCCESS;
9035 static enum ndr_err_code ndr_pull_spoolss_DriverInfo6(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo6 *r)
9037 uint32_t _ptr_driver_name;
9038 TALLOC_CTX *_mem_save_driver_name_0;
9039 uint32_t _ptr_architecture;
9040 TALLOC_CTX *_mem_save_architecture_0;
9041 uint32_t _ptr_driver_path;
9042 TALLOC_CTX *_mem_save_driver_path_0;
9043 uint32_t _ptr_data_file;
9044 TALLOC_CTX *_mem_save_data_file_0;
9045 uint32_t _ptr_config_file;
9046 TALLOC_CTX *_mem_save_config_file_0;
9047 uint32_t _ptr_help_file;
9048 TALLOC_CTX *_mem_save_help_file_0;
9049 uint32_t _ptr_dependent_files;
9050 TALLOC_CTX *_mem_save_dependent_files_0;
9051 uint32_t _ptr_monitor_name;
9052 TALLOC_CTX *_mem_save_monitor_name_0;
9053 uint32_t _ptr_default_datatype;
9054 TALLOC_CTX *_mem_save_default_datatype_0;
9055 uint32_t _ptr_previous_names;
9056 TALLOC_CTX *_mem_save_previous_names_0;
9057 uint32_t _ptr_manufacturer_name;
9058 TALLOC_CTX *_mem_save_manufacturer_name_0;
9059 uint32_t _ptr_manufacturer_url;
9060 TALLOC_CTX *_mem_save_manufacturer_url_0;
9061 uint32_t _ptr_hardware_id;
9062 TALLOC_CTX *_mem_save_hardware_id_0;
9063 uint32_t _ptr_provider;
9064 TALLOC_CTX *_mem_save_provider_0;
9065 if (ndr_flags & NDR_SCALARS) {
9066 NDR_CHECK(ndr_pull_align(ndr, 8));
9067 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9069 uint32_t _flags_save_string = ndr->flags;
9070 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9071 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9072 if (_ptr_driver_name) {
9073 NDR_PULL_ALLOC(ndr, r->driver_name);
9074 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9076 r->driver_name = NULL;
9078 ndr->flags = _flags_save_string;
9081 uint32_t _flags_save_string = ndr->flags;
9082 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9083 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9084 if (_ptr_architecture) {
9085 NDR_PULL_ALLOC(ndr, r->architecture);
9086 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9088 r->architecture = NULL;
9090 ndr->flags = _flags_save_string;
9093 uint32_t _flags_save_string = ndr->flags;
9094 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9095 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9096 if (_ptr_driver_path) {
9097 NDR_PULL_ALLOC(ndr, r->driver_path);
9098 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9100 r->driver_path = NULL;
9102 ndr->flags = _flags_save_string;
9105 uint32_t _flags_save_string = ndr->flags;
9106 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9108 if (_ptr_data_file) {
9109 NDR_PULL_ALLOC(ndr, r->data_file);
9110 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9112 r->data_file = NULL;
9114 ndr->flags = _flags_save_string;
9117 uint32_t _flags_save_string = ndr->flags;
9118 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9120 if (_ptr_config_file) {
9121 NDR_PULL_ALLOC(ndr, r->config_file);
9122 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9124 r->config_file = NULL;
9126 ndr->flags = _flags_save_string;
9129 uint32_t _flags_save_string = ndr->flags;
9130 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9131 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9132 if (_ptr_help_file) {
9133 NDR_PULL_ALLOC(ndr, r->help_file);
9134 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9136 r->help_file = NULL;
9138 ndr->flags = _flags_save_string;
9141 uint32_t _flags_save_string_array = ndr->flags;
9142 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9143 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9144 if (_ptr_dependent_files) {
9145 NDR_PULL_ALLOC(ndr, r->dependent_files);
9146 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9148 r->dependent_files = NULL;
9150 ndr->flags = _flags_save_string_array;
9153 uint32_t _flags_save_string = ndr->flags;
9154 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9155 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9156 if (_ptr_monitor_name) {
9157 NDR_PULL_ALLOC(ndr, r->monitor_name);
9158 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9160 r->monitor_name = NULL;
9162 ndr->flags = _flags_save_string;
9165 uint32_t _flags_save_string = ndr->flags;
9166 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9167 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9168 if (_ptr_default_datatype) {
9169 NDR_PULL_ALLOC(ndr, r->default_datatype);
9170 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9172 r->default_datatype = NULL;
9174 ndr->flags = _flags_save_string;
9177 uint32_t _flags_save_string_array = ndr->flags;
9178 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9179 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
9180 if (_ptr_previous_names) {
9181 NDR_PULL_ALLOC(ndr, r->previous_names);
9182 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
9184 r->previous_names = NULL;
9186 ndr->flags = _flags_save_string_array;
9188 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
9189 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
9191 uint32_t _flags_save_string = ndr->flags;
9192 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9193 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
9194 if (_ptr_manufacturer_name) {
9195 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
9196 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
9198 r->manufacturer_name = NULL;
9200 ndr->flags = _flags_save_string;
9203 uint32_t _flags_save_string = ndr->flags;
9204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9205 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
9206 if (_ptr_manufacturer_url) {
9207 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
9208 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
9210 r->manufacturer_url = NULL;
9212 ndr->flags = _flags_save_string;
9215 uint32_t _flags_save_string = ndr->flags;
9216 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9217 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
9218 if (_ptr_hardware_id) {
9219 NDR_PULL_ALLOC(ndr, r->hardware_id);
9220 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
9222 r->hardware_id = NULL;
9224 ndr->flags = _flags_save_string;
9227 uint32_t _flags_save_string = ndr->flags;
9228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9229 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
9230 if (_ptr_provider) {
9231 NDR_PULL_ALLOC(ndr, r->provider);
9232 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
9236 ndr->flags = _flags_save_string;
9239 if (ndr_flags & NDR_BUFFERS) {
9241 uint32_t _flags_save_string = ndr->flags;
9242 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9243 if (r->driver_name) {
9244 uint32_t _relative_save_offset;
9245 _relative_save_offset = ndr->offset;
9246 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
9247 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9248 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
9249 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
9250 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
9251 ndr->offset = _relative_save_offset;
9253 ndr->flags = _flags_save_string;
9256 uint32_t _flags_save_string = ndr->flags;
9257 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9258 if (r->architecture) {
9259 uint32_t _relative_save_offset;
9260 _relative_save_offset = ndr->offset;
9261 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
9262 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
9263 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
9264 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
9265 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
9266 ndr->offset = _relative_save_offset;
9268 ndr->flags = _flags_save_string;
9271 uint32_t _flags_save_string = ndr->flags;
9272 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9273 if (r->driver_path) {
9274 uint32_t _relative_save_offset;
9275 _relative_save_offset = ndr->offset;
9276 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
9277 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
9278 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
9279 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
9280 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
9281 ndr->offset = _relative_save_offset;
9283 ndr->flags = _flags_save_string;
9286 uint32_t _flags_save_string = ndr->flags;
9287 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9289 uint32_t _relative_save_offset;
9290 _relative_save_offset = ndr->offset;
9291 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
9292 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9293 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
9294 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
9295 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
9296 ndr->offset = _relative_save_offset;
9298 ndr->flags = _flags_save_string;
9301 uint32_t _flags_save_string = ndr->flags;
9302 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9303 if (r->config_file) {
9304 uint32_t _relative_save_offset;
9305 _relative_save_offset = ndr->offset;
9306 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
9307 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9308 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
9309 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
9310 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
9311 ndr->offset = _relative_save_offset;
9313 ndr->flags = _flags_save_string;
9316 uint32_t _flags_save_string = ndr->flags;
9317 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9319 uint32_t _relative_save_offset;
9320 _relative_save_offset = ndr->offset;
9321 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
9322 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
9323 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
9324 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
9325 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
9326 ndr->offset = _relative_save_offset;
9328 ndr->flags = _flags_save_string;
9331 uint32_t _flags_save_string_array = ndr->flags;
9332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9333 if (r->dependent_files) {
9334 uint32_t _relative_save_offset;
9335 _relative_save_offset = ndr->offset;
9336 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
9337 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
9338 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
9339 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
9340 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
9341 ndr->offset = _relative_save_offset;
9343 ndr->flags = _flags_save_string_array;
9346 uint32_t _flags_save_string = ndr->flags;
9347 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9348 if (r->monitor_name) {
9349 uint32_t _relative_save_offset;
9350 _relative_save_offset = ndr->offset;
9351 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
9352 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9353 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
9354 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
9355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
9356 ndr->offset = _relative_save_offset;
9358 ndr->flags = _flags_save_string;
9361 uint32_t _flags_save_string = ndr->flags;
9362 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9363 if (r->default_datatype) {
9364 uint32_t _relative_save_offset;
9365 _relative_save_offset = ndr->offset;
9366 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
9367 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
9368 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
9369 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
9370 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
9371 ndr->offset = _relative_save_offset;
9373 ndr->flags = _flags_save_string;
9376 uint32_t _flags_save_string_array = ndr->flags;
9377 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9378 if (r->previous_names) {
9379 uint32_t _relative_save_offset;
9380 _relative_save_offset = ndr->offset;
9381 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
9382 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
9383 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
9384 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
9385 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
9386 ndr->offset = _relative_save_offset;
9388 ndr->flags = _flags_save_string_array;
9391 uint32_t _flags_save_string = ndr->flags;
9392 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9393 if (r->manufacturer_name) {
9394 uint32_t _relative_save_offset;
9395 _relative_save_offset = ndr->offset;
9396 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
9397 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
9398 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
9399 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
9400 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
9401 ndr->offset = _relative_save_offset;
9403 ndr->flags = _flags_save_string;
9406 uint32_t _flags_save_string = ndr->flags;
9407 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9408 if (r->manufacturer_url) {
9409 uint32_t _relative_save_offset;
9410 _relative_save_offset = ndr->offset;
9411 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
9412 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
9413 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
9414 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
9415 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
9416 ndr->offset = _relative_save_offset;
9418 ndr->flags = _flags_save_string;
9421 uint32_t _flags_save_string = ndr->flags;
9422 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9423 if (r->hardware_id) {
9424 uint32_t _relative_save_offset;
9425 _relative_save_offset = ndr->offset;
9426 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
9427 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
9428 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
9429 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
9430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
9431 ndr->offset = _relative_save_offset;
9433 ndr->flags = _flags_save_string;
9436 uint32_t _flags_save_string = ndr->flags;
9437 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9439 uint32_t _relative_save_offset;
9440 _relative_save_offset = ndr->offset;
9441 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
9442 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
9443 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
9444 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
9445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
9446 ndr->offset = _relative_save_offset;
9448 ndr->flags = _flags_save_string;
9451 return NDR_ERR_SUCCESS;
9454 _PUBLIC_ void ndr_print_spoolss_DriverInfo6(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo6 *r)
9456 ndr_print_struct(ndr, name, "spoolss_DriverInfo6");
9458 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
9459 ndr_print_ptr(ndr, "driver_name", r->driver_name);
9461 if (r->driver_name) {
9462 ndr_print_string(ndr, "driver_name", r->driver_name);
9465 ndr_print_ptr(ndr, "architecture", r->architecture);
9467 if (r->architecture) {
9468 ndr_print_string(ndr, "architecture", r->architecture);
9471 ndr_print_ptr(ndr, "driver_path", r->driver_path);
9473 if (r->driver_path) {
9474 ndr_print_string(ndr, "driver_path", r->driver_path);
9477 ndr_print_ptr(ndr, "data_file", r->data_file);
9480 ndr_print_string(ndr, "data_file", r->data_file);
9483 ndr_print_ptr(ndr, "config_file", r->config_file);
9485 if (r->config_file) {
9486 ndr_print_string(ndr, "config_file", r->config_file);
9489 ndr_print_ptr(ndr, "help_file", r->help_file);
9492 ndr_print_string(ndr, "help_file", r->help_file);
9495 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
9497 if (r->dependent_files) {
9498 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
9501 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
9503 if (r->monitor_name) {
9504 ndr_print_string(ndr, "monitor_name", r->monitor_name);
9507 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
9509 if (r->default_datatype) {
9510 ndr_print_string(ndr, "default_datatype", r->default_datatype);
9513 ndr_print_ptr(ndr, "previous_names", r->previous_names);
9515 if (r->previous_names) {
9516 ndr_print_string_array(ndr, "previous_names", r->previous_names);
9519 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
9520 ndr_print_hyper(ndr, "driver_version", r->driver_version);
9521 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
9523 if (r->manufacturer_name) {
9524 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
9527 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
9529 if (r->manufacturer_url) {
9530 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
9533 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
9535 if (r->hardware_id) {
9536 ndr_print_string(ndr, "hardware_id", r->hardware_id);
9539 ndr_print_ptr(ndr, "provider", r->provider);
9542 ndr_print_string(ndr, "provider", r->provider);
9548 static enum ndr_err_code ndr_push_spoolss_DriverInfo8(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverInfo8 *r)
9550 if (ndr_flags & NDR_SCALARS) {
9551 NDR_CHECK(ndr_push_align(ndr, 8));
9552 NDR_CHECK(ndr_push_spoolss_DriverOSVersion(ndr, NDR_SCALARS, r->version));
9554 uint32_t _flags_save_string = ndr->flags;
9555 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9556 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_name));
9557 ndr->flags = _flags_save_string;
9560 uint32_t _flags_save_string = ndr->flags;
9561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9562 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->architecture));
9563 ndr->flags = _flags_save_string;
9566 uint32_t _flags_save_string = ndr->flags;
9567 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9568 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->driver_path));
9569 ndr->flags = _flags_save_string;
9572 uint32_t _flags_save_string = ndr->flags;
9573 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9574 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->data_file));
9575 ndr->flags = _flags_save_string;
9578 uint32_t _flags_save_string = ndr->flags;
9579 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9580 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->config_file));
9581 ndr->flags = _flags_save_string;
9584 uint32_t _flags_save_string = ndr->flags;
9585 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9586 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->help_file));
9587 ndr->flags = _flags_save_string;
9590 uint32_t _flags_save_string = ndr->flags;
9591 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9592 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
9593 ndr->flags = _flags_save_string;
9596 uint32_t _flags_save_string = ndr->flags;
9597 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9598 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->default_datatype));
9599 ndr->flags = _flags_save_string;
9602 uint32_t _flags_save_string_array = ndr->flags;
9603 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9604 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dependent_files));
9605 ndr->flags = _flags_save_string_array;
9608 uint32_t _flags_save_string_array = ndr->flags;
9609 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9610 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->previous_names));
9611 ndr->flags = _flags_save_string_array;
9613 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->driver_data));
9614 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->driver_version));
9616 uint32_t _flags_save_string = ndr->flags;
9617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9618 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_name));
9619 ndr->flags = _flags_save_string;
9622 uint32_t _flags_save_string = ndr->flags;
9623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9624 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->manufacturer_url));
9625 ndr->flags = _flags_save_string;
9628 uint32_t _flags_save_string = ndr->flags;
9629 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9630 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->hardware_id));
9631 ndr->flags = _flags_save_string;
9634 uint32_t _flags_save_string = ndr->flags;
9635 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9636 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->provider));
9637 ndr->flags = _flags_save_string;
9640 uint32_t _flags_save_string = ndr->flags;
9641 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9642 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->print_processor));
9643 ndr->flags = _flags_save_string;
9646 uint32_t _flags_save_string = ndr->flags;
9647 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9648 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->vendor_setup));
9649 ndr->flags = _flags_save_string;
9652 uint32_t _flags_save_string_array = ndr->flags;
9653 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9654 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->color_profiles));
9655 ndr->flags = _flags_save_string_array;
9658 uint32_t _flags_save_string = ndr->flags;
9659 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9660 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->inf_path));
9661 ndr->flags = _flags_save_string;
9663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->printer_driver_attributes));
9665 uint32_t _flags_save_string_array = ndr->flags;
9666 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9667 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->core_driver_dependencies));
9668 ndr->flags = _flags_save_string_array;
9670 NDR_CHECK(ndr_push_NTTIME(ndr, NDR_SCALARS, r->min_inbox_driver_ver_date));
9671 NDR_CHECK(ndr_push_hyper(ndr, NDR_SCALARS, r->min_inbox_driver_ver_version));
9673 if (ndr_flags & NDR_BUFFERS) {
9675 uint32_t _flags_save_string = ndr->flags;
9676 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9677 if (r->driver_name) {
9678 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_name));
9679 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_name));
9681 ndr->flags = _flags_save_string;
9684 uint32_t _flags_save_string = ndr->flags;
9685 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9686 if (r->architecture) {
9687 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->architecture));
9688 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->architecture));
9690 ndr->flags = _flags_save_string;
9693 uint32_t _flags_save_string = ndr->flags;
9694 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9695 if (r->driver_path) {
9696 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->driver_path));
9697 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->driver_path));
9699 ndr->flags = _flags_save_string;
9702 uint32_t _flags_save_string = ndr->flags;
9703 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9705 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->data_file));
9706 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->data_file));
9708 ndr->flags = _flags_save_string;
9711 uint32_t _flags_save_string = ndr->flags;
9712 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9713 if (r->config_file) {
9714 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->config_file));
9715 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->config_file));
9717 ndr->flags = _flags_save_string;
9720 uint32_t _flags_save_string = ndr->flags;
9721 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9723 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->help_file));
9724 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->help_file));
9726 ndr->flags = _flags_save_string;
9729 uint32_t _flags_save_string = ndr->flags;
9730 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9731 if (r->monitor_name) {
9732 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
9733 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
9735 ndr->flags = _flags_save_string;
9738 uint32_t _flags_save_string = ndr->flags;
9739 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9740 if (r->default_datatype) {
9741 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->default_datatype));
9742 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->default_datatype));
9744 ndr->flags = _flags_save_string;
9747 uint32_t _flags_save_string_array = ndr->flags;
9748 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9749 if (r->dependent_files) {
9750 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dependent_files));
9751 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->dependent_files));
9753 ndr->flags = _flags_save_string_array;
9756 uint32_t _flags_save_string_array = ndr->flags;
9757 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9758 if (r->previous_names) {
9759 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->previous_names));
9760 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->previous_names));
9762 ndr->flags = _flags_save_string_array;
9765 uint32_t _flags_save_string = ndr->flags;
9766 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9767 if (r->manufacturer_name) {
9768 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_name));
9769 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_name));
9771 ndr->flags = _flags_save_string;
9774 uint32_t _flags_save_string = ndr->flags;
9775 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9776 if (r->manufacturer_url) {
9777 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->manufacturer_url));
9778 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->manufacturer_url));
9780 ndr->flags = _flags_save_string;
9783 uint32_t _flags_save_string = ndr->flags;
9784 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9785 if (r->hardware_id) {
9786 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->hardware_id));
9787 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->hardware_id));
9789 ndr->flags = _flags_save_string;
9792 uint32_t _flags_save_string = ndr->flags;
9793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9795 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->provider));
9796 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->provider));
9798 ndr->flags = _flags_save_string;
9801 uint32_t _flags_save_string = ndr->flags;
9802 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9803 if (r->print_processor) {
9804 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->print_processor));
9805 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->print_processor));
9807 ndr->flags = _flags_save_string;
9810 uint32_t _flags_save_string = ndr->flags;
9811 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9812 if (r->vendor_setup) {
9813 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->vendor_setup));
9814 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->vendor_setup));
9816 ndr->flags = _flags_save_string;
9819 uint32_t _flags_save_string_array = ndr->flags;
9820 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9821 if (r->color_profiles) {
9822 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->color_profiles));
9823 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->color_profiles));
9825 ndr->flags = _flags_save_string_array;
9828 uint32_t _flags_save_string = ndr->flags;
9829 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9831 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->inf_path));
9832 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->inf_path));
9834 ndr->flags = _flags_save_string;
9837 uint32_t _flags_save_string_array = ndr->flags;
9838 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9839 if (r->core_driver_dependencies) {
9840 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->core_driver_dependencies));
9841 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->core_driver_dependencies));
9843 ndr->flags = _flags_save_string_array;
9846 return NDR_ERR_SUCCESS;
9849 static enum ndr_err_code ndr_pull_spoolss_DriverInfo8(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverInfo8 *r)
9851 uint32_t _ptr_driver_name;
9852 TALLOC_CTX *_mem_save_driver_name_0;
9853 uint32_t _ptr_architecture;
9854 TALLOC_CTX *_mem_save_architecture_0;
9855 uint32_t _ptr_driver_path;
9856 TALLOC_CTX *_mem_save_driver_path_0;
9857 uint32_t _ptr_data_file;
9858 TALLOC_CTX *_mem_save_data_file_0;
9859 uint32_t _ptr_config_file;
9860 TALLOC_CTX *_mem_save_config_file_0;
9861 uint32_t _ptr_help_file;
9862 TALLOC_CTX *_mem_save_help_file_0;
9863 uint32_t _ptr_monitor_name;
9864 TALLOC_CTX *_mem_save_monitor_name_0;
9865 uint32_t _ptr_default_datatype;
9866 TALLOC_CTX *_mem_save_default_datatype_0;
9867 uint32_t _ptr_dependent_files;
9868 TALLOC_CTX *_mem_save_dependent_files_0;
9869 uint32_t _ptr_previous_names;
9870 TALLOC_CTX *_mem_save_previous_names_0;
9871 uint32_t _ptr_manufacturer_name;
9872 TALLOC_CTX *_mem_save_manufacturer_name_0;
9873 uint32_t _ptr_manufacturer_url;
9874 TALLOC_CTX *_mem_save_manufacturer_url_0;
9875 uint32_t _ptr_hardware_id;
9876 TALLOC_CTX *_mem_save_hardware_id_0;
9877 uint32_t _ptr_provider;
9878 TALLOC_CTX *_mem_save_provider_0;
9879 uint32_t _ptr_print_processor;
9880 TALLOC_CTX *_mem_save_print_processor_0;
9881 uint32_t _ptr_vendor_setup;
9882 TALLOC_CTX *_mem_save_vendor_setup_0;
9883 uint32_t _ptr_color_profiles;
9884 TALLOC_CTX *_mem_save_color_profiles_0;
9885 uint32_t _ptr_inf_path;
9886 TALLOC_CTX *_mem_save_inf_path_0;
9887 uint32_t _ptr_core_driver_dependencies;
9888 TALLOC_CTX *_mem_save_core_driver_dependencies_0;
9889 if (ndr_flags & NDR_SCALARS) {
9890 NDR_CHECK(ndr_pull_align(ndr, 8));
9891 NDR_CHECK(ndr_pull_spoolss_DriverOSVersion(ndr, NDR_SCALARS, &r->version));
9893 uint32_t _flags_save_string = ndr->flags;
9894 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9895 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_name));
9896 if (_ptr_driver_name) {
9897 NDR_PULL_ALLOC(ndr, r->driver_name);
9898 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_name, _ptr_driver_name));
9900 r->driver_name = NULL;
9902 ndr->flags = _flags_save_string;
9905 uint32_t _flags_save_string = ndr->flags;
9906 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9907 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
9908 if (_ptr_architecture) {
9909 NDR_PULL_ALLOC(ndr, r->architecture);
9910 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->architecture, _ptr_architecture));
9912 r->architecture = NULL;
9914 ndr->flags = _flags_save_string;
9917 uint32_t _flags_save_string = ndr->flags;
9918 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9919 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_driver_path));
9920 if (_ptr_driver_path) {
9921 NDR_PULL_ALLOC(ndr, r->driver_path);
9922 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->driver_path, _ptr_driver_path));
9924 r->driver_path = NULL;
9926 ndr->flags = _flags_save_string;
9929 uint32_t _flags_save_string = ndr->flags;
9930 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9931 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_file));
9932 if (_ptr_data_file) {
9933 NDR_PULL_ALLOC(ndr, r->data_file);
9934 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->data_file, _ptr_data_file));
9936 r->data_file = NULL;
9938 ndr->flags = _flags_save_string;
9941 uint32_t _flags_save_string = ndr->flags;
9942 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9943 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_config_file));
9944 if (_ptr_config_file) {
9945 NDR_PULL_ALLOC(ndr, r->config_file);
9946 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->config_file, _ptr_config_file));
9948 r->config_file = NULL;
9950 ndr->flags = _flags_save_string;
9953 uint32_t _flags_save_string = ndr->flags;
9954 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_help_file));
9956 if (_ptr_help_file) {
9957 NDR_PULL_ALLOC(ndr, r->help_file);
9958 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->help_file, _ptr_help_file));
9960 r->help_file = NULL;
9962 ndr->flags = _flags_save_string;
9965 uint32_t _flags_save_string = ndr->flags;
9966 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9967 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
9968 if (_ptr_monitor_name) {
9969 NDR_PULL_ALLOC(ndr, r->monitor_name);
9970 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
9972 r->monitor_name = NULL;
9974 ndr->flags = _flags_save_string;
9977 uint32_t _flags_save_string = ndr->flags;
9978 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9979 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_default_datatype));
9980 if (_ptr_default_datatype) {
9981 NDR_PULL_ALLOC(ndr, r->default_datatype);
9982 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->default_datatype, _ptr_default_datatype));
9984 r->default_datatype = NULL;
9986 ndr->flags = _flags_save_string;
9989 uint32_t _flags_save_string_array = ndr->flags;
9990 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
9991 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dependent_files));
9992 if (_ptr_dependent_files) {
9993 NDR_PULL_ALLOC(ndr, r->dependent_files);
9994 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dependent_files, _ptr_dependent_files));
9996 r->dependent_files = NULL;
9998 ndr->flags = _flags_save_string_array;
10001 uint32_t _flags_save_string_array = ndr->flags;
10002 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10003 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_previous_names));
10004 if (_ptr_previous_names) {
10005 NDR_PULL_ALLOC(ndr, r->previous_names);
10006 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->previous_names, _ptr_previous_names));
10008 r->previous_names = NULL;
10010 ndr->flags = _flags_save_string_array;
10012 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->driver_data));
10013 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->driver_version));
10015 uint32_t _flags_save_string = ndr->flags;
10016 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10017 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_name));
10018 if (_ptr_manufacturer_name) {
10019 NDR_PULL_ALLOC(ndr, r->manufacturer_name);
10020 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_name, _ptr_manufacturer_name));
10022 r->manufacturer_name = NULL;
10024 ndr->flags = _flags_save_string;
10027 uint32_t _flags_save_string = ndr->flags;
10028 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10029 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_manufacturer_url));
10030 if (_ptr_manufacturer_url) {
10031 NDR_PULL_ALLOC(ndr, r->manufacturer_url);
10032 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->manufacturer_url, _ptr_manufacturer_url));
10034 r->manufacturer_url = NULL;
10036 ndr->flags = _flags_save_string;
10039 uint32_t _flags_save_string = ndr->flags;
10040 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_hardware_id));
10042 if (_ptr_hardware_id) {
10043 NDR_PULL_ALLOC(ndr, r->hardware_id);
10044 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->hardware_id, _ptr_hardware_id));
10046 r->hardware_id = NULL;
10048 ndr->flags = _flags_save_string;
10051 uint32_t _flags_save_string = ndr->flags;
10052 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10053 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_provider));
10054 if (_ptr_provider) {
10055 NDR_PULL_ALLOC(ndr, r->provider);
10056 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->provider, _ptr_provider));
10058 r->provider = NULL;
10060 ndr->flags = _flags_save_string;
10063 uint32_t _flags_save_string = ndr->flags;
10064 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10065 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_print_processor));
10066 if (_ptr_print_processor) {
10067 NDR_PULL_ALLOC(ndr, r->print_processor);
10068 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->print_processor, _ptr_print_processor));
10070 r->print_processor = NULL;
10072 ndr->flags = _flags_save_string;
10075 uint32_t _flags_save_string = ndr->flags;
10076 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10077 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_vendor_setup));
10078 if (_ptr_vendor_setup) {
10079 NDR_PULL_ALLOC(ndr, r->vendor_setup);
10080 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->vendor_setup, _ptr_vendor_setup));
10082 r->vendor_setup = NULL;
10084 ndr->flags = _flags_save_string;
10087 uint32_t _flags_save_string_array = ndr->flags;
10088 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10089 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_color_profiles));
10090 if (_ptr_color_profiles) {
10091 NDR_PULL_ALLOC(ndr, r->color_profiles);
10092 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->color_profiles, _ptr_color_profiles));
10094 r->color_profiles = NULL;
10096 ndr->flags = _flags_save_string_array;
10099 uint32_t _flags_save_string = ndr->flags;
10100 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10101 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_inf_path));
10102 if (_ptr_inf_path) {
10103 NDR_PULL_ALLOC(ndr, r->inf_path);
10104 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->inf_path, _ptr_inf_path));
10106 r->inf_path = NULL;
10108 ndr->flags = _flags_save_string;
10110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->printer_driver_attributes));
10112 uint32_t _flags_save_string_array = ndr->flags;
10113 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10114 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_core_driver_dependencies));
10115 if (_ptr_core_driver_dependencies) {
10116 NDR_PULL_ALLOC(ndr, r->core_driver_dependencies);
10117 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->core_driver_dependencies, _ptr_core_driver_dependencies));
10119 r->core_driver_dependencies = NULL;
10121 ndr->flags = _flags_save_string_array;
10123 NDR_CHECK(ndr_pull_NTTIME(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_date));
10124 NDR_CHECK(ndr_pull_hyper(ndr, NDR_SCALARS, &r->min_inbox_driver_ver_version));
10126 if (ndr_flags & NDR_BUFFERS) {
10128 uint32_t _flags_save_string = ndr->flags;
10129 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10130 if (r->driver_name) {
10131 uint32_t _relative_save_offset;
10132 _relative_save_offset = ndr->offset;
10133 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_name));
10134 _mem_save_driver_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10135 NDR_PULL_SET_MEM_CTX(ndr, r->driver_name, 0);
10136 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_name));
10137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_name_0, 0);
10138 ndr->offset = _relative_save_offset;
10140 ndr->flags = _flags_save_string;
10143 uint32_t _flags_save_string = ndr->flags;
10144 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10145 if (r->architecture) {
10146 uint32_t _relative_save_offset;
10147 _relative_save_offset = ndr->offset;
10148 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->architecture));
10149 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
10150 NDR_PULL_SET_MEM_CTX(ndr, r->architecture, 0);
10151 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->architecture));
10152 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
10153 ndr->offset = _relative_save_offset;
10155 ndr->flags = _flags_save_string;
10158 uint32_t _flags_save_string = ndr->flags;
10159 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10160 if (r->driver_path) {
10161 uint32_t _relative_save_offset;
10162 _relative_save_offset = ndr->offset;
10163 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->driver_path));
10164 _mem_save_driver_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10165 NDR_PULL_SET_MEM_CTX(ndr, r->driver_path, 0);
10166 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->driver_path));
10167 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_driver_path_0, 0);
10168 ndr->offset = _relative_save_offset;
10170 ndr->flags = _flags_save_string;
10173 uint32_t _flags_save_string = ndr->flags;
10174 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10175 if (r->data_file) {
10176 uint32_t _relative_save_offset;
10177 _relative_save_offset = ndr->offset;
10178 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->data_file));
10179 _mem_save_data_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10180 NDR_PULL_SET_MEM_CTX(ndr, r->data_file, 0);
10181 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->data_file));
10182 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_file_0, 0);
10183 ndr->offset = _relative_save_offset;
10185 ndr->flags = _flags_save_string;
10188 uint32_t _flags_save_string = ndr->flags;
10189 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10190 if (r->config_file) {
10191 uint32_t _relative_save_offset;
10192 _relative_save_offset = ndr->offset;
10193 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->config_file));
10194 _mem_save_config_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10195 NDR_PULL_SET_MEM_CTX(ndr, r->config_file, 0);
10196 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->config_file));
10197 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_config_file_0, 0);
10198 ndr->offset = _relative_save_offset;
10200 ndr->flags = _flags_save_string;
10203 uint32_t _flags_save_string = ndr->flags;
10204 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10205 if (r->help_file) {
10206 uint32_t _relative_save_offset;
10207 _relative_save_offset = ndr->offset;
10208 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->help_file));
10209 _mem_save_help_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
10210 NDR_PULL_SET_MEM_CTX(ndr, r->help_file, 0);
10211 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->help_file));
10212 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_help_file_0, 0);
10213 ndr->offset = _relative_save_offset;
10215 ndr->flags = _flags_save_string;
10218 uint32_t _flags_save_string = ndr->flags;
10219 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10220 if (r->monitor_name) {
10221 uint32_t _relative_save_offset;
10222 _relative_save_offset = ndr->offset;
10223 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
10224 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10225 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
10226 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
10227 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
10228 ndr->offset = _relative_save_offset;
10230 ndr->flags = _flags_save_string;
10233 uint32_t _flags_save_string = ndr->flags;
10234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10235 if (r->default_datatype) {
10236 uint32_t _relative_save_offset;
10237 _relative_save_offset = ndr->offset;
10238 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->default_datatype));
10239 _mem_save_default_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
10240 NDR_PULL_SET_MEM_CTX(ndr, r->default_datatype, 0);
10241 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->default_datatype));
10242 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_default_datatype_0, 0);
10243 ndr->offset = _relative_save_offset;
10245 ndr->flags = _flags_save_string;
10248 uint32_t _flags_save_string_array = ndr->flags;
10249 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10250 if (r->dependent_files) {
10251 uint32_t _relative_save_offset;
10252 _relative_save_offset = ndr->offset;
10253 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dependent_files));
10254 _mem_save_dependent_files_0 = NDR_PULL_GET_MEM_CTX(ndr);
10255 NDR_PULL_SET_MEM_CTX(ndr, r->dependent_files, 0);
10256 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->dependent_files));
10257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dependent_files_0, 0);
10258 ndr->offset = _relative_save_offset;
10260 ndr->flags = _flags_save_string_array;
10263 uint32_t _flags_save_string_array = ndr->flags;
10264 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10265 if (r->previous_names) {
10266 uint32_t _relative_save_offset;
10267 _relative_save_offset = ndr->offset;
10268 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->previous_names));
10269 _mem_save_previous_names_0 = NDR_PULL_GET_MEM_CTX(ndr);
10270 NDR_PULL_SET_MEM_CTX(ndr, r->previous_names, 0);
10271 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->previous_names));
10272 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_previous_names_0, 0);
10273 ndr->offset = _relative_save_offset;
10275 ndr->flags = _flags_save_string_array;
10278 uint32_t _flags_save_string = ndr->flags;
10279 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10280 if (r->manufacturer_name) {
10281 uint32_t _relative_save_offset;
10282 _relative_save_offset = ndr->offset;
10283 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_name));
10284 _mem_save_manufacturer_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
10285 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_name, 0);
10286 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_name));
10287 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_name_0, 0);
10288 ndr->offset = _relative_save_offset;
10290 ndr->flags = _flags_save_string;
10293 uint32_t _flags_save_string = ndr->flags;
10294 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10295 if (r->manufacturer_url) {
10296 uint32_t _relative_save_offset;
10297 _relative_save_offset = ndr->offset;
10298 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->manufacturer_url));
10299 _mem_save_manufacturer_url_0 = NDR_PULL_GET_MEM_CTX(ndr);
10300 NDR_PULL_SET_MEM_CTX(ndr, r->manufacturer_url, 0);
10301 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->manufacturer_url));
10302 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_manufacturer_url_0, 0);
10303 ndr->offset = _relative_save_offset;
10305 ndr->flags = _flags_save_string;
10308 uint32_t _flags_save_string = ndr->flags;
10309 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10310 if (r->hardware_id) {
10311 uint32_t _relative_save_offset;
10312 _relative_save_offset = ndr->offset;
10313 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->hardware_id));
10314 _mem_save_hardware_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
10315 NDR_PULL_SET_MEM_CTX(ndr, r->hardware_id, 0);
10316 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->hardware_id));
10317 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_hardware_id_0, 0);
10318 ndr->offset = _relative_save_offset;
10320 ndr->flags = _flags_save_string;
10323 uint32_t _flags_save_string = ndr->flags;
10324 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10326 uint32_t _relative_save_offset;
10327 _relative_save_offset = ndr->offset;
10328 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->provider));
10329 _mem_save_provider_0 = NDR_PULL_GET_MEM_CTX(ndr);
10330 NDR_PULL_SET_MEM_CTX(ndr, r->provider, 0);
10331 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->provider));
10332 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_provider_0, 0);
10333 ndr->offset = _relative_save_offset;
10335 ndr->flags = _flags_save_string;
10338 uint32_t _flags_save_string = ndr->flags;
10339 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10340 if (r->print_processor) {
10341 uint32_t _relative_save_offset;
10342 _relative_save_offset = ndr->offset;
10343 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->print_processor));
10344 _mem_save_print_processor_0 = NDR_PULL_GET_MEM_CTX(ndr);
10345 NDR_PULL_SET_MEM_CTX(ndr, r->print_processor, 0);
10346 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->print_processor));
10347 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_print_processor_0, 0);
10348 ndr->offset = _relative_save_offset;
10350 ndr->flags = _flags_save_string;
10353 uint32_t _flags_save_string = ndr->flags;
10354 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10355 if (r->vendor_setup) {
10356 uint32_t _relative_save_offset;
10357 _relative_save_offset = ndr->offset;
10358 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->vendor_setup));
10359 _mem_save_vendor_setup_0 = NDR_PULL_GET_MEM_CTX(ndr);
10360 NDR_PULL_SET_MEM_CTX(ndr, r->vendor_setup, 0);
10361 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->vendor_setup));
10362 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_vendor_setup_0, 0);
10363 ndr->offset = _relative_save_offset;
10365 ndr->flags = _flags_save_string;
10368 uint32_t _flags_save_string_array = ndr->flags;
10369 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10370 if (r->color_profiles) {
10371 uint32_t _relative_save_offset;
10372 _relative_save_offset = ndr->offset;
10373 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->color_profiles));
10374 _mem_save_color_profiles_0 = NDR_PULL_GET_MEM_CTX(ndr);
10375 NDR_PULL_SET_MEM_CTX(ndr, r->color_profiles, 0);
10376 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->color_profiles));
10377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_color_profiles_0, 0);
10378 ndr->offset = _relative_save_offset;
10380 ndr->flags = _flags_save_string_array;
10383 uint32_t _flags_save_string = ndr->flags;
10384 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10386 uint32_t _relative_save_offset;
10387 _relative_save_offset = ndr->offset;
10388 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->inf_path));
10389 _mem_save_inf_path_0 = NDR_PULL_GET_MEM_CTX(ndr);
10390 NDR_PULL_SET_MEM_CTX(ndr, r->inf_path, 0);
10391 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->inf_path));
10392 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_inf_path_0, 0);
10393 ndr->offset = _relative_save_offset;
10395 ndr->flags = _flags_save_string;
10398 uint32_t _flags_save_string_array = ndr->flags;
10399 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10400 if (r->core_driver_dependencies) {
10401 uint32_t _relative_save_offset;
10402 _relative_save_offset = ndr->offset;
10403 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->core_driver_dependencies));
10404 _mem_save_core_driver_dependencies_0 = NDR_PULL_GET_MEM_CTX(ndr);
10405 NDR_PULL_SET_MEM_CTX(ndr, r->core_driver_dependencies, 0);
10406 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->core_driver_dependencies));
10407 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_core_driver_dependencies_0, 0);
10408 ndr->offset = _relative_save_offset;
10410 ndr->flags = _flags_save_string_array;
10413 return NDR_ERR_SUCCESS;
10416 _PUBLIC_ void ndr_print_spoolss_DriverInfo8(struct ndr_print *ndr, const char *name, const struct spoolss_DriverInfo8 *r)
10418 ndr_print_struct(ndr, name, "spoolss_DriverInfo8");
10420 ndr_print_spoolss_DriverOSVersion(ndr, "version", r->version);
10421 ndr_print_ptr(ndr, "driver_name", r->driver_name);
10423 if (r->driver_name) {
10424 ndr_print_string(ndr, "driver_name", r->driver_name);
10427 ndr_print_ptr(ndr, "architecture", r->architecture);
10429 if (r->architecture) {
10430 ndr_print_string(ndr, "architecture", r->architecture);
10433 ndr_print_ptr(ndr, "driver_path", r->driver_path);
10435 if (r->driver_path) {
10436 ndr_print_string(ndr, "driver_path", r->driver_path);
10439 ndr_print_ptr(ndr, "data_file", r->data_file);
10441 if (r->data_file) {
10442 ndr_print_string(ndr, "data_file", r->data_file);
10445 ndr_print_ptr(ndr, "config_file", r->config_file);
10447 if (r->config_file) {
10448 ndr_print_string(ndr, "config_file", r->config_file);
10451 ndr_print_ptr(ndr, "help_file", r->help_file);
10453 if (r->help_file) {
10454 ndr_print_string(ndr, "help_file", r->help_file);
10457 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
10459 if (r->monitor_name) {
10460 ndr_print_string(ndr, "monitor_name", r->monitor_name);
10463 ndr_print_ptr(ndr, "default_datatype", r->default_datatype);
10465 if (r->default_datatype) {
10466 ndr_print_string(ndr, "default_datatype", r->default_datatype);
10469 ndr_print_ptr(ndr, "dependent_files", r->dependent_files);
10471 if (r->dependent_files) {
10472 ndr_print_string_array(ndr, "dependent_files", r->dependent_files);
10475 ndr_print_ptr(ndr, "previous_names", r->previous_names);
10477 if (r->previous_names) {
10478 ndr_print_string_array(ndr, "previous_names", r->previous_names);
10481 ndr_print_NTTIME(ndr, "driver_data", r->driver_data);
10482 ndr_print_hyper(ndr, "driver_version", r->driver_version);
10483 ndr_print_ptr(ndr, "manufacturer_name", r->manufacturer_name);
10485 if (r->manufacturer_name) {
10486 ndr_print_string(ndr, "manufacturer_name", r->manufacturer_name);
10489 ndr_print_ptr(ndr, "manufacturer_url", r->manufacturer_url);
10491 if (r->manufacturer_url) {
10492 ndr_print_string(ndr, "manufacturer_url", r->manufacturer_url);
10495 ndr_print_ptr(ndr, "hardware_id", r->hardware_id);
10497 if (r->hardware_id) {
10498 ndr_print_string(ndr, "hardware_id", r->hardware_id);
10501 ndr_print_ptr(ndr, "provider", r->provider);
10504 ndr_print_string(ndr, "provider", r->provider);
10507 ndr_print_ptr(ndr, "print_processor", r->print_processor);
10509 if (r->print_processor) {
10510 ndr_print_string(ndr, "print_processor", r->print_processor);
10513 ndr_print_ptr(ndr, "vendor_setup", r->vendor_setup);
10515 if (r->vendor_setup) {
10516 ndr_print_string(ndr, "vendor_setup", r->vendor_setup);
10519 ndr_print_ptr(ndr, "color_profiles", r->color_profiles);
10521 if (r->color_profiles) {
10522 ndr_print_string_array(ndr, "color_profiles", r->color_profiles);
10525 ndr_print_ptr(ndr, "inf_path", r->inf_path);
10528 ndr_print_string(ndr, "inf_path", r->inf_path);
10531 ndr_print_uint32(ndr, "printer_driver_attributes", r->printer_driver_attributes);
10532 ndr_print_ptr(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10534 if (r->core_driver_dependencies) {
10535 ndr_print_string_array(ndr, "core_driver_dependencies", r->core_driver_dependencies);
10538 ndr_print_NTTIME(ndr, "min_inbox_driver_ver_date", r->min_inbox_driver_ver_date);
10539 ndr_print_hyper(ndr, "min_inbox_driver_ver_version", r->min_inbox_driver_ver_version);
10543 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DriverInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DriverInfo *r)
10545 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
10546 if (ndr_flags & NDR_SCALARS) {
10547 int level = ndr_push_get_switch_value(ndr, r);
10550 NDR_CHECK(ndr_push_align(ndr, 4));
10551 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10552 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10556 NDR_CHECK(ndr_push_align(ndr, 4));
10557 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10558 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10562 NDR_CHECK(ndr_push_align(ndr, 4));
10563 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10564 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10568 NDR_CHECK(ndr_push_align(ndr, 4));
10569 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10570 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10574 NDR_CHECK(ndr_push_align(ndr, 4));
10575 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10576 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10580 NDR_CHECK(ndr_push_align(ndr, 8));
10581 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10582 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10586 NDR_CHECK(ndr_push_align(ndr, 8));
10587 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
10588 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10596 if (ndr_flags & NDR_BUFFERS) {
10597 int level = ndr_push_get_switch_value(ndr, r);
10598 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
10601 NDR_CHECK(ndr_push_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10605 NDR_CHECK(ndr_push_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10609 NDR_CHECK(ndr_push_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10613 NDR_CHECK(ndr_push_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10617 NDR_CHECK(ndr_push_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10621 NDR_CHECK(ndr_push_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10625 NDR_CHECK(ndr_push_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10633 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
10634 return NDR_ERR_SUCCESS;
10637 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DriverInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DriverInfo *r)
10639 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
10641 level = ndr_pull_get_switch_value(ndr, r);
10642 if (ndr_flags & NDR_SCALARS) {
10645 NDR_CHECK(ndr_pull_align(ndr, 4));
10646 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10647 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_SCALARS, &r->info1));
10651 NDR_CHECK(ndr_pull_align(ndr, 4));
10652 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10653 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_SCALARS, &r->info2));
10657 NDR_CHECK(ndr_pull_align(ndr, 4));
10658 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10659 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_SCALARS, &r->info3));
10663 NDR_CHECK(ndr_pull_align(ndr, 4));
10664 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10665 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_SCALARS, &r->info4));
10669 NDR_CHECK(ndr_pull_align(ndr, 4));
10670 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10671 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_SCALARS, &r->info5));
10675 NDR_CHECK(ndr_pull_align(ndr, 8));
10676 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10677 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_SCALARS, &r->info6));
10681 NDR_CHECK(ndr_pull_align(ndr, 8));
10682 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
10683 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_SCALARS, &r->info8));
10691 if (ndr_flags & NDR_BUFFERS) {
10692 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
10695 NDR_CHECK(ndr_pull_spoolss_DriverInfo1(ndr, NDR_BUFFERS, &r->info1));
10699 NDR_CHECK(ndr_pull_spoolss_DriverInfo2(ndr, NDR_BUFFERS, &r->info2));
10703 NDR_CHECK(ndr_pull_spoolss_DriverInfo3(ndr, NDR_BUFFERS, &r->info3));
10707 NDR_CHECK(ndr_pull_spoolss_DriverInfo4(ndr, NDR_BUFFERS, &r->info4));
10711 NDR_CHECK(ndr_pull_spoolss_DriverInfo5(ndr, NDR_BUFFERS, &r->info5));
10715 NDR_CHECK(ndr_pull_spoolss_DriverInfo6(ndr, NDR_BUFFERS, &r->info6));
10719 NDR_CHECK(ndr_pull_spoolss_DriverInfo8(ndr, NDR_BUFFERS, &r->info8));
10727 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
10728 return NDR_ERR_SUCCESS;
10731 _PUBLIC_ void ndr_print_spoolss_DriverInfo(struct ndr_print *ndr, const char *name, const union spoolss_DriverInfo *r)
10734 level = ndr_print_get_switch_value(ndr, r);
10735 ndr_print_union(ndr, name, level, "spoolss_DriverInfo");
10738 ndr_print_spoolss_DriverInfo1(ndr, "info1", &r->info1);
10742 ndr_print_spoolss_DriverInfo2(ndr, "info2", &r->info2);
10746 ndr_print_spoolss_DriverInfo3(ndr, "info3", &r->info3);
10750 ndr_print_spoolss_DriverInfo4(ndr, "info4", &r->info4);
10754 ndr_print_spoolss_DriverInfo5(ndr, "info5", &r->info5);
10758 ndr_print_spoolss_DriverInfo6(ndr, "info6", &r->info6);
10762 ndr_print_spoolss_DriverInfo8(ndr, "info8", &r->info8);
10771 static enum ndr_err_code ndr_push_spoolss_DriverDirectoryInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DriverDirectoryInfo1 *r)
10773 if (ndr_flags & NDR_SCALARS) {
10774 NDR_CHECK(ndr_push_align(ndr, 4));
10776 uint32_t _flags_save_string = ndr->flags;
10777 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10778 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->directory_name));
10779 ndr->flags = _flags_save_string;
10782 if (ndr_flags & NDR_BUFFERS) {
10784 return NDR_ERR_SUCCESS;
10787 static enum ndr_err_code ndr_pull_spoolss_DriverDirectoryInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DriverDirectoryInfo1 *r)
10789 if (ndr_flags & NDR_SCALARS) {
10790 NDR_CHECK(ndr_pull_align(ndr, 4));
10792 uint32_t _flags_save_string = ndr->flags;
10793 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
10794 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->directory_name));
10795 ndr->flags = _flags_save_string;
10798 if (ndr_flags & NDR_BUFFERS) {
10800 return NDR_ERR_SUCCESS;
10803 _PUBLIC_ void ndr_print_spoolss_DriverDirectoryInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DriverDirectoryInfo1 *r)
10805 ndr_print_struct(ndr, name, "spoolss_DriverDirectoryInfo1");
10807 ndr_print_string(ndr, "directory_name", r->directory_name);
10811 _PUBLIC_ 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 static enum ndr_err_code ndr_push_spoolss_DocumentInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_DocumentInfo1 *r)
11068 if (ndr_flags & NDR_SCALARS) {
11069 NDR_CHECK(ndr_push_align(ndr, 4));
11070 NDR_CHECK(ndr_push_unique_ptr(ndr, r->document_name));
11071 NDR_CHECK(ndr_push_unique_ptr(ndr, r->output_file));
11072 NDR_CHECK(ndr_push_unique_ptr(ndr, r->datatype));
11074 if (ndr_flags & NDR_BUFFERS) {
11075 if (r->document_name) {
11076 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11077 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11078 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->document_name, CH_UTF16)));
11079 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->document_name, ndr_charset_length(r->document_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11081 if (r->output_file) {
11082 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11083 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11084 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->output_file, CH_UTF16)));
11085 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->output_file, ndr_charset_length(r->output_file, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11088 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11089 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11090 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->datatype, CH_UTF16)));
11091 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->datatype, ndr_charset_length(r->datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11094 return NDR_ERR_SUCCESS;
11097 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_DocumentInfo1 *r)
11099 uint32_t _ptr_document_name;
11100 TALLOC_CTX *_mem_save_document_name_0;
11101 uint32_t _ptr_output_file;
11102 TALLOC_CTX *_mem_save_output_file_0;
11103 uint32_t _ptr_datatype;
11104 TALLOC_CTX *_mem_save_datatype_0;
11105 if (ndr_flags & NDR_SCALARS) {
11106 NDR_CHECK(ndr_pull_align(ndr, 4));
11107 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_document_name));
11108 if (_ptr_document_name) {
11109 NDR_PULL_ALLOC(ndr, r->document_name);
11111 r->document_name = NULL;
11113 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_output_file));
11114 if (_ptr_output_file) {
11115 NDR_PULL_ALLOC(ndr, r->output_file);
11117 r->output_file = NULL;
11119 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
11120 if (_ptr_datatype) {
11121 NDR_PULL_ALLOC(ndr, r->datatype);
11123 r->datatype = NULL;
11126 if (ndr_flags & NDR_BUFFERS) {
11127 if (r->document_name) {
11128 _mem_save_document_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11129 NDR_PULL_SET_MEM_CTX(ndr, r->document_name, 0);
11130 NDR_CHECK(ndr_pull_array_size(ndr, &r->document_name));
11131 NDR_CHECK(ndr_pull_array_length(ndr, &r->document_name));
11132 if (ndr_get_array_length(ndr, &r->document_name) > ndr_get_array_size(ndr, &r->document_name)) {
11133 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));
11135 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t)));
11136 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->document_name, ndr_get_array_length(ndr, &r->document_name), sizeof(uint16_t), CH_UTF16));
11137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_document_name_0, 0);
11139 if (r->output_file) {
11140 _mem_save_output_file_0 = NDR_PULL_GET_MEM_CTX(ndr);
11141 NDR_PULL_SET_MEM_CTX(ndr, r->output_file, 0);
11142 NDR_CHECK(ndr_pull_array_size(ndr, &r->output_file));
11143 NDR_CHECK(ndr_pull_array_length(ndr, &r->output_file));
11144 if (ndr_get_array_length(ndr, &r->output_file) > ndr_get_array_size(ndr, &r->output_file)) {
11145 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));
11147 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t)));
11148 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->output_file, ndr_get_array_length(ndr, &r->output_file), sizeof(uint16_t), CH_UTF16));
11149 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_output_file_0, 0);
11152 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
11153 NDR_PULL_SET_MEM_CTX(ndr, r->datatype, 0);
11154 NDR_CHECK(ndr_pull_array_size(ndr, &r->datatype));
11155 NDR_CHECK(ndr_pull_array_length(ndr, &r->datatype));
11156 if (ndr_get_array_length(ndr, &r->datatype) > ndr_get_array_size(ndr, &r->datatype)) {
11157 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));
11159 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t)));
11160 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->datatype, ndr_get_array_length(ndr, &r->datatype), sizeof(uint16_t), CH_UTF16));
11161 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
11164 return NDR_ERR_SUCCESS;
11167 _PUBLIC_ void ndr_print_spoolss_DocumentInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_DocumentInfo1 *r)
11169 ndr_print_struct(ndr, name, "spoolss_DocumentInfo1");
11171 ndr_print_ptr(ndr, "document_name", r->document_name);
11173 if (r->document_name) {
11174 ndr_print_string(ndr, "document_name", r->document_name);
11177 ndr_print_ptr(ndr, "output_file", r->output_file);
11179 if (r->output_file) {
11180 ndr_print_string(ndr, "output_file", r->output_file);
11183 ndr_print_ptr(ndr, "datatype", r->datatype);
11186 ndr_print_string(ndr, "datatype", r->datatype);
11192 static enum ndr_err_code ndr_push_spoolss_DocumentInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_DocumentInfo *r)
11194 if (ndr_flags & NDR_SCALARS) {
11195 int level = ndr_push_get_switch_value(ndr, r);
11196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
11199 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
11213 if (ndr_flags & NDR_BUFFERS) {
11214 int level = ndr_push_get_switch_value(ndr, r);
11218 NDR_CHECK(ndr_push_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11233 return NDR_ERR_SUCCESS;
11236 static enum ndr_err_code ndr_pull_spoolss_DocumentInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_DocumentInfo *r)
11240 TALLOC_CTX *_mem_save_info1_0;
11241 level = ndr_pull_get_switch_value(ndr, r);
11242 if (ndr_flags & NDR_SCALARS) {
11243 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
11244 if (_level != level) {
11245 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
11249 uint32_t _ptr_info1;
11250 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
11252 NDR_PULL_ALLOC(ndr, r->info1);
11269 if (ndr_flags & NDR_BUFFERS) {
11273 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
11274 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
11275 NDR_CHECK(ndr_pull_spoolss_DocumentInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
11276 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
11291 return NDR_ERR_SUCCESS;
11294 _PUBLIC_ void ndr_print_spoolss_DocumentInfo(struct ndr_print *ndr, const char *name, const union spoolss_DocumentInfo *r)
11297 level = ndr_print_get_switch_value(ndr, r);
11298 ndr_print_union(ndr, name, level, "spoolss_DocumentInfo");
11301 ndr_print_ptr(ndr, "info1", r->info1);
11304 ndr_print_spoolss_DocumentInfo1(ndr, "info1", r->info1);
11321 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersion(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersion *r)
11323 if (ndr_flags & NDR_SCALARS) {
11324 NDR_CHECK(ndr_push_align(ndr, 4));
11325 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersion(r, ndr->iconv_convenience, ndr->flags)));
11326 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11327 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11328 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11329 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11331 uint32_t _flags_save_string = ndr->flags;
11332 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11334 struct ndr_push *_ndr_extra_string;
11335 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11336 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11337 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11339 ndr->flags = _flags_save_string;
11342 if (ndr_flags & NDR_BUFFERS) {
11344 return NDR_ERR_SUCCESS;
11347 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersion(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersion *r)
11349 if (ndr_flags & NDR_SCALARS) {
11350 NDR_CHECK(ndr_pull_align(ndr, 4));
11351 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11352 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11353 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11354 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown));
11357 uint32_t _flags_save_string = ndr->flags;
11358 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11360 struct ndr_pull *_ndr_extra_string;
11361 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11362 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11363 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11365 ndr->flags = _flags_save_string;
11368 if (ndr_flags & NDR_BUFFERS) {
11370 return NDR_ERR_SUCCESS;
11373 _PUBLIC_ void ndr_print_spoolss_OSVersion(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersion *r)
11375 ndr_print_struct(ndr, name, "spoolss_OSVersion");
11377 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);
11378 ndr_print_uint32(ndr, "major", r->major);
11379 ndr_print_uint32(ndr, "minor", r->minor);
11380 ndr_print_uint32(ndr, "build", r->build);
11381 ndr_print_uint32(ndr, "unknown", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown);
11382 ndr_print_string(ndr, "extra_string", r->extra_string);
11386 _PUBLIC_ size_t ndr_size_spoolss_OSVersion(const struct spoolss_OSVersion *r, struct smb_iconv_convenience *ic, int flags)
11388 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersion, ic);
11391 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OSVersionEx(struct ndr_push *ndr, int ndr_flags, const struct spoolss_OSVersionEx *r)
11393 if (ndr_flags & NDR_SCALARS) {
11394 NDR_CHECK(ndr_push_align(ndr, 4));
11395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_size_spoolss_OSVersionEx(r, ndr->iconv_convenience, ndr->flags)));
11396 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->major));
11397 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->minor));
11398 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
11399 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
11401 uint32_t _flags_save_string = ndr->flags;
11402 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11404 struct ndr_push *_ndr_extra_string;
11405 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11406 NDR_CHECK(ndr_push_string(_ndr_extra_string, NDR_SCALARS, r->extra_string));
11407 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11409 ndr->flags = _flags_save_string;
11411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown2));
11412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->unknown3));
11414 if (ndr_flags & NDR_BUFFERS) {
11416 return NDR_ERR_SUCCESS;
11419 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OSVersionEx(struct ndr_pull *ndr, int ndr_flags, struct spoolss_OSVersionEx *r)
11421 if (ndr_flags & NDR_SCALARS) {
11422 NDR_CHECK(ndr_pull_align(ndr, 4));
11423 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->_ndr_size));
11424 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->major));
11425 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->minor));
11426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
11427 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown1));
11429 uint32_t _flags_save_string = ndr->flags;
11430 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11432 struct ndr_pull *_ndr_extra_string;
11433 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_extra_string, 0, 256));
11434 NDR_CHECK(ndr_pull_string(_ndr_extra_string, NDR_SCALARS, &r->extra_string));
11435 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_extra_string, 0, 256));
11437 ndr->flags = _flags_save_string;
11439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown2));
11440 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->unknown3));
11442 if (ndr_flags & NDR_BUFFERS) {
11444 return NDR_ERR_SUCCESS;
11447 _PUBLIC_ void ndr_print_spoolss_OSVersionEx(struct ndr_print *ndr, const char *name, const struct spoolss_OSVersionEx *r)
11449 ndr_print_struct(ndr, name, "spoolss_OSVersionEx");
11451 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);
11452 ndr_print_uint32(ndr, "major", r->major);
11453 ndr_print_uint32(ndr, "minor", r->minor);
11454 ndr_print_uint32(ndr, "build", r->build);
11455 ndr_print_uint32(ndr, "unknown1", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->unknown1);
11456 ndr_print_string(ndr, "extra_string", r->extra_string);
11457 ndr_print_uint32(ndr, "unknown2", r->unknown2);
11458 ndr_print_uint32(ndr, "unknown3", r->unknown3);
11462 _PUBLIC_ size_t ndr_size_spoolss_OSVersionEx(const struct spoolss_OSVersionEx *r, struct smb_iconv_convenience *ic, int flags)
11464 return ndr_size_struct(r, flags, (ndr_push_flags_fn_t)ndr_push_spoolss_OSVersionEx, ic);
11467 static enum ndr_err_code ndr_push_spoolss_PrinterDataType(struct ndr_push *ndr, int ndr_flags, enum spoolss_PrinterDataType r)
11469 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11470 return NDR_ERR_SUCCESS;
11473 static enum ndr_err_code ndr_pull_spoolss_PrinterDataType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PrinterDataType *r)
11476 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11478 return NDR_ERR_SUCCESS;
11481 _PUBLIC_ void ndr_print_spoolss_PrinterDataType(struct ndr_print *ndr, const char *name, enum spoolss_PrinterDataType r)
11483 const char *val = NULL;
11486 case SPOOLSS_PRINTER_DATA_TYPE_NULL: val = "SPOOLSS_PRINTER_DATA_TYPE_NULL"; break;
11487 case SPOOLSS_PRINTER_DATA_TYPE_STRING: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING"; break;
11488 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: val = "SPOOLSS_PRINTER_DATA_TYPE_BINARY"; break;
11489 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: val = "SPOOLSS_PRINTER_DATA_TYPE_UINT32"; break;
11490 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: val = "SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY"; break;
11492 ndr_print_enum(ndr, name, "ENUM", val, r);
11495 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PrinterData(struct ndr_push *ndr, int ndr_flags, const union spoolss_PrinterData *r)
11497 if (ndr_flags & NDR_SCALARS) {
11498 int level = ndr_push_get_switch_value(ndr, r);
11500 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11503 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11505 uint32_t _flags_save_string = ndr->flags;
11506 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11507 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->string));
11508 ndr->flags = _flags_save_string;
11512 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11514 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11515 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11516 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->binary));
11517 ndr->flags = _flags_save_DATA_BLOB;
11521 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11522 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->value));
11525 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11527 uint32_t _flags_save_string_array = ndr->flags;
11528 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11529 NDR_CHECK(ndr_push_string_array(ndr, NDR_SCALARS, r->string_array));
11530 ndr->flags = _flags_save_string_array;
11536 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11537 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11538 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->data));
11539 ndr->flags = _flags_save_DATA_BLOB;
11545 if (ndr_flags & NDR_BUFFERS) {
11546 int level = ndr_push_get_switch_value(ndr, r);
11548 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11551 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11554 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11557 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11560 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11568 return NDR_ERR_SUCCESS;
11571 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PrinterData(struct ndr_pull *ndr, int ndr_flags, union spoolss_PrinterData *r)
11574 level = ndr_pull_get_switch_value(ndr, r);
11575 if (ndr_flags & NDR_SCALARS) {
11577 case SPOOLSS_PRINTER_DATA_TYPE_NULL: {
11580 case SPOOLSS_PRINTER_DATA_TYPE_STRING: {
11582 uint32_t _flags_save_string = ndr->flags;
11583 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11584 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->string));
11585 ndr->flags = _flags_save_string;
11589 case SPOOLSS_PRINTER_DATA_TYPE_BINARY: {
11591 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11592 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11593 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->binary));
11594 ndr->flags = _flags_save_DATA_BLOB;
11598 case SPOOLSS_PRINTER_DATA_TYPE_UINT32: {
11599 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->value));
11602 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY: {
11604 uint32_t _flags_save_string_array = ndr->flags;
11605 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11606 NDR_CHECK(ndr_pull_string_array(ndr, NDR_SCALARS, &r->string_array));
11607 ndr->flags = _flags_save_string_array;
11613 uint32_t _flags_save_DATA_BLOB = ndr->flags;
11614 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_REMAINING);
11615 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->data));
11616 ndr->flags = _flags_save_DATA_BLOB;
11622 if (ndr_flags & NDR_BUFFERS) {
11624 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11627 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11630 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11633 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11636 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11644 return NDR_ERR_SUCCESS;
11647 _PUBLIC_ void ndr_print_spoolss_PrinterData(struct ndr_print *ndr, const char *name, const union spoolss_PrinterData *r)
11650 level = ndr_print_get_switch_value(ndr, r);
11651 ndr_print_union(ndr, name, level, "spoolss_PrinterData");
11653 case SPOOLSS_PRINTER_DATA_TYPE_NULL:
11656 case SPOOLSS_PRINTER_DATA_TYPE_STRING:
11657 ndr_print_string(ndr, "string", r->string);
11660 case SPOOLSS_PRINTER_DATA_TYPE_BINARY:
11661 ndr_print_DATA_BLOB(ndr, "binary", r->binary);
11664 case SPOOLSS_PRINTER_DATA_TYPE_UINT32:
11665 ndr_print_uint32(ndr, "value", r->value);
11668 case SPOOLSS_PRINTER_DATA_TYPE_STRING_ARRAY:
11669 ndr_print_string_array(ndr, "string_array", r->string_array);
11673 ndr_print_DATA_BLOB(ndr, "data", r->data);
11679 _PUBLIC_ size_t ndr_size_spoolss_PrinterData(const union spoolss_PrinterData *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11681 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_PrinterData, ic);
11684 static enum ndr_err_code ndr_push_spoolss_FormFlags(struct ndr_push *ndr, int ndr_flags, enum spoolss_FormFlags r)
11686 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
11687 return NDR_ERR_SUCCESS;
11690 static enum ndr_err_code ndr_pull_spoolss_FormFlags(struct ndr_pull *ndr, int ndr_flags, enum spoolss_FormFlags *r)
11693 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
11695 return NDR_ERR_SUCCESS;
11698 _PUBLIC_ void ndr_print_spoolss_FormFlags(struct ndr_print *ndr, const char *name, enum spoolss_FormFlags r)
11700 const char *val = NULL;
11703 case SPOOLSS_FORM_USER: val = "SPOOLSS_FORM_USER"; break;
11704 case SPOOLSS_FORM_BUILTIN: val = "SPOOLSS_FORM_BUILTIN"; break;
11705 case SPOOLSS_FORM_PRINTER: val = "SPOOLSS_FORM_PRINTER"; break;
11707 ndr_print_enum(ndr, name, "ENUM", val, r);
11710 static enum ndr_err_code ndr_push_spoolss_FormSize(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormSize *r)
11712 if (ndr_flags & NDR_SCALARS) {
11713 NDR_CHECK(ndr_push_align(ndr, 4));
11714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->width));
11715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->height));
11717 if (ndr_flags & NDR_BUFFERS) {
11719 return NDR_ERR_SUCCESS;
11722 static enum ndr_err_code ndr_pull_spoolss_FormSize(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormSize *r)
11724 if (ndr_flags & NDR_SCALARS) {
11725 NDR_CHECK(ndr_pull_align(ndr, 4));
11726 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->width));
11727 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->height));
11729 if (ndr_flags & NDR_BUFFERS) {
11731 return NDR_ERR_SUCCESS;
11734 _PUBLIC_ void ndr_print_spoolss_FormSize(struct ndr_print *ndr, const char *name, const struct spoolss_FormSize *r)
11736 ndr_print_struct(ndr, name, "spoolss_FormSize");
11738 ndr_print_uint32(ndr, "width", r->width);
11739 ndr_print_uint32(ndr, "height", r->height);
11743 static enum ndr_err_code ndr_push_spoolss_FormArea(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormArea *r)
11745 if (ndr_flags & NDR_SCALARS) {
11746 NDR_CHECK(ndr_push_align(ndr, 4));
11747 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->left));
11748 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->top));
11749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->right));
11750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->bottom));
11752 if (ndr_flags & NDR_BUFFERS) {
11754 return NDR_ERR_SUCCESS;
11757 static enum ndr_err_code ndr_pull_spoolss_FormArea(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormArea *r)
11759 if (ndr_flags & NDR_SCALARS) {
11760 NDR_CHECK(ndr_pull_align(ndr, 4));
11761 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->left));
11762 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->top));
11763 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->right));
11764 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->bottom));
11766 if (ndr_flags & NDR_BUFFERS) {
11768 return NDR_ERR_SUCCESS;
11771 _PUBLIC_ void ndr_print_spoolss_FormArea(struct ndr_print *ndr, const char *name, const struct spoolss_FormArea *r)
11773 ndr_print_struct(ndr, name, "spoolss_FormArea");
11775 ndr_print_uint32(ndr, "left", r->left);
11776 ndr_print_uint32(ndr, "top", r->top);
11777 ndr_print_uint32(ndr, "right", r->right);
11778 ndr_print_uint32(ndr, "bottom", r->bottom);
11782 static enum ndr_err_code ndr_push_spoolss_FormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_FormInfo1 *r)
11784 if (ndr_flags & NDR_SCALARS) {
11785 NDR_CHECK(ndr_push_align(ndr, 4));
11786 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
11788 uint32_t _flags_save_string = ndr->flags;
11789 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11790 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->form_name));
11791 ndr->flags = _flags_save_string;
11793 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11794 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11796 if (ndr_flags & NDR_BUFFERS) {
11798 uint32_t _flags_save_string = ndr->flags;
11799 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11800 if (r->form_name) {
11801 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->form_name));
11802 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->form_name));
11804 ndr->flags = _flags_save_string;
11807 return NDR_ERR_SUCCESS;
11810 static enum ndr_err_code ndr_pull_spoolss_FormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_FormInfo1 *r)
11812 uint32_t _ptr_form_name;
11813 TALLOC_CTX *_mem_save_form_name_0;
11814 if (ndr_flags & NDR_SCALARS) {
11815 NDR_CHECK(ndr_pull_align(ndr, 4));
11816 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
11818 uint32_t _flags_save_string = ndr->flags;
11819 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11820 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
11821 if (_ptr_form_name) {
11822 NDR_PULL_ALLOC(ndr, r->form_name);
11823 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->form_name, _ptr_form_name));
11825 r->form_name = NULL;
11827 ndr->flags = _flags_save_string;
11829 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11830 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11832 if (ndr_flags & NDR_BUFFERS) {
11834 uint32_t _flags_save_string = ndr->flags;
11835 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
11836 if (r->form_name) {
11837 uint32_t _relative_save_offset;
11838 _relative_save_offset = ndr->offset;
11839 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->form_name));
11840 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11841 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
11842 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->form_name));
11843 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
11844 ndr->offset = _relative_save_offset;
11846 ndr->flags = _flags_save_string;
11849 return NDR_ERR_SUCCESS;
11852 _PUBLIC_ void ndr_print_spoolss_FormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_FormInfo1 *r)
11854 ndr_print_struct(ndr, name, "spoolss_FormInfo1");
11856 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
11857 ndr_print_ptr(ndr, "form_name", r->form_name);
11859 if (r->form_name) {
11860 ndr_print_string(ndr, "form_name", r->form_name);
11863 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
11864 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
11868 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_FormInfo *r)
11870 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
11871 if (ndr_flags & NDR_SCALARS) {
11872 int level = ndr_push_get_switch_value(ndr, r);
11875 NDR_CHECK(ndr_push_align(ndr, 4));
11876 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
11877 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
11885 if (ndr_flags & NDR_BUFFERS) {
11886 int level = ndr_push_get_switch_value(ndr, r);
11887 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
11890 NDR_CHECK(ndr_push_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
11898 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
11899 return NDR_ERR_SUCCESS;
11902 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_FormInfo *r)
11904 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
11906 level = ndr_pull_get_switch_value(ndr, r);
11907 if (ndr_flags & NDR_SCALARS) {
11910 NDR_CHECK(ndr_pull_align(ndr, 4));
11911 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
11912 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_SCALARS, &r->info1));
11920 if (ndr_flags & NDR_BUFFERS) {
11921 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
11924 NDR_CHECK(ndr_pull_spoolss_FormInfo1(ndr, NDR_BUFFERS, &r->info1));
11932 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
11933 return NDR_ERR_SUCCESS;
11936 _PUBLIC_ void ndr_print_spoolss_FormInfo(struct ndr_print *ndr, const char *name, const union spoolss_FormInfo *r)
11939 level = ndr_print_get_switch_value(ndr, r);
11940 ndr_print_union(ndr, name, level, "spoolss_FormInfo");
11943 ndr_print_spoolss_FormInfo1(ndr, "info1", &r->info1);
11952 _PUBLIC_ size_t ndr_size_spoolss_FormInfo(const union spoolss_FormInfo *r, uint32_t level, struct smb_iconv_convenience *ic, int flags)
11954 return ndr_size_union(r, flags, level, (ndr_push_flags_fn_t)ndr_push_spoolss_FormInfo, ic);
11957 static enum ndr_err_code ndr_push_spoolss_AddFormInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_AddFormInfo1 *r)
11959 if (ndr_flags & NDR_SCALARS) {
11960 NDR_CHECK(ndr_push_align(ndr, 4));
11961 NDR_CHECK(ndr_push_spoolss_FormFlags(ndr, NDR_SCALARS, r->flags));
11962 NDR_CHECK(ndr_push_unique_ptr(ndr, r->form_name));
11963 NDR_CHECK(ndr_push_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11964 NDR_CHECK(ndr_push_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11966 if (ndr_flags & NDR_BUFFERS) {
11967 if (r->form_name) {
11968 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
11969 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
11970 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->form_name, CH_UTF16)));
11971 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->form_name, ndr_charset_length(r->form_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
11974 return NDR_ERR_SUCCESS;
11977 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_AddFormInfo1 *r)
11979 uint32_t _ptr_form_name;
11980 TALLOC_CTX *_mem_save_form_name_0;
11981 if (ndr_flags & NDR_SCALARS) {
11982 NDR_CHECK(ndr_pull_align(ndr, 4));
11983 NDR_CHECK(ndr_pull_spoolss_FormFlags(ndr, NDR_SCALARS, &r->flags));
11984 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_form_name));
11985 if (_ptr_form_name) {
11986 NDR_PULL_ALLOC(ndr, r->form_name);
11988 r->form_name = NULL;
11990 NDR_CHECK(ndr_pull_spoolss_FormSize(ndr, NDR_SCALARS, &r->size));
11991 NDR_CHECK(ndr_pull_spoolss_FormArea(ndr, NDR_SCALARS, &r->area));
11993 if (ndr_flags & NDR_BUFFERS) {
11994 if (r->form_name) {
11995 _mem_save_form_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
11996 NDR_PULL_SET_MEM_CTX(ndr, r->form_name, 0);
11997 NDR_CHECK(ndr_pull_array_size(ndr, &r->form_name));
11998 NDR_CHECK(ndr_pull_array_length(ndr, &r->form_name));
11999 if (ndr_get_array_length(ndr, &r->form_name) > ndr_get_array_size(ndr, &r->form_name)) {
12000 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));
12002 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t)));
12003 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->form_name, ndr_get_array_length(ndr, &r->form_name), sizeof(uint16_t), CH_UTF16));
12004 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_form_name_0, 0);
12007 return NDR_ERR_SUCCESS;
12010 _PUBLIC_ void ndr_print_spoolss_AddFormInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_AddFormInfo1 *r)
12012 ndr_print_struct(ndr, name, "spoolss_AddFormInfo1");
12014 ndr_print_spoolss_FormFlags(ndr, "flags", r->flags);
12015 ndr_print_ptr(ndr, "form_name", r->form_name);
12017 if (r->form_name) {
12018 ndr_print_string(ndr, "form_name", r->form_name);
12021 ndr_print_spoolss_FormSize(ndr, "size", &r->size);
12022 ndr_print_spoolss_FormArea(ndr, "area", &r->area);
12026 static enum ndr_err_code ndr_push_spoolss_AddFormInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_AddFormInfo *r)
12028 if (ndr_flags & NDR_SCALARS) {
12029 int level = ndr_push_get_switch_value(ndr, r);
12030 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
12033 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info1));
12037 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12040 if (ndr_flags & NDR_BUFFERS) {
12041 int level = ndr_push_get_switch_value(ndr, r);
12045 NDR_CHECK(ndr_push_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12050 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12053 return NDR_ERR_SUCCESS;
12056 static enum ndr_err_code ndr_pull_spoolss_AddFormInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_AddFormInfo *r)
12060 TALLOC_CTX *_mem_save_info1_0;
12061 level = ndr_pull_get_switch_value(ndr, r);
12062 if (ndr_flags & NDR_SCALARS) {
12063 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
12064 if (_level != level) {
12065 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
12069 uint32_t _ptr_info1;
12070 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info1));
12072 NDR_PULL_ALLOC(ndr, r->info1);
12079 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12082 if (ndr_flags & NDR_BUFFERS) {
12086 _mem_save_info1_0 = NDR_PULL_GET_MEM_CTX(ndr);
12087 NDR_PULL_SET_MEM_CTX(ndr, r->info1, 0);
12088 NDR_CHECK(ndr_pull_spoolss_AddFormInfo1(ndr, NDR_SCALARS|NDR_BUFFERS, r->info1));
12089 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info1_0, 0);
12094 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
12097 return NDR_ERR_SUCCESS;
12100 _PUBLIC_ void ndr_print_spoolss_AddFormInfo(struct ndr_print *ndr, const char *name, const union spoolss_AddFormInfo *r)
12103 level = ndr_print_get_switch_value(ndr, r);
12104 ndr_print_union(ndr, name, level, "spoolss_AddFormInfo");
12107 ndr_print_ptr(ndr, "info1", r->info1);
12110 ndr_print_spoolss_AddFormInfo1(ndr, "info1", r->info1);
12116 ndr_print_bad_level(ndr, name, level);
12120 static enum ndr_err_code ndr_push_spoolss_PortInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo1 *r)
12122 if (ndr_flags & NDR_SCALARS) {
12123 NDR_CHECK(ndr_push_align(ndr, 4));
12125 uint32_t _flags_save_string = ndr->flags;
12126 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12127 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12128 ndr->flags = _flags_save_string;
12131 if (ndr_flags & NDR_BUFFERS) {
12133 uint32_t _flags_save_string = ndr->flags;
12134 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12135 if (r->port_name) {
12136 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12137 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12139 ndr->flags = _flags_save_string;
12142 return NDR_ERR_SUCCESS;
12145 static enum ndr_err_code ndr_pull_spoolss_PortInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo1 *r)
12147 uint32_t _ptr_port_name;
12148 TALLOC_CTX *_mem_save_port_name_0;
12149 if (ndr_flags & NDR_SCALARS) {
12150 NDR_CHECK(ndr_pull_align(ndr, 4));
12152 uint32_t _flags_save_string = ndr->flags;
12153 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12154 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12155 if (_ptr_port_name) {
12156 NDR_PULL_ALLOC(ndr, r->port_name);
12157 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12159 r->port_name = NULL;
12161 ndr->flags = _flags_save_string;
12164 if (ndr_flags & NDR_BUFFERS) {
12166 uint32_t _flags_save_string = ndr->flags;
12167 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12168 if (r->port_name) {
12169 uint32_t _relative_save_offset;
12170 _relative_save_offset = ndr->offset;
12171 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12172 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12173 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12174 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12175 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12176 ndr->offset = _relative_save_offset;
12178 ndr->flags = _flags_save_string;
12181 return NDR_ERR_SUCCESS;
12184 _PUBLIC_ void ndr_print_spoolss_PortInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo1 *r)
12186 ndr_print_struct(ndr, name, "spoolss_PortInfo1");
12188 ndr_print_ptr(ndr, "port_name", r->port_name);
12190 if (r->port_name) {
12191 ndr_print_string(ndr, "port_name", r->port_name);
12197 static enum ndr_err_code ndr_push_spoolss_PortType(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12200 return NDR_ERR_SUCCESS;
12203 static enum ndr_err_code ndr_pull_spoolss_PortType(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12206 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12208 return NDR_ERR_SUCCESS;
12211 _PUBLIC_ void ndr_print_spoolss_PortType(struct ndr_print *ndr, const char *name, uint32_t r)
12213 ndr_print_uint32(ndr, name, r);
12215 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_WRITE", SPOOLSS_PORT_TYPE_WRITE, r);
12216 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_READ", SPOOLSS_PORT_TYPE_READ, r);
12217 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_REDIRECTED", SPOOLSS_PORT_TYPE_REDIRECTED, r);
12218 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "SPOOLSS_PORT_TYPE_NET_ATTACHED", SPOOLSS_PORT_TYPE_NET_ATTACHED, r);
12222 static enum ndr_err_code ndr_push_spoolss_PortInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortInfo2 *r)
12224 if (ndr_flags & NDR_SCALARS) {
12225 NDR_CHECK(ndr_push_align(ndr, 4));
12227 uint32_t _flags_save_string = ndr->flags;
12228 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12229 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->port_name));
12230 ndr->flags = _flags_save_string;
12233 uint32_t _flags_save_string = ndr->flags;
12234 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12235 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12236 ndr->flags = _flags_save_string;
12239 uint32_t _flags_save_string = ndr->flags;
12240 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12241 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->description));
12242 ndr->flags = _flags_save_string;
12244 NDR_CHECK(ndr_push_spoolss_PortType(ndr, NDR_SCALARS, r->port_type));
12245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
12247 if (ndr_flags & NDR_BUFFERS) {
12249 uint32_t _flags_save_string = ndr->flags;
12250 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12251 if (r->port_name) {
12252 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->port_name));
12253 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->port_name));
12255 ndr->flags = _flags_save_string;
12258 uint32_t _flags_save_string = ndr->flags;
12259 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12260 if (r->monitor_name) {
12261 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12262 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12264 ndr->flags = _flags_save_string;
12267 uint32_t _flags_save_string = ndr->flags;
12268 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12269 if (r->description) {
12270 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->description));
12271 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->description));
12273 ndr->flags = _flags_save_string;
12276 return NDR_ERR_SUCCESS;
12279 static enum ndr_err_code ndr_pull_spoolss_PortInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortInfo2 *r)
12281 uint32_t _ptr_port_name;
12282 TALLOC_CTX *_mem_save_port_name_0;
12283 uint32_t _ptr_monitor_name;
12284 TALLOC_CTX *_mem_save_monitor_name_0;
12285 uint32_t _ptr_description;
12286 TALLOC_CTX *_mem_save_description_0;
12287 if (ndr_flags & NDR_SCALARS) {
12288 NDR_CHECK(ndr_pull_align(ndr, 4));
12290 uint32_t _flags_save_string = ndr->flags;
12291 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12292 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_port_name));
12293 if (_ptr_port_name) {
12294 NDR_PULL_ALLOC(ndr, r->port_name);
12295 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->port_name, _ptr_port_name));
12297 r->port_name = NULL;
12299 ndr->flags = _flags_save_string;
12302 uint32_t _flags_save_string = ndr->flags;
12303 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12304 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12305 if (_ptr_monitor_name) {
12306 NDR_PULL_ALLOC(ndr, r->monitor_name);
12307 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12309 r->monitor_name = NULL;
12311 ndr->flags = _flags_save_string;
12314 uint32_t _flags_save_string = ndr->flags;
12315 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12316 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_description));
12317 if (_ptr_description) {
12318 NDR_PULL_ALLOC(ndr, r->description);
12319 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->description, _ptr_description));
12321 r->description = NULL;
12323 ndr->flags = _flags_save_string;
12325 NDR_CHECK(ndr_pull_spoolss_PortType(ndr, NDR_SCALARS, &r->port_type));
12326 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
12328 if (ndr_flags & NDR_BUFFERS) {
12330 uint32_t _flags_save_string = ndr->flags;
12331 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12332 if (r->port_name) {
12333 uint32_t _relative_save_offset;
12334 _relative_save_offset = ndr->offset;
12335 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->port_name));
12336 _mem_save_port_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12337 NDR_PULL_SET_MEM_CTX(ndr, r->port_name, 0);
12338 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->port_name));
12339 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_port_name_0, 0);
12340 ndr->offset = _relative_save_offset;
12342 ndr->flags = _flags_save_string;
12345 uint32_t _flags_save_string = ndr->flags;
12346 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12347 if (r->monitor_name) {
12348 uint32_t _relative_save_offset;
12349 _relative_save_offset = ndr->offset;
12350 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12351 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12352 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12353 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12354 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12355 ndr->offset = _relative_save_offset;
12357 ndr->flags = _flags_save_string;
12360 uint32_t _flags_save_string = ndr->flags;
12361 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12362 if (r->description) {
12363 uint32_t _relative_save_offset;
12364 _relative_save_offset = ndr->offset;
12365 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->description));
12366 _mem_save_description_0 = NDR_PULL_GET_MEM_CTX(ndr);
12367 NDR_PULL_SET_MEM_CTX(ndr, r->description, 0);
12368 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->description));
12369 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_description_0, 0);
12370 ndr->offset = _relative_save_offset;
12372 ndr->flags = _flags_save_string;
12375 return NDR_ERR_SUCCESS;
12378 _PUBLIC_ void ndr_print_spoolss_PortInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_PortInfo2 *r)
12380 ndr_print_struct(ndr, name, "spoolss_PortInfo2");
12382 ndr_print_ptr(ndr, "port_name", r->port_name);
12384 if (r->port_name) {
12385 ndr_print_string(ndr, "port_name", r->port_name);
12388 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12390 if (r->monitor_name) {
12391 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12394 ndr_print_ptr(ndr, "description", r->description);
12396 if (r->description) {
12397 ndr_print_string(ndr, "description", r->description);
12400 ndr_print_spoolss_PortType(ndr, "port_type", r->port_type);
12401 ndr_print_uint32(ndr, "reserved", r->reserved);
12405 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_PortInfo *r)
12407 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12408 if (ndr_flags & NDR_SCALARS) {
12409 int level = ndr_push_get_switch_value(ndr, r);
12412 NDR_CHECK(ndr_push_align(ndr, 4));
12413 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12414 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12418 NDR_CHECK(ndr_push_align(ndr, 4));
12419 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12420 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12431 if (ndr_flags & NDR_BUFFERS) {
12432 int level = ndr_push_get_switch_value(ndr, r);
12433 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12436 NDR_CHECK(ndr_push_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12440 NDR_CHECK(ndr_push_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12451 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12452 return NDR_ERR_SUCCESS;
12455 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_PortInfo *r)
12457 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12459 level = ndr_pull_get_switch_value(ndr, r);
12460 if (ndr_flags & NDR_SCALARS) {
12463 NDR_CHECK(ndr_pull_align(ndr, 4));
12464 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12465 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_SCALARS, &r->info1));
12469 NDR_CHECK(ndr_pull_align(ndr, 4));
12470 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12471 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_SCALARS, &r->info2));
12482 if (ndr_flags & NDR_BUFFERS) {
12483 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12486 NDR_CHECK(ndr_pull_spoolss_PortInfo1(ndr, NDR_BUFFERS, &r->info1));
12490 NDR_CHECK(ndr_pull_spoolss_PortInfo2(ndr, NDR_BUFFERS, &r->info2));
12501 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12502 return NDR_ERR_SUCCESS;
12505 _PUBLIC_ void ndr_print_spoolss_PortInfo(struct ndr_print *ndr, const char *name, const union spoolss_PortInfo *r)
12508 level = ndr_print_get_switch_value(ndr, r);
12509 ndr_print_union(ndr, name, level, "spoolss_PortInfo");
12512 ndr_print_spoolss_PortInfo1(ndr, "info1", &r->info1);
12516 ndr_print_spoolss_PortInfo2(ndr, "info2", &r->info2);
12528 static enum ndr_err_code ndr_push_spoolss_MonitorInfo1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo1 *r)
12530 if (ndr_flags & NDR_SCALARS) {
12531 NDR_CHECK(ndr_push_align(ndr, 4));
12533 uint32_t _flags_save_string = ndr->flags;
12534 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12535 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12536 ndr->flags = _flags_save_string;
12539 if (ndr_flags & NDR_BUFFERS) {
12541 uint32_t _flags_save_string = ndr->flags;
12542 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12543 if (r->monitor_name) {
12544 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12545 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12547 ndr->flags = _flags_save_string;
12550 return NDR_ERR_SUCCESS;
12553 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo1 *r)
12555 uint32_t _ptr_monitor_name;
12556 TALLOC_CTX *_mem_save_monitor_name_0;
12557 if (ndr_flags & NDR_SCALARS) {
12558 NDR_CHECK(ndr_pull_align(ndr, 4));
12560 uint32_t _flags_save_string = ndr->flags;
12561 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12562 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12563 if (_ptr_monitor_name) {
12564 NDR_PULL_ALLOC(ndr, r->monitor_name);
12565 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12567 r->monitor_name = NULL;
12569 ndr->flags = _flags_save_string;
12572 if (ndr_flags & NDR_BUFFERS) {
12574 uint32_t _flags_save_string = ndr->flags;
12575 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12576 if (r->monitor_name) {
12577 uint32_t _relative_save_offset;
12578 _relative_save_offset = ndr->offset;
12579 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12580 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12581 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12582 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12583 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12584 ndr->offset = _relative_save_offset;
12586 ndr->flags = _flags_save_string;
12589 return NDR_ERR_SUCCESS;
12592 _PUBLIC_ void ndr_print_spoolss_MonitorInfo1(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo1 *r)
12594 ndr_print_struct(ndr, name, "spoolss_MonitorInfo1");
12596 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12598 if (r->monitor_name) {
12599 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12605 static enum ndr_err_code ndr_push_spoolss_MonitorInfo2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorInfo2 *r)
12607 if (ndr_flags & NDR_SCALARS) {
12608 NDR_CHECK(ndr_push_align(ndr, 4));
12610 uint32_t _flags_save_string = ndr->flags;
12611 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12612 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->monitor_name));
12613 ndr->flags = _flags_save_string;
12616 uint32_t _flags_save_string = ndr->flags;
12617 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12618 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->environment));
12619 ndr->flags = _flags_save_string;
12622 uint32_t _flags_save_string = ndr->flags;
12623 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12624 NDR_CHECK(ndr_push_relative_ptr1(ndr, r->dll_name));
12625 ndr->flags = _flags_save_string;
12628 if (ndr_flags & NDR_BUFFERS) {
12630 uint32_t _flags_save_string = ndr->flags;
12631 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12632 if (r->monitor_name) {
12633 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->monitor_name));
12634 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->monitor_name));
12636 ndr->flags = _flags_save_string;
12639 uint32_t _flags_save_string = ndr->flags;
12640 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12641 if (r->environment) {
12642 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->environment));
12643 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->environment));
12645 ndr->flags = _flags_save_string;
12648 uint32_t _flags_save_string = ndr->flags;
12649 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12651 NDR_CHECK(ndr_push_relative_ptr2(ndr, r->dll_name));
12652 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
12654 ndr->flags = _flags_save_string;
12657 return NDR_ERR_SUCCESS;
12660 static enum ndr_err_code ndr_pull_spoolss_MonitorInfo2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorInfo2 *r)
12662 uint32_t _ptr_monitor_name;
12663 TALLOC_CTX *_mem_save_monitor_name_0;
12664 uint32_t _ptr_environment;
12665 TALLOC_CTX *_mem_save_environment_0;
12666 uint32_t _ptr_dll_name;
12667 TALLOC_CTX *_mem_save_dll_name_0;
12668 if (ndr_flags & NDR_SCALARS) {
12669 NDR_CHECK(ndr_pull_align(ndr, 4));
12671 uint32_t _flags_save_string = ndr->flags;
12672 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12673 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_monitor_name));
12674 if (_ptr_monitor_name) {
12675 NDR_PULL_ALLOC(ndr, r->monitor_name);
12676 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->monitor_name, _ptr_monitor_name));
12678 r->monitor_name = NULL;
12680 ndr->flags = _flags_save_string;
12683 uint32_t _flags_save_string = ndr->flags;
12684 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12685 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
12686 if (_ptr_environment) {
12687 NDR_PULL_ALLOC(ndr, r->environment);
12688 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->environment, _ptr_environment));
12690 r->environment = NULL;
12692 ndr->flags = _flags_save_string;
12695 uint32_t _flags_save_string = ndr->flags;
12696 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12697 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_dll_name));
12698 if (_ptr_dll_name) {
12699 NDR_PULL_ALLOC(ndr, r->dll_name);
12700 NDR_CHECK(ndr_pull_relative_ptr1(ndr, r->dll_name, _ptr_dll_name));
12702 r->dll_name = NULL;
12704 ndr->flags = _flags_save_string;
12707 if (ndr_flags & NDR_BUFFERS) {
12709 uint32_t _flags_save_string = ndr->flags;
12710 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12711 if (r->monitor_name) {
12712 uint32_t _relative_save_offset;
12713 _relative_save_offset = ndr->offset;
12714 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->monitor_name));
12715 _mem_save_monitor_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12716 NDR_PULL_SET_MEM_CTX(ndr, r->monitor_name, 0);
12717 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->monitor_name));
12718 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_monitor_name_0, 0);
12719 ndr->offset = _relative_save_offset;
12721 ndr->flags = _flags_save_string;
12724 uint32_t _flags_save_string = ndr->flags;
12725 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12726 if (r->environment) {
12727 uint32_t _relative_save_offset;
12728 _relative_save_offset = ndr->offset;
12729 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->environment));
12730 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
12731 NDR_PULL_SET_MEM_CTX(ndr, r->environment, 0);
12732 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->environment));
12733 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
12734 ndr->offset = _relative_save_offset;
12736 ndr->flags = _flags_save_string;
12739 uint32_t _flags_save_string = ndr->flags;
12740 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
12742 uint32_t _relative_save_offset;
12743 _relative_save_offset = ndr->offset;
12744 NDR_CHECK(ndr_pull_relative_ptr2(ndr, r->dll_name));
12745 _mem_save_dll_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
12746 NDR_PULL_SET_MEM_CTX(ndr, r->dll_name, 0);
12747 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
12748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_dll_name_0, 0);
12749 ndr->offset = _relative_save_offset;
12751 ndr->flags = _flags_save_string;
12754 return NDR_ERR_SUCCESS;
12757 _PUBLIC_ void ndr_print_spoolss_MonitorInfo2(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorInfo2 *r)
12759 ndr_print_struct(ndr, name, "spoolss_MonitorInfo2");
12761 ndr_print_ptr(ndr, "monitor_name", r->monitor_name);
12763 if (r->monitor_name) {
12764 ndr_print_string(ndr, "monitor_name", r->monitor_name);
12767 ndr_print_ptr(ndr, "environment", r->environment);
12769 if (r->environment) {
12770 ndr_print_string(ndr, "environment", r->environment);
12773 ndr_print_ptr(ndr, "dll_name", r->dll_name);
12776 ndr_print_string(ndr, "dll_name", r->dll_name);
12782 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_MonitorInfo *r)
12784 uint32_t _save_relative_base_offset = ndr_push_get_relative_base_offset(ndr);
12785 if (ndr_flags & NDR_SCALARS) {
12786 int level = ndr_push_get_switch_value(ndr, r);
12789 NDR_CHECK(ndr_push_align(ndr, 4));
12790 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12791 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12795 NDR_CHECK(ndr_push_align(ndr, 4));
12796 NDR_CHECK(ndr_push_setup_relative_base_offset1(ndr, r, ndr->offset));
12797 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12805 if (ndr_flags & NDR_BUFFERS) {
12806 int level = ndr_push_get_switch_value(ndr, r);
12807 NDR_CHECK(ndr_push_setup_relative_base_offset2(ndr, r));
12810 NDR_CHECK(ndr_push_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12814 NDR_CHECK(ndr_push_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12822 ndr_push_restore_relative_base_offset(ndr, _save_relative_base_offset);
12823 return NDR_ERR_SUCCESS;
12826 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_MonitorInfo *r)
12828 uint32_t _save_relative_base_offset = ndr_pull_get_relative_base_offset(ndr);
12830 level = ndr_pull_get_switch_value(ndr, r);
12831 if (ndr_flags & NDR_SCALARS) {
12834 NDR_CHECK(ndr_pull_align(ndr, 4));
12835 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12836 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_SCALARS, &r->info1));
12840 NDR_CHECK(ndr_pull_align(ndr, 4));
12841 NDR_CHECK(ndr_pull_setup_relative_base_offset1(ndr, r, ndr->offset));
12842 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_SCALARS, &r->info2));
12850 if (ndr_flags & NDR_BUFFERS) {
12851 NDR_CHECK(ndr_pull_setup_relative_base_offset2(ndr, r));
12854 NDR_CHECK(ndr_pull_spoolss_MonitorInfo1(ndr, NDR_BUFFERS, &r->info1));
12858 NDR_CHECK(ndr_pull_spoolss_MonitorInfo2(ndr, NDR_BUFFERS, &r->info2));
12866 ndr_pull_restore_relative_base_offset(ndr, _save_relative_base_offset);
12867 return NDR_ERR_SUCCESS;
12870 _PUBLIC_ void ndr_print_spoolss_MonitorInfo(struct ndr_print *ndr, const char *name, const union spoolss_MonitorInfo *r)
12873 level = ndr_print_get_switch_value(ndr, r);
12874 ndr_print_union(ndr, name, level, "spoolss_MonitorInfo");
12877 ndr_print_spoolss_MonitorInfo1(ndr, "info1", &r->info1);
12881 ndr_print_spoolss_MonitorInfo2(ndr, "info2", &r->info2);
12890 static enum ndr_err_code ndr_push_spoolss_PrinterChangeFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
12892 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
12893 return NDR_ERR_SUCCESS;
12896 static enum ndr_err_code ndr_pull_spoolss_PrinterChangeFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
12899 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
12901 return NDR_ERR_SUCCESS;
12904 _PUBLIC_ void ndr_print_spoolss_PrinterChangeFlags(struct ndr_print *ndr, const char *name, uint32_t r)
12906 ndr_print_uint32(ndr, name, r);
12908 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER", PRINTER_CHANGE_ADD_PRINTER, r);
12909 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER", PRINTER_CHANGE_SET_PRINTER, r);
12910 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER", PRINTER_CHANGE_DELETE_PRINTER, r);
12911 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_FAILED_CONNECTION_PRINTER", PRINTER_CHANGE_FAILED_CONNECTION_PRINTER, r);
12912 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_JOB", PRINTER_CHANGE_ADD_JOB, r);
12913 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_JOB", PRINTER_CHANGE_SET_JOB, r);
12914 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_JOB", PRINTER_CHANGE_DELETE_JOB, r);
12915 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_WRITE_JOB", PRINTER_CHANGE_WRITE_JOB, r);
12916 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_FORM", PRINTER_CHANGE_ADD_FORM, r);
12917 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_FORM", PRINTER_CHANGE_SET_FORM, r);
12918 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_FORM", PRINTER_CHANGE_DELETE_FORM, r);
12919 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PORT", PRINTER_CHANGE_ADD_PORT, r);
12920 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_CONFIGURE_PORT", PRINTER_CHANGE_CONFIGURE_PORT, r);
12921 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PORT", PRINTER_CHANGE_DELETE_PORT, r);
12922 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINT_PROCESSOR", PRINTER_CHANGE_ADD_PRINT_PROCESSOR, r);
12923 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINT_PROCESSOR", PRINTER_CHANGE_DELETE_PRINT_PROCESSOR, r);
12924 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_ADD_PRINTER_DRIVER", PRINTER_CHANGE_ADD_PRINTER_DRIVER, r);
12925 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_SET_PRINTER_DRIVER", PRINTER_CHANGE_SET_PRINTER_DRIVER, r);
12926 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_DELETE_PRINTER_DRIVER", PRINTER_CHANGE_DELETE_PRINTER_DRIVER, r);
12927 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_CHANGE_TIMEOUT", PRINTER_CHANGE_TIMEOUT, r);
12931 static enum ndr_err_code ndr_push_spoolss_Field(struct ndr_push *ndr, int ndr_flags, enum spoolss_Field r)
12933 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
12934 return NDR_ERR_SUCCESS;
12937 static enum ndr_err_code ndr_pull_spoolss_Field(struct ndr_pull *ndr, int ndr_flags, enum spoolss_Field *r)
12940 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
12942 return NDR_ERR_SUCCESS;
12945 _PUBLIC_ void ndr_print_spoolss_Field(struct ndr_print *ndr, const char *name, enum spoolss_Field r)
12947 const char *val = NULL;
12950 case SPOOLSS_FIELD_SERVER_NAME: val = "SPOOLSS_FIELD_SERVER_NAME"; break;
12951 case SPOOLSS_FIELD_PRINTER_NAME: val = "SPOOLSS_FIELD_PRINTER_NAME"; break;
12952 case SPOOLSS_FIELD_SHARE_NAME: val = "SPOOLSS_FIELD_SHARE_NAME"; break;
12953 case SPOOLSS_FIELD_PORT_NAME: val = "SPOOLSS_FIELD_PORT_NAME"; break;
12954 case SPOOLSS_FIELD_DRIVER_NAME: val = "SPOOLSS_FIELD_DRIVER_NAME"; break;
12955 case SPOOLSS_FIELD_COMMENT: val = "SPOOLSS_FIELD_COMMENT"; break;
12956 case SPOOLSS_FIELD_LOCATION: val = "SPOOLSS_FIELD_LOCATION"; break;
12957 case SPOOLSS_FIELD_DEVMODE: val = "SPOOLSS_FIELD_DEVMODE"; break;
12958 case SPOOLSS_FIELD_SEPFILE: val = "SPOOLSS_FIELD_SEPFILE"; break;
12959 case SPOOLSS_FIELD_PRINT_PROCESSOR: val = "SPOOLSS_FIELD_PRINT_PROCESSOR"; break;
12960 case SPOOLSS_FIELD_PARAMETERS: val = "SPOOLSS_FIELD_PARAMETERS"; break;
12961 case SPOOLSS_FIELD_DATATYPE: val = "SPOOLSS_FIELD_DATATYPE"; break;
12962 case SPOOLSS_FIELD_SECURITY_DESCRIPTOR: val = "SPOOLSS_FIELD_SECURITY_DESCRIPTOR"; break;
12963 case SPOOLSS_FIELD_ATTRIBUTES: val = "SPOOLSS_FIELD_ATTRIBUTES"; break;
12964 case SPOOLSS_FIELD_PRIORITY: val = "SPOOLSS_FIELD_PRIORITY"; break;
12965 case SPOOLSS_FIELD_DEFAULT_PRIORITY: val = "SPOOLSS_FIELD_DEFAULT_PRIORITY"; break;
12966 case SPOOLSS_FIELD_START_TIME: val = "SPOOLSS_FIELD_START_TIME"; break;
12967 case SPOOLSS_FIELD_UNTIL_TIME: val = "SPOOLSS_FIELD_UNTIL_TIME"; break;
12968 case SPOOLSS_FIELD_STATUS: val = "SPOOLSS_FIELD_STATUS"; break;
12969 case SPOOLSS_FIELD_STATUS_STRING: val = "SPOOLSS_FIELD_STATUS_STRING"; break;
12970 case SPOOLSS_FIELD_CJOBS: val = "SPOOLSS_FIELD_CJOBS"; break;
12971 case SPOOLSS_FIELD_AVERAGE_PPM: val = "SPOOLSS_FIELD_AVERAGE_PPM"; break;
12972 case SPOOLSS_FIELD_TOTAL_PAGES: val = "SPOOLSS_FIELD_TOTAL_PAGES"; break;
12973 case SPOOLSS_FIELD_PAGES_PRINTED: val = "SPOOLSS_FIELD_PAGES_PRINTED"; break;
12974 case SPOOLSS_FIELD_TOTAL_BYTES: val = "SPOOLSS_FIELD_TOTAL_BYTES"; break;
12975 case SPOOLSS_FIELD_BYTES_PRINTED: val = "SPOOLSS_FIELD_BYTES_PRINTED"; break;
12977 ndr_print_enum(ndr, name, "ENUM", val, r);
12980 static enum ndr_err_code ndr_push_spoolss_NotifyType(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyType r)
12982 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r));
12983 return NDR_ERR_SUCCESS;
12986 static enum ndr_err_code ndr_pull_spoolss_NotifyType(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyType *r)
12989 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &v));
12991 return NDR_ERR_SUCCESS;
12994 _PUBLIC_ void ndr_print_spoolss_NotifyType(struct ndr_print *ndr, const char *name, enum spoolss_NotifyType r)
12996 const char *val = NULL;
12999 case SPOOLSS_NOTIFY_PRINTER: val = "SPOOLSS_NOTIFY_PRINTER"; break;
13000 case SPOOLSS_NOTIFY_JOB: val = "SPOOLSS_NOTIFY_JOB"; break;
13002 ndr_print_enum(ndr, name, "ENUM", val, r);
13005 static enum ndr_err_code ndr_push_spoolss_NotifyOptionType(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOptionType *r)
13007 uint32_t cntr_fields_1;
13008 if (ndr_flags & NDR_SCALARS) {
13009 NDR_CHECK(ndr_push_align(ndr, 4));
13010 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13011 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->u1));
13012 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u2));
13013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->u3));
13014 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13015 NDR_CHECK(ndr_push_unique_ptr(ndr, r->fields));
13017 if (ndr_flags & NDR_BUFFERS) {
13019 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13020 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13021 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->fields[cntr_fields_1]));
13025 return NDR_ERR_SUCCESS;
13028 static enum ndr_err_code ndr_pull_spoolss_NotifyOptionType(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOptionType *r)
13030 uint32_t _ptr_fields;
13031 uint32_t cntr_fields_1;
13032 TALLOC_CTX *_mem_save_fields_0;
13033 TALLOC_CTX *_mem_save_fields_1;
13034 if (ndr_flags & NDR_SCALARS) {
13035 NDR_CHECK(ndr_pull_align(ndr, 4));
13036 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13037 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->u1));
13038 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u2));
13039 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->u3));
13040 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13041 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_fields));
13043 NDR_PULL_ALLOC(ndr, r->fields);
13048 if (ndr_flags & NDR_BUFFERS) {
13050 _mem_save_fields_0 = NDR_PULL_GET_MEM_CTX(ndr);
13051 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13052 NDR_CHECK(ndr_pull_array_size(ndr, &r->fields));
13053 NDR_PULL_ALLOC_N(ndr, r->fields, ndr_get_array_size(ndr, &r->fields));
13054 _mem_save_fields_1 = NDR_PULL_GET_MEM_CTX(ndr);
13055 NDR_PULL_SET_MEM_CTX(ndr, r->fields, 0);
13056 for (cntr_fields_1 = 0; cntr_fields_1 < r->count; cntr_fields_1++) {
13057 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->fields[cntr_fields_1]));
13059 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_1, 0);
13060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_fields_0, 0);
13063 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->fields, r->count));
13066 return NDR_ERR_SUCCESS;
13069 _PUBLIC_ void ndr_print_spoolss_NotifyOptionType(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOptionType *r)
13071 uint32_t cntr_fields_1;
13072 ndr_print_struct(ndr, name, "spoolss_NotifyOptionType");
13074 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13075 ndr_print_uint16(ndr, "u1", r->u1);
13076 ndr_print_uint32(ndr, "u2", r->u2);
13077 ndr_print_uint32(ndr, "u3", r->u3);
13078 ndr_print_uint32(ndr, "count", r->count);
13079 ndr_print_ptr(ndr, "fields", r->fields);
13082 ndr->print(ndr, "%s: ARRAY(%d)", "fields", (int)r->count);
13084 for (cntr_fields_1=0;cntr_fields_1<r->count;cntr_fields_1++) {
13086 if (asprintf(&idx_1, "[%d]", cntr_fields_1) != -1) {
13087 ndr_print_spoolss_Field(ndr, "fields", r->fields[cntr_fields_1]);
13097 static enum ndr_err_code ndr_push_spoolss_NotifyOption(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyOption *r)
13099 uint32_t cntr_types_1;
13100 if (ndr_flags & NDR_SCALARS) {
13101 NDR_CHECK(ndr_push_align(ndr, 4));
13102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13105 NDR_CHECK(ndr_push_unique_ptr(ndr, r->types));
13107 if (ndr_flags & NDR_BUFFERS) {
13109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13110 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13111 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13113 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13114 NDR_CHECK(ndr_push_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13118 return NDR_ERR_SUCCESS;
13121 static enum ndr_err_code ndr_pull_spoolss_NotifyOption(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyOption *r)
13123 uint32_t _ptr_types;
13124 uint32_t cntr_types_1;
13125 TALLOC_CTX *_mem_save_types_0;
13126 TALLOC_CTX *_mem_save_types_1;
13127 if (ndr_flags & NDR_SCALARS) {
13128 NDR_CHECK(ndr_pull_align(ndr, 4));
13129 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13130 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13131 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13132 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_types));
13134 NDR_PULL_ALLOC(ndr, r->types);
13139 if (ndr_flags & NDR_BUFFERS) {
13141 _mem_save_types_0 = NDR_PULL_GET_MEM_CTX(ndr);
13142 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13143 NDR_CHECK(ndr_pull_array_size(ndr, &r->types));
13144 NDR_PULL_ALLOC_N(ndr, r->types, ndr_get_array_size(ndr, &r->types));
13145 _mem_save_types_1 = NDR_PULL_GET_MEM_CTX(ndr);
13146 NDR_PULL_SET_MEM_CTX(ndr, r->types, 0);
13147 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13148 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_SCALARS, &r->types[cntr_types_1]));
13150 for (cntr_types_1 = 0; cntr_types_1 < r->count; cntr_types_1++) {
13151 NDR_CHECK(ndr_pull_spoolss_NotifyOptionType(ndr, NDR_BUFFERS, &r->types[cntr_types_1]));
13153 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_1, 0);
13154 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_types_0, 0);
13157 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->types, r->count));
13160 return NDR_ERR_SUCCESS;
13163 _PUBLIC_ void ndr_print_spoolss_NotifyOption(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyOption *r)
13165 uint32_t cntr_types_1;
13166 ndr_print_struct(ndr, name, "spoolss_NotifyOption");
13168 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13169 ndr_print_uint32(ndr, "flags", r->flags);
13170 ndr_print_uint32(ndr, "count", r->count);
13171 ndr_print_ptr(ndr, "types", r->types);
13174 ndr->print(ndr, "%s: ARRAY(%d)", "types", (int)r->count);
13176 for (cntr_types_1=0;cntr_types_1<r->count;cntr_types_1++) {
13178 if (asprintf(&idx_1, "[%d]", cntr_types_1) != -1) {
13179 ndr_print_spoolss_NotifyOptionType(ndr, "types", &r->types[cntr_types_1]);
13189 static enum ndr_err_code ndr_push_spoolss_NotifyString(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyString *r)
13191 if (ndr_flags & NDR_SCALARS) {
13192 NDR_CHECK(ndr_push_align(ndr, 4));
13193 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13194 NDR_CHECK(ndr_push_unique_ptr(ndr, r->string));
13196 if (ndr_flags & NDR_BUFFERS) {
13198 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size / 2));
13199 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->string, r->size / 2, sizeof(uint16_t), CH_UTF16));
13202 return NDR_ERR_SUCCESS;
13205 static enum ndr_err_code ndr_pull_spoolss_NotifyString(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyString *r)
13207 uint32_t _ptr_string;
13208 TALLOC_CTX *_mem_save_string_0;
13209 if (ndr_flags & NDR_SCALARS) {
13210 NDR_CHECK(ndr_pull_align(ndr, 4));
13211 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13212 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_string));
13214 NDR_PULL_ALLOC(ndr, r->string);
13219 if (ndr_flags & NDR_BUFFERS) {
13221 _mem_save_string_0 = NDR_PULL_GET_MEM_CTX(ndr);
13222 NDR_PULL_SET_MEM_CTX(ndr, r->string, 0);
13223 NDR_CHECK(ndr_pull_array_size(ndr, &r->string));
13224 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->string, ndr_get_array_size(ndr, &r->string), sizeof(uint16_t), CH_UTF16));
13225 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_string_0, 0);
13228 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->string, r->size / 2));
13231 return NDR_ERR_SUCCESS;
13234 _PUBLIC_ void ndr_print_spoolss_NotifyString(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyString *r)
13236 ndr_print_struct(ndr, name, "spoolss_NotifyString");
13238 ndr_print_uint32(ndr, "size", r->size);
13239 ndr_print_ptr(ndr, "string", r->string);
13242 ndr_print_string(ndr, "string", r->string);
13248 static enum ndr_err_code ndr_push_spoolss_NotifyTable(struct ndr_push *ndr, int ndr_flags, enum spoolss_NotifyTable r)
13250 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13251 return NDR_ERR_SUCCESS;
13254 static enum ndr_err_code ndr_pull_spoolss_NotifyTable(struct ndr_pull *ndr, int ndr_flags, enum spoolss_NotifyTable *r)
13257 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13259 return NDR_ERR_SUCCESS;
13262 _PUBLIC_ void ndr_print_spoolss_NotifyTable(struct ndr_print *ndr, const char *name, enum spoolss_NotifyTable r)
13264 const char *val = NULL;
13267 case NOTIFY_TABLE_DWORD: val = "NOTIFY_TABLE_DWORD"; break;
13268 case NOTIFY_TABLE_STRING: val = "NOTIFY_TABLE_STRING"; break;
13269 case NOTIFY_TABLE_DEVMODE: val = "NOTIFY_TABLE_DEVMODE"; break;
13270 case NOTIFY_TABLE_TIME: val = "NOTIFY_TABLE_TIME"; break;
13271 case NOTIFY_TABLE_SECURITYDESCRIPTOR: val = "NOTIFY_TABLE_SECURITYDESCRIPTOR"; break;
13273 ndr_print_enum(ndr, name, "ENUM", val, r);
13276 static enum ndr_err_code ndr_push_spoolss_NotifyData(struct ndr_push *ndr, int ndr_flags, const union spoolss_NotifyData *r)
13278 if (ndr_flags & NDR_SCALARS) {
13279 int level = ndr_push_get_switch_value(ndr, r);
13280 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13283 uint32_t cntr_integer_0;
13284 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13285 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->integer[cntr_integer_0]));
13290 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13294 NDR_CHECK(ndr_push_unique_ptr(ndr, r->devmode));
13298 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13302 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13306 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13309 if (ndr_flags & NDR_BUFFERS) {
13310 int level = ndr_push_get_switch_value(ndr, r);
13316 NDR_CHECK(ndr_push_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13321 NDR_CHECK(ndr_push_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
13326 NDR_CHECK(ndr_push_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13330 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13334 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13337 return NDR_ERR_SUCCESS;
13340 static enum ndr_err_code ndr_pull_spoolss_NotifyData(struct ndr_pull *ndr, int ndr_flags, union spoolss_NotifyData *r)
13344 TALLOC_CTX *_mem_save_devmode_0;
13345 level = ndr_pull_get_switch_value(ndr, r);
13346 if (ndr_flags & NDR_SCALARS) {
13347 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13348 if (_level != level) {
13349 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13353 uint32_t cntr_integer_0;
13354 for (cntr_integer_0 = 0; cntr_integer_0 < 2; cntr_integer_0++) {
13355 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->integer[cntr_integer_0]));
13360 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_SCALARS, &r->string));
13364 uint32_t _ptr_devmode;
13365 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_devmode));
13366 if (_ptr_devmode) {
13367 NDR_PULL_ALLOC(ndr, r->devmode);
13374 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_SCALARS, &r->time));
13378 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS, &r->sd));
13382 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13385 if (ndr_flags & NDR_BUFFERS) {
13391 NDR_CHECK(ndr_pull_spoolss_NotifyString(ndr, NDR_BUFFERS, &r->string));
13396 _mem_save_devmode_0 = NDR_PULL_GET_MEM_CTX(ndr);
13397 NDR_PULL_SET_MEM_CTX(ndr, r->devmode, 0);
13398 NDR_CHECK(ndr_pull_spoolss_DeviceMode(ndr, NDR_SCALARS, r->devmode));
13399 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_0, 0);
13404 NDR_CHECK(ndr_pull_spoolss_TimeCtr(ndr, NDR_BUFFERS, &r->time));
13408 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_BUFFERS, &r->sd));
13412 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13415 return NDR_ERR_SUCCESS;
13418 _PUBLIC_ void ndr_print_spoolss_NotifyData(struct ndr_print *ndr, const char *name, const union spoolss_NotifyData *r)
13421 uint32_t cntr_integer_0;
13422 level = ndr_print_get_switch_value(ndr, r);
13423 ndr_print_union(ndr, name, level, "spoolss_NotifyData");
13426 ndr->print(ndr, "%s: ARRAY(%d)", "integer", (int)2);
13428 for (cntr_integer_0=0;cntr_integer_0<2;cntr_integer_0++) {
13430 if (asprintf(&idx_0, "[%d]", cntr_integer_0) != -1) {
13431 ndr_print_uint32(ndr, "integer", r->integer[cntr_integer_0]);
13439 ndr_print_spoolss_NotifyString(ndr, "string", &r->string);
13443 ndr_print_ptr(ndr, "devmode", r->devmode);
13446 ndr_print_spoolss_DeviceMode(ndr, "devmode", r->devmode);
13452 ndr_print_spoolss_TimeCtr(ndr, "time", &r->time);
13456 ndr_print_sec_desc_buf(ndr, "sd", &r->sd);
13460 ndr_print_bad_level(ndr, name, level);
13464 static enum ndr_err_code ndr_push_spoolss_Notify(struct ndr_push *ndr, int ndr_flags, const struct spoolss_Notify *r)
13466 if (ndr_flags & NDR_SCALARS) {
13467 NDR_CHECK(ndr_push_align(ndr, 4));
13468 NDR_CHECK(ndr_push_spoolss_NotifyType(ndr, NDR_SCALARS, r->type));
13469 NDR_CHECK(ndr_push_spoolss_Field(ndr, NDR_SCALARS, r->field));
13470 NDR_CHECK(ndr_push_spoolss_NotifyTable(ndr, NDR_SCALARS, r->variable_type));
13471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->job_id));
13472 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->data, r->variable_type));
13473 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13475 if (ndr_flags & NDR_BUFFERS) {
13476 NDR_CHECK(ndr_push_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13478 return NDR_ERR_SUCCESS;
13481 static enum ndr_err_code ndr_pull_spoolss_Notify(struct ndr_pull *ndr, int ndr_flags, struct spoolss_Notify *r)
13483 if (ndr_flags & NDR_SCALARS) {
13484 NDR_CHECK(ndr_pull_align(ndr, 4));
13485 NDR_CHECK(ndr_pull_spoolss_NotifyType(ndr, NDR_SCALARS, &r->type));
13486 NDR_CHECK(ndr_pull_spoolss_Field(ndr, NDR_SCALARS, &r->field));
13487 NDR_CHECK(ndr_pull_spoolss_NotifyTable(ndr, NDR_SCALARS, &r->variable_type));
13488 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->job_id));
13489 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->data, r->variable_type));
13490 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_SCALARS, &r->data));
13492 if (ndr_flags & NDR_BUFFERS) {
13493 NDR_CHECK(ndr_pull_spoolss_NotifyData(ndr, NDR_BUFFERS, &r->data));
13495 return NDR_ERR_SUCCESS;
13498 _PUBLIC_ void ndr_print_spoolss_Notify(struct ndr_print *ndr, const char *name, const struct spoolss_Notify *r)
13500 ndr_print_struct(ndr, name, "spoolss_Notify");
13502 ndr_print_spoolss_NotifyType(ndr, "type", r->type);
13503 ndr_print_spoolss_Field(ndr, "field", r->field);
13504 ndr_print_spoolss_NotifyTable(ndr, "variable_type", r->variable_type);
13505 ndr_print_uint32(ndr, "job_id", r->job_id);
13506 ndr_print_set_switch_value(ndr, &r->data, r->variable_type);
13507 ndr_print_spoolss_NotifyData(ndr, "data", &r->data);
13511 static enum ndr_err_code ndr_push_spoolss_NotifyInfo(struct ndr_push *ndr, int ndr_flags, const struct spoolss_NotifyInfo *r)
13513 uint32_t cntr_notifies_0;
13514 if (ndr_flags & NDR_SCALARS) {
13515 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13516 NDR_CHECK(ndr_push_align(ndr, 4));
13517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 2));
13518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13519 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->count));
13520 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13521 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13524 if (ndr_flags & NDR_BUFFERS) {
13525 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13526 NDR_CHECK(ndr_push_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13529 return NDR_ERR_SUCCESS;
13532 static enum ndr_err_code ndr_pull_spoolss_NotifyInfo(struct ndr_pull *ndr, int ndr_flags, struct spoolss_NotifyInfo *r)
13534 uint32_t cntr_notifies_0;
13535 TALLOC_CTX *_mem_save_notifies_0;
13536 if (ndr_flags & NDR_SCALARS) {
13537 NDR_CHECK(ndr_pull_array_size(ndr, &r->notifies));
13538 NDR_CHECK(ndr_pull_align(ndr, 4));
13539 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
13540 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13541 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->count));
13542 NDR_PULL_ALLOC_N(ndr, r->notifies, ndr_get_array_size(ndr, &r->notifies));
13543 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13544 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13545 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13546 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_SCALARS, &r->notifies[cntr_notifies_0]));
13548 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13550 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->notifies, r->count));
13553 if (ndr_flags & NDR_BUFFERS) {
13554 _mem_save_notifies_0 = NDR_PULL_GET_MEM_CTX(ndr);
13555 NDR_PULL_SET_MEM_CTX(ndr, r->notifies, 0);
13556 for (cntr_notifies_0 = 0; cntr_notifies_0 < r->count; cntr_notifies_0++) {
13557 NDR_CHECK(ndr_pull_spoolss_Notify(ndr, NDR_BUFFERS, &r->notifies[cntr_notifies_0]));
13559 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notifies_0, 0);
13561 return NDR_ERR_SUCCESS;
13564 _PUBLIC_ void ndr_print_spoolss_NotifyInfo(struct ndr_print *ndr, const char *name, const struct spoolss_NotifyInfo *r)
13566 uint32_t cntr_notifies_0;
13567 ndr_print_struct(ndr, name, "spoolss_NotifyInfo");
13569 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?2:r->version);
13570 ndr_print_uint32(ndr, "flags", r->flags);
13571 ndr_print_uint32(ndr, "count", r->count);
13572 ndr->print(ndr, "%s: ARRAY(%d)", "notifies", (int)r->count);
13574 for (cntr_notifies_0=0;cntr_notifies_0<r->count;cntr_notifies_0++) {
13576 if (asprintf(&idx_0, "[%d]", cntr_notifies_0) != -1) {
13577 ndr_print_spoolss_Notify(ndr, "notifies", &r->notifies[cntr_notifies_0]);
13585 static enum ndr_err_code ndr_push_spoolss_ReplyPrinterInfo(struct ndr_push *ndr, int ndr_flags, const union spoolss_ReplyPrinterInfo *r)
13587 if (ndr_flags & NDR_SCALARS) {
13588 int level = ndr_push_get_switch_value(ndr, r);
13589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13592 NDR_CHECK(ndr_push_unique_ptr(ndr, r->info0));
13596 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13599 if (ndr_flags & NDR_BUFFERS) {
13600 int level = ndr_push_get_switch_value(ndr, r);
13604 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13609 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13612 return NDR_ERR_SUCCESS;
13615 static enum ndr_err_code ndr_pull_spoolss_ReplyPrinterInfo(struct ndr_pull *ndr, int ndr_flags, union spoolss_ReplyPrinterInfo *r)
13619 TALLOC_CTX *_mem_save_info0_0;
13620 level = ndr_pull_get_switch_value(ndr, r);
13621 if (ndr_flags & NDR_SCALARS) {
13622 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
13623 if (_level != level) {
13624 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
13628 uint32_t _ptr_info0;
13629 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info0));
13631 NDR_PULL_ALLOC(ndr, r->info0);
13638 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13641 if (ndr_flags & NDR_BUFFERS) {
13645 _mem_save_info0_0 = NDR_PULL_GET_MEM_CTX(ndr);
13646 NDR_PULL_SET_MEM_CTX(ndr, r->info0, 0);
13647 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, r->info0));
13648 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info0_0, 0);
13653 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13656 return NDR_ERR_SUCCESS;
13659 _PUBLIC_ void ndr_print_spoolss_ReplyPrinterInfo(struct ndr_print *ndr, const char *name, const union spoolss_ReplyPrinterInfo *r)
13662 level = ndr_print_get_switch_value(ndr, r);
13663 ndr_print_union(ndr, name, level, "spoolss_ReplyPrinterInfo");
13666 ndr_print_ptr(ndr, "info0", r->info0);
13669 ndr_print_spoolss_NotifyInfo(ndr, "info0", r->info0);
13675 ndr_print_bad_level(ndr, name, level);
13679 static enum ndr_err_code ndr_push_spoolss_PrinterNotifyFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
13681 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
13682 return NDR_ERR_SUCCESS;
13685 static enum ndr_err_code ndr_pull_spoolss_PrinterNotifyFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
13688 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
13690 return NDR_ERR_SUCCESS;
13693 _PUBLIC_ void ndr_print_spoolss_PrinterNotifyFlags(struct ndr_print *ndr, const char *name, uint32_t r)
13695 ndr_print_uint32(ndr, name, r);
13697 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDED", PRINTER_NOTIFY_INFO_DISCARDED, r);
13698 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_DISCARDNOTED", PRINTER_NOTIFY_INFO_DISCARDNOTED, r);
13699 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "PRINTER_NOTIFY_INFO_COLOR_MISMATCH", PRINTER_NOTIFY_INFO_COLOR_MISMATCH, r);
13703 static enum ndr_err_code ndr_push_spoolss_UserLevel1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel1 *r)
13705 if (ndr_flags & NDR_SCALARS) {
13706 NDR_CHECK(ndr_push_align(ndr, 4));
13707 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13708 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13709 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13710 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13711 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13712 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13713 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13715 if (ndr_flags & NDR_BUFFERS) {
13717 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13720 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13725 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13726 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13729 return NDR_ERR_SUCCESS;
13732 static enum ndr_err_code ndr_pull_spoolss_UserLevel1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel1 *r)
13734 uint32_t _ptr_client;
13735 TALLOC_CTX *_mem_save_client_0;
13736 uint32_t _ptr_user;
13737 TALLOC_CTX *_mem_save_user_0;
13738 if (ndr_flags & NDR_SCALARS) {
13739 NDR_CHECK(ndr_pull_align(ndr, 4));
13740 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13741 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
13743 NDR_PULL_ALLOC(ndr, r->client);
13747 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
13749 NDR_PULL_ALLOC(ndr, r->user);
13753 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
13754 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
13755 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
13756 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
13758 if (ndr_flags & NDR_BUFFERS) {
13760 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
13761 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
13762 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
13763 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
13764 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
13765 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));
13767 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
13768 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
13769 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
13772 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
13773 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
13774 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
13775 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
13776 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
13777 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));
13779 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
13780 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
13781 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
13784 return NDR_ERR_SUCCESS;
13787 _PUBLIC_ void ndr_print_spoolss_UserLevel1(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel1 *r)
13789 ndr_print_struct(ndr, name, "spoolss_UserLevel1");
13791 ndr_print_uint32(ndr, "size", r->size);
13792 ndr_print_ptr(ndr, "client", r->client);
13795 ndr_print_string(ndr, "client", r->client);
13798 ndr_print_ptr(ndr, "user", r->user);
13801 ndr_print_string(ndr, "user", r->user);
13804 ndr_print_uint32(ndr, "build", r->build);
13805 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
13806 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
13807 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
13811 static enum ndr_err_code ndr_push_spoolss_UserLevel2(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel2 *r)
13813 if (ndr_flags & NDR_SCALARS) {
13814 NDR_CHECK(ndr_push_align(ndr, 4));
13815 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->not_used));
13817 if (ndr_flags & NDR_BUFFERS) {
13819 return NDR_ERR_SUCCESS;
13822 static enum ndr_err_code ndr_pull_spoolss_UserLevel2(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel2 *r)
13824 if (ndr_flags & NDR_SCALARS) {
13825 NDR_CHECK(ndr_pull_align(ndr, 4));
13826 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->not_used));
13828 if (ndr_flags & NDR_BUFFERS) {
13830 return NDR_ERR_SUCCESS;
13833 _PUBLIC_ void ndr_print_spoolss_UserLevel2(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel2 *r)
13835 ndr_print_struct(ndr, name, "spoolss_UserLevel2");
13837 ndr_print_uint32(ndr, "not_used", r->not_used);
13841 static enum ndr_err_code ndr_push_spoolss_UserLevel3(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevel3 *r)
13843 if (ndr_flags & NDR_SCALARS) {
13844 NDR_CHECK(ndr_push_align(ndr, 4));
13845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size));
13846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->flags));
13847 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->size2));
13848 NDR_CHECK(ndr_push_unique_ptr(ndr, r->client));
13849 NDR_CHECK(ndr_push_unique_ptr(ndr, r->user));
13850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->build));
13851 NDR_CHECK(ndr_push_spoolss_MajorVersion(ndr, NDR_SCALARS, r->major));
13852 NDR_CHECK(ndr_push_spoolss_MinorVersion(ndr, NDR_SCALARS, r->minor));
13853 NDR_CHECK(ndr_push_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, r->processor));
13854 NDR_CHECK(ndr_push_udlong(ndr, NDR_SCALARS, r->reserved));
13856 if (ndr_flags & NDR_BUFFERS) {
13858 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13859 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13860 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->client, CH_UTF16)));
13861 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->client, ndr_charset_length(r->client, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13864 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13865 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
13866 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->user, CH_UTF16)));
13867 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->user, ndr_charset_length(r->user, CH_UTF16), sizeof(uint16_t), CH_UTF16));
13870 return NDR_ERR_SUCCESS;
13873 static enum ndr_err_code ndr_pull_spoolss_UserLevel3(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevel3 *r)
13875 uint32_t _ptr_client;
13876 TALLOC_CTX *_mem_save_client_0;
13877 uint32_t _ptr_user;
13878 TALLOC_CTX *_mem_save_user_0;
13879 if (ndr_flags & NDR_SCALARS) {
13880 NDR_CHECK(ndr_pull_align(ndr, 4));
13881 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
13882 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->flags));
13883 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size2));
13884 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_client));
13886 NDR_PULL_ALLOC(ndr, r->client);
13890 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_user));
13892 NDR_PULL_ALLOC(ndr, r->user);
13896 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->build));
13897 NDR_CHECK(ndr_pull_spoolss_MajorVersion(ndr, NDR_SCALARS, &r->major));
13898 NDR_CHECK(ndr_pull_spoolss_MinorVersion(ndr, NDR_SCALARS, &r->minor));
13899 NDR_CHECK(ndr_pull_spoolss_ProcessorArchitecture(ndr, NDR_SCALARS, &r->processor));
13900 NDR_CHECK(ndr_pull_udlong(ndr, NDR_SCALARS, &r->reserved));
13902 if (ndr_flags & NDR_BUFFERS) {
13904 _mem_save_client_0 = NDR_PULL_GET_MEM_CTX(ndr);
13905 NDR_PULL_SET_MEM_CTX(ndr, r->client, 0);
13906 NDR_CHECK(ndr_pull_array_size(ndr, &r->client));
13907 NDR_CHECK(ndr_pull_array_length(ndr, &r->client));
13908 if (ndr_get_array_length(ndr, &r->client) > ndr_get_array_size(ndr, &r->client)) {
13909 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));
13911 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t)));
13912 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->client, ndr_get_array_length(ndr, &r->client), sizeof(uint16_t), CH_UTF16));
13913 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_client_0, 0);
13916 _mem_save_user_0 = NDR_PULL_GET_MEM_CTX(ndr);
13917 NDR_PULL_SET_MEM_CTX(ndr, r->user, 0);
13918 NDR_CHECK(ndr_pull_array_size(ndr, &r->user));
13919 NDR_CHECK(ndr_pull_array_length(ndr, &r->user));
13920 if (ndr_get_array_length(ndr, &r->user) > ndr_get_array_size(ndr, &r->user)) {
13921 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));
13923 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t)));
13924 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->user, ndr_get_array_length(ndr, &r->user), sizeof(uint16_t), CH_UTF16));
13925 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_user_0, 0);
13928 return NDR_ERR_SUCCESS;
13931 _PUBLIC_ void ndr_print_spoolss_UserLevel3(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevel3 *r)
13933 ndr_print_struct(ndr, name, "spoolss_UserLevel3");
13935 ndr_print_uint32(ndr, "size", r->size);
13936 ndr_print_uint32(ndr, "flags", r->flags);
13937 ndr_print_uint32(ndr, "size2", r->size2);
13938 ndr_print_ptr(ndr, "client", r->client);
13941 ndr_print_string(ndr, "client", r->client);
13944 ndr_print_ptr(ndr, "user", r->user);
13947 ndr_print_string(ndr, "user", r->user);
13950 ndr_print_uint32(ndr, "build", r->build);
13951 ndr_print_spoolss_MajorVersion(ndr, "major", r->major);
13952 ndr_print_spoolss_MinorVersion(ndr, "minor", r->minor);
13953 ndr_print_spoolss_ProcessorArchitecture(ndr, "processor", r->processor);
13954 ndr_print_udlong(ndr, "reserved", r->reserved);
13958 static enum ndr_err_code ndr_push_spoolss_UserLevel(struct ndr_push *ndr, int ndr_flags, const union spoolss_UserLevel *r)
13960 if (ndr_flags & NDR_SCALARS) {
13961 int level = ndr_push_get_switch_value(ndr, r);
13962 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, level));
13965 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level1));
13969 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level2));
13973 NDR_CHECK(ndr_push_unique_ptr(ndr, r->level3));
13977 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
13980 if (ndr_flags & NDR_BUFFERS) {
13981 int level = ndr_push_get_switch_value(ndr, r);
13985 NDR_CHECK(ndr_push_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
13991 NDR_CHECK(ndr_push_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
13997 NDR_CHECK(ndr_push_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14002 return ndr_push_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14005 return NDR_ERR_SUCCESS;
14008 static enum ndr_err_code ndr_pull_spoolss_UserLevel(struct ndr_pull *ndr, int ndr_flags, union spoolss_UserLevel *r)
14012 TALLOC_CTX *_mem_save_level1_0;
14013 TALLOC_CTX *_mem_save_level2_0;
14014 TALLOC_CTX *_mem_save_level3_0;
14015 level = ndr_pull_get_switch_value(ndr, r);
14016 if (ndr_flags & NDR_SCALARS) {
14017 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &_level));
14018 if (_level != level) {
14019 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u for r", _level);
14023 uint32_t _ptr_level1;
14024 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level1));
14026 NDR_PULL_ALLOC(ndr, r->level1);
14033 uint32_t _ptr_level2;
14034 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level2));
14036 NDR_PULL_ALLOC(ndr, r->level2);
14043 uint32_t _ptr_level3;
14044 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_level3));
14046 NDR_PULL_ALLOC(ndr, r->level3);
14053 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14056 if (ndr_flags & NDR_BUFFERS) {
14060 _mem_save_level1_0 = NDR_PULL_GET_MEM_CTX(ndr);
14061 NDR_PULL_SET_MEM_CTX(ndr, r->level1, 0);
14062 NDR_CHECK(ndr_pull_spoolss_UserLevel1(ndr, NDR_SCALARS|NDR_BUFFERS, r->level1));
14063 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level1_0, 0);
14069 _mem_save_level2_0 = NDR_PULL_GET_MEM_CTX(ndr);
14070 NDR_PULL_SET_MEM_CTX(ndr, r->level2, 0);
14071 NDR_CHECK(ndr_pull_spoolss_UserLevel2(ndr, NDR_SCALARS, r->level2));
14072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level2_0, 0);
14078 _mem_save_level3_0 = NDR_PULL_GET_MEM_CTX(ndr);
14079 NDR_PULL_SET_MEM_CTX(ndr, r->level3, 0);
14080 NDR_CHECK(ndr_pull_spoolss_UserLevel3(ndr, NDR_SCALARS|NDR_BUFFERS, r->level3));
14081 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_level3_0, 0);
14086 return ndr_pull_error(ndr, NDR_ERR_BAD_SWITCH, "Bad switch value %u", level);
14089 return NDR_ERR_SUCCESS;
14092 _PUBLIC_ void ndr_print_spoolss_UserLevel(struct ndr_print *ndr, const char *name, const union spoolss_UserLevel *r)
14095 level = ndr_print_get_switch_value(ndr, r);
14096 ndr_print_union(ndr, name, level, "spoolss_UserLevel");
14099 ndr_print_ptr(ndr, "level1", r->level1);
14102 ndr_print_spoolss_UserLevel1(ndr, "level1", r->level1);
14108 ndr_print_ptr(ndr, "level2", r->level2);
14111 ndr_print_spoolss_UserLevel2(ndr, "level2", r->level2);
14117 ndr_print_ptr(ndr, "level3", r->level3);
14120 ndr_print_spoolss_UserLevel3(ndr, "level3", r->level3);
14126 ndr_print_bad_level(ndr, name, level);
14130 static enum ndr_err_code ndr_push_spoolss_UserLevelCtr(struct ndr_push *ndr, int ndr_flags, const struct spoolss_UserLevelCtr *r)
14132 if (ndr_flags & NDR_SCALARS) {
14133 NDR_CHECK(ndr_push_align(ndr, 4));
14134 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->level));
14135 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->user_info, r->level));
14136 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14138 if (ndr_flags & NDR_BUFFERS) {
14139 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14141 return NDR_ERR_SUCCESS;
14144 static enum ndr_err_code ndr_pull_spoolss_UserLevelCtr(struct ndr_pull *ndr, int ndr_flags, struct spoolss_UserLevelCtr *r)
14146 if (ndr_flags & NDR_SCALARS) {
14147 NDR_CHECK(ndr_pull_align(ndr, 4));
14148 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->level));
14149 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->user_info, r->level));
14150 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS, &r->user_info));
14152 if (ndr_flags & NDR_BUFFERS) {
14153 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_BUFFERS, &r->user_info));
14155 return NDR_ERR_SUCCESS;
14158 _PUBLIC_ void ndr_print_spoolss_UserLevelCtr(struct ndr_print *ndr, const char *name, const struct spoolss_UserLevelCtr *r)
14160 ndr_print_struct(ndr, name, "spoolss_UserLevelCtr");
14162 ndr_print_uint32(ndr, "level", r->level);
14163 ndr_print_set_switch_value(ndr, &r->user_info, r->level);
14164 ndr_print_spoolss_UserLevel(ndr, "user_info", &r->user_info);
14168 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_DeleteDriverFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14170 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14171 return NDR_ERR_SUCCESS;
14174 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_DeleteDriverFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14177 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14179 return NDR_ERR_SUCCESS;
14182 _PUBLIC_ void ndr_print_spoolss_DeleteDriverFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14184 ndr_print_uint32(ndr, name, r);
14186 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_UNUSED_FILES", DPD_DELETE_UNUSED_FILES, r);
14187 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_SPECIFIC_VERSION", DPD_DELETE_SPECIFIC_VERSION, r);
14188 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "DPD_DELETE_ALL_FILES", DPD_DELETE_ALL_FILES, r);
14192 static enum ndr_err_code ndr_push_spoolss_PortProtocol(struct ndr_push *ndr, int ndr_flags, enum spoolss_PortProtocol r)
14194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14195 return NDR_ERR_SUCCESS;
14198 static enum ndr_err_code ndr_pull_spoolss_PortProtocol(struct ndr_pull *ndr, int ndr_flags, enum spoolss_PortProtocol *r)
14201 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14203 return NDR_ERR_SUCCESS;
14206 _PUBLIC_ void ndr_print_spoolss_PortProtocol(struct ndr_print *ndr, const char *name, enum spoolss_PortProtocol r)
14208 const char *val = NULL;
14211 case PROTOCOL_RAWTCP_TYPE: val = "PROTOCOL_RAWTCP_TYPE"; break;
14212 case PROTOCOL_LPR_TYPE: val = "PROTOCOL_LPR_TYPE"; break;
14214 ndr_print_enum(ndr, name, "ENUM", val, r);
14217 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_PortData1(struct ndr_push *ndr, int ndr_flags, const struct spoolss_PortData1 *r)
14219 if (ndr_flags & NDR_SCALARS) {
14220 NDR_CHECK(ndr_push_align(ndr, 4));
14221 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->portname, 64, sizeof(uint16_t), CH_UTF16));
14222 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0x00000001));
14223 NDR_CHECK(ndr_push_spoolss_PortProtocol(ndr, NDR_SCALARS, r->protocol));
14224 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, sizeof(r)));
14225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->reserved));
14226 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14227 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14228 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->dblspool));
14229 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->queue, 33, sizeof(uint16_t), CH_UTF16));
14230 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14231 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14232 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14233 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->port_number));
14234 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_enabled));
14235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->snmp_dev_index));
14237 if (ndr_flags & NDR_BUFFERS) {
14239 return NDR_ERR_SUCCESS;
14242 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_PortData1(struct ndr_pull *ndr, int ndr_flags, struct spoolss_PortData1 *r)
14244 if (ndr_flags & NDR_SCALARS) {
14245 NDR_CHECK(ndr_pull_align(ndr, 4));
14246 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->portname, 64, sizeof(uint16_t), CH_UTF16));
14247 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->version));
14248 NDR_CHECK(ndr_pull_spoolss_PortProtocol(ndr, NDR_SCALARS, &r->protocol));
14249 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->size));
14250 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->reserved));
14251 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hostaddress, 49, sizeof(uint16_t), CH_UTF16));
14252 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->snmpcommunity, 33, sizeof(uint16_t), CH_UTF16));
14253 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->dblspool));
14254 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->queue, 33, sizeof(uint16_t), CH_UTF16));
14255 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->ip_address, 16, sizeof(uint16_t), CH_UTF16));
14256 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->hardware_address, 13, sizeof(uint16_t), CH_UTF16));
14257 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->device_type, 257, sizeof(uint16_t), CH_UTF16));
14258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->port_number));
14259 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_enabled));
14260 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->snmp_dev_index));
14262 if (ndr_flags & NDR_BUFFERS) {
14264 return NDR_ERR_SUCCESS;
14267 _PUBLIC_ void ndr_print_spoolss_PortData1(struct ndr_print *ndr, const char *name, const struct spoolss_PortData1 *r)
14269 ndr_print_struct(ndr, name, "spoolss_PortData1");
14271 ndr_print_string(ndr, "portname", r->portname);
14272 ndr_print_uint32(ndr, "version", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?0x00000001:r->version);
14273 ndr_print_spoolss_PortProtocol(ndr, "protocol", r->protocol);
14274 ndr_print_uint32(ndr, "size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?sizeof(r):r->size);
14275 ndr_print_uint32(ndr, "reserved", r->reserved);
14276 ndr_print_string(ndr, "hostaddress", r->hostaddress);
14277 ndr_print_string(ndr, "snmpcommunity", r->snmpcommunity);
14278 ndr_print_uint32(ndr, "dblspool", r->dblspool);
14279 ndr_print_string(ndr, "queue", r->queue);
14280 ndr_print_string(ndr, "ip_address", r->ip_address);
14281 ndr_print_string(ndr, "hardware_address", r->hardware_address);
14282 ndr_print_string(ndr, "device_type", r->device_type);
14283 ndr_print_uint32(ndr, "port_number", r->port_number);
14284 ndr_print_uint32(ndr, "snmp_enabled", r->snmp_enabled);
14285 ndr_print_uint32(ndr, "snmp_dev_index", r->snmp_dev_index);
14289 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_MonitorUi(struct ndr_push *ndr, int ndr_flags, const struct spoolss_MonitorUi *r)
14291 if (ndr_flags & NDR_SCALARS) {
14292 NDR_CHECK(ndr_push_align(ndr, 4));
14294 uint32_t _flags_save_string = ndr->flags;
14295 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14296 NDR_CHECK(ndr_push_string(ndr, NDR_SCALARS, r->dll_name));
14297 ndr->flags = _flags_save_string;
14300 if (ndr_flags & NDR_BUFFERS) {
14302 return NDR_ERR_SUCCESS;
14305 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_MonitorUi(struct ndr_pull *ndr, int ndr_flags, struct spoolss_MonitorUi *r)
14307 if (ndr_flags & NDR_SCALARS) {
14308 NDR_CHECK(ndr_pull_align(ndr, 4));
14310 uint32_t _flags_save_string = ndr->flags;
14311 ndr_set_flags(&ndr->flags, LIBNDR_FLAG_STR_NULLTERM);
14312 NDR_CHECK(ndr_pull_string(ndr, NDR_SCALARS, &r->dll_name));
14313 ndr->flags = _flags_save_string;
14316 if (ndr_flags & NDR_BUFFERS) {
14318 return NDR_ERR_SUCCESS;
14321 _PUBLIC_ void ndr_print_spoolss_MonitorUi(struct ndr_print *ndr, const char *name, const struct spoolss_MonitorUi *r)
14323 ndr_print_struct(ndr, name, "spoolss_MonitorUi");
14325 ndr_print_string(ndr, "dll_name", r->dll_name);
14329 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriverExFlags(struct ndr_push *ndr, int ndr_flags, uint32_t r)
14331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r));
14332 return NDR_ERR_SUCCESS;
14335 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverExFlags(struct ndr_pull *ndr, int ndr_flags, uint32_t *r)
14338 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &v));
14340 return NDR_ERR_SUCCESS;
14343 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverExFlags(struct ndr_print *ndr, const char *name, uint32_t r)
14345 ndr_print_uint32(ndr, name, r);
14347 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_UPGRADE", APD_STRICT_UPGRADE, r);
14348 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_STRICT_DOWNGRADE", APD_STRICT_DOWNGRADE, r);
14349 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_ALL_FILES", APD_COPY_ALL_FILES, r);
14350 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_NEW_FILES", APD_COPY_NEW_FILES, r);
14351 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_FROM_DIRECTORY", APD_COPY_FROM_DIRECTORY, r);
14352 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_DONT_COPY_FILES_TO_CLUSTER", APD_DONT_COPY_FILES_TO_CLUSTER, r);
14353 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_COPY_TO_ALL_SPOOLERS", APD_COPY_TO_ALL_SPOOLERS, r);
14354 ndr_print_bitmap_flag(ndr, sizeof(uint32_t), "APD_RETURN_BLOCKING_STATUS_CODE", APD_RETURN_BLOCKING_STATUS_CODE, r);
14358 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinters *r)
14360 if (flags & NDR_IN) {
14361 NDR_CHECK(ndr_push_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, r->in.flags));
14362 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
14363 if (r->in.server) {
14364 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14365 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14366 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
14367 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14369 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14370 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14371 if (r->in.buffer) {
14372 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14376 if (flags & NDR_OUT) {
14377 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14379 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
14381 if (r->out.needed == NULL) {
14382 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14384 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14385 if (r->out.count == NULL) {
14386 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14388 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
14389 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14391 return NDR_ERR_SUCCESS;
14394 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinters *r)
14396 uint32_t _ptr_server;
14397 uint32_t _ptr_buffer;
14398 uint32_t _ptr_info;
14399 TALLOC_CTX *_mem_save_server_0;
14400 TALLOC_CTX *_mem_save_buffer_0;
14401 TALLOC_CTX *_mem_save_info_0;
14402 TALLOC_CTX *_mem_save_needed_0;
14403 TALLOC_CTX *_mem_save_count_0;
14404 if (flags & NDR_IN) {
14405 ZERO_STRUCT(r->out);
14407 NDR_CHECK(ndr_pull_spoolss_EnumPrinterFlags(ndr, NDR_SCALARS, &r->in.flags));
14408 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
14410 NDR_PULL_ALLOC(ndr, r->in.server);
14412 r->in.server = NULL;
14414 if (r->in.server) {
14415 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
14416 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
14417 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
14418 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
14419 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
14420 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));
14422 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
14423 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
14424 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
14426 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14427 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14429 NDR_PULL_ALLOC(ndr, r->in.buffer);
14431 r->in.buffer = NULL;
14433 if (r->in.buffer) {
14434 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14435 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14436 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14439 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14440 NDR_PULL_ALLOC(ndr, r->out.needed);
14441 ZERO_STRUCTP(r->out.needed);
14442 NDR_PULL_ALLOC(ndr, r->out.count);
14443 ZERO_STRUCTP(r->out.count);
14445 if (flags & NDR_OUT) {
14446 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14448 NDR_PULL_ALLOC(ndr, r->out.info);
14450 r->out.info = NULL;
14453 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14454 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14455 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
14456 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14458 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14459 NDR_PULL_ALLOC(ndr, r->out.needed);
14461 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14462 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14463 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14464 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14465 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14466 NDR_PULL_ALLOC(ndr, r->out.count);
14468 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
14469 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
14470 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
14471 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
14472 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14474 return NDR_ERR_SUCCESS;
14477 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinters(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinters *r)
14479 uint32_t cntr_info_0;
14480 if (flags & NDR_IN) {
14481 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14482 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
14484 if (flags & NDR_OUT) {
14485 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14486 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14487 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14489 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14490 NDR_CHECK(ndr_push_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14493 return NDR_ERR_SUCCESS;
14496 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinters(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinters *r)
14498 uint32_t cntr_info_0;
14499 TALLOC_CTX *_mem_save_info_0;
14500 if (flags & NDR_IN) {
14501 ZERO_STRUCT(r->out);
14503 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14504 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
14506 if (flags & NDR_OUT) {
14507 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
14508 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14509 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14510 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14511 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
14512 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
14514 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
14515 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
14517 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14519 return NDR_ERR_SUCCESS;
14522 _PUBLIC_ void ndr_print_spoolss_EnumPrinters(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinters *r)
14524 uint32_t cntr_info_1;
14525 ndr_print_struct(ndr, name, "spoolss_EnumPrinters");
14527 if (flags & NDR_SET_VALUES) {
14528 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14530 if (flags & NDR_IN) {
14531 ndr_print_struct(ndr, "in", "spoolss_EnumPrinters");
14533 ndr_print_spoolss_EnumPrinterFlags(ndr, "flags", r->in.flags);
14534 ndr_print_ptr(ndr, "server", r->in.server);
14536 if (r->in.server) {
14537 ndr_print_string(ndr, "server", r->in.server);
14540 ndr_print_uint32(ndr, "level", r->in.level);
14541 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14543 if (r->in.buffer) {
14544 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14547 ndr_print_uint32(ndr, "offered", r->in.offered);
14550 if (flags & NDR_OUT) {
14551 ndr_print_struct(ndr, "out", "spoolss_EnumPrinters");
14553 ndr_print_ptr(ndr, "count", r->out.count);
14555 ndr_print_uint32(ndr, "count", *r->out.count);
14557 ndr_print_ptr(ndr, "info", r->out.info);
14560 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
14562 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
14564 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
14565 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
14566 ndr_print_spoolss_PrinterInfo(ndr, "info", &r->out.info[cntr_info_1]);
14573 ndr_print_ptr(ndr, "needed", r->out.needed);
14575 ndr_print_uint32(ndr, "needed", *r->out.needed);
14577 ndr_print_WERROR(ndr, "result", r->out.result);
14583 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinter *r)
14585 if (flags & NDR_IN) {
14586 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
14587 if (r->in.printername) {
14588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14589 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
14590 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
14591 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14593 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
14594 if (r->in.datatype) {
14595 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, 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.datatype, CH_UTF16)));
14598 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
14600 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14601 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.access_mask));
14603 if (flags & NDR_OUT) {
14604 if (r->out.handle == NULL) {
14605 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14607 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14608 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14610 return NDR_ERR_SUCCESS;
14613 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinter *r)
14615 uint32_t _ptr_printername;
14616 uint32_t _ptr_datatype;
14617 TALLOC_CTX *_mem_save_printername_0;
14618 TALLOC_CTX *_mem_save_datatype_0;
14619 TALLOC_CTX *_mem_save_handle_0;
14620 if (flags & NDR_IN) {
14621 ZERO_STRUCT(r->out);
14623 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
14624 if (_ptr_printername) {
14625 NDR_PULL_ALLOC(ndr, r->in.printername);
14627 r->in.printername = NULL;
14629 if (r->in.printername) {
14630 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
14631 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
14632 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
14633 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
14634 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
14635 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));
14637 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
14638 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
14639 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
14641 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
14642 if (_ptr_datatype) {
14643 NDR_PULL_ALLOC(ndr, r->in.datatype);
14645 r->in.datatype = NULL;
14647 if (r->in.datatype) {
14648 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
14649 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
14650 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
14651 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
14652 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
14653 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));
14655 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
14656 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
14657 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
14659 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
14660 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask));
14661 NDR_PULL_ALLOC(ndr, r->out.handle);
14662 ZERO_STRUCTP(r->out.handle);
14664 if (flags & NDR_OUT) {
14665 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14666 NDR_PULL_ALLOC(ndr, r->out.handle);
14668 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14669 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
14670 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
14671 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14672 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14674 return NDR_ERR_SUCCESS;
14677 _PUBLIC_ void ndr_print_spoolss_OpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinter *r)
14679 ndr_print_struct(ndr, name, "spoolss_OpenPrinter");
14681 if (flags & NDR_SET_VALUES) {
14682 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14684 if (flags & NDR_IN) {
14685 ndr_print_struct(ndr, "in", "spoolss_OpenPrinter");
14687 ndr_print_ptr(ndr, "printername", r->in.printername);
14689 if (r->in.printername) {
14690 ndr_print_string(ndr, "printername", r->in.printername);
14693 ndr_print_ptr(ndr, "datatype", r->in.datatype);
14695 if (r->in.datatype) {
14696 ndr_print_string(ndr, "datatype", r->in.datatype);
14699 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
14700 ndr_print_uint32(ndr, "access_mask", r->in.access_mask);
14703 if (flags & NDR_OUT) {
14704 ndr_print_struct(ndr, "out", "spoolss_OpenPrinter");
14706 ndr_print_ptr(ndr, "handle", r->out.handle);
14708 ndr_print_policy_handle(ndr, "handle", r->out.handle);
14710 ndr_print_WERROR(ndr, "result", r->out.result);
14716 static enum ndr_err_code ndr_push_spoolss_SetJob(struct ndr_push *ndr, int flags, const struct spoolss_SetJob *r)
14718 if (flags & NDR_IN) {
14719 if (r->in.handle == NULL) {
14720 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14722 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14723 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
14724 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.ctr));
14726 NDR_CHECK(ndr_push_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14728 NDR_CHECK(ndr_push_spoolss_JobControl(ndr, NDR_SCALARS, r->in.command));
14730 if (flags & NDR_OUT) {
14731 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14733 return NDR_ERR_SUCCESS;
14736 static enum ndr_err_code ndr_pull_spoolss_SetJob(struct ndr_pull *ndr, int flags, struct spoolss_SetJob *r)
14739 TALLOC_CTX *_mem_save_handle_0;
14740 TALLOC_CTX *_mem_save_ctr_0;
14741 if (flags & NDR_IN) {
14742 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14743 NDR_PULL_ALLOC(ndr, r->in.handle);
14745 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14746 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14747 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14748 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14749 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
14750 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_ctr));
14752 NDR_PULL_ALLOC(ndr, r->in.ctr);
14757 _mem_save_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
14758 NDR_PULL_SET_MEM_CTX(ndr, r->in.ctr, 0);
14759 NDR_CHECK(ndr_pull_spoolss_JobInfoContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.ctr));
14760 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_ctr_0, 0);
14762 NDR_CHECK(ndr_pull_spoolss_JobControl(ndr, NDR_SCALARS, &r->in.command));
14764 if (flags & NDR_OUT) {
14765 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14767 return NDR_ERR_SUCCESS;
14770 _PUBLIC_ void ndr_print_spoolss_SetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetJob *r)
14772 ndr_print_struct(ndr, name, "spoolss_SetJob");
14774 if (flags & NDR_SET_VALUES) {
14775 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14777 if (flags & NDR_IN) {
14778 ndr_print_struct(ndr, "in", "spoolss_SetJob");
14780 ndr_print_ptr(ndr, "handle", r->in.handle);
14782 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14784 ndr_print_uint32(ndr, "job_id", r->in.job_id);
14785 ndr_print_ptr(ndr, "ctr", r->in.ctr);
14788 ndr_print_spoolss_JobInfoContainer(ndr, "ctr", r->in.ctr);
14791 ndr_print_spoolss_JobControl(ndr, "command", r->in.command);
14794 if (flags & NDR_OUT) {
14795 ndr_print_struct(ndr, "out", "spoolss_SetJob");
14797 ndr_print_WERROR(ndr, "result", r->out.result);
14803 static enum ndr_err_code ndr_push_spoolss_GetJob(struct ndr_push *ndr, int flags, const struct spoolss_GetJob *r)
14805 if (flags & NDR_IN) {
14806 if (r->in.handle == NULL) {
14807 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14809 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14810 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.job_id));
14811 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14812 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14813 if (r->in.buffer) {
14814 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14816 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14818 if (flags & NDR_OUT) {
14819 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14822 struct ndr_push *_ndr_info;
14823 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
14824 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
14825 NDR_CHECK(ndr_push_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
14826 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
14829 if (r->out.needed == NULL) {
14830 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14832 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14833 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14835 return NDR_ERR_SUCCESS;
14838 static enum ndr_err_code ndr_pull_spoolss_GetJob(struct ndr_pull *ndr, int flags, struct spoolss_GetJob *r)
14840 uint32_t _ptr_buffer;
14841 uint32_t _ptr_info;
14842 TALLOC_CTX *_mem_save_handle_0;
14843 TALLOC_CTX *_mem_save_buffer_0;
14844 TALLOC_CTX *_mem_save_info_0;
14845 TALLOC_CTX *_mem_save_needed_0;
14846 if (flags & NDR_IN) {
14847 ZERO_STRUCT(r->out);
14849 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14850 NDR_PULL_ALLOC(ndr, r->in.handle);
14852 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
14853 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
14854 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
14856 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.job_id));
14857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
14858 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
14860 NDR_PULL_ALLOC(ndr, r->in.buffer);
14862 r->in.buffer = NULL;
14864 if (r->in.buffer) {
14865 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
14866 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
14867 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
14868 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
14870 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
14871 NDR_PULL_ALLOC(ndr, r->out.needed);
14872 ZERO_STRUCTP(r->out.needed);
14874 if (flags & NDR_OUT) {
14875 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
14877 NDR_PULL_ALLOC(ndr, r->out.info);
14879 r->out.info = NULL;
14882 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
14883 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
14885 struct ndr_pull *_ndr_info;
14886 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
14887 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
14888 NDR_CHECK(ndr_pull_spoolss_JobInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
14889 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
14891 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
14893 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14894 NDR_PULL_ALLOC(ndr, r->out.needed);
14896 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
14897 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
14898 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
14899 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
14900 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
14902 return NDR_ERR_SUCCESS;
14905 _PUBLIC_ void ndr_print_spoolss_GetJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetJob *r)
14907 ndr_print_struct(ndr, name, "spoolss_GetJob");
14909 if (flags & NDR_SET_VALUES) {
14910 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
14912 if (flags & NDR_IN) {
14913 ndr_print_struct(ndr, "in", "spoolss_GetJob");
14915 ndr_print_ptr(ndr, "handle", r->in.handle);
14917 ndr_print_policy_handle(ndr, "handle", r->in.handle);
14919 ndr_print_uint32(ndr, "job_id", r->in.job_id);
14920 ndr_print_uint32(ndr, "level", r->in.level);
14921 ndr_print_ptr(ndr, "buffer", r->in.buffer);
14923 if (r->in.buffer) {
14924 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
14927 ndr_print_uint32(ndr, "offered", r->in.offered);
14930 if (flags & NDR_OUT) {
14931 ndr_print_struct(ndr, "out", "spoolss_GetJob");
14933 ndr_print_ptr(ndr, "info", r->out.info);
14936 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
14937 ndr_print_spoolss_JobInfo(ndr, "info", r->out.info);
14940 ndr_print_ptr(ndr, "needed", r->out.needed);
14942 ndr_print_uint32(ndr, "needed", *r->out.needed);
14944 ndr_print_WERROR(ndr, "result", r->out.result);
14950 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct _spoolss_EnumJobs *r)
14952 if (flags & NDR_IN) {
14953 if (r->in.handle == NULL) {
14954 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14956 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
14957 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.firstjob));
14958 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.numjobs));
14959 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
14960 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
14961 if (r->in.buffer) {
14962 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
14964 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
14966 if (flags & NDR_OUT) {
14967 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
14969 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
14971 if (r->out.needed == NULL) {
14972 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14974 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
14975 if (r->out.count == NULL) {
14976 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
14978 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
14979 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
14981 return NDR_ERR_SUCCESS;
14984 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct _spoolss_EnumJobs *r)
14986 uint32_t _ptr_buffer;
14987 uint32_t _ptr_info;
14988 TALLOC_CTX *_mem_save_handle_0;
14989 TALLOC_CTX *_mem_save_buffer_0;
14990 TALLOC_CTX *_mem_save_info_0;
14991 TALLOC_CTX *_mem_save_needed_0;
14992 TALLOC_CTX *_mem_save_count_0;
14993 if (flags & NDR_IN) {
14994 ZERO_STRUCT(r->out);
14996 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
14997 NDR_PULL_ALLOC(ndr, r->in.handle);
14999 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15000 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15001 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15003 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.firstjob));
15004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.numjobs));
15005 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15006 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15008 NDR_PULL_ALLOC(ndr, r->in.buffer);
15010 r->in.buffer = NULL;
15012 if (r->in.buffer) {
15013 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15014 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15015 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15016 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15018 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15019 NDR_PULL_ALLOC(ndr, r->out.needed);
15020 ZERO_STRUCTP(r->out.needed);
15021 NDR_PULL_ALLOC(ndr, r->out.count);
15022 ZERO_STRUCTP(r->out.count);
15024 if (flags & NDR_OUT) {
15025 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15027 NDR_PULL_ALLOC(ndr, r->out.info);
15029 r->out.info = NULL;
15032 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15033 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15034 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15035 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15037 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15038 NDR_PULL_ALLOC(ndr, r->out.needed);
15040 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15041 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15042 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15044 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15045 NDR_PULL_ALLOC(ndr, r->out.count);
15047 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15048 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15049 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15050 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15051 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15053 return NDR_ERR_SUCCESS;
15056 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumJobs(struct ndr_push *ndr, int flags, const struct __spoolss_EnumJobs *r)
15058 uint32_t cntr_info_0;
15059 if (flags & NDR_IN) {
15060 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15061 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15063 if (flags & NDR_OUT) {
15064 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15065 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15066 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15068 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15069 NDR_CHECK(ndr_push_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15072 return NDR_ERR_SUCCESS;
15075 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumJobs(struct ndr_pull *ndr, int flags, struct __spoolss_EnumJobs *r)
15077 uint32_t cntr_info_0;
15078 TALLOC_CTX *_mem_save_info_0;
15079 if (flags & NDR_IN) {
15080 ZERO_STRUCT(r->out);
15082 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15083 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15085 if (flags & NDR_OUT) {
15086 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15087 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15088 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15089 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15090 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15091 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15093 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15094 NDR_CHECK(ndr_pull_spoolss_JobInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15098 return NDR_ERR_SUCCESS;
15101 _PUBLIC_ void ndr_print_spoolss_EnumJobs(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumJobs *r)
15103 uint32_t cntr_info_1;
15104 ndr_print_struct(ndr, name, "spoolss_EnumJobs");
15106 if (flags & NDR_SET_VALUES) {
15107 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15109 if (flags & NDR_IN) {
15110 ndr_print_struct(ndr, "in", "spoolss_EnumJobs");
15112 ndr_print_ptr(ndr, "handle", r->in.handle);
15114 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15116 ndr_print_uint32(ndr, "firstjob", r->in.firstjob);
15117 ndr_print_uint32(ndr, "numjobs", r->in.numjobs);
15118 ndr_print_uint32(ndr, "level", r->in.level);
15119 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15121 if (r->in.buffer) {
15122 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15125 ndr_print_uint32(ndr, "offered", r->in.offered);
15128 if (flags & NDR_OUT) {
15129 ndr_print_struct(ndr, "out", "spoolss_EnumJobs");
15131 ndr_print_ptr(ndr, "count", r->out.count);
15133 ndr_print_uint32(ndr, "count", *r->out.count);
15135 ndr_print_ptr(ndr, "info", r->out.info);
15138 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15140 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15142 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15143 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15144 ndr_print_spoolss_JobInfo(ndr, "info", &r->out.info[cntr_info_1]);
15151 ndr_print_ptr(ndr, "needed", r->out.needed);
15153 ndr_print_uint32(ndr, "needed", *r->out.needed);
15155 ndr_print_WERROR(ndr, "result", r->out.result);
15161 static enum ndr_err_code ndr_push_spoolss_AddPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinter *r)
15163 if (flags & NDR_IN) {
15165 if (flags & NDR_OUT) {
15166 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15168 return NDR_ERR_SUCCESS;
15171 static enum ndr_err_code ndr_pull_spoolss_AddPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinter *r)
15173 if (flags & NDR_IN) {
15175 if (flags & NDR_OUT) {
15176 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15178 return NDR_ERR_SUCCESS;
15181 _PUBLIC_ void ndr_print_spoolss_AddPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinter *r)
15183 ndr_print_struct(ndr, name, "spoolss_AddPrinter");
15185 if (flags & NDR_SET_VALUES) {
15186 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15188 if (flags & NDR_IN) {
15189 ndr_print_struct(ndr, "in", "spoolss_AddPrinter");
15193 if (flags & NDR_OUT) {
15194 ndr_print_struct(ndr, "out", "spoolss_AddPrinter");
15196 ndr_print_WERROR(ndr, "result", r->out.result);
15202 static enum ndr_err_code ndr_push_spoolss_DeletePrinter(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinter *r)
15204 if (flags & NDR_IN) {
15205 if (r->in.handle == NULL) {
15206 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15208 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15210 if (flags & NDR_OUT) {
15211 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15213 return NDR_ERR_SUCCESS;
15216 static enum ndr_err_code ndr_pull_spoolss_DeletePrinter(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinter *r)
15218 TALLOC_CTX *_mem_save_handle_0;
15219 if (flags & NDR_IN) {
15220 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15221 NDR_PULL_ALLOC(ndr, r->in.handle);
15223 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15224 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15225 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15226 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15228 if (flags & NDR_OUT) {
15229 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15231 return NDR_ERR_SUCCESS;
15234 _PUBLIC_ void ndr_print_spoolss_DeletePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinter *r)
15236 ndr_print_struct(ndr, name, "spoolss_DeletePrinter");
15238 if (flags & NDR_SET_VALUES) {
15239 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15241 if (flags & NDR_IN) {
15242 ndr_print_struct(ndr, "in", "spoolss_DeletePrinter");
15244 ndr_print_ptr(ndr, "handle", r->in.handle);
15246 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15250 if (flags & NDR_OUT) {
15251 ndr_print_struct(ndr, "out", "spoolss_DeletePrinter");
15253 ndr_print_WERROR(ndr, "result", r->out.result);
15259 static enum ndr_err_code ndr_push_spoolss_SetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinter *r)
15261 if (flags & NDR_IN) {
15262 if (r->in.handle == NULL) {
15263 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15265 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15266 if (r->in.info_ctr == NULL) {
15267 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15269 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15270 if (r->in.devmode_ctr == NULL) {
15271 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15273 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15274 if (r->in.secdesc_ctr == NULL) {
15275 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15277 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15278 NDR_CHECK(ndr_push_spoolss_PrinterControl(ndr, NDR_SCALARS, r->in.command));
15280 if (flags & NDR_OUT) {
15281 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15283 return NDR_ERR_SUCCESS;
15286 static enum ndr_err_code ndr_pull_spoolss_SetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinter *r)
15288 TALLOC_CTX *_mem_save_handle_0;
15289 TALLOC_CTX *_mem_save_info_ctr_0;
15290 TALLOC_CTX *_mem_save_devmode_ctr_0;
15291 TALLOC_CTX *_mem_save_secdesc_ctr_0;
15292 if (flags & NDR_IN) {
15293 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15294 NDR_PULL_ALLOC(ndr, r->in.handle);
15296 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15297 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15298 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15299 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15300 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15301 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15303 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15304 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15305 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15306 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15307 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15308 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
15310 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15311 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
15312 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
15313 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15314 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15315 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
15317 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15318 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
15319 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
15320 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15321 NDR_CHECK(ndr_pull_spoolss_PrinterControl(ndr, NDR_SCALARS, &r->in.command));
15323 if (flags & NDR_OUT) {
15324 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15326 return NDR_ERR_SUCCESS;
15329 _PUBLIC_ void ndr_print_spoolss_SetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinter *r)
15331 ndr_print_struct(ndr, name, "spoolss_SetPrinter");
15333 if (flags & NDR_SET_VALUES) {
15334 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15336 if (flags & NDR_IN) {
15337 ndr_print_struct(ndr, "in", "spoolss_SetPrinter");
15339 ndr_print_ptr(ndr, "handle", r->in.handle);
15341 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15343 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15345 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15347 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
15349 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
15351 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15353 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
15355 ndr_print_spoolss_PrinterControl(ndr, "command", r->in.command);
15358 if (flags & NDR_OUT) {
15359 ndr_print_struct(ndr, "out", "spoolss_SetPrinter");
15361 ndr_print_WERROR(ndr, "result", r->out.result);
15367 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinter *r)
15369 if (flags & NDR_IN) {
15370 if (r->in.handle == NULL) {
15371 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15373 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15374 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15375 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15376 if (r->in.buffer) {
15377 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15379 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15381 if (flags & NDR_OUT) {
15382 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15385 struct ndr_push *_ndr_info;
15386 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15387 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15388 NDR_CHECK(ndr_push_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15389 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15392 if (r->out.needed == NULL) {
15393 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15395 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15396 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15398 return NDR_ERR_SUCCESS;
15401 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinter *r)
15403 uint32_t _ptr_buffer;
15404 uint32_t _ptr_info;
15405 TALLOC_CTX *_mem_save_handle_0;
15406 TALLOC_CTX *_mem_save_buffer_0;
15407 TALLOC_CTX *_mem_save_info_0;
15408 TALLOC_CTX *_mem_save_needed_0;
15409 if (flags & NDR_IN) {
15410 ZERO_STRUCT(r->out);
15412 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15413 NDR_PULL_ALLOC(ndr, r->in.handle);
15415 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
15416 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
15417 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
15418 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
15419 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15420 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15422 NDR_PULL_ALLOC(ndr, r->in.buffer);
15424 r->in.buffer = NULL;
15426 if (r->in.buffer) {
15427 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15428 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15429 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15433 NDR_PULL_ALLOC(ndr, r->out.needed);
15434 ZERO_STRUCTP(r->out.needed);
15436 if (flags & NDR_OUT) {
15437 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15439 NDR_PULL_ALLOC(ndr, r->out.info);
15441 r->out.info = NULL;
15444 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15445 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15447 struct ndr_pull *_ndr_info;
15448 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15449 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
15450 NDR_CHECK(ndr_pull_spoolss_PrinterInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
15451 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15453 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15455 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15456 NDR_PULL_ALLOC(ndr, r->out.needed);
15458 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15459 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15460 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15461 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15462 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15464 return NDR_ERR_SUCCESS;
15467 _PUBLIC_ void ndr_print_spoolss_GetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinter *r)
15469 ndr_print_struct(ndr, name, "spoolss_GetPrinter");
15471 if (flags & NDR_SET_VALUES) {
15472 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15474 if (flags & NDR_IN) {
15475 ndr_print_struct(ndr, "in", "spoolss_GetPrinter");
15477 ndr_print_ptr(ndr, "handle", r->in.handle);
15479 ndr_print_policy_handle(ndr, "handle", r->in.handle);
15481 ndr_print_uint32(ndr, "level", r->in.level);
15482 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15484 if (r->in.buffer) {
15485 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15488 ndr_print_uint32(ndr, "offered", r->in.offered);
15491 if (flags & NDR_OUT) {
15492 ndr_print_struct(ndr, "out", "spoolss_GetPrinter");
15494 ndr_print_ptr(ndr, "info", r->out.info);
15497 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
15498 ndr_print_spoolss_PrinterInfo(ndr, "info", r->out.info);
15501 ndr_print_ptr(ndr, "needed", r->out.needed);
15503 ndr_print_uint32(ndr, "needed", *r->out.needed);
15505 ndr_print_WERROR(ndr, "result", r->out.result);
15511 static enum ndr_err_code ndr_push_spoolss_AddPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriver *r)
15513 if (flags & NDR_IN) {
15514 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
15515 if (r->in.servername) {
15516 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15517 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15518 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
15519 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15521 if (r->in.info_ctr == NULL) {
15522 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15524 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15526 if (flags & NDR_OUT) {
15527 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15529 return NDR_ERR_SUCCESS;
15532 static enum ndr_err_code ndr_pull_spoolss_AddPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriver *r)
15534 uint32_t _ptr_servername;
15535 TALLOC_CTX *_mem_save_servername_0;
15536 TALLOC_CTX *_mem_save_info_ctr_0;
15537 if (flags & NDR_IN) {
15538 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
15539 if (_ptr_servername) {
15540 NDR_PULL_ALLOC(ndr, r->in.servername);
15542 r->in.servername = NULL;
15544 if (r->in.servername) {
15545 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
15546 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
15547 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
15548 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
15549 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
15550 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));
15552 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
15553 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
15554 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
15556 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15557 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
15559 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
15560 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
15561 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
15562 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
15564 if (flags & NDR_OUT) {
15565 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15567 return NDR_ERR_SUCCESS;
15570 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriver *r)
15572 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriver");
15574 if (flags & NDR_SET_VALUES) {
15575 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15577 if (flags & NDR_IN) {
15578 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriver");
15580 ndr_print_ptr(ndr, "servername", r->in.servername);
15582 if (r->in.servername) {
15583 ndr_print_string(ndr, "servername", r->in.servername);
15586 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
15588 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
15592 if (flags & NDR_OUT) {
15593 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriver");
15595 ndr_print_WERROR(ndr, "result", r->out.result);
15601 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrinterDrivers *r)
15603 if (flags & NDR_IN) {
15604 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
15605 if (r->in.server) {
15606 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15607 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15608 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15609 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15611 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
15612 if (r->in.environment) {
15613 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15614 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15615 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15616 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15618 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15619 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15620 if (r->in.buffer) {
15621 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15623 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15625 if (flags & NDR_OUT) {
15626 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15628 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
15630 if (r->out.needed == NULL) {
15631 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15633 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15634 if (r->out.count == NULL) {
15635 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15637 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
15638 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15640 return NDR_ERR_SUCCESS;
15643 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrinterDrivers *r)
15645 uint32_t _ptr_server;
15646 uint32_t _ptr_environment;
15647 uint32_t _ptr_buffer;
15648 uint32_t _ptr_info;
15649 TALLOC_CTX *_mem_save_server_0;
15650 TALLOC_CTX *_mem_save_environment_0;
15651 TALLOC_CTX *_mem_save_buffer_0;
15652 TALLOC_CTX *_mem_save_info_0;
15653 TALLOC_CTX *_mem_save_needed_0;
15654 TALLOC_CTX *_mem_save_count_0;
15655 if (flags & NDR_IN) {
15656 ZERO_STRUCT(r->out);
15658 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
15660 NDR_PULL_ALLOC(ndr, r->in.server);
15662 r->in.server = NULL;
15664 if (r->in.server) {
15665 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
15666 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
15667 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
15668 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
15669 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
15670 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));
15672 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
15673 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
15674 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
15676 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
15677 if (_ptr_environment) {
15678 NDR_PULL_ALLOC(ndr, r->in.environment);
15680 r->in.environment = NULL;
15682 if (r->in.environment) {
15683 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
15684 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
15685 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
15686 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
15687 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
15688 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));
15690 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
15691 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
15692 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
15694 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15695 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15697 NDR_PULL_ALLOC(ndr, r->in.buffer);
15699 r->in.buffer = NULL;
15701 if (r->in.buffer) {
15702 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
15703 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
15704 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
15705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
15707 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
15708 NDR_PULL_ALLOC(ndr, r->out.needed);
15709 ZERO_STRUCTP(r->out.needed);
15710 NDR_PULL_ALLOC(ndr, r->out.count);
15711 ZERO_STRUCTP(r->out.count);
15713 if (flags & NDR_OUT) {
15714 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
15716 NDR_PULL_ALLOC(ndr, r->out.info);
15718 r->out.info = NULL;
15721 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15722 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15723 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
15724 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15726 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15727 NDR_PULL_ALLOC(ndr, r->out.needed);
15729 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
15730 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
15731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
15732 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
15733 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
15734 NDR_PULL_ALLOC(ndr, r->out.count);
15736 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
15737 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
15738 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
15739 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
15740 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15742 return NDR_ERR_SUCCESS;
15745 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrinterDrivers(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrinterDrivers *r)
15747 uint32_t cntr_info_0;
15748 if (flags & NDR_IN) {
15749 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15750 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
15752 if (flags & NDR_OUT) {
15753 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15754 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15755 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15757 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15758 NDR_CHECK(ndr_push_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15761 return NDR_ERR_SUCCESS;
15764 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrinterDrivers(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrinterDrivers *r)
15766 uint32_t cntr_info_0;
15767 TALLOC_CTX *_mem_save_info_0;
15768 if (flags & NDR_IN) {
15769 ZERO_STRUCT(r->out);
15771 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15772 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
15774 if (flags & NDR_OUT) {
15775 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
15776 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
15777 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
15778 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15779 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
15780 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
15782 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
15783 NDR_CHECK(ndr_pull_spoolss_DriverInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
15785 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
15787 return NDR_ERR_SUCCESS;
15790 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDrivers(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDrivers *r)
15792 uint32_t cntr_info_1;
15793 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDrivers");
15795 if (flags & NDR_SET_VALUES) {
15796 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15798 if (flags & NDR_IN) {
15799 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDrivers");
15801 ndr_print_ptr(ndr, "server", r->in.server);
15803 if (r->in.server) {
15804 ndr_print_string(ndr, "server", r->in.server);
15807 ndr_print_ptr(ndr, "environment", r->in.environment);
15809 if (r->in.environment) {
15810 ndr_print_string(ndr, "environment", r->in.environment);
15813 ndr_print_uint32(ndr, "level", r->in.level);
15814 ndr_print_ptr(ndr, "buffer", r->in.buffer);
15816 if (r->in.buffer) {
15817 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
15820 ndr_print_uint32(ndr, "offered", r->in.offered);
15823 if (flags & NDR_OUT) {
15824 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDrivers");
15826 ndr_print_ptr(ndr, "count", r->out.count);
15828 ndr_print_uint32(ndr, "count", *r->out.count);
15830 ndr_print_ptr(ndr, "info", r->out.info);
15833 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
15835 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
15837 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
15838 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
15839 ndr_print_spoolss_DriverInfo(ndr, "info", &r->out.info[cntr_info_1]);
15846 ndr_print_ptr(ndr, "needed", r->out.needed);
15848 ndr_print_uint32(ndr, "needed", *r->out.needed);
15850 ndr_print_WERROR(ndr, "result", r->out.result);
15856 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver *r)
15858 if (flags & NDR_IN) {
15860 if (flags & NDR_OUT) {
15861 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15863 return NDR_ERR_SUCCESS;
15866 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver *r)
15868 if (flags & NDR_IN) {
15870 if (flags & NDR_OUT) {
15871 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
15873 return NDR_ERR_SUCCESS;
15876 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver *r)
15878 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver");
15880 if (flags & NDR_SET_VALUES) {
15881 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
15883 if (flags & NDR_IN) {
15884 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver");
15888 if (flags & NDR_OUT) {
15889 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver");
15891 ndr_print_WERROR(ndr, "result", r->out.result);
15897 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_GetPrinterDriverDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
15899 if (flags & NDR_IN) {
15900 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
15901 if (r->in.server) {
15902 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15903 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15904 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
15905 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15907 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
15908 if (r->in.environment) {
15909 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15910 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
15911 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
15912 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
15914 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
15915 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
15916 if (r->in.buffer) {
15917 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
15919 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
15921 if (flags & NDR_OUT) {
15922 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
15925 struct ndr_push *_ndr_info;
15926 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
15927 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
15928 NDR_CHECK(ndr_push_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
15929 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
15932 if (r->out.needed == NULL) {
15933 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
15935 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
15936 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
15938 return NDR_ERR_SUCCESS;
15941 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_GetPrinterDriverDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriverDirectory *r)
15943 uint32_t _ptr_server;
15944 uint32_t _ptr_environment;
15945 uint32_t _ptr_buffer;
15946 uint32_t _ptr_info;
15947 TALLOC_CTX *_mem_save_server_0;
15948 TALLOC_CTX *_mem_save_environment_0;
15949 TALLOC_CTX *_mem_save_buffer_0;
15950 TALLOC_CTX *_mem_save_info_0;
15951 TALLOC_CTX *_mem_save_needed_0;
15952 if (flags & NDR_IN) {
15953 ZERO_STRUCT(r->out);
15955 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
15957 NDR_PULL_ALLOC(ndr, r->in.server);
15959 r->in.server = NULL;
15961 if (r->in.server) {
15962 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
15963 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
15964 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
15965 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
15966 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
15967 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));
15969 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
15970 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
15971 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
15973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
15974 if (_ptr_environment) {
15975 NDR_PULL_ALLOC(ndr, r->in.environment);
15977 r->in.environment = NULL;
15979 if (r->in.environment) {
15980 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
15981 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
15982 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
15983 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
15984 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
15985 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));
15987 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
15988 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
15989 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
15991 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
15992 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
15994 NDR_PULL_ALLOC(ndr, r->in.buffer);
15996 r->in.buffer = NULL;
15998 if (r->in.buffer) {
15999 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16000 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16001 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16002 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16004 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16005 NDR_PULL_ALLOC(ndr, r->out.needed);
16006 ZERO_STRUCTP(r->out.needed);
16008 if (flags & NDR_OUT) {
16009 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16011 NDR_PULL_ALLOC(ndr, r->out.info);
16013 r->out.info = NULL;
16016 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16017 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16019 struct ndr_pull *_ndr_info;
16020 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
16021 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
16022 NDR_CHECK(ndr_pull_spoolss_DriverDirectoryInfo(_ndr_info, NDR_SCALARS, r->out.info));
16023 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
16025 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16027 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16028 NDR_PULL_ALLOC(ndr, r->out.needed);
16030 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16031 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16032 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16033 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16034 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16036 return NDR_ERR_SUCCESS;
16039 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriverDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriverDirectory *r)
16041 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriverDirectory");
16043 if (flags & NDR_SET_VALUES) {
16044 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16046 if (flags & NDR_IN) {
16047 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriverDirectory");
16049 ndr_print_ptr(ndr, "server", r->in.server);
16051 if (r->in.server) {
16052 ndr_print_string(ndr, "server", r->in.server);
16055 ndr_print_ptr(ndr, "environment", r->in.environment);
16057 if (r->in.environment) {
16058 ndr_print_string(ndr, "environment", r->in.environment);
16061 ndr_print_uint32(ndr, "level", r->in.level);
16062 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16064 if (r->in.buffer) {
16065 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16068 ndr_print_uint32(ndr, "offered", r->in.offered);
16071 if (flags & NDR_OUT) {
16072 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriverDirectory");
16074 ndr_print_ptr(ndr, "info", r->out.info);
16077 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
16078 ndr_print_spoolss_DriverDirectoryInfo(ndr, "info", r->out.info);
16081 ndr_print_ptr(ndr, "needed", r->out.needed);
16083 ndr_print_uint32(ndr, "needed", *r->out.needed);
16085 ndr_print_WERROR(ndr, "result", r->out.result);
16091 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriver(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriver *r)
16093 if (flags & NDR_IN) {
16094 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16095 if (r->in.server) {
16096 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16097 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16099 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16102 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16103 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16104 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16105 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16106 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16107 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
16108 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16110 if (flags & NDR_OUT) {
16111 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16113 return NDR_ERR_SUCCESS;
16116 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriver(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriver *r)
16118 uint32_t _ptr_server;
16119 TALLOC_CTX *_mem_save_server_0;
16120 if (flags & NDR_IN) {
16121 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16123 NDR_PULL_ALLOC(ndr, r->in.server);
16125 r->in.server = NULL;
16127 if (r->in.server) {
16128 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16129 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16130 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16131 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16132 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16133 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));
16135 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16136 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16137 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16139 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16140 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16141 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16142 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));
16144 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16145 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16146 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
16147 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
16148 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
16149 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));
16151 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
16152 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
16154 if (flags & NDR_OUT) {
16155 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16157 return NDR_ERR_SUCCESS;
16160 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriver(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriver *r)
16162 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriver");
16164 if (flags & NDR_SET_VALUES) {
16165 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16167 if (flags & NDR_IN) {
16168 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriver");
16170 ndr_print_ptr(ndr, "server", r->in.server);
16172 if (r->in.server) {
16173 ndr_print_string(ndr, "server", r->in.server);
16176 ndr_print_string(ndr, "architecture", r->in.architecture);
16177 ndr_print_string(ndr, "driver", r->in.driver);
16180 if (flags & NDR_OUT) {
16181 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriver");
16183 ndr_print_WERROR(ndr, "result", r->out.result);
16189 static enum ndr_err_code ndr_push_spoolss_AddPrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProcessor *r)
16191 if (flags & NDR_IN) {
16192 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
16193 if (r->in.server) {
16194 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16195 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16196 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
16197 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16199 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16200 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16201 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
16202 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16203 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16204 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16205 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.path_name, CH_UTF16)));
16206 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));
16207 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16208 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16209 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.print_processor_name, CH_UTF16)));
16210 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));
16212 if (flags & NDR_OUT) {
16213 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16215 return NDR_ERR_SUCCESS;
16218 static enum ndr_err_code ndr_pull_spoolss_AddPrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProcessor *r)
16220 uint32_t _ptr_server;
16221 TALLOC_CTX *_mem_save_server_0;
16222 if (flags & NDR_IN) {
16223 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
16225 NDR_PULL_ALLOC(ndr, r->in.server);
16227 r->in.server = NULL;
16229 if (r->in.server) {
16230 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
16231 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
16232 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
16233 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
16234 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
16235 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));
16237 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
16238 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
16239 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
16241 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
16242 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
16243 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
16244 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));
16246 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
16247 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
16248 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.path_name));
16249 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.path_name));
16250 if (ndr_get_array_length(ndr, &r->in.path_name) > ndr_get_array_size(ndr, &r->in.path_name)) {
16251 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));
16253 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.path_name), sizeof(uint16_t)));
16254 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));
16255 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.print_processor_name));
16256 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.print_processor_name));
16257 if (ndr_get_array_length(ndr, &r->in.print_processor_name) > ndr_get_array_size(ndr, &r->in.print_processor_name)) {
16258 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));
16260 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.print_processor_name), sizeof(uint16_t)));
16261 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));
16263 if (flags & NDR_OUT) {
16264 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16266 return NDR_ERR_SUCCESS;
16269 _PUBLIC_ void ndr_print_spoolss_AddPrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProcessor *r)
16271 ndr_print_struct(ndr, name, "spoolss_AddPrintProcessor");
16273 if (flags & NDR_SET_VALUES) {
16274 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16276 if (flags & NDR_IN) {
16277 ndr_print_struct(ndr, "in", "spoolss_AddPrintProcessor");
16279 ndr_print_ptr(ndr, "server", r->in.server);
16281 if (r->in.server) {
16282 ndr_print_string(ndr, "server", r->in.server);
16285 ndr_print_string(ndr, "architecture", r->in.architecture);
16286 ndr_print_string(ndr, "path_name", r->in.path_name);
16287 ndr_print_string(ndr, "print_processor_name", r->in.print_processor_name);
16290 if (flags & NDR_OUT) {
16291 ndr_print_struct(ndr, "out", "spoolss_AddPrintProcessor");
16293 ndr_print_WERROR(ndr, "result", r->out.result);
16299 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPrintProcessors *r)
16301 if (flags & NDR_IN) {
16302 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
16303 if (r->in.servername) {
16304 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16305 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16306 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
16307 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16309 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.environment));
16310 if (r->in.environment) {
16311 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16312 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
16313 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.environment, CH_UTF16)));
16314 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.environment, ndr_charset_length(r->in.environment, CH_UTF16), sizeof(uint16_t), CH_UTF16));
16316 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16317 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
16318 if (r->in.buffer) {
16319 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
16321 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
16323 if (flags & NDR_OUT) {
16324 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
16326 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
16328 if (r->out.needed == NULL) {
16329 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16331 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
16332 if (r->out.count == NULL) {
16333 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16335 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
16336 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16338 return NDR_ERR_SUCCESS;
16341 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPrintProcessors *r)
16343 uint32_t _ptr_servername;
16344 uint32_t _ptr_environment;
16345 uint32_t _ptr_buffer;
16346 uint32_t _ptr_info;
16347 TALLOC_CTX *_mem_save_servername_0;
16348 TALLOC_CTX *_mem_save_environment_0;
16349 TALLOC_CTX *_mem_save_buffer_0;
16350 TALLOC_CTX *_mem_save_info_0;
16351 TALLOC_CTX *_mem_save_needed_0;
16352 TALLOC_CTX *_mem_save_count_0;
16353 if (flags & NDR_IN) {
16354 ZERO_STRUCT(r->out);
16356 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
16357 if (_ptr_servername) {
16358 NDR_PULL_ALLOC(ndr, r->in.servername);
16360 r->in.servername = NULL;
16362 if (r->in.servername) {
16363 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
16364 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
16365 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
16366 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
16367 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
16368 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));
16370 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
16371 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
16372 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
16374 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_environment));
16375 if (_ptr_environment) {
16376 NDR_PULL_ALLOC(ndr, r->in.environment);
16378 r->in.environment = NULL;
16380 if (r->in.environment) {
16381 _mem_save_environment_0 = NDR_PULL_GET_MEM_CTX(ndr);
16382 NDR_PULL_SET_MEM_CTX(ndr, r->in.environment, 0);
16383 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.environment));
16384 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.environment));
16385 if (ndr_get_array_length(ndr, &r->in.environment) > ndr_get_array_size(ndr, &r->in.environment)) {
16386 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));
16388 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t)));
16389 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.environment, ndr_get_array_length(ndr, &r->in.environment), sizeof(uint16_t), CH_UTF16));
16390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_environment_0, 0);
16392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16393 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
16395 NDR_PULL_ALLOC(ndr, r->in.buffer);
16397 r->in.buffer = NULL;
16399 if (r->in.buffer) {
16400 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
16401 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
16402 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
16403 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
16405 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
16406 NDR_PULL_ALLOC(ndr, r->out.needed);
16407 ZERO_STRUCTP(r->out.needed);
16408 NDR_PULL_ALLOC(ndr, r->out.count);
16409 ZERO_STRUCTP(r->out.count);
16411 if (flags & NDR_OUT) {
16412 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
16414 NDR_PULL_ALLOC(ndr, r->out.info);
16416 r->out.info = NULL;
16419 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16420 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16421 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
16422 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16424 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16425 NDR_PULL_ALLOC(ndr, r->out.needed);
16427 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
16428 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
16429 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
16430 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
16431 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16432 NDR_PULL_ALLOC(ndr, r->out.count);
16434 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
16435 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
16436 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
16437 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
16438 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16440 return NDR_ERR_SUCCESS;
16443 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPrintProcessors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPrintProcessors *r)
16445 uint32_t cntr_info_0;
16446 if (flags & NDR_IN) {
16447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
16450 if (flags & NDR_OUT) {
16451 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16452 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16453 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16455 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16456 NDR_CHECK(ndr_push_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16459 return NDR_ERR_SUCCESS;
16462 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPrintProcessors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPrintProcessors *r)
16464 uint32_t cntr_info_0;
16465 TALLOC_CTX *_mem_save_info_0;
16466 if (flags & NDR_IN) {
16467 ZERO_STRUCT(r->out);
16469 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16470 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
16472 if (flags & NDR_OUT) {
16473 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
16474 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
16475 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
16476 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16477 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
16478 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
16480 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
16481 NDR_CHECK(ndr_pull_spoolss_PrintProcessorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
16483 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
16485 return NDR_ERR_SUCCESS;
16488 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcessors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcessors *r)
16490 uint32_t cntr_info_1;
16491 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcessors");
16493 if (flags & NDR_SET_VALUES) {
16494 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16496 if (flags & NDR_IN) {
16497 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcessors");
16499 ndr_print_ptr(ndr, "servername", r->in.servername);
16501 if (r->in.servername) {
16502 ndr_print_string(ndr, "servername", r->in.servername);
16505 ndr_print_ptr(ndr, "environment", r->in.environment);
16507 if (r->in.environment) {
16508 ndr_print_string(ndr, "environment", r->in.environment);
16511 ndr_print_uint32(ndr, "level", r->in.level);
16512 ndr_print_ptr(ndr, "buffer", r->in.buffer);
16514 if (r->in.buffer) {
16515 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
16518 ndr_print_uint32(ndr, "offered", r->in.offered);
16521 if (flags & NDR_OUT) {
16522 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcessors");
16524 ndr_print_ptr(ndr, "count", r->out.count);
16526 ndr_print_uint32(ndr, "count", *r->out.count);
16528 ndr_print_ptr(ndr, "info", r->out.info);
16531 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
16533 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
16535 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
16536 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
16537 ndr_print_spoolss_PrintProcessorInfo(ndr, "info", &r->out.info[cntr_info_1]);
16544 ndr_print_ptr(ndr, "needed", r->out.needed);
16546 ndr_print_uint32(ndr, "needed", *r->out.needed);
16548 ndr_print_WERROR(ndr, "result", r->out.result);
16554 static enum ndr_err_code ndr_push_spoolss_GetPrintProcessorDirectory(struct ndr_push *ndr, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16556 if (flags & NDR_IN) {
16558 if (flags & NDR_OUT) {
16559 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16561 return NDR_ERR_SUCCESS;
16564 static enum ndr_err_code ndr_pull_spoolss_GetPrintProcessorDirectory(struct ndr_pull *ndr, int flags, struct spoolss_GetPrintProcessorDirectory *r)
16566 if (flags & NDR_IN) {
16568 if (flags & NDR_OUT) {
16569 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16571 return NDR_ERR_SUCCESS;
16574 _PUBLIC_ void ndr_print_spoolss_GetPrintProcessorDirectory(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrintProcessorDirectory *r)
16576 ndr_print_struct(ndr, name, "spoolss_GetPrintProcessorDirectory");
16578 if (flags & NDR_SET_VALUES) {
16579 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16581 if (flags & NDR_IN) {
16582 ndr_print_struct(ndr, "in", "spoolss_GetPrintProcessorDirectory");
16586 if (flags & NDR_OUT) {
16587 ndr_print_struct(ndr, "out", "spoolss_GetPrintProcessorDirectory");
16589 ndr_print_WERROR(ndr, "result", r->out.result);
16595 static enum ndr_err_code ndr_push_spoolss_StartDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartDocPrinter *r)
16597 if (flags & NDR_IN) {
16598 if (r->in.handle == NULL) {
16599 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16601 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16602 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
16603 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
16604 NDR_CHECK(ndr_push_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
16606 if (flags & NDR_OUT) {
16607 if (r->out.job_id == NULL) {
16608 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16610 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.job_id));
16611 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16613 return NDR_ERR_SUCCESS;
16616 static enum ndr_err_code ndr_pull_spoolss_StartDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartDocPrinter *r)
16618 TALLOC_CTX *_mem_save_handle_0;
16619 TALLOC_CTX *_mem_save_job_id_0;
16620 if (flags & NDR_IN) {
16621 ZERO_STRUCT(r->out);
16623 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16624 NDR_PULL_ALLOC(ndr, r->in.handle);
16626 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16627 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16628 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16629 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16630 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
16631 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
16632 NDR_CHECK(ndr_pull_spoolss_DocumentInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
16633 NDR_PULL_ALLOC(ndr, r->out.job_id);
16634 ZERO_STRUCTP(r->out.job_id);
16636 if (flags & NDR_OUT) {
16637 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16638 NDR_PULL_ALLOC(ndr, r->out.job_id);
16640 _mem_save_job_id_0 = NDR_PULL_GET_MEM_CTX(ndr);
16641 NDR_PULL_SET_MEM_CTX(ndr, r->out.job_id, LIBNDR_FLAG_REF_ALLOC);
16642 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.job_id));
16643 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_job_id_0, LIBNDR_FLAG_REF_ALLOC);
16644 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16646 return NDR_ERR_SUCCESS;
16649 _PUBLIC_ void ndr_print_spoolss_StartDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartDocPrinter *r)
16651 ndr_print_struct(ndr, name, "spoolss_StartDocPrinter");
16653 if (flags & NDR_SET_VALUES) {
16654 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16656 if (flags & NDR_IN) {
16657 ndr_print_struct(ndr, "in", "spoolss_StartDocPrinter");
16659 ndr_print_ptr(ndr, "handle", r->in.handle);
16661 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16663 ndr_print_uint32(ndr, "level", r->in.level);
16664 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
16665 ndr_print_spoolss_DocumentInfo(ndr, "info", &r->in.info);
16668 if (flags & NDR_OUT) {
16669 ndr_print_struct(ndr, "out", "spoolss_StartDocPrinter");
16671 ndr_print_ptr(ndr, "job_id", r->out.job_id);
16673 ndr_print_uint32(ndr, "job_id", *r->out.job_id);
16675 ndr_print_WERROR(ndr, "result", r->out.result);
16681 static enum ndr_err_code ndr_push_spoolss_StartPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_StartPagePrinter *r)
16683 if (flags & NDR_IN) {
16684 if (r->in.handle == NULL) {
16685 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16687 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16689 if (flags & NDR_OUT) {
16690 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16692 return NDR_ERR_SUCCESS;
16695 static enum ndr_err_code ndr_pull_spoolss_StartPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_StartPagePrinter *r)
16697 TALLOC_CTX *_mem_save_handle_0;
16698 if (flags & NDR_IN) {
16699 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16700 NDR_PULL_ALLOC(ndr, r->in.handle);
16702 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16703 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16704 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16705 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16707 if (flags & NDR_OUT) {
16708 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16710 return NDR_ERR_SUCCESS;
16713 _PUBLIC_ void ndr_print_spoolss_StartPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_StartPagePrinter *r)
16715 ndr_print_struct(ndr, name, "spoolss_StartPagePrinter");
16717 if (flags & NDR_SET_VALUES) {
16718 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16720 if (flags & NDR_IN) {
16721 ndr_print_struct(ndr, "in", "spoolss_StartPagePrinter");
16723 ndr_print_ptr(ndr, "handle", r->in.handle);
16725 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16729 if (flags & NDR_OUT) {
16730 ndr_print_struct(ndr, "out", "spoolss_StartPagePrinter");
16732 ndr_print_WERROR(ndr, "result", r->out.result);
16738 static enum ndr_err_code ndr_push_spoolss_WritePrinter(struct ndr_push *ndr, int flags, const struct spoolss_WritePrinter *r)
16740 if (flags & NDR_IN) {
16741 if (r->in.handle == NULL) {
16742 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16744 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16745 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
16746 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data.length));
16748 if (flags & NDR_OUT) {
16749 if (r->out.num_written == NULL) {
16750 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16752 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.num_written));
16753 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16755 return NDR_ERR_SUCCESS;
16758 static enum ndr_err_code ndr_pull_spoolss_WritePrinter(struct ndr_pull *ndr, int flags, struct spoolss_WritePrinter *r)
16760 TALLOC_CTX *_mem_save_handle_0;
16761 TALLOC_CTX *_mem_save_num_written_0;
16762 if (flags & NDR_IN) {
16763 ZERO_STRUCT(r->out);
16765 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16766 NDR_PULL_ALLOC(ndr, r->in.handle);
16768 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16769 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16770 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16771 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16772 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.data));
16773 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._data_size));
16774 NDR_PULL_ALLOC(ndr, r->out.num_written);
16775 ZERO_STRUCTP(r->out.num_written);
16777 if (flags & NDR_OUT) {
16778 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16779 NDR_PULL_ALLOC(ndr, r->out.num_written);
16781 _mem_save_num_written_0 = NDR_PULL_GET_MEM_CTX(ndr);
16782 NDR_PULL_SET_MEM_CTX(ndr, r->out.num_written, LIBNDR_FLAG_REF_ALLOC);
16783 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.num_written));
16784 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_num_written_0, LIBNDR_FLAG_REF_ALLOC);
16785 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16787 return NDR_ERR_SUCCESS;
16790 _PUBLIC_ void ndr_print_spoolss_WritePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WritePrinter *r)
16792 ndr_print_struct(ndr, name, "spoolss_WritePrinter");
16794 if (flags & NDR_SET_VALUES) {
16795 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16797 if (flags & NDR_IN) {
16798 ndr_print_struct(ndr, "in", "spoolss_WritePrinter");
16800 ndr_print_ptr(ndr, "handle", r->in.handle);
16802 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16804 ndr_print_DATA_BLOB(ndr, "data", r->in.data);
16805 ndr_print_uint32(ndr, "_data_size", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.data.length:r->in._data_size);
16808 if (flags & NDR_OUT) {
16809 ndr_print_struct(ndr, "out", "spoolss_WritePrinter");
16811 ndr_print_ptr(ndr, "num_written", r->out.num_written);
16813 ndr_print_uint32(ndr, "num_written", *r->out.num_written);
16815 ndr_print_WERROR(ndr, "result", r->out.result);
16821 static enum ndr_err_code ndr_push_spoolss_EndPagePrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndPagePrinter *r)
16823 if (flags & NDR_IN) {
16824 if (r->in.handle == NULL) {
16825 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16827 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16829 if (flags & NDR_OUT) {
16830 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16832 return NDR_ERR_SUCCESS;
16835 static enum ndr_err_code ndr_pull_spoolss_EndPagePrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndPagePrinter *r)
16837 TALLOC_CTX *_mem_save_handle_0;
16838 if (flags & NDR_IN) {
16839 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16840 NDR_PULL_ALLOC(ndr, r->in.handle);
16842 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16843 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16844 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16845 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16847 if (flags & NDR_OUT) {
16848 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16850 return NDR_ERR_SUCCESS;
16853 _PUBLIC_ void ndr_print_spoolss_EndPagePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndPagePrinter *r)
16855 ndr_print_struct(ndr, name, "spoolss_EndPagePrinter");
16857 if (flags & NDR_SET_VALUES) {
16858 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16860 if (flags & NDR_IN) {
16861 ndr_print_struct(ndr, "in", "spoolss_EndPagePrinter");
16863 ndr_print_ptr(ndr, "handle", r->in.handle);
16865 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16869 if (flags & NDR_OUT) {
16870 ndr_print_struct(ndr, "out", "spoolss_EndPagePrinter");
16872 ndr_print_WERROR(ndr, "result", r->out.result);
16878 static enum ndr_err_code ndr_push_spoolss_AbortPrinter(struct ndr_push *ndr, int flags, const struct spoolss_AbortPrinter *r)
16880 if (flags & NDR_IN) {
16881 if (r->in.handle == NULL) {
16882 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16884 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16886 if (flags & NDR_OUT) {
16887 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16889 return NDR_ERR_SUCCESS;
16892 static enum ndr_err_code ndr_pull_spoolss_AbortPrinter(struct ndr_pull *ndr, int flags, struct spoolss_AbortPrinter *r)
16894 TALLOC_CTX *_mem_save_handle_0;
16895 if (flags & NDR_IN) {
16896 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16897 NDR_PULL_ALLOC(ndr, r->in.handle);
16899 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16900 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16901 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16902 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16904 if (flags & NDR_OUT) {
16905 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16907 return NDR_ERR_SUCCESS;
16910 _PUBLIC_ void ndr_print_spoolss_AbortPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AbortPrinter *r)
16912 ndr_print_struct(ndr, name, "spoolss_AbortPrinter");
16914 if (flags & NDR_SET_VALUES) {
16915 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
16917 if (flags & NDR_IN) {
16918 ndr_print_struct(ndr, "in", "spoolss_AbortPrinter");
16920 ndr_print_ptr(ndr, "handle", r->in.handle);
16922 ndr_print_policy_handle(ndr, "handle", r->in.handle);
16926 if (flags & NDR_OUT) {
16927 ndr_print_struct(ndr, "out", "spoolss_AbortPrinter");
16929 ndr_print_WERROR(ndr, "result", r->out.result);
16935 static enum ndr_err_code ndr_push_spoolss_ReadPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReadPrinter *r)
16937 if (flags & NDR_IN) {
16938 if (r->in.handle == NULL) {
16939 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16941 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
16944 if (flags & NDR_OUT) {
16945 if (r->out.data == NULL) {
16946 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_size));
16949 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.data, r->in.data_size));
16950 if (r->out._data_size == NULL) {
16951 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
16953 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out._data_size));
16954 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
16956 return NDR_ERR_SUCCESS;
16959 static enum ndr_err_code ndr_pull_spoolss_ReadPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReadPrinter *r)
16961 TALLOC_CTX *_mem_save_handle_0;
16962 TALLOC_CTX *_mem_save__data_size_0;
16963 if (flags & NDR_IN) {
16964 ZERO_STRUCT(r->out);
16966 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16967 NDR_PULL_ALLOC(ndr, r->in.handle);
16969 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
16970 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
16971 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
16972 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
16973 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_size));
16974 NDR_PULL_ALLOC_N(ndr, r->out.data, r->in.data_size);
16975 memset(r->out.data, 0, (r->in.data_size) * sizeof(*r->out.data));
16976 NDR_PULL_ALLOC(ndr, r->out._data_size);
16977 ZERO_STRUCTP(r->out._data_size);
16979 if (flags & NDR_OUT) {
16980 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.data));
16981 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16982 NDR_PULL_ALLOC_N(ndr, r->out.data, ndr_get_array_size(ndr, &r->out.data));
16984 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.data, ndr_get_array_size(ndr, &r->out.data)));
16985 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
16986 NDR_PULL_ALLOC(ndr, r->out._data_size);
16988 _mem_save__data_size_0 = NDR_PULL_GET_MEM_CTX(ndr);
16989 NDR_PULL_SET_MEM_CTX(ndr, r->out._data_size, LIBNDR_FLAG_REF_ALLOC);
16990 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out._data_size));
16991 NDR_PULL_SET_MEM_CTX(ndr, _mem_save__data_size_0, LIBNDR_FLAG_REF_ALLOC);
16992 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
16994 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.data, r->in.data_size));
16997 return NDR_ERR_SUCCESS;
17000 _PUBLIC_ void ndr_print_spoolss_ReadPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReadPrinter *r)
17002 ndr_print_struct(ndr, name, "spoolss_ReadPrinter");
17004 if (flags & NDR_SET_VALUES) {
17005 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17007 if (flags & NDR_IN) {
17008 ndr_print_struct(ndr, "in", "spoolss_ReadPrinter");
17010 ndr_print_ptr(ndr, "handle", r->in.handle);
17012 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17014 ndr_print_uint32(ndr, "data_size", r->in.data_size);
17017 if (flags & NDR_OUT) {
17018 ndr_print_struct(ndr, "out", "spoolss_ReadPrinter");
17020 ndr_print_ptr(ndr, "data", r->out.data);
17022 ndr_print_array_uint8(ndr, "data", r->out.data, r->in.data_size);
17024 ndr_print_ptr(ndr, "_data_size", r->out._data_size);
17026 ndr_print_uint32(ndr, "_data_size", *r->out._data_size);
17028 ndr_print_WERROR(ndr, "result", r->out.result);
17034 static enum ndr_err_code ndr_push_spoolss_EndDocPrinter(struct ndr_push *ndr, int flags, const struct spoolss_EndDocPrinter *r)
17036 if (flags & NDR_IN) {
17037 if (r->in.handle == NULL) {
17038 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17040 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17042 if (flags & NDR_OUT) {
17043 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17045 return NDR_ERR_SUCCESS;
17048 static enum ndr_err_code ndr_pull_spoolss_EndDocPrinter(struct ndr_pull *ndr, int flags, struct spoolss_EndDocPrinter *r)
17050 TALLOC_CTX *_mem_save_handle_0;
17051 if (flags & NDR_IN) {
17052 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17053 NDR_PULL_ALLOC(ndr, r->in.handle);
17055 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17056 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17057 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17058 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17060 if (flags & NDR_OUT) {
17061 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17063 return NDR_ERR_SUCCESS;
17066 _PUBLIC_ void ndr_print_spoolss_EndDocPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EndDocPrinter *r)
17068 ndr_print_struct(ndr, name, "spoolss_EndDocPrinter");
17070 if (flags & NDR_SET_VALUES) {
17071 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17073 if (flags & NDR_IN) {
17074 ndr_print_struct(ndr, "in", "spoolss_EndDocPrinter");
17076 ndr_print_ptr(ndr, "handle", r->in.handle);
17078 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17082 if (flags & NDR_OUT) {
17083 ndr_print_struct(ndr, "out", "spoolss_EndDocPrinter");
17085 ndr_print_WERROR(ndr, "result", r->out.result);
17091 static enum ndr_err_code ndr_push_spoolss_AddJob(struct ndr_push *ndr, int flags, const struct spoolss_AddJob *r)
17093 if (flags & NDR_IN) {
17094 if (r->in.handle == NULL) {
17095 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17097 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17098 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17099 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17100 if (r->in.buffer) {
17101 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17102 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
17104 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17106 if (flags & NDR_OUT) {
17107 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.buffer));
17108 if (r->out.buffer) {
17109 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17110 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
17112 if (r->out.needed == NULL) {
17113 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17115 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17116 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17118 return NDR_ERR_SUCCESS;
17121 static enum ndr_err_code ndr_pull_spoolss_AddJob(struct ndr_pull *ndr, int flags, struct spoolss_AddJob *r)
17123 uint32_t _ptr_buffer;
17124 TALLOC_CTX *_mem_save_handle_0;
17125 TALLOC_CTX *_mem_save_buffer_0;
17126 TALLOC_CTX *_mem_save_needed_0;
17127 if (flags & NDR_IN) {
17128 ZERO_STRUCT(r->out);
17130 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17131 NDR_PULL_ALLOC(ndr, r->in.handle);
17133 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17134 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17135 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17136 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17137 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17138 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17140 NDR_PULL_ALLOC(ndr, r->in.buffer);
17142 r->in.buffer = NULL;
17144 if (r->in.buffer) {
17145 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17146 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17147 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
17148 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
17149 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
17150 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17152 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17153 NDR_PULL_ALLOC(ndr, r->out.needed);
17154 ZERO_STRUCTP(r->out.needed);
17155 if (r->in.buffer) {
17156 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
17159 if (flags & NDR_OUT) {
17160 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17162 NDR_PULL_ALLOC(ndr, r->out.buffer);
17164 r->out.buffer = NULL;
17166 if (r->out.buffer) {
17167 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17168 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, 0);
17169 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
17170 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
17171 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
17172 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17174 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17175 NDR_PULL_ALLOC(ndr, r->out.needed);
17177 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17178 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17179 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17180 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17181 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17182 if (r->out.buffer) {
17183 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
17186 return NDR_ERR_SUCCESS;
17189 _PUBLIC_ void ndr_print_spoolss_AddJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddJob *r)
17191 ndr_print_struct(ndr, name, "spoolss_AddJob");
17193 if (flags & NDR_SET_VALUES) {
17194 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17196 if (flags & NDR_IN) {
17197 ndr_print_struct(ndr, "in", "spoolss_AddJob");
17199 ndr_print_ptr(ndr, "handle", r->in.handle);
17201 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17203 ndr_print_uint32(ndr, "level", r->in.level);
17204 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17206 if (r->in.buffer) {
17207 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
17210 ndr_print_uint32(ndr, "offered", r->in.offered);
17213 if (flags & NDR_OUT) {
17214 ndr_print_struct(ndr, "out", "spoolss_AddJob");
17216 ndr_print_ptr(ndr, "buffer", r->out.buffer);
17218 if (r->out.buffer) {
17219 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
17222 ndr_print_ptr(ndr, "needed", r->out.needed);
17224 ndr_print_uint32(ndr, "needed", *r->out.needed);
17226 ndr_print_WERROR(ndr, "result", r->out.result);
17232 static enum ndr_err_code ndr_push_spoolss_ScheduleJob(struct ndr_push *ndr, int flags, const struct spoolss_ScheduleJob *r)
17234 if (flags & NDR_IN) {
17235 if (r->in.handle == NULL) {
17236 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17238 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17239 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.jobid));
17241 if (flags & NDR_OUT) {
17242 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17244 return NDR_ERR_SUCCESS;
17247 static enum ndr_err_code ndr_pull_spoolss_ScheduleJob(struct ndr_pull *ndr, int flags, struct spoolss_ScheduleJob *r)
17249 TALLOC_CTX *_mem_save_handle_0;
17250 if (flags & NDR_IN) {
17251 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17252 NDR_PULL_ALLOC(ndr, r->in.handle);
17254 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17255 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17256 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17257 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17258 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.jobid));
17260 if (flags & NDR_OUT) {
17261 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17263 return NDR_ERR_SUCCESS;
17266 _PUBLIC_ void ndr_print_spoolss_ScheduleJob(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ScheduleJob *r)
17268 ndr_print_struct(ndr, name, "spoolss_ScheduleJob");
17270 if (flags & NDR_SET_VALUES) {
17271 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17273 if (flags & NDR_IN) {
17274 ndr_print_struct(ndr, "in", "spoolss_ScheduleJob");
17276 ndr_print_ptr(ndr, "handle", r->in.handle);
17278 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17280 ndr_print_uint32(ndr, "jobid", r->in.jobid);
17283 if (flags & NDR_OUT) {
17284 ndr_print_struct(ndr, "out", "spoolss_ScheduleJob");
17286 ndr_print_WERROR(ndr, "result", r->out.result);
17292 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_GetPrinterData *r)
17294 if (flags & NDR_IN) {
17295 if (r->in.handle == NULL) {
17296 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17298 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17299 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17300 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17301 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17302 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));
17303 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17305 if (flags & NDR_OUT) {
17306 if (r->out.type == NULL) {
17307 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17309 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, *r->out.type));
17310 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->out.data));
17311 if (r->out.needed == NULL) {
17312 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17314 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17315 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17317 return NDR_ERR_SUCCESS;
17320 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct _spoolss_GetPrinterData *r)
17322 TALLOC_CTX *_mem_save_handle_0;
17323 TALLOC_CTX *_mem_save_type_0;
17324 TALLOC_CTX *_mem_save_needed_0;
17325 if (flags & NDR_IN) {
17326 ZERO_STRUCT(r->out);
17328 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17329 NDR_PULL_ALLOC(ndr, r->in.handle);
17331 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17332 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17333 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17334 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17335 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17336 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17337 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17338 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));
17340 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17341 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));
17342 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17343 NDR_PULL_ALLOC(ndr, r->out.type);
17344 ZERO_STRUCTP(r->out.type);
17345 NDR_PULL_ALLOC(ndr, r->out.needed);
17346 ZERO_STRUCTP(r->out.needed);
17348 if (flags & NDR_OUT) {
17349 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17350 NDR_PULL_ALLOC(ndr, r->out.type);
17352 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
17353 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
17354 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->out.type));
17355 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
17356 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->out.data));
17357 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17358 NDR_PULL_ALLOC(ndr, r->out.needed);
17360 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17361 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17362 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17363 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17364 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17366 return NDR_ERR_SUCCESS;
17369 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_GetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_GetPrinterData *r)
17371 if (flags & NDR_IN) {
17372 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17374 if (flags & NDR_OUT) {
17375 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17376 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17378 return NDR_ERR_SUCCESS;
17381 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_GetPrinterData(struct ndr_pull *ndr, int flags, struct __spoolss_GetPrinterData *r)
17383 if (flags & NDR_IN) {
17384 ZERO_STRUCT(r->out);
17386 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17388 if (flags & NDR_OUT) {
17389 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.data, r->in.type));
17390 NDR_CHECK(ndr_pull_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17392 return NDR_ERR_SUCCESS;
17395 _PUBLIC_ void ndr_print_spoolss_GetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterData *r)
17397 ndr_print_struct(ndr, name, "spoolss_GetPrinterData");
17399 if (flags & NDR_SET_VALUES) {
17400 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17402 if (flags & NDR_IN) {
17403 ndr_print_struct(ndr, "in", "spoolss_GetPrinterData");
17405 ndr_print_ptr(ndr, "handle", r->in.handle);
17407 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17409 ndr_print_string(ndr, "value_name", r->in.value_name);
17410 ndr_print_uint32(ndr, "offered", r->in.offered);
17413 if (flags & NDR_OUT) {
17414 ndr_print_struct(ndr, "out", "spoolss_GetPrinterData");
17416 ndr_print_ptr(ndr, "type", r->out.type);
17418 ndr_print_spoolss_PrinterDataType(ndr, "type", *r->out.type);
17420 ndr_print_set_switch_value(ndr, &r->out.data, *r->out.type);
17421 ndr_print_spoolss_PrinterData(ndr, "data", &r->out.data);
17422 ndr_print_ptr(ndr, "needed", r->out.needed);
17424 ndr_print_uint32(ndr, "needed", *r->out.needed);
17426 ndr_print_WERROR(ndr, "result", r->out.result);
17432 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct _spoolss_SetPrinterData *r)
17434 if (flags & NDR_IN) {
17435 if (r->in.handle == NULL) {
17436 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17438 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17439 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17440 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17441 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
17442 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));
17443 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17444 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.data));
17445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in._offered));
17447 if (flags & NDR_OUT) {
17448 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17450 return NDR_ERR_SUCCESS;
17453 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_SetPrinterData(struct ndr_push *ndr, int flags, const struct __spoolss_SetPrinterData *r)
17455 if (flags & NDR_IN) {
17456 NDR_CHECK(ndr_push_spoolss_PrinterDataType(ndr, NDR_SCALARS, r->in.type));
17458 if (flags & NDR_OUT) {
17459 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.data, r->in.type));
17460 NDR_CHECK(ndr_push_spoolss_PrinterData(ndr, NDR_SCALARS|NDR_BUFFERS, &r->out.data));
17462 return NDR_ERR_SUCCESS;
17465 static enum ndr_err_code ndr_pull_spoolss_SetPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterData *r)
17467 TALLOC_CTX *_mem_save_handle_0;
17468 if (flags & NDR_IN) {
17469 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17470 NDR_PULL_ALLOC(ndr, r->in.handle);
17472 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17473 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17474 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17475 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17476 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
17477 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
17478 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
17479 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));
17481 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
17482 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));
17483 NDR_CHECK(ndr_pull_spoolss_PrinterDataType(ndr, NDR_SCALARS, &r->in.type));
17485 struct ndr_pull *_ndr_data;
17486 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_data, 4, -1));
17487 NDR_CHECK(ndr_pull_set_switch_value(_ndr_data, &r->in.data, r->in.type));
17488 NDR_CHECK(ndr_pull_spoolss_PrinterData(_ndr_data, NDR_SCALARS|NDR_BUFFERS, &r->in.data));
17489 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_data, 4, -1));
17491 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._offered));
17493 if (flags & NDR_OUT) {
17494 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17496 return NDR_ERR_SUCCESS;
17499 _PUBLIC_ void ndr_print_spoolss_SetPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterData *r)
17501 ndr_print_struct(ndr, name, "spoolss_SetPrinterData");
17503 if (flags & NDR_SET_VALUES) {
17504 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17506 if (flags & NDR_IN) {
17507 ndr_print_struct(ndr, "in", "spoolss_SetPrinterData");
17509 ndr_print_ptr(ndr, "handle", r->in.handle);
17511 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17513 ndr_print_string(ndr, "value_name", r->in.value_name);
17514 ndr_print_spoolss_PrinterDataType(ndr, "type", r->in.type);
17515 ndr_print_set_switch_value(ndr, &r->in.data, r->in.type);
17516 ndr_print_spoolss_PrinterData(ndr, "data", &r->in.data);
17517 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);
17520 if (flags & NDR_OUT) {
17521 ndr_print_struct(ndr, "out", "spoolss_SetPrinterData");
17523 ndr_print_WERROR(ndr, "result", r->out.result);
17529 static enum ndr_err_code ndr_push_spoolss_WaitForPrinterChange(struct ndr_push *ndr, int flags, const struct spoolss_WaitForPrinterChange *r)
17531 if (flags & NDR_IN) {
17533 if (flags & NDR_OUT) {
17534 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17536 return NDR_ERR_SUCCESS;
17539 static enum ndr_err_code ndr_pull_spoolss_WaitForPrinterChange(struct ndr_pull *ndr, int flags, struct spoolss_WaitForPrinterChange *r)
17541 if (flags & NDR_IN) {
17543 if (flags & NDR_OUT) {
17544 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17546 return NDR_ERR_SUCCESS;
17549 _PUBLIC_ void ndr_print_spoolss_WaitForPrinterChange(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_WaitForPrinterChange *r)
17551 ndr_print_struct(ndr, name, "spoolss_WaitForPrinterChange");
17553 if (flags & NDR_SET_VALUES) {
17554 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17556 if (flags & NDR_IN) {
17557 ndr_print_struct(ndr, "in", "spoolss_WaitForPrinterChange");
17561 if (flags & NDR_OUT) {
17562 ndr_print_struct(ndr, "out", "spoolss_WaitForPrinterChange");
17564 ndr_print_WERROR(ndr, "result", r->out.result);
17570 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ClosePrinter *r)
17572 if (flags & NDR_IN) {
17573 if (r->in.handle == NULL) {
17574 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17576 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17578 if (flags & NDR_OUT) {
17579 if (r->out.handle == NULL) {
17580 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17582 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17583 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17585 return NDR_ERR_SUCCESS;
17588 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ClosePrinter *r)
17590 TALLOC_CTX *_mem_save_handle_0;
17591 if (flags & NDR_IN) {
17592 ZERO_STRUCT(r->out);
17594 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17595 NDR_PULL_ALLOC(ndr, r->in.handle);
17597 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17598 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17599 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17600 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17601 NDR_PULL_ALLOC(ndr, r->out.handle);
17602 *r->out.handle = *r->in.handle;
17604 if (flags & NDR_OUT) {
17605 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17606 NDR_PULL_ALLOC(ndr, r->out.handle);
17608 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17609 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
17610 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
17611 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17612 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17614 return NDR_ERR_SUCCESS;
17617 _PUBLIC_ void ndr_print_spoolss_ClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ClosePrinter *r)
17619 ndr_print_struct(ndr, name, "spoolss_ClosePrinter");
17621 if (flags & NDR_SET_VALUES) {
17622 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17624 if (flags & NDR_IN) {
17625 ndr_print_struct(ndr, "in", "spoolss_ClosePrinter");
17627 ndr_print_ptr(ndr, "handle", r->in.handle);
17629 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17633 if (flags & NDR_OUT) {
17634 ndr_print_struct(ndr, "out", "spoolss_ClosePrinter");
17636 ndr_print_ptr(ndr, "handle", r->out.handle);
17638 ndr_print_policy_handle(ndr, "handle", r->out.handle);
17640 ndr_print_WERROR(ndr, "result", r->out.result);
17646 static enum ndr_err_code ndr_push_spoolss_AddForm(struct ndr_push *ndr, int flags, const struct spoolss_AddForm *r)
17648 if (flags & NDR_IN) {
17649 if (r->in.handle == NULL) {
17650 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17652 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17653 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17654 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
17655 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17657 if (flags & NDR_OUT) {
17658 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17660 return NDR_ERR_SUCCESS;
17663 static enum ndr_err_code ndr_pull_spoolss_AddForm(struct ndr_pull *ndr, int flags, struct spoolss_AddForm *r)
17665 TALLOC_CTX *_mem_save_handle_0;
17666 if (flags & NDR_IN) {
17667 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17668 NDR_PULL_ALLOC(ndr, r->in.handle);
17670 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17671 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17672 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17673 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17674 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17675 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
17676 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17678 if (flags & NDR_OUT) {
17679 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17681 return NDR_ERR_SUCCESS;
17684 _PUBLIC_ void ndr_print_spoolss_AddForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddForm *r)
17686 ndr_print_struct(ndr, name, "spoolss_AddForm");
17688 if (flags & NDR_SET_VALUES) {
17689 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17691 if (flags & NDR_IN) {
17692 ndr_print_struct(ndr, "in", "spoolss_AddForm");
17694 ndr_print_ptr(ndr, "handle", r->in.handle);
17696 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17698 ndr_print_uint32(ndr, "level", r->in.level);
17699 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
17700 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
17703 if (flags & NDR_OUT) {
17704 ndr_print_struct(ndr, "out", "spoolss_AddForm");
17706 ndr_print_WERROR(ndr, "result", r->out.result);
17712 static enum ndr_err_code ndr_push_spoolss_DeleteForm(struct ndr_push *ndr, int flags, const struct spoolss_DeleteForm *r)
17714 if (flags & NDR_IN) {
17715 if (r->in.handle == NULL) {
17716 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17718 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17719 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17720 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17721 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17722 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));
17724 if (flags & NDR_OUT) {
17725 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17727 return NDR_ERR_SUCCESS;
17730 static enum ndr_err_code ndr_pull_spoolss_DeleteForm(struct ndr_pull *ndr, int flags, struct spoolss_DeleteForm *r)
17732 TALLOC_CTX *_mem_save_handle_0;
17733 if (flags & NDR_IN) {
17734 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17735 NDR_PULL_ALLOC(ndr, r->in.handle);
17737 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17738 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17739 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17740 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17741 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
17742 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
17743 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
17744 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));
17746 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
17747 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));
17749 if (flags & NDR_OUT) {
17750 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17752 return NDR_ERR_SUCCESS;
17755 _PUBLIC_ void ndr_print_spoolss_DeleteForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteForm *r)
17757 ndr_print_struct(ndr, name, "spoolss_DeleteForm");
17759 if (flags & NDR_SET_VALUES) {
17760 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17762 if (flags & NDR_IN) {
17763 ndr_print_struct(ndr, "in", "spoolss_DeleteForm");
17765 ndr_print_ptr(ndr, "handle", r->in.handle);
17767 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17769 ndr_print_string(ndr, "form_name", r->in.form_name);
17772 if (flags & NDR_OUT) {
17773 ndr_print_struct(ndr, "out", "spoolss_DeleteForm");
17775 ndr_print_WERROR(ndr, "result", r->out.result);
17781 static enum ndr_err_code ndr_push_spoolss_GetForm(struct ndr_push *ndr, int flags, const struct spoolss_GetForm *r)
17783 if (flags & NDR_IN) {
17784 if (r->in.handle == NULL) {
17785 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17787 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17788 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17789 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17790 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17791 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));
17792 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17793 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
17794 if (r->in.buffer) {
17795 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
17797 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
17799 if (flags & NDR_OUT) {
17800 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
17803 struct ndr_push *_ndr_info;
17804 NDR_CHECK(ndr_push_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
17805 NDR_CHECK(ndr_push_set_switch_value(_ndr_info, r->out.info, r->in.level));
17806 NDR_CHECK(ndr_push_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
17807 NDR_CHECK(ndr_push_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
17810 if (r->out.needed == NULL) {
17811 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17813 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
17814 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17816 return NDR_ERR_SUCCESS;
17819 static enum ndr_err_code ndr_pull_spoolss_GetForm(struct ndr_pull *ndr, int flags, struct spoolss_GetForm *r)
17821 uint32_t _ptr_buffer;
17822 uint32_t _ptr_info;
17823 TALLOC_CTX *_mem_save_handle_0;
17824 TALLOC_CTX *_mem_save_buffer_0;
17825 TALLOC_CTX *_mem_save_info_0;
17826 TALLOC_CTX *_mem_save_needed_0;
17827 if (flags & NDR_IN) {
17828 ZERO_STRUCT(r->out);
17830 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17831 NDR_PULL_ALLOC(ndr, r->in.handle);
17833 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17834 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17835 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17836 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17837 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
17838 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
17839 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
17840 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));
17842 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
17843 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));
17844 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17845 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
17847 NDR_PULL_ALLOC(ndr, r->in.buffer);
17849 r->in.buffer = NULL;
17851 if (r->in.buffer) {
17852 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
17853 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
17854 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
17855 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
17857 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
17858 NDR_PULL_ALLOC(ndr, r->out.needed);
17859 ZERO_STRUCTP(r->out.needed);
17861 if (flags & NDR_OUT) {
17862 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
17864 NDR_PULL_ALLOC(ndr, r->out.info);
17866 r->out.info = NULL;
17869 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
17870 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
17872 struct ndr_pull *_ndr_info;
17873 NDR_CHECK(ndr_pull_subcontext_start(ndr, &_ndr_info, 4, r->in.offered));
17874 NDR_CHECK(ndr_pull_set_switch_value(_ndr_info, r->out.info, r->in.level));
17875 NDR_CHECK(ndr_pull_spoolss_FormInfo(_ndr_info, NDR_SCALARS|NDR_BUFFERS, r->out.info));
17876 NDR_CHECK(ndr_pull_subcontext_end(ndr, _ndr_info, 4, r->in.offered));
17878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
17880 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17881 NDR_PULL_ALLOC(ndr, r->out.needed);
17883 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
17884 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
17885 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
17886 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
17887 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17889 return NDR_ERR_SUCCESS;
17892 _PUBLIC_ void ndr_print_spoolss_GetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetForm *r)
17894 ndr_print_struct(ndr, name, "spoolss_GetForm");
17896 if (flags & NDR_SET_VALUES) {
17897 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17899 if (flags & NDR_IN) {
17900 ndr_print_struct(ndr, "in", "spoolss_GetForm");
17902 ndr_print_ptr(ndr, "handle", r->in.handle);
17904 ndr_print_policy_handle(ndr, "handle", r->in.handle);
17906 ndr_print_string(ndr, "form_name", r->in.form_name);
17907 ndr_print_uint32(ndr, "level", r->in.level);
17908 ndr_print_ptr(ndr, "buffer", r->in.buffer);
17910 if (r->in.buffer) {
17911 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
17914 ndr_print_uint32(ndr, "offered", r->in.offered);
17917 if (flags & NDR_OUT) {
17918 ndr_print_struct(ndr, "out", "spoolss_GetForm");
17920 ndr_print_ptr(ndr, "info", r->out.info);
17923 ndr_print_set_switch_value(ndr, r->out.info, r->in.level);
17924 ndr_print_spoolss_FormInfo(ndr, "info", r->out.info);
17927 ndr_print_ptr(ndr, "needed", r->out.needed);
17929 ndr_print_uint32(ndr, "needed", *r->out.needed);
17931 ndr_print_WERROR(ndr, "result", r->out.result);
17937 static enum ndr_err_code ndr_push_spoolss_SetForm(struct ndr_push *ndr, int flags, const struct spoolss_SetForm *r)
17939 if (flags & NDR_IN) {
17940 if (r->in.handle == NULL) {
17941 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
17943 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17944 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
17946 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.form_name, CH_UTF16)));
17947 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));
17948 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
17949 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.level));
17950 NDR_CHECK(ndr_push_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17952 if (flags & NDR_OUT) {
17953 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
17955 return NDR_ERR_SUCCESS;
17958 static enum ndr_err_code ndr_pull_spoolss_SetForm(struct ndr_pull *ndr, int flags, struct spoolss_SetForm *r)
17960 TALLOC_CTX *_mem_save_handle_0;
17961 if (flags & NDR_IN) {
17962 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
17963 NDR_PULL_ALLOC(ndr, r->in.handle);
17965 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
17966 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
17967 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
17968 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
17969 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.form_name));
17970 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.form_name));
17971 if (ndr_get_array_length(ndr, &r->in.form_name) > ndr_get_array_size(ndr, &r->in.form_name)) {
17972 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));
17974 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.form_name), sizeof(uint16_t)));
17975 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));
17976 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
17977 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.level));
17978 NDR_CHECK(ndr_pull_spoolss_AddFormInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
17980 if (flags & NDR_OUT) {
17981 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
17983 return NDR_ERR_SUCCESS;
17986 _PUBLIC_ void ndr_print_spoolss_SetForm(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetForm *r)
17988 ndr_print_struct(ndr, name, "spoolss_SetForm");
17990 if (flags & NDR_SET_VALUES) {
17991 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
17993 if (flags & NDR_IN) {
17994 ndr_print_struct(ndr, "in", "spoolss_SetForm");
17996 ndr_print_ptr(ndr, "handle", r->in.handle);
17998 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18000 ndr_print_string(ndr, "form_name", r->in.form_name);
18001 ndr_print_uint32(ndr, "level", r->in.level);
18002 ndr_print_set_switch_value(ndr, &r->in.info, r->in.level);
18003 ndr_print_spoolss_AddFormInfo(ndr, "info", &r->in.info);
18006 if (flags & NDR_OUT) {
18007 ndr_print_struct(ndr, "out", "spoolss_SetForm");
18009 ndr_print_WERROR(ndr, "result", r->out.result);
18015 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct _spoolss_EnumForms *r)
18017 if (flags & NDR_IN) {
18018 if (r->in.handle == NULL) {
18019 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18021 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18022 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18023 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18024 if (r->in.buffer) {
18025 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18027 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18029 if (flags & NDR_OUT) {
18030 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18032 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18034 if (r->out.needed == NULL) {
18035 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18037 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18038 if (r->out.count == NULL) {
18039 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18041 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18042 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18044 return NDR_ERR_SUCCESS;
18047 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct _spoolss_EnumForms *r)
18049 uint32_t _ptr_buffer;
18050 uint32_t _ptr_info;
18051 TALLOC_CTX *_mem_save_handle_0;
18052 TALLOC_CTX *_mem_save_buffer_0;
18053 TALLOC_CTX *_mem_save_info_0;
18054 TALLOC_CTX *_mem_save_needed_0;
18055 TALLOC_CTX *_mem_save_count_0;
18056 if (flags & NDR_IN) {
18057 ZERO_STRUCT(r->out);
18059 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18060 NDR_PULL_ALLOC(ndr, r->in.handle);
18062 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
18063 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
18064 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
18065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
18066 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18067 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18069 NDR_PULL_ALLOC(ndr, r->in.buffer);
18071 r->in.buffer = NULL;
18073 if (r->in.buffer) {
18074 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18075 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18076 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18077 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18079 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18080 NDR_PULL_ALLOC(ndr, r->out.needed);
18081 ZERO_STRUCTP(r->out.needed);
18082 NDR_PULL_ALLOC(ndr, r->out.count);
18083 ZERO_STRUCTP(r->out.count);
18085 if (flags & NDR_OUT) {
18086 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18088 NDR_PULL_ALLOC(ndr, r->out.info);
18090 r->out.info = NULL;
18093 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18094 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18095 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18096 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18098 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18099 NDR_PULL_ALLOC(ndr, r->out.needed);
18101 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18102 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18103 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18104 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18105 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18106 NDR_PULL_ALLOC(ndr, r->out.count);
18108 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18109 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18110 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18111 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18112 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18114 return NDR_ERR_SUCCESS;
18117 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumForms(struct ndr_push *ndr, int flags, const struct __spoolss_EnumForms *r)
18119 uint32_t cntr_info_0;
18120 if (flags & NDR_IN) {
18121 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18122 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18124 if (flags & NDR_OUT) {
18125 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18126 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18127 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18129 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18130 NDR_CHECK(ndr_push_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18133 return NDR_ERR_SUCCESS;
18136 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumForms(struct ndr_pull *ndr, int flags, struct __spoolss_EnumForms *r)
18138 uint32_t cntr_info_0;
18139 TALLOC_CTX *_mem_save_info_0;
18140 if (flags & NDR_IN) {
18141 ZERO_STRUCT(r->out);
18143 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18144 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18146 if (flags & NDR_OUT) {
18147 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18148 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18149 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18150 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18151 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18152 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18154 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18155 NDR_CHECK(ndr_pull_spoolss_FormInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18157 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18159 return NDR_ERR_SUCCESS;
18162 _PUBLIC_ void ndr_print_spoolss_EnumForms(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumForms *r)
18164 uint32_t cntr_info_1;
18165 ndr_print_struct(ndr, name, "spoolss_EnumForms");
18167 if (flags & NDR_SET_VALUES) {
18168 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18170 if (flags & NDR_IN) {
18171 ndr_print_struct(ndr, "in", "spoolss_EnumForms");
18173 ndr_print_ptr(ndr, "handle", r->in.handle);
18175 ndr_print_policy_handle(ndr, "handle", r->in.handle);
18177 ndr_print_uint32(ndr, "level", r->in.level);
18178 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18180 if (r->in.buffer) {
18181 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18184 ndr_print_uint32(ndr, "offered", r->in.offered);
18187 if (flags & NDR_OUT) {
18188 ndr_print_struct(ndr, "out", "spoolss_EnumForms");
18190 ndr_print_ptr(ndr, "count", r->out.count);
18192 ndr_print_uint32(ndr, "count", *r->out.count);
18194 ndr_print_ptr(ndr, "info", r->out.info);
18197 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18199 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18201 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18202 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18203 ndr_print_spoolss_FormInfo(ndr, "info", &r->out.info[cntr_info_1]);
18210 ndr_print_ptr(ndr, "needed", r->out.needed);
18212 ndr_print_uint32(ndr, "needed", *r->out.needed);
18214 ndr_print_WERROR(ndr, "result", r->out.result);
18220 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct _spoolss_EnumPorts *r)
18222 if (flags & NDR_IN) {
18223 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18224 if (r->in.servername) {
18225 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18226 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18227 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18228 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18230 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18231 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18232 if (r->in.buffer) {
18233 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18235 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18237 if (flags & NDR_OUT) {
18238 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18240 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18242 if (r->out.needed == NULL) {
18243 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18245 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18246 if (r->out.count == NULL) {
18247 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18249 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18250 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18252 return NDR_ERR_SUCCESS;
18255 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct _spoolss_EnumPorts *r)
18257 uint32_t _ptr_servername;
18258 uint32_t _ptr_buffer;
18259 uint32_t _ptr_info;
18260 TALLOC_CTX *_mem_save_servername_0;
18261 TALLOC_CTX *_mem_save_buffer_0;
18262 TALLOC_CTX *_mem_save_info_0;
18263 TALLOC_CTX *_mem_save_needed_0;
18264 TALLOC_CTX *_mem_save_count_0;
18265 if (flags & NDR_IN) {
18266 ZERO_STRUCT(r->out);
18268 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18269 if (_ptr_servername) {
18270 NDR_PULL_ALLOC(ndr, r->in.servername);
18272 r->in.servername = NULL;
18274 if (r->in.servername) {
18275 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18276 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18277 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18278 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18279 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18280 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));
18282 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18283 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18284 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18286 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18287 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18289 NDR_PULL_ALLOC(ndr, r->in.buffer);
18291 r->in.buffer = NULL;
18293 if (r->in.buffer) {
18294 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18295 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18296 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18297 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18299 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18300 NDR_PULL_ALLOC(ndr, r->out.needed);
18301 ZERO_STRUCTP(r->out.needed);
18302 NDR_PULL_ALLOC(ndr, r->out.count);
18303 ZERO_STRUCTP(r->out.count);
18305 if (flags & NDR_OUT) {
18306 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18308 NDR_PULL_ALLOC(ndr, r->out.info);
18310 r->out.info = NULL;
18313 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18314 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18315 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18316 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18319 NDR_PULL_ALLOC(ndr, r->out.needed);
18321 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18322 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18325 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18326 NDR_PULL_ALLOC(ndr, r->out.count);
18328 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18329 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18330 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18332 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18334 return NDR_ERR_SUCCESS;
18337 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumPorts(struct ndr_push *ndr, int flags, const struct __spoolss_EnumPorts *r)
18339 uint32_t cntr_info_0;
18340 if (flags & NDR_IN) {
18341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18342 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18344 if (flags & NDR_OUT) {
18345 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18346 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18347 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18349 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18350 NDR_CHECK(ndr_push_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18353 return NDR_ERR_SUCCESS;
18356 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumPorts(struct ndr_pull *ndr, int flags, struct __spoolss_EnumPorts *r)
18358 uint32_t cntr_info_0;
18359 TALLOC_CTX *_mem_save_info_0;
18360 if (flags & NDR_IN) {
18361 ZERO_STRUCT(r->out);
18363 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18364 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18366 if (flags & NDR_OUT) {
18367 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18368 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18369 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18370 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18371 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18372 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18374 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18375 NDR_CHECK(ndr_pull_spoolss_PortInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18377 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18379 return NDR_ERR_SUCCESS;
18382 _PUBLIC_ void ndr_print_spoolss_EnumPorts(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPorts *r)
18384 uint32_t cntr_info_1;
18385 ndr_print_struct(ndr, name, "spoolss_EnumPorts");
18387 if (flags & NDR_SET_VALUES) {
18388 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18390 if (flags & NDR_IN) {
18391 ndr_print_struct(ndr, "in", "spoolss_EnumPorts");
18393 ndr_print_ptr(ndr, "servername", r->in.servername);
18395 if (r->in.servername) {
18396 ndr_print_string(ndr, "servername", r->in.servername);
18399 ndr_print_uint32(ndr, "level", r->in.level);
18400 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18402 if (r->in.buffer) {
18403 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18406 ndr_print_uint32(ndr, "offered", r->in.offered);
18409 if (flags & NDR_OUT) {
18410 ndr_print_struct(ndr, "out", "spoolss_EnumPorts");
18412 ndr_print_ptr(ndr, "count", r->out.count);
18414 ndr_print_uint32(ndr, "count", *r->out.count);
18416 ndr_print_ptr(ndr, "info", r->out.info);
18419 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18421 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18423 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18424 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18425 ndr_print_spoolss_PortInfo(ndr, "info", &r->out.info[cntr_info_1]);
18432 ndr_print_ptr(ndr, "needed", r->out.needed);
18434 ndr_print_uint32(ndr, "needed", *r->out.needed);
18436 ndr_print_WERROR(ndr, "result", r->out.result);
18442 _PUBLIC_ enum ndr_err_code ndr_push__spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct _spoolss_EnumMonitors *r)
18444 if (flags & NDR_IN) {
18445 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
18446 if (r->in.servername) {
18447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
18450 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
18452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18453 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
18454 if (r->in.buffer) {
18455 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
18457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
18459 if (flags & NDR_OUT) {
18460 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
18462 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
18464 if (r->out.needed == NULL) {
18465 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18467 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
18468 if (r->out.count == NULL) {
18469 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
18471 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
18472 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18474 return NDR_ERR_SUCCESS;
18477 _PUBLIC_ enum ndr_err_code ndr_pull__spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct _spoolss_EnumMonitors *r)
18479 uint32_t _ptr_servername;
18480 uint32_t _ptr_buffer;
18481 uint32_t _ptr_info;
18482 TALLOC_CTX *_mem_save_servername_0;
18483 TALLOC_CTX *_mem_save_buffer_0;
18484 TALLOC_CTX *_mem_save_info_0;
18485 TALLOC_CTX *_mem_save_needed_0;
18486 TALLOC_CTX *_mem_save_count_0;
18487 if (flags & NDR_IN) {
18488 ZERO_STRUCT(r->out);
18490 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
18491 if (_ptr_servername) {
18492 NDR_PULL_ALLOC(ndr, r->in.servername);
18494 r->in.servername = NULL;
18496 if (r->in.servername) {
18497 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
18498 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
18499 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
18500 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
18501 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
18502 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));
18504 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
18505 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
18506 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
18508 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18509 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
18511 NDR_PULL_ALLOC(ndr, r->in.buffer);
18513 r->in.buffer = NULL;
18515 if (r->in.buffer) {
18516 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
18517 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
18518 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
18519 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
18521 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
18522 NDR_PULL_ALLOC(ndr, r->out.needed);
18523 ZERO_STRUCTP(r->out.needed);
18524 NDR_PULL_ALLOC(ndr, r->out.count);
18525 ZERO_STRUCTP(r->out.count);
18527 if (flags & NDR_OUT) {
18528 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
18530 NDR_PULL_ALLOC(ndr, r->out.info);
18532 r->out.info = NULL;
18535 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18536 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18537 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
18538 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18540 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18541 NDR_PULL_ALLOC(ndr, r->out.needed);
18543 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
18544 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
18545 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
18546 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
18547 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
18548 NDR_PULL_ALLOC(ndr, r->out.count);
18550 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
18551 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
18552 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
18553 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
18554 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18556 return NDR_ERR_SUCCESS;
18559 _PUBLIC_ enum ndr_err_code ndr_push___spoolss_EnumMonitors(struct ndr_push *ndr, int flags, const struct __spoolss_EnumMonitors *r)
18561 uint32_t cntr_info_0;
18562 if (flags & NDR_IN) {
18563 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
18564 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.count));
18566 if (flags & NDR_OUT) {
18567 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18568 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18569 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18571 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18572 NDR_CHECK(ndr_push_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18575 return NDR_ERR_SUCCESS;
18578 _PUBLIC_ enum ndr_err_code ndr_pull___spoolss_EnumMonitors(struct ndr_pull *ndr, int flags, struct __spoolss_EnumMonitors *r)
18580 uint32_t cntr_info_0;
18581 TALLOC_CTX *_mem_save_info_0;
18582 if (flags & NDR_IN) {
18583 ZERO_STRUCT(r->out);
18585 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
18586 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.count));
18588 if (flags & NDR_OUT) {
18589 NDR_PULL_ALLOC_N(ndr, r->out.info, r->in.count);
18590 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
18591 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
18592 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18593 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->out.info[cntr_info_0], r->in.level));
18594 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_SCALARS, &r->out.info[cntr_info_0]));
18596 for (cntr_info_0 = 0; cntr_info_0 < r->in.count; cntr_info_0++) {
18597 NDR_CHECK(ndr_pull_spoolss_MonitorInfo(ndr, NDR_BUFFERS, &r->out.info[cntr_info_0]));
18599 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
18601 return NDR_ERR_SUCCESS;
18604 _PUBLIC_ void ndr_print_spoolss_EnumMonitors(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumMonitors *r)
18606 uint32_t cntr_info_1;
18607 ndr_print_struct(ndr, name, "spoolss_EnumMonitors");
18609 if (flags & NDR_SET_VALUES) {
18610 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18612 if (flags & NDR_IN) {
18613 ndr_print_struct(ndr, "in", "spoolss_EnumMonitors");
18615 ndr_print_ptr(ndr, "servername", r->in.servername);
18617 if (r->in.servername) {
18618 ndr_print_string(ndr, "servername", r->in.servername);
18621 ndr_print_uint32(ndr, "level", r->in.level);
18622 ndr_print_ptr(ndr, "buffer", r->in.buffer);
18624 if (r->in.buffer) {
18625 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
18628 ndr_print_uint32(ndr, "offered", r->in.offered);
18631 if (flags & NDR_OUT) {
18632 ndr_print_struct(ndr, "out", "spoolss_EnumMonitors");
18634 ndr_print_ptr(ndr, "count", r->out.count);
18636 ndr_print_uint32(ndr, "count", *r->out.count);
18638 ndr_print_ptr(ndr, "info", r->out.info);
18641 ndr->print(ndr, "%s: ARRAY(%d)", "info", (int)*r->out.count);
18643 for (cntr_info_1=0;cntr_info_1<*r->out.count;cntr_info_1++) {
18645 if (asprintf(&idx_1, "[%d]", cntr_info_1) != -1) {
18646 ndr_print_set_switch_value(ndr, &r->out.info[cntr_info_1], r->in.level);
18647 ndr_print_spoolss_MonitorInfo(ndr, "info", &r->out.info[cntr_info_1]);
18654 ndr_print_ptr(ndr, "needed", r->out.needed);
18656 ndr_print_uint32(ndr, "needed", *r->out.needed);
18658 ndr_print_WERROR(ndr, "result", r->out.result);
18664 static enum ndr_err_code ndr_push_spoolss_AddPort(struct ndr_push *ndr, int flags, const struct spoolss_AddPort *r)
18666 if (flags & NDR_IN) {
18667 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server_name));
18668 if (r->in.server_name) {
18669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
18670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18671 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
18672 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));
18674 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.unknown));
18675 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
18676 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
18677 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.monitor_name, CH_UTF16)));
18678 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));
18680 if (flags & NDR_OUT) {
18681 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18683 return NDR_ERR_SUCCESS;
18686 static enum ndr_err_code ndr_pull_spoolss_AddPort(struct ndr_pull *ndr, int flags, struct spoolss_AddPort *r)
18688 uint32_t _ptr_server_name;
18689 TALLOC_CTX *_mem_save_server_name_0;
18690 if (flags & NDR_IN) {
18691 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server_name));
18692 if (_ptr_server_name) {
18693 NDR_PULL_ALLOC(ndr, r->in.server_name);
18695 r->in.server_name = NULL;
18697 if (r->in.server_name) {
18698 _mem_save_server_name_0 = NDR_PULL_GET_MEM_CTX(ndr);
18699 NDR_PULL_SET_MEM_CTX(ndr, r->in.server_name, 0);
18700 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
18701 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
18702 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
18703 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));
18705 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
18706 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));
18707 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_name_0, 0);
18709 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.unknown));
18710 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.monitor_name));
18711 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.monitor_name));
18712 if (ndr_get_array_length(ndr, &r->in.monitor_name) > ndr_get_array_size(ndr, &r->in.monitor_name)) {
18713 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));
18715 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.monitor_name), sizeof(uint16_t)));
18716 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));
18718 if (flags & NDR_OUT) {
18719 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18721 return NDR_ERR_SUCCESS;
18724 _PUBLIC_ void ndr_print_spoolss_AddPort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPort *r)
18726 ndr_print_struct(ndr, name, "spoolss_AddPort");
18728 if (flags & NDR_SET_VALUES) {
18729 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18731 if (flags & NDR_IN) {
18732 ndr_print_struct(ndr, "in", "spoolss_AddPort");
18734 ndr_print_ptr(ndr, "server_name", r->in.server_name);
18736 if (r->in.server_name) {
18737 ndr_print_string(ndr, "server_name", r->in.server_name);
18740 ndr_print_uint32(ndr, "unknown", r->in.unknown);
18741 ndr_print_string(ndr, "monitor_name", r->in.monitor_name);
18744 if (flags & NDR_OUT) {
18745 ndr_print_struct(ndr, "out", "spoolss_AddPort");
18747 ndr_print_WERROR(ndr, "result", r->out.result);
18753 static enum ndr_err_code ndr_push_spoolss_ConfigurePort(struct ndr_push *ndr, int flags, const struct spoolss_ConfigurePort *r)
18755 if (flags & NDR_IN) {
18757 if (flags & NDR_OUT) {
18758 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18760 return NDR_ERR_SUCCESS;
18763 static enum ndr_err_code ndr_pull_spoolss_ConfigurePort(struct ndr_pull *ndr, int flags, struct spoolss_ConfigurePort *r)
18765 if (flags & NDR_IN) {
18767 if (flags & NDR_OUT) {
18768 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18770 return NDR_ERR_SUCCESS;
18773 _PUBLIC_ void ndr_print_spoolss_ConfigurePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ConfigurePort *r)
18775 ndr_print_struct(ndr, name, "spoolss_ConfigurePort");
18777 if (flags & NDR_SET_VALUES) {
18778 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18780 if (flags & NDR_IN) {
18781 ndr_print_struct(ndr, "in", "spoolss_ConfigurePort");
18785 if (flags & NDR_OUT) {
18786 ndr_print_struct(ndr, "out", "spoolss_ConfigurePort");
18788 ndr_print_WERROR(ndr, "result", r->out.result);
18794 static enum ndr_err_code ndr_push_spoolss_DeletePort(struct ndr_push *ndr, int flags, const struct spoolss_DeletePort *r)
18796 if (flags & NDR_IN) {
18798 if (flags & NDR_OUT) {
18799 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18801 return NDR_ERR_SUCCESS;
18804 static enum ndr_err_code ndr_pull_spoolss_DeletePort(struct ndr_pull *ndr, int flags, struct spoolss_DeletePort *r)
18806 if (flags & NDR_IN) {
18808 if (flags & NDR_OUT) {
18809 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18811 return NDR_ERR_SUCCESS;
18814 _PUBLIC_ void ndr_print_spoolss_DeletePort(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePort *r)
18816 ndr_print_struct(ndr, name, "spoolss_DeletePort");
18818 if (flags & NDR_SET_VALUES) {
18819 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18821 if (flags & NDR_IN) {
18822 ndr_print_struct(ndr, "in", "spoolss_DeletePort");
18826 if (flags & NDR_OUT) {
18827 ndr_print_struct(ndr, "out", "spoolss_DeletePort");
18829 ndr_print_WERROR(ndr, "result", r->out.result);
18835 static enum ndr_err_code ndr_push_spoolss_CreatePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_CreatePrinterIC *r)
18837 if (flags & NDR_IN) {
18839 if (flags & NDR_OUT) {
18840 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18842 return NDR_ERR_SUCCESS;
18845 static enum ndr_err_code ndr_pull_spoolss_CreatePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_CreatePrinterIC *r)
18847 if (flags & NDR_IN) {
18849 if (flags & NDR_OUT) {
18850 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18852 return NDR_ERR_SUCCESS;
18855 _PUBLIC_ void ndr_print_spoolss_CreatePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_CreatePrinterIC *r)
18857 ndr_print_struct(ndr, name, "spoolss_CreatePrinterIC");
18859 if (flags & NDR_SET_VALUES) {
18860 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18862 if (flags & NDR_IN) {
18863 ndr_print_struct(ndr, "in", "spoolss_CreatePrinterIC");
18867 if (flags & NDR_OUT) {
18868 ndr_print_struct(ndr, "out", "spoolss_CreatePrinterIC");
18870 ndr_print_WERROR(ndr, "result", r->out.result);
18876 static enum ndr_err_code ndr_push_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
18878 if (flags & NDR_IN) {
18880 if (flags & NDR_OUT) {
18881 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18883 return NDR_ERR_SUCCESS;
18886 static enum ndr_err_code ndr_pull_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_PlayGDIScriptOnPrinterIC *r)
18888 if (flags & NDR_IN) {
18890 if (flags & NDR_OUT) {
18891 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18893 return NDR_ERR_SUCCESS;
18896 _PUBLIC_ void ndr_print_spoolss_PlayGDIScriptOnPrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PlayGDIScriptOnPrinterIC *r)
18898 ndr_print_struct(ndr, name, "spoolss_PlayGDIScriptOnPrinterIC");
18900 if (flags & NDR_SET_VALUES) {
18901 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18903 if (flags & NDR_IN) {
18904 ndr_print_struct(ndr, "in", "spoolss_PlayGDIScriptOnPrinterIC");
18908 if (flags & NDR_OUT) {
18909 ndr_print_struct(ndr, "out", "spoolss_PlayGDIScriptOnPrinterIC");
18911 ndr_print_WERROR(ndr, "result", r->out.result);
18917 static enum ndr_err_code ndr_push_spoolss_DeletePrinterIC(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterIC *r)
18919 if (flags & NDR_IN) {
18921 if (flags & NDR_OUT) {
18922 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18924 return NDR_ERR_SUCCESS;
18927 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterIC(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterIC *r)
18929 if (flags & NDR_IN) {
18931 if (flags & NDR_OUT) {
18932 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18934 return NDR_ERR_SUCCESS;
18937 _PUBLIC_ void ndr_print_spoolss_DeletePrinterIC(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterIC *r)
18939 ndr_print_struct(ndr, name, "spoolss_DeletePrinterIC");
18941 if (flags & NDR_SET_VALUES) {
18942 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18944 if (flags & NDR_IN) {
18945 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterIC");
18949 if (flags & NDR_OUT) {
18950 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterIC");
18952 ndr_print_WERROR(ndr, "result", r->out.result);
18958 static enum ndr_err_code ndr_push_spoolss_AddPrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterConnection *r)
18960 if (flags & NDR_IN) {
18962 if (flags & NDR_OUT) {
18963 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
18965 return NDR_ERR_SUCCESS;
18968 static enum ndr_err_code ndr_pull_spoolss_AddPrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterConnection *r)
18970 if (flags & NDR_IN) {
18972 if (flags & NDR_OUT) {
18973 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
18975 return NDR_ERR_SUCCESS;
18978 _PUBLIC_ void ndr_print_spoolss_AddPrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterConnection *r)
18980 ndr_print_struct(ndr, name, "spoolss_AddPrinterConnection");
18982 if (flags & NDR_SET_VALUES) {
18983 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
18985 if (flags & NDR_IN) {
18986 ndr_print_struct(ndr, "in", "spoolss_AddPrinterConnection");
18990 if (flags & NDR_OUT) {
18991 ndr_print_struct(ndr, "out", "spoolss_AddPrinterConnection");
18993 ndr_print_WERROR(ndr, "result", r->out.result);
18999 static enum ndr_err_code ndr_push_spoolss_DeletePrinterConnection(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterConnection *r)
19001 if (flags & NDR_IN) {
19003 if (flags & NDR_OUT) {
19004 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19006 return NDR_ERR_SUCCESS;
19009 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterConnection(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterConnection *r)
19011 if (flags & NDR_IN) {
19013 if (flags & NDR_OUT) {
19014 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19016 return NDR_ERR_SUCCESS;
19019 _PUBLIC_ void ndr_print_spoolss_DeletePrinterConnection(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterConnection *r)
19021 ndr_print_struct(ndr, name, "spoolss_DeletePrinterConnection");
19023 if (flags & NDR_SET_VALUES) {
19024 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19026 if (flags & NDR_IN) {
19027 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterConnection");
19031 if (flags & NDR_OUT) {
19032 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterConnection");
19034 ndr_print_WERROR(ndr, "result", r->out.result);
19040 static enum ndr_err_code ndr_push_spoolss_PrinterMessageBox(struct ndr_push *ndr, int flags, const struct spoolss_PrinterMessageBox *r)
19042 if (flags & NDR_IN) {
19044 if (flags & NDR_OUT) {
19045 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19047 return NDR_ERR_SUCCESS;
19050 static enum ndr_err_code ndr_pull_spoolss_PrinterMessageBox(struct ndr_pull *ndr, int flags, struct spoolss_PrinterMessageBox *r)
19052 if (flags & NDR_IN) {
19054 if (flags & NDR_OUT) {
19055 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19057 return NDR_ERR_SUCCESS;
19060 _PUBLIC_ void ndr_print_spoolss_PrinterMessageBox(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_PrinterMessageBox *r)
19062 ndr_print_struct(ndr, name, "spoolss_PrinterMessageBox");
19064 if (flags & NDR_SET_VALUES) {
19065 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19067 if (flags & NDR_IN) {
19068 ndr_print_struct(ndr, "in", "spoolss_PrinterMessageBox");
19072 if (flags & NDR_OUT) {
19073 ndr_print_struct(ndr, "out", "spoolss_PrinterMessageBox");
19075 ndr_print_WERROR(ndr, "result", r->out.result);
19081 static enum ndr_err_code ndr_push_spoolss_AddMonitor(struct ndr_push *ndr, int flags, const struct spoolss_AddMonitor *r)
19083 if (flags & NDR_IN) {
19085 if (flags & NDR_OUT) {
19086 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19088 return NDR_ERR_SUCCESS;
19091 static enum ndr_err_code ndr_pull_spoolss_AddMonitor(struct ndr_pull *ndr, int flags, struct spoolss_AddMonitor *r)
19093 if (flags & NDR_IN) {
19095 if (flags & NDR_OUT) {
19096 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19098 return NDR_ERR_SUCCESS;
19101 _PUBLIC_ void ndr_print_spoolss_AddMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddMonitor *r)
19103 ndr_print_struct(ndr, name, "spoolss_AddMonitor");
19105 if (flags & NDR_SET_VALUES) {
19106 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19108 if (flags & NDR_IN) {
19109 ndr_print_struct(ndr, "in", "spoolss_AddMonitor");
19113 if (flags & NDR_OUT) {
19114 ndr_print_struct(ndr, "out", "spoolss_AddMonitor");
19116 ndr_print_WERROR(ndr, "result", r->out.result);
19122 static enum ndr_err_code ndr_push_spoolss_DeleteMonitor(struct ndr_push *ndr, int flags, const struct spoolss_DeleteMonitor *r)
19124 if (flags & NDR_IN) {
19126 if (flags & NDR_OUT) {
19127 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19129 return NDR_ERR_SUCCESS;
19132 static enum ndr_err_code ndr_pull_spoolss_DeleteMonitor(struct ndr_pull *ndr, int flags, struct spoolss_DeleteMonitor *r)
19134 if (flags & NDR_IN) {
19136 if (flags & NDR_OUT) {
19137 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19139 return NDR_ERR_SUCCESS;
19142 _PUBLIC_ void ndr_print_spoolss_DeleteMonitor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeleteMonitor *r)
19144 ndr_print_struct(ndr, name, "spoolss_DeleteMonitor");
19146 if (flags & NDR_SET_VALUES) {
19147 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19149 if (flags & NDR_IN) {
19150 ndr_print_struct(ndr, "in", "spoolss_DeleteMonitor");
19154 if (flags & NDR_OUT) {
19155 ndr_print_struct(ndr, "out", "spoolss_DeleteMonitor");
19157 ndr_print_WERROR(ndr, "result", r->out.result);
19163 static enum ndr_err_code ndr_push_spoolss_DeletePrintProcessor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProcessor *r)
19165 if (flags & NDR_IN) {
19167 if (flags & NDR_OUT) {
19168 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19170 return NDR_ERR_SUCCESS;
19173 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProcessor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProcessor *r)
19175 if (flags & NDR_IN) {
19177 if (flags & NDR_OUT) {
19178 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19180 return NDR_ERR_SUCCESS;
19183 _PUBLIC_ void ndr_print_spoolss_DeletePrintProcessor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProcessor *r)
19185 ndr_print_struct(ndr, name, "spoolss_DeletePrintProcessor");
19187 if (flags & NDR_SET_VALUES) {
19188 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19190 if (flags & NDR_IN) {
19191 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProcessor");
19195 if (flags & NDR_OUT) {
19196 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProcessor");
19198 ndr_print_WERROR(ndr, "result", r->out.result);
19204 static enum ndr_err_code ndr_push_spoolss_AddPrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_AddPrintProvidor *r)
19206 if (flags & NDR_IN) {
19208 if (flags & NDR_OUT) {
19209 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19211 return NDR_ERR_SUCCESS;
19214 static enum ndr_err_code ndr_pull_spoolss_AddPrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_AddPrintProvidor *r)
19216 if (flags & NDR_IN) {
19218 if (flags & NDR_OUT) {
19219 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19221 return NDR_ERR_SUCCESS;
19224 _PUBLIC_ void ndr_print_spoolss_AddPrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrintProvidor *r)
19226 ndr_print_struct(ndr, name, "spoolss_AddPrintProvidor");
19228 if (flags & NDR_SET_VALUES) {
19229 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19231 if (flags & NDR_IN) {
19232 ndr_print_struct(ndr, "in", "spoolss_AddPrintProvidor");
19236 if (flags & NDR_OUT) {
19237 ndr_print_struct(ndr, "out", "spoolss_AddPrintProvidor");
19239 ndr_print_WERROR(ndr, "result", r->out.result);
19245 static enum ndr_err_code ndr_push_spoolss_DeletePrintProvidor(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrintProvidor *r)
19247 if (flags & NDR_IN) {
19249 if (flags & NDR_OUT) {
19250 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19252 return NDR_ERR_SUCCESS;
19255 static enum ndr_err_code ndr_pull_spoolss_DeletePrintProvidor(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrintProvidor *r)
19257 if (flags & NDR_IN) {
19259 if (flags & NDR_OUT) {
19260 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19262 return NDR_ERR_SUCCESS;
19265 _PUBLIC_ void ndr_print_spoolss_DeletePrintProvidor(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrintProvidor *r)
19267 ndr_print_struct(ndr, name, "spoolss_DeletePrintProvidor");
19269 if (flags & NDR_SET_VALUES) {
19270 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19272 if (flags & NDR_IN) {
19273 ndr_print_struct(ndr, "in", "spoolss_DeletePrintProvidor");
19277 if (flags & NDR_OUT) {
19278 ndr_print_struct(ndr, "out", "spoolss_DeletePrintProvidor");
19280 ndr_print_WERROR(ndr, "result", r->out.result);
19286 static enum ndr_err_code ndr_push_spoolss_EnumPrintProcDataTypes(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19288 if (flags & NDR_IN) {
19290 if (flags & NDR_OUT) {
19291 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19293 return NDR_ERR_SUCCESS;
19296 static enum ndr_err_code ndr_pull_spoolss_EnumPrintProcDataTypes(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrintProcDataTypes *r)
19298 if (flags & NDR_IN) {
19300 if (flags & NDR_OUT) {
19301 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19303 return NDR_ERR_SUCCESS;
19306 _PUBLIC_ void ndr_print_spoolss_EnumPrintProcDataTypes(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrintProcDataTypes *r)
19308 ndr_print_struct(ndr, name, "spoolss_EnumPrintProcDataTypes");
19310 if (flags & NDR_SET_VALUES) {
19311 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19313 if (flags & NDR_IN) {
19314 ndr_print_struct(ndr, "in", "spoolss_EnumPrintProcDataTypes");
19318 if (flags & NDR_OUT) {
19319 ndr_print_struct(ndr, "out", "spoolss_EnumPrintProcDataTypes");
19321 ndr_print_WERROR(ndr, "result", r->out.result);
19327 static enum ndr_err_code ndr_push_spoolss_ResetPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinter *r)
19329 if (flags & NDR_IN) {
19330 if (r->in.handle == NULL) {
19331 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19333 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19334 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.data_type));
19335 if (r->in.data_type) {
19336 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19337 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19338 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.data_type, CH_UTF16)));
19339 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));
19341 if (r->in.devmode_ctr == NULL) {
19342 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19344 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
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_ResetPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinter *r)
19354 uint32_t _ptr_data_type;
19355 TALLOC_CTX *_mem_save_handle_0;
19356 TALLOC_CTX *_mem_save_data_type_0;
19357 TALLOC_CTX *_mem_save_devmode_ctr_0;
19358 if (flags & NDR_IN) {
19359 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19360 NDR_PULL_ALLOC(ndr, r->in.handle);
19362 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19363 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19364 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19365 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19366 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_data_type));
19367 if (_ptr_data_type) {
19368 NDR_PULL_ALLOC(ndr, r->in.data_type);
19370 r->in.data_type = NULL;
19372 if (r->in.data_type) {
19373 _mem_save_data_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
19374 NDR_PULL_SET_MEM_CTX(ndr, r->in.data_type, 0);
19375 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.data_type));
19376 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.data_type));
19377 if (ndr_get_array_length(ndr, &r->in.data_type) > ndr_get_array_size(ndr, &r->in.data_type)) {
19378 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));
19380 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.data_type), sizeof(uint16_t)));
19381 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));
19382 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_type_0, 0);
19384 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19385 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
19387 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
19388 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
19389 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
19390 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
19392 if (flags & NDR_OUT) {
19393 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19395 return NDR_ERR_SUCCESS;
19398 _PUBLIC_ void ndr_print_spoolss_ResetPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinter *r)
19400 ndr_print_struct(ndr, name, "spoolss_ResetPrinter");
19402 if (flags & NDR_SET_VALUES) {
19403 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19405 if (flags & NDR_IN) {
19406 ndr_print_struct(ndr, "in", "spoolss_ResetPrinter");
19408 ndr_print_ptr(ndr, "handle", r->in.handle);
19410 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19412 ndr_print_ptr(ndr, "data_type", r->in.data_type);
19414 if (r->in.data_type) {
19415 ndr_print_string(ndr, "data_type", r->in.data_type);
19418 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
19420 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
19424 if (flags & NDR_OUT) {
19425 ndr_print_struct(ndr, "out", "spoolss_ResetPrinter");
19427 ndr_print_WERROR(ndr, "result", r->out.result);
19433 static enum ndr_err_code ndr_push_spoolss_GetPrinterDriver2(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDriver2 *r)
19435 if (flags & NDR_IN) {
19436 if (r->in.handle == NULL) {
19437 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19439 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19440 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.architecture));
19441 if (r->in.architecture) {
19442 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
19445 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
19447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
19448 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19449 if (r->in.buffer) {
19450 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->in.buffer));
19452 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
19453 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_major_version));
19454 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.client_minor_version));
19456 if (flags & NDR_OUT) {
19457 NDR_CHECK(ndr_push_unique_ptr(ndr, r->out.info));
19459 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.info));
19461 if (r->out.needed == NULL) {
19462 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19464 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
19465 if (r->out.server_major_version == NULL) {
19466 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19468 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_major_version));
19469 if (r->out.server_minor_version == NULL) {
19470 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19472 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.server_minor_version));
19473 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19475 return NDR_ERR_SUCCESS;
19478 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDriver2(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDriver2 *r)
19480 uint32_t _ptr_architecture;
19481 uint32_t _ptr_buffer;
19482 uint32_t _ptr_info;
19483 TALLOC_CTX *_mem_save_handle_0;
19484 TALLOC_CTX *_mem_save_architecture_0;
19485 TALLOC_CTX *_mem_save_buffer_0;
19486 TALLOC_CTX *_mem_save_info_0;
19487 TALLOC_CTX *_mem_save_needed_0;
19488 TALLOC_CTX *_mem_save_server_major_version_0;
19489 TALLOC_CTX *_mem_save_server_minor_version_0;
19490 if (flags & NDR_IN) {
19491 ZERO_STRUCT(r->out);
19493 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19494 NDR_PULL_ALLOC(ndr, r->in.handle);
19496 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19497 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19498 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19499 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19500 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_architecture));
19501 if (_ptr_architecture) {
19502 NDR_PULL_ALLOC(ndr, r->in.architecture);
19504 r->in.architecture = NULL;
19506 if (r->in.architecture) {
19507 _mem_save_architecture_0 = NDR_PULL_GET_MEM_CTX(ndr);
19508 NDR_PULL_SET_MEM_CTX(ndr, r->in.architecture, 0);
19509 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
19510 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
19511 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
19512 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));
19514 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
19515 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
19516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_architecture_0, 0);
19518 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
19519 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19521 NDR_PULL_ALLOC(ndr, r->in.buffer);
19523 r->in.buffer = NULL;
19525 if (r->in.buffer) {
19526 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19527 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19528 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->in.buffer));
19529 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19531 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
19532 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_major_version));
19533 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.client_minor_version));
19534 NDR_PULL_ALLOC(ndr, r->out.needed);
19535 ZERO_STRUCTP(r->out.needed);
19536 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19537 ZERO_STRUCTP(r->out.server_major_version);
19538 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19539 ZERO_STRUCTP(r->out.server_minor_version);
19541 if (flags & NDR_OUT) {
19542 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
19544 NDR_PULL_ALLOC(ndr, r->out.info);
19546 r->out.info = NULL;
19549 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
19550 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, 0);
19551 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.info));
19552 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, 0);
19554 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19555 NDR_PULL_ALLOC(ndr, r->out.needed);
19557 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
19558 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
19559 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
19560 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
19561 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19562 NDR_PULL_ALLOC(ndr, r->out.server_major_version);
19564 _mem_save_server_major_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19565 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_major_version, LIBNDR_FLAG_REF_ALLOC);
19566 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_major_version));
19567 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_major_version_0, LIBNDR_FLAG_REF_ALLOC);
19568 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19569 NDR_PULL_ALLOC(ndr, r->out.server_minor_version);
19571 _mem_save_server_minor_version_0 = NDR_PULL_GET_MEM_CTX(ndr);
19572 NDR_PULL_SET_MEM_CTX(ndr, r->out.server_minor_version, LIBNDR_FLAG_REF_ALLOC);
19573 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.server_minor_version));
19574 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_minor_version_0, LIBNDR_FLAG_REF_ALLOC);
19575 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19577 return NDR_ERR_SUCCESS;
19580 _PUBLIC_ void ndr_print_spoolss_GetPrinterDriver2(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDriver2 *r)
19582 ndr_print_struct(ndr, name, "spoolss_GetPrinterDriver2");
19584 if (flags & NDR_SET_VALUES) {
19585 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19587 if (flags & NDR_IN) {
19588 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDriver2");
19590 ndr_print_ptr(ndr, "handle", r->in.handle);
19592 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19594 ndr_print_ptr(ndr, "architecture", r->in.architecture);
19596 if (r->in.architecture) {
19597 ndr_print_string(ndr, "architecture", r->in.architecture);
19600 ndr_print_uint32(ndr, "level", r->in.level);
19601 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19603 if (r->in.buffer) {
19604 ndr_print_DATA_BLOB(ndr, "buffer", *r->in.buffer);
19607 ndr_print_uint32(ndr, "offered", r->in.offered);
19608 ndr_print_uint32(ndr, "client_major_version", r->in.client_major_version);
19609 ndr_print_uint32(ndr, "client_minor_version", r->in.client_minor_version);
19612 if (flags & NDR_OUT) {
19613 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDriver2");
19615 ndr_print_ptr(ndr, "info", r->out.info);
19618 ndr_print_DATA_BLOB(ndr, "info", *r->out.info);
19621 ndr_print_ptr(ndr, "needed", r->out.needed);
19623 ndr_print_uint32(ndr, "needed", *r->out.needed);
19625 ndr_print_ptr(ndr, "server_major_version", r->out.server_major_version);
19627 ndr_print_uint32(ndr, "server_major_version", *r->out.server_major_version);
19629 ndr_print_ptr(ndr, "server_minor_version", r->out.server_minor_version);
19631 ndr_print_uint32(ndr, "server_minor_version", *r->out.server_minor_version);
19633 ndr_print_WERROR(ndr, "result", r->out.result);
19639 static enum ndr_err_code ndr_push_spoolss_FindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
19641 if (flags & NDR_IN) {
19643 if (flags & NDR_OUT) {
19644 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19646 return NDR_ERR_SUCCESS;
19649 static enum ndr_err_code ndr_pull_spoolss_FindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindFirstPrinterChangeNotification *r)
19651 if (flags & NDR_IN) {
19653 if (flags & NDR_OUT) {
19654 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19656 return NDR_ERR_SUCCESS;
19659 _PUBLIC_ void ndr_print_spoolss_FindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindFirstPrinterChangeNotification *r)
19661 ndr_print_struct(ndr, name, "spoolss_FindFirstPrinterChangeNotification");
19663 if (flags & NDR_SET_VALUES) {
19664 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19666 if (flags & NDR_IN) {
19667 ndr_print_struct(ndr, "in", "spoolss_FindFirstPrinterChangeNotification");
19671 if (flags & NDR_OUT) {
19672 ndr_print_struct(ndr, "out", "spoolss_FindFirstPrinterChangeNotification");
19674 ndr_print_WERROR(ndr, "result", r->out.result);
19680 static enum ndr_err_code ndr_push_spoolss_FindNextPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
19682 if (flags & NDR_IN) {
19684 if (flags & NDR_OUT) {
19685 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19687 return NDR_ERR_SUCCESS;
19690 static enum ndr_err_code ndr_pull_spoolss_FindNextPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_FindNextPrinterChangeNotification *r)
19692 if (flags & NDR_IN) {
19694 if (flags & NDR_OUT) {
19695 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19697 return NDR_ERR_SUCCESS;
19700 _PUBLIC_ void ndr_print_spoolss_FindNextPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindNextPrinterChangeNotification *r)
19702 ndr_print_struct(ndr, name, "spoolss_FindNextPrinterChangeNotification");
19704 if (flags & NDR_SET_VALUES) {
19705 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19707 if (flags & NDR_IN) {
19708 ndr_print_struct(ndr, "in", "spoolss_FindNextPrinterChangeNotification");
19712 if (flags & NDR_OUT) {
19713 ndr_print_struct(ndr, "out", "spoolss_FindNextPrinterChangeNotification");
19715 ndr_print_WERROR(ndr, "result", r->out.result);
19721 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_FindClosePrinterNotify(struct ndr_push *ndr, int flags, const struct spoolss_FindClosePrinterNotify *r)
19723 if (flags & NDR_IN) {
19724 if (r->in.handle == NULL) {
19725 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19727 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19729 if (flags & NDR_OUT) {
19730 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19732 return NDR_ERR_SUCCESS;
19735 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_FindClosePrinterNotify(struct ndr_pull *ndr, int flags, struct spoolss_FindClosePrinterNotify *r)
19737 TALLOC_CTX *_mem_save_handle_0;
19738 if (flags & NDR_IN) {
19739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19740 NDR_PULL_ALLOC(ndr, r->in.handle);
19742 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19743 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19744 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19747 if (flags & NDR_OUT) {
19748 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19750 return NDR_ERR_SUCCESS;
19753 _PUBLIC_ void ndr_print_spoolss_FindClosePrinterNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_FindClosePrinterNotify *r)
19755 ndr_print_struct(ndr, name, "spoolss_FindClosePrinterNotify");
19757 if (flags & NDR_SET_VALUES) {
19758 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19760 if (flags & NDR_IN) {
19761 ndr_print_struct(ndr, "in", "spoolss_FindClosePrinterNotify");
19763 ndr_print_ptr(ndr, "handle", r->in.handle);
19765 ndr_print_policy_handle(ndr, "handle", r->in.handle);
19769 if (flags & NDR_OUT) {
19770 ndr_print_struct(ndr, "out", "spoolss_FindClosePrinterNotify");
19772 ndr_print_WERROR(ndr, "result", r->out.result);
19778 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
19780 if (flags & NDR_IN) {
19782 if (flags & NDR_OUT) {
19783 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19785 return NDR_ERR_SUCCESS;
19788 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
19790 if (flags & NDR_IN) {
19792 if (flags & NDR_OUT) {
19793 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19795 return NDR_ERR_SUCCESS;
19798 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotificationOld *r)
19800 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotificationOld");
19802 if (flags & NDR_SET_VALUES) {
19803 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19805 if (flags & NDR_IN) {
19806 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
19810 if (flags & NDR_OUT) {
19811 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotificationOld");
19813 ndr_print_WERROR(ndr, "result", r->out.result);
19819 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyOpenPrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyOpenPrinter *r)
19821 if (flags & NDR_IN) {
19822 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19823 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
19824 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server_name, CH_UTF16)));
19825 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));
19826 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
19827 NDR_CHECK(ndr_push_winreg_Type(ndr, NDR_SCALARS, r->in.type));
19828 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
19829 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19830 if (r->in.buffer) {
19831 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
19832 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
19835 if (flags & NDR_OUT) {
19836 if (r->out.handle == NULL) {
19837 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19839 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19840 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19842 return NDR_ERR_SUCCESS;
19845 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyOpenPrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyOpenPrinter *r)
19847 uint32_t _ptr_buffer;
19848 TALLOC_CTX *_mem_save_buffer_0;
19849 TALLOC_CTX *_mem_save_handle_0;
19850 if (flags & NDR_IN) {
19851 ZERO_STRUCT(r->out);
19853 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server_name));
19854 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server_name));
19855 if (ndr_get_array_length(ndr, &r->in.server_name) > ndr_get_array_size(ndr, &r->in.server_name)) {
19856 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));
19858 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server_name), sizeof(uint16_t)));
19859 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));
19860 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
19861 NDR_CHECK(ndr_pull_winreg_Type(ndr, NDR_SCALARS, &r->in.type));
19862 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
19863 if (r->in.bufsize > 512) {
19864 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
19866 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19868 NDR_PULL_ALLOC(ndr, r->in.buffer);
19870 r->in.buffer = NULL;
19872 if (r->in.buffer) {
19873 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19874 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19875 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
19876 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
19877 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
19878 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19880 NDR_PULL_ALLOC(ndr, r->out.handle);
19881 ZERO_STRUCTP(r->out.handle);
19882 if (r->in.buffer) {
19883 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
19886 if (flags & NDR_OUT) {
19887 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19888 NDR_PULL_ALLOC(ndr, r->out.handle);
19890 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19891 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
19892 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
19893 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19894 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19896 return NDR_ERR_SUCCESS;
19899 _PUBLIC_ void ndr_print_spoolss_ReplyOpenPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyOpenPrinter *r)
19901 ndr_print_struct(ndr, name, "spoolss_ReplyOpenPrinter");
19903 if (flags & NDR_SET_VALUES) {
19904 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
19906 if (flags & NDR_IN) {
19907 ndr_print_struct(ndr, "in", "spoolss_ReplyOpenPrinter");
19909 ndr_print_string(ndr, "server_name", r->in.server_name);
19910 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
19911 ndr_print_winreg_Type(ndr, "type", r->in.type);
19912 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
19913 ndr_print_ptr(ndr, "buffer", r->in.buffer);
19915 if (r->in.buffer) {
19916 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
19921 if (flags & NDR_OUT) {
19922 ndr_print_struct(ndr, "out", "spoolss_ReplyOpenPrinter");
19924 ndr_print_ptr(ndr, "handle", r->out.handle);
19926 ndr_print_policy_handle(ndr, "handle", r->out.handle);
19928 ndr_print_WERROR(ndr, "result", r->out.result);
19934 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinter(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinter *r)
19936 if (flags & NDR_IN) {
19937 if (r->in.handle == NULL) {
19938 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
19940 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19941 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
19942 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
19943 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.buffer));
19944 if (r->in.buffer) {
19945 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.bufsize));
19946 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.bufsize));
19949 if (flags & NDR_OUT) {
19950 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
19952 return NDR_ERR_SUCCESS;
19955 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinter(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinter *r)
19957 uint32_t _ptr_buffer;
19958 TALLOC_CTX *_mem_save_handle_0;
19959 TALLOC_CTX *_mem_save_buffer_0;
19960 if (flags & NDR_IN) {
19961 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
19962 NDR_PULL_ALLOC(ndr, r->in.handle);
19964 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
19965 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
19966 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
19967 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
19968 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
19969 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.bufsize));
19970 if (r->in.bufsize > 512) {
19971 return ndr_pull_error(ndr, NDR_ERR_RANGE, "value out of range");
19973 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_buffer));
19975 NDR_PULL_ALLOC(ndr, r->in.buffer);
19977 r->in.buffer = NULL;
19979 if (r->in.buffer) {
19980 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
19981 NDR_PULL_SET_MEM_CTX(ndr, r->in.buffer, 0);
19982 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
19983 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
19984 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
19985 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, 0);
19987 if (r->in.buffer) {
19988 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.bufsize));
19991 if (flags & NDR_OUT) {
19992 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
19994 return NDR_ERR_SUCCESS;
19997 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinter *r)
19999 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinter");
20001 if (flags & NDR_SET_VALUES) {
20002 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20004 if (flags & NDR_IN) {
20005 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinter");
20007 ndr_print_ptr(ndr, "handle", r->in.handle);
20009 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20011 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20012 ndr_print_uint32(ndr, "bufsize", r->in.bufsize);
20013 ndr_print_ptr(ndr, "buffer", r->in.buffer);
20015 if (r->in.buffer) {
20016 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.bufsize);
20021 if (flags & NDR_OUT) {
20022 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinter");
20024 ndr_print_WERROR(ndr, "result", r->out.result);
20030 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_ReplyClosePrinter(struct ndr_push *ndr, int flags, const struct spoolss_ReplyClosePrinter *r)
20032 if (flags & NDR_IN) {
20033 if (r->in.handle == NULL) {
20034 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20036 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20038 if (flags & NDR_OUT) {
20039 if (r->out.handle == NULL) {
20040 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20042 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20043 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20045 return NDR_ERR_SUCCESS;
20048 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_ReplyClosePrinter(struct ndr_pull *ndr, int flags, struct spoolss_ReplyClosePrinter *r)
20050 TALLOC_CTX *_mem_save_handle_0;
20051 if (flags & NDR_IN) {
20052 ZERO_STRUCT(r->out);
20054 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20055 NDR_PULL_ALLOC(ndr, r->in.handle);
20057 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20058 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20059 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20060 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20061 NDR_PULL_ALLOC(ndr, r->out.handle);
20062 *r->out.handle = *r->in.handle;
20064 if (flags & NDR_OUT) {
20065 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20066 NDR_PULL_ALLOC(ndr, r->out.handle);
20068 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20069 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20070 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20071 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20072 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20074 return NDR_ERR_SUCCESS;
20077 _PUBLIC_ void ndr_print_spoolss_ReplyClosePrinter(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ReplyClosePrinter *r)
20079 ndr_print_struct(ndr, name, "spoolss_ReplyClosePrinter");
20081 if (flags & NDR_SET_VALUES) {
20082 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20084 if (flags & NDR_IN) {
20085 ndr_print_struct(ndr, "in", "spoolss_ReplyClosePrinter");
20087 ndr_print_ptr(ndr, "handle", r->in.handle);
20089 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20093 if (flags & NDR_OUT) {
20094 ndr_print_struct(ndr, "out", "spoolss_ReplyClosePrinter");
20096 ndr_print_ptr(ndr, "handle", r->out.handle);
20098 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20100 ndr_print_WERROR(ndr, "result", r->out.result);
20106 static enum ndr_err_code ndr_push_spoolss_AddPortEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPortEx *r)
20108 if (flags & NDR_IN) {
20110 if (flags & NDR_OUT) {
20111 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20113 return NDR_ERR_SUCCESS;
20116 static enum ndr_err_code ndr_pull_spoolss_AddPortEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPortEx *r)
20118 if (flags & NDR_IN) {
20120 if (flags & NDR_OUT) {
20121 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20123 return NDR_ERR_SUCCESS;
20126 _PUBLIC_ void ndr_print_spoolss_AddPortEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPortEx *r)
20128 ndr_print_struct(ndr, name, "spoolss_AddPortEx");
20130 if (flags & NDR_SET_VALUES) {
20131 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20133 if (flags & NDR_IN) {
20134 ndr_print_struct(ndr, "in", "spoolss_AddPortEx");
20138 if (flags & NDR_OUT) {
20139 ndr_print_struct(ndr, "out", "spoolss_AddPortEx");
20141 ndr_print_WERROR(ndr, "result", r->out.result);
20147 static enum ndr_err_code ndr_push_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_push *ndr, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20149 if (flags & NDR_IN) {
20151 if (flags & NDR_OUT) {
20152 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20154 return NDR_ERR_SUCCESS;
20157 static enum ndr_err_code ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_pull *ndr, int flags, struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20159 if (flags & NDR_IN) {
20161 if (flags & NDR_OUT) {
20162 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20164 return NDR_ERR_SUCCESS;
20167 _PUBLIC_ void ndr_print_spoolss_RouterFindFirstPrinterChangeNotification(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterFindFirstPrinterChangeNotification *r)
20169 ndr_print_struct(ndr, name, "spoolss_RouterFindFirstPrinterChangeNotification");
20171 if (flags & NDR_SET_VALUES) {
20172 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20174 if (flags & NDR_IN) {
20175 ndr_print_struct(ndr, "in", "spoolss_RouterFindFirstPrinterChangeNotification");
20179 if (flags & NDR_OUT) {
20180 ndr_print_struct(ndr, "out", "spoolss_RouterFindFirstPrinterChangeNotification");
20182 ndr_print_WERROR(ndr, "result", r->out.result);
20188 static enum ndr_err_code ndr_push_spoolss_SpoolerInit(struct ndr_push *ndr, int flags, const struct spoolss_SpoolerInit *r)
20190 if (flags & NDR_IN) {
20192 if (flags & NDR_OUT) {
20193 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20195 return NDR_ERR_SUCCESS;
20198 static enum ndr_err_code ndr_pull_spoolss_SpoolerInit(struct ndr_pull *ndr, int flags, struct spoolss_SpoolerInit *r)
20200 if (flags & NDR_IN) {
20202 if (flags & NDR_OUT) {
20203 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20205 return NDR_ERR_SUCCESS;
20208 _PUBLIC_ void ndr_print_spoolss_SpoolerInit(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SpoolerInit *r)
20210 ndr_print_struct(ndr, name, "spoolss_SpoolerInit");
20212 if (flags & NDR_SET_VALUES) {
20213 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20215 if (flags & NDR_IN) {
20216 ndr_print_struct(ndr, "in", "spoolss_SpoolerInit");
20220 if (flags & NDR_OUT) {
20221 ndr_print_struct(ndr, "out", "spoolss_SpoolerInit");
20223 ndr_print_WERROR(ndr, "result", r->out.result);
20229 static enum ndr_err_code ndr_push_spoolss_ResetPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_ResetPrinterEx *r)
20231 if (flags & NDR_IN) {
20233 if (flags & NDR_OUT) {
20234 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20236 return NDR_ERR_SUCCESS;
20239 static enum ndr_err_code ndr_pull_spoolss_ResetPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_ResetPrinterEx *r)
20241 if (flags & NDR_IN) {
20243 if (flags & NDR_OUT) {
20244 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20246 return NDR_ERR_SUCCESS;
20249 _PUBLIC_ void ndr_print_spoolss_ResetPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_ResetPrinterEx *r)
20251 ndr_print_struct(ndr, name, "spoolss_ResetPrinterEx");
20253 if (flags & NDR_SET_VALUES) {
20254 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20256 if (flags & NDR_IN) {
20257 ndr_print_struct(ndr, "in", "spoolss_ResetPrinterEx");
20261 if (flags & NDR_OUT) {
20262 ndr_print_struct(ndr, "out", "spoolss_ResetPrinterEx");
20264 ndr_print_WERROR(ndr, "result", r->out.result);
20270 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_push *ndr, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20272 if (flags & NDR_IN) {
20273 if (r->in.handle == NULL) {
20274 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20276 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20277 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.options));
20279 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.local_machine));
20280 if (r->in.local_machine) {
20281 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20282 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.local_machine, CH_UTF16)));
20284 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));
20286 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.printer_local));
20287 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.notify_options));
20288 if (r->in.notify_options) {
20289 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20292 if (flags & NDR_OUT) {
20293 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20295 return NDR_ERR_SUCCESS;
20298 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_pull *ndr, int flags, struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20300 uint32_t _ptr_local_machine;
20301 uint32_t _ptr_notify_options;
20302 TALLOC_CTX *_mem_save_handle_0;
20303 TALLOC_CTX *_mem_save_local_machine_0;
20304 TALLOC_CTX *_mem_save_notify_options_0;
20305 if (flags & NDR_IN) {
20306 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20307 NDR_PULL_ALLOC(ndr, r->in.handle);
20309 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20310 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20311 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20312 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20313 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20314 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.options));
20315 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_local_machine));
20316 if (_ptr_local_machine) {
20317 NDR_PULL_ALLOC(ndr, r->in.local_machine);
20319 r->in.local_machine = NULL;
20321 if (r->in.local_machine) {
20322 _mem_save_local_machine_0 = NDR_PULL_GET_MEM_CTX(ndr);
20323 NDR_PULL_SET_MEM_CTX(ndr, r->in.local_machine, 0);
20324 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.local_machine));
20325 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.local_machine));
20326 if (ndr_get_array_length(ndr, &r->in.local_machine) > ndr_get_array_size(ndr, &r->in.local_machine)) {
20327 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));
20329 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.local_machine), sizeof(uint16_t)));
20330 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));
20331 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_local_machine_0, 0);
20333 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.printer_local));
20334 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_notify_options));
20335 if (_ptr_notify_options) {
20336 NDR_PULL_ALLOC(ndr, r->in.notify_options);
20338 r->in.notify_options = NULL;
20340 if (r->in.notify_options) {
20341 _mem_save_notify_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20342 NDR_PULL_SET_MEM_CTX(ndr, r->in.notify_options, 0);
20343 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.notify_options));
20344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_notify_options_0, 0);
20347 if (flags & NDR_OUT) {
20348 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20350 return NDR_ERR_SUCCESS;
20353 _PUBLIC_ void ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RemoteFindFirstPrinterChangeNotifyEx *r)
20355 ndr_print_struct(ndr, name, "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20357 if (flags & NDR_SET_VALUES) {
20358 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20360 if (flags & NDR_IN) {
20361 ndr_print_struct(ndr, "in", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20363 ndr_print_ptr(ndr, "handle", r->in.handle);
20365 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20367 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20368 ndr_print_uint32(ndr, "options", r->in.options);
20369 ndr_print_ptr(ndr, "local_machine", r->in.local_machine);
20371 if (r->in.local_machine) {
20372 ndr_print_string(ndr, "local_machine", r->in.local_machine);
20375 ndr_print_uint32(ndr, "printer_local", r->in.printer_local);
20376 ndr_print_ptr(ndr, "notify_options", r->in.notify_options);
20378 if (r->in.notify_options) {
20379 ndr_print_spoolss_NotifyOption(ndr, "notify_options", r->in.notify_options);
20384 if (flags & NDR_OUT) {
20385 ndr_print_struct(ndr, "out", "spoolss_RemoteFindFirstPrinterChangeNotifyEx");
20387 ndr_print_WERROR(ndr, "result", r->out.result);
20393 static enum ndr_err_code ndr_push_spoolss_RouterReplyPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20395 if (flags & NDR_IN) {
20396 if (r->in.handle == NULL) {
20397 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20399 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20400 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.color));
20401 NDR_CHECK(ndr_push_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, r->in.flags));
20402 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.reply_type));
20403 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20404 NDR_CHECK(ndr_push_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20406 if (flags & NDR_OUT) {
20407 if (r->out.reply_result == NULL) {
20408 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20410 NDR_CHECK(ndr_push_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, *r->out.reply_result));
20411 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20413 return NDR_ERR_SUCCESS;
20416 static enum ndr_err_code ndr_pull_spoolss_RouterReplyPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_RouterReplyPrinterEx *r)
20418 TALLOC_CTX *_mem_save_handle_0;
20419 TALLOC_CTX *_mem_save_reply_result_0;
20420 if (flags & NDR_IN) {
20421 ZERO_STRUCT(r->out);
20423 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20424 NDR_PULL_ALLOC(ndr, r->in.handle);
20426 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20427 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20428 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20429 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20430 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.color));
20431 NDR_CHECK(ndr_pull_spoolss_PrinterChangeFlags(ndr, NDR_SCALARS, &r->in.flags));
20432 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.reply_type));
20433 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.info, r->in.reply_type));
20434 NDR_CHECK(ndr_pull_spoolss_ReplyPrinterInfo(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.info));
20435 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20436 ZERO_STRUCTP(r->out.reply_result);
20438 if (flags & NDR_OUT) {
20439 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20440 NDR_PULL_ALLOC(ndr, r->out.reply_result);
20442 _mem_save_reply_result_0 = NDR_PULL_GET_MEM_CTX(ndr);
20443 NDR_PULL_SET_MEM_CTX(ndr, r->out.reply_result, LIBNDR_FLAG_REF_ALLOC);
20444 NDR_CHECK(ndr_pull_spoolss_PrinterNotifyFlags(ndr, NDR_SCALARS, r->out.reply_result));
20445 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_reply_result_0, LIBNDR_FLAG_REF_ALLOC);
20446 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20448 return NDR_ERR_SUCCESS;
20451 _PUBLIC_ void ndr_print_spoolss_RouterReplyPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterReplyPrinterEx *r)
20453 ndr_print_struct(ndr, name, "spoolss_RouterReplyPrinterEx");
20455 if (flags & NDR_SET_VALUES) {
20456 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20458 if (flags & NDR_IN) {
20459 ndr_print_struct(ndr, "in", "spoolss_RouterReplyPrinterEx");
20461 ndr_print_ptr(ndr, "handle", r->in.handle);
20463 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20465 ndr_print_uint32(ndr, "color", r->in.color);
20466 ndr_print_spoolss_PrinterChangeFlags(ndr, "flags", r->in.flags);
20467 ndr_print_uint32(ndr, "reply_type", r->in.reply_type);
20468 ndr_print_set_switch_value(ndr, &r->in.info, r->in.reply_type);
20469 ndr_print_spoolss_ReplyPrinterInfo(ndr, "info", &r->in.info);
20472 if (flags & NDR_OUT) {
20473 ndr_print_struct(ndr, "out", "spoolss_RouterReplyPrinterEx");
20475 ndr_print_ptr(ndr, "reply_result", r->out.reply_result);
20477 ndr_print_spoolss_PrinterNotifyFlags(ndr, "reply_result", *r->out.reply_result);
20479 ndr_print_WERROR(ndr, "result", r->out.result);
20485 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_push *ndr, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20487 if (flags & NDR_IN) {
20488 if (r->in.handle == NULL) {
20489 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20491 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20492 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.change_low));
20493 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.options));
20494 if (r->in.options) {
20495 NDR_CHECK(ndr_push_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20498 if (flags & NDR_OUT) {
20499 if (r->out.info == NULL) {
20500 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20502 NDR_CHECK(ndr_push_unique_ptr(ndr, *r->out.info));
20503 if (*r->out.info) {
20504 NDR_CHECK(ndr_push_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20506 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20508 return NDR_ERR_SUCCESS;
20511 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_pull *ndr, int flags, struct spoolss_RouterRefreshPrinterChangeNotify *r)
20513 uint32_t _ptr_options;
20514 uint32_t _ptr_info;
20515 TALLOC_CTX *_mem_save_handle_0;
20516 TALLOC_CTX *_mem_save_options_0;
20517 TALLOC_CTX *_mem_save_info_0;
20518 TALLOC_CTX *_mem_save_info_1;
20519 if (flags & NDR_IN) {
20520 ZERO_STRUCT(r->out);
20522 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20523 NDR_PULL_ALLOC(ndr, r->in.handle);
20525 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20526 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
20527 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20529 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.change_low));
20530 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_options));
20531 if (_ptr_options) {
20532 NDR_PULL_ALLOC(ndr, r->in.options);
20534 r->in.options = NULL;
20536 if (r->in.options) {
20537 _mem_save_options_0 = NDR_PULL_GET_MEM_CTX(ndr);
20538 NDR_PULL_SET_MEM_CTX(ndr, r->in.options, 0);
20539 NDR_CHECK(ndr_pull_spoolss_NotifyOption(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.options));
20540 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_options_0, 0);
20542 NDR_PULL_ALLOC(ndr, r->out.info);
20543 ZERO_STRUCTP(r->out.info);
20545 if (flags & NDR_OUT) {
20546 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20547 NDR_PULL_ALLOC(ndr, r->out.info);
20549 _mem_save_info_0 = NDR_PULL_GET_MEM_CTX(ndr);
20550 NDR_PULL_SET_MEM_CTX(ndr, r->out.info, LIBNDR_FLAG_REF_ALLOC);
20551 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_info));
20553 NDR_PULL_ALLOC(ndr, *r->out.info);
20555 *r->out.info = NULL;
20557 if (*r->out.info) {
20558 _mem_save_info_1 = NDR_PULL_GET_MEM_CTX(ndr);
20559 NDR_PULL_SET_MEM_CTX(ndr, *r->out.info, 0);
20560 NDR_CHECK(ndr_pull_spoolss_NotifyInfo(ndr, NDR_SCALARS|NDR_BUFFERS, *r->out.info));
20561 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_1, 0);
20563 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_0, LIBNDR_FLAG_REF_ALLOC);
20564 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20566 return NDR_ERR_SUCCESS;
20569 _PUBLIC_ void ndr_print_spoolss_RouterRefreshPrinterChangeNotify(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_RouterRefreshPrinterChangeNotify *r)
20571 ndr_print_struct(ndr, name, "spoolss_RouterRefreshPrinterChangeNotify");
20573 if (flags & NDR_SET_VALUES) {
20574 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20576 if (flags & NDR_IN) {
20577 ndr_print_struct(ndr, "in", "spoolss_RouterRefreshPrinterChangeNotify");
20579 ndr_print_ptr(ndr, "handle", r->in.handle);
20581 ndr_print_policy_handle(ndr, "handle", r->in.handle);
20583 ndr_print_uint32(ndr, "change_low", r->in.change_low);
20584 ndr_print_ptr(ndr, "options", r->in.options);
20586 if (r->in.options) {
20587 ndr_print_spoolss_NotifyOption(ndr, "options", r->in.options);
20592 if (flags & NDR_OUT) {
20593 ndr_print_struct(ndr, "out", "spoolss_RouterRefreshPrinterChangeNotify");
20595 ndr_print_ptr(ndr, "info", r->out.info);
20597 ndr_print_ptr(ndr, "info", *r->out.info);
20599 if (*r->out.info) {
20600 ndr_print_spoolss_NotifyInfo(ndr, "info", *r->out.info);
20604 ndr_print_WERROR(ndr, "result", r->out.result);
20610 static enum ndr_err_code ndr_push_spoolss_44(struct ndr_push *ndr, int flags, const struct spoolss_44 *r)
20612 if (flags & NDR_IN) {
20614 if (flags & NDR_OUT) {
20615 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20617 return NDR_ERR_SUCCESS;
20620 static enum ndr_err_code ndr_pull_spoolss_44(struct ndr_pull *ndr, int flags, struct spoolss_44 *r)
20622 if (flags & NDR_IN) {
20624 if (flags & NDR_OUT) {
20625 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20627 return NDR_ERR_SUCCESS;
20630 _PUBLIC_ void ndr_print_spoolss_44(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_44 *r)
20632 ndr_print_struct(ndr, name, "spoolss_44");
20634 if (flags & NDR_SET_VALUES) {
20635 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20637 if (flags & NDR_IN) {
20638 ndr_print_struct(ndr, "in", "spoolss_44");
20642 if (flags & NDR_OUT) {
20643 ndr_print_struct(ndr, "out", "spoolss_44");
20645 ndr_print_WERROR(ndr, "result", r->out.result);
20651 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_OpenPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_OpenPrinterEx *r)
20653 if (flags & NDR_IN) {
20654 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.printername));
20655 if (r->in.printername) {
20656 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20657 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20658 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.printername, CH_UTF16)));
20659 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.printername, ndr_charset_length(r->in.printername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20661 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.datatype));
20662 if (r->in.datatype) {
20663 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20664 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20665 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.datatype, CH_UTF16)));
20666 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.datatype, ndr_charset_length(r->in.datatype, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20668 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20669 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.access_mask));
20670 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.level));
20671 NDR_CHECK(ndr_push_set_switch_value(ndr, &r->in.userlevel, r->in.level));
20672 NDR_CHECK(ndr_push_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
20674 if (flags & NDR_OUT) {
20675 if (r->out.handle == NULL) {
20676 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20678 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20679 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20681 return NDR_ERR_SUCCESS;
20684 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_OpenPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_OpenPrinterEx *r)
20686 uint32_t _ptr_printername;
20687 uint32_t _ptr_datatype;
20688 TALLOC_CTX *_mem_save_printername_0;
20689 TALLOC_CTX *_mem_save_datatype_0;
20690 TALLOC_CTX *_mem_save_handle_0;
20691 if (flags & NDR_IN) {
20692 ZERO_STRUCT(r->out);
20694 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_printername));
20695 if (_ptr_printername) {
20696 NDR_PULL_ALLOC(ndr, r->in.printername);
20698 r->in.printername = NULL;
20700 if (r->in.printername) {
20701 _mem_save_printername_0 = NDR_PULL_GET_MEM_CTX(ndr);
20702 NDR_PULL_SET_MEM_CTX(ndr, r->in.printername, 0);
20703 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.printername));
20704 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.printername));
20705 if (ndr_get_array_length(ndr, &r->in.printername) > ndr_get_array_size(ndr, &r->in.printername)) {
20706 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));
20708 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t)));
20709 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.printername, ndr_get_array_length(ndr, &r->in.printername), sizeof(uint16_t), CH_UTF16));
20710 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printername_0, 0);
20712 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_datatype));
20713 if (_ptr_datatype) {
20714 NDR_PULL_ALLOC(ndr, r->in.datatype);
20716 r->in.datatype = NULL;
20718 if (r->in.datatype) {
20719 _mem_save_datatype_0 = NDR_PULL_GET_MEM_CTX(ndr);
20720 NDR_PULL_SET_MEM_CTX(ndr, r->in.datatype, 0);
20721 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.datatype));
20722 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.datatype));
20723 if (ndr_get_array_length(ndr, &r->in.datatype) > ndr_get_array_size(ndr, &r->in.datatype)) {
20724 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));
20726 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t)));
20727 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.datatype, ndr_get_array_length(ndr, &r->in.datatype), sizeof(uint16_t), CH_UTF16));
20728 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_datatype_0, 0);
20730 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.devmode_ctr));
20731 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.access_mask));
20732 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.level));
20733 NDR_CHECK(ndr_pull_set_switch_value(ndr, &r->in.userlevel, r->in.level));
20734 NDR_CHECK(ndr_pull_spoolss_UserLevel(ndr, NDR_SCALARS|NDR_BUFFERS, &r->in.userlevel));
20735 NDR_PULL_ALLOC(ndr, r->out.handle);
20736 ZERO_STRUCTP(r->out.handle);
20738 if (flags & NDR_OUT) {
20739 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20740 NDR_PULL_ALLOC(ndr, r->out.handle);
20742 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20743 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20744 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20745 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20746 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20748 return NDR_ERR_SUCCESS;
20751 _PUBLIC_ void ndr_print_spoolss_OpenPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_OpenPrinterEx *r)
20753 ndr_print_struct(ndr, name, "spoolss_OpenPrinterEx");
20755 if (flags & NDR_SET_VALUES) {
20756 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20758 if (flags & NDR_IN) {
20759 ndr_print_struct(ndr, "in", "spoolss_OpenPrinterEx");
20761 ndr_print_ptr(ndr, "printername", r->in.printername);
20763 if (r->in.printername) {
20764 ndr_print_string(ndr, "printername", r->in.printername);
20767 ndr_print_ptr(ndr, "datatype", r->in.datatype);
20769 if (r->in.datatype) {
20770 ndr_print_string(ndr, "datatype", r->in.datatype);
20773 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", &r->in.devmode_ctr);
20774 ndr_print_uint32(ndr, "access_mask", r->in.access_mask);
20775 ndr_print_uint32(ndr, "level", r->in.level);
20776 ndr_print_set_switch_value(ndr, &r->in.userlevel, r->in.level);
20777 ndr_print_spoolss_UserLevel(ndr, "userlevel", &r->in.userlevel);
20780 if (flags & NDR_OUT) {
20781 ndr_print_struct(ndr, "out", "spoolss_OpenPrinterEx");
20783 ndr_print_ptr(ndr, "handle", r->out.handle);
20785 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20787 ndr_print_WERROR(ndr, "result", r->out.result);
20793 static enum ndr_err_code ndr_push_spoolss_AddPrinterEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterEx *r)
20795 if (flags & NDR_IN) {
20796 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
20797 if (r->in.server) {
20798 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20799 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
20800 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
20801 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
20803 if (r->in.info_ctr == NULL) {
20804 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20806 NDR_CHECK(ndr_push_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20807 if (r->in.devmode_ctr == NULL) {
20808 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20810 NDR_CHECK(ndr_push_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20811 if (r->in.secdesc_ctr == NULL) {
20812 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20814 NDR_CHECK(ndr_push_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20815 if (r->in.userlevel_ctr == NULL) {
20816 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20818 NDR_CHECK(ndr_push_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
20820 if (flags & NDR_OUT) {
20821 if (r->out.handle == NULL) {
20822 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20824 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20825 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20827 return NDR_ERR_SUCCESS;
20830 static enum ndr_err_code ndr_pull_spoolss_AddPrinterEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterEx *r)
20832 uint32_t _ptr_server;
20833 TALLOC_CTX *_mem_save_server_0;
20834 TALLOC_CTX *_mem_save_info_ctr_0;
20835 TALLOC_CTX *_mem_save_devmode_ctr_0;
20836 TALLOC_CTX *_mem_save_secdesc_ctr_0;
20837 TALLOC_CTX *_mem_save_userlevel_ctr_0;
20838 TALLOC_CTX *_mem_save_handle_0;
20839 if (flags & NDR_IN) {
20840 ZERO_STRUCT(r->out);
20842 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
20844 NDR_PULL_ALLOC(ndr, r->in.server);
20846 r->in.server = NULL;
20848 if (r->in.server) {
20849 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
20850 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
20851 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
20852 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
20853 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
20854 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));
20856 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
20857 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
20858 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
20860 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20861 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
20863 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20864 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
20865 NDR_CHECK(ndr_pull_spoolss_SetPrinterInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
20866 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20867 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20868 NDR_PULL_ALLOC(ndr, r->in.devmode_ctr);
20870 _mem_save_devmode_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20871 NDR_PULL_SET_MEM_CTX(ndr, r->in.devmode_ctr, LIBNDR_FLAG_REF_ALLOC);
20872 NDR_CHECK(ndr_pull_spoolss_DevmodeContainer(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.devmode_ctr));
20873 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_devmode_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20874 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20875 NDR_PULL_ALLOC(ndr, r->in.secdesc_ctr);
20877 _mem_save_secdesc_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20878 NDR_PULL_SET_MEM_CTX(ndr, r->in.secdesc_ctr, LIBNDR_FLAG_REF_ALLOC);
20879 NDR_CHECK(ndr_pull_sec_desc_buf(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.secdesc_ctr));
20880 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_secdesc_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20881 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20882 NDR_PULL_ALLOC(ndr, r->in.userlevel_ctr);
20884 _mem_save_userlevel_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
20885 NDR_PULL_SET_MEM_CTX(ndr, r->in.userlevel_ctr, LIBNDR_FLAG_REF_ALLOC);
20886 NDR_CHECK(ndr_pull_spoolss_UserLevelCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.userlevel_ctr));
20887 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_userlevel_ctr_0, LIBNDR_FLAG_REF_ALLOC);
20888 NDR_PULL_ALLOC(ndr, r->out.handle);
20889 ZERO_STRUCTP(r->out.handle);
20891 if (flags & NDR_OUT) {
20892 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
20893 NDR_PULL_ALLOC(ndr, r->out.handle);
20895 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
20896 NDR_PULL_SET_MEM_CTX(ndr, r->out.handle, LIBNDR_FLAG_REF_ALLOC);
20897 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->out.handle));
20898 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
20899 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20901 return NDR_ERR_SUCCESS;
20904 _PUBLIC_ void ndr_print_spoolss_AddPrinterEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterEx *r)
20906 ndr_print_struct(ndr, name, "spoolss_AddPrinterEx");
20908 if (flags & NDR_SET_VALUES) {
20909 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20911 if (flags & NDR_IN) {
20912 ndr_print_struct(ndr, "in", "spoolss_AddPrinterEx");
20914 ndr_print_ptr(ndr, "server", r->in.server);
20916 if (r->in.server) {
20917 ndr_print_string(ndr, "server", r->in.server);
20920 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
20922 ndr_print_spoolss_SetPrinterInfoCtr(ndr, "info_ctr", r->in.info_ctr);
20924 ndr_print_ptr(ndr, "devmode_ctr", r->in.devmode_ctr);
20926 ndr_print_spoolss_DevmodeContainer(ndr, "devmode_ctr", r->in.devmode_ctr);
20928 ndr_print_ptr(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20930 ndr_print_sec_desc_buf(ndr, "secdesc_ctr", r->in.secdesc_ctr);
20932 ndr_print_ptr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
20934 ndr_print_spoolss_UserLevelCtr(ndr, "userlevel_ctr", r->in.userlevel_ctr);
20938 if (flags & NDR_OUT) {
20939 ndr_print_struct(ndr, "out", "spoolss_AddPrinterEx");
20941 ndr_print_ptr(ndr, "handle", r->out.handle);
20943 ndr_print_policy_handle(ndr, "handle", r->out.handle);
20945 ndr_print_WERROR(ndr, "result", r->out.result);
20951 static enum ndr_err_code ndr_push_spoolss_47(struct ndr_push *ndr, int flags, const struct spoolss_47 *r)
20953 if (flags & NDR_IN) {
20955 if (flags & NDR_OUT) {
20956 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
20958 return NDR_ERR_SUCCESS;
20961 static enum ndr_err_code ndr_pull_spoolss_47(struct ndr_pull *ndr, int flags, struct spoolss_47 *r)
20963 if (flags & NDR_IN) {
20965 if (flags & NDR_OUT) {
20966 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
20968 return NDR_ERR_SUCCESS;
20971 _PUBLIC_ void ndr_print_spoolss_47(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_47 *r)
20973 ndr_print_struct(ndr, name, "spoolss_47");
20975 if (flags & NDR_SET_VALUES) {
20976 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
20978 if (flags & NDR_IN) {
20979 ndr_print_struct(ndr, "in", "spoolss_47");
20983 if (flags & NDR_OUT) {
20984 ndr_print_struct(ndr, "out", "spoolss_47");
20986 ndr_print_WERROR(ndr, "result", r->out.result);
20992 static enum ndr_err_code ndr_push_spoolss_EnumPrinterData(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterData *r)
20994 if (flags & NDR_IN) {
20995 if (r->in.handle == NULL) {
20996 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
20998 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
20999 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.enum_index));
21000 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered));
21001 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.data_offered));
21003 if (flags & NDR_OUT) {
21004 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.value_offered / 2));
21005 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->out.value_name, r->in.value_offered / 2, sizeof(uint16_t), CH_UTF16));
21006 if (r->out.value_needed == NULL) {
21007 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21009 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.value_needed));
21010 if (r->out.printerdata_type == NULL) {
21011 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21013 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.printerdata_type));
21014 if (r->out.buffer == NULL) {
21015 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21017 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, *r->out.buffer));
21018 if (r->out.data_needed == NULL) {
21019 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21021 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.data_needed));
21022 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21024 return NDR_ERR_SUCCESS;
21027 static enum ndr_err_code ndr_pull_spoolss_EnumPrinterData(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterData *r)
21029 TALLOC_CTX *_mem_save_handle_0;
21030 TALLOC_CTX *_mem_save_value_needed_0;
21031 TALLOC_CTX *_mem_save_printerdata_type_0;
21032 TALLOC_CTX *_mem_save_buffer_0;
21033 TALLOC_CTX *_mem_save_data_needed_0;
21034 if (flags & NDR_IN) {
21035 ZERO_STRUCT(r->out);
21037 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21038 NDR_PULL_ALLOC(ndr, r->in.handle);
21040 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21041 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21042 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21043 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21044 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.enum_index));
21045 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.value_offered));
21046 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.data_offered));
21047 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21048 ZERO_STRUCTP(r->out.value_needed);
21049 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21050 ZERO_STRUCTP(r->out.printerdata_type);
21051 NDR_PULL_ALLOC(ndr, r->out.buffer);
21052 ZERO_STRUCTP(r->out.buffer);
21053 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21054 ZERO_STRUCTP(r->out.data_needed);
21056 if (flags & NDR_OUT) {
21057 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.value_name));
21058 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));
21059 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21060 NDR_PULL_ALLOC(ndr, r->out.value_needed);
21062 _mem_save_value_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21063 NDR_PULL_SET_MEM_CTX(ndr, r->out.value_needed, LIBNDR_FLAG_REF_ALLOC);
21064 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.value_needed));
21065 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_value_needed_0, LIBNDR_FLAG_REF_ALLOC);
21066 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21067 NDR_PULL_ALLOC(ndr, r->out.printerdata_type);
21069 _mem_save_printerdata_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21070 NDR_PULL_SET_MEM_CTX(ndr, r->out.printerdata_type, LIBNDR_FLAG_REF_ALLOC);
21071 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.printerdata_type));
21072 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_printerdata_type_0, LIBNDR_FLAG_REF_ALLOC);
21073 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21074 NDR_PULL_ALLOC(ndr, r->out.buffer);
21076 _mem_save_buffer_0 = NDR_PULL_GET_MEM_CTX(ndr);
21077 NDR_PULL_SET_MEM_CTX(ndr, r->out.buffer, LIBNDR_FLAG_REF_ALLOC);
21078 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, r->out.buffer));
21079 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_buffer_0, LIBNDR_FLAG_REF_ALLOC);
21080 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21081 NDR_PULL_ALLOC(ndr, r->out.data_needed);
21083 _mem_save_data_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21084 NDR_PULL_SET_MEM_CTX(ndr, r->out.data_needed, LIBNDR_FLAG_REF_ALLOC);
21085 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.data_needed));
21086 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_data_needed_0, LIBNDR_FLAG_REF_ALLOC);
21087 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21088 if (r->out.value_name) {
21089 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.value_name, r->in.value_offered / 2));
21092 return NDR_ERR_SUCCESS;
21095 _PUBLIC_ void ndr_print_spoolss_EnumPrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterData *r)
21097 ndr_print_struct(ndr, name, "spoolss_EnumPrinterData");
21099 if (flags & NDR_SET_VALUES) {
21100 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21102 if (flags & NDR_IN) {
21103 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterData");
21105 ndr_print_ptr(ndr, "handle", r->in.handle);
21107 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21109 ndr_print_uint32(ndr, "enum_index", r->in.enum_index);
21110 ndr_print_uint32(ndr, "value_offered", r->in.value_offered);
21111 ndr_print_uint32(ndr, "data_offered", r->in.data_offered);
21114 if (flags & NDR_OUT) {
21115 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterData");
21117 ndr_print_string(ndr, "value_name", r->out.value_name);
21118 ndr_print_ptr(ndr, "value_needed", r->out.value_needed);
21120 ndr_print_uint32(ndr, "value_needed", *r->out.value_needed);
21122 ndr_print_ptr(ndr, "printerdata_type", r->out.printerdata_type);
21124 ndr_print_uint32(ndr, "printerdata_type", *r->out.printerdata_type);
21126 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21128 ndr_print_DATA_BLOB(ndr, "buffer", *r->out.buffer);
21130 ndr_print_ptr(ndr, "data_needed", r->out.data_needed);
21132 ndr_print_uint32(ndr, "data_needed", *r->out.data_needed);
21134 ndr_print_WERROR(ndr, "result", r->out.result);
21140 static enum ndr_err_code ndr_push_spoolss_DeletePrinterData(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterData *r)
21142 if (flags & NDR_IN) {
21143 if (r->in.handle == NULL) {
21144 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21146 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21147 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21148 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21149 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21150 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));
21152 if (flags & NDR_OUT) {
21153 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21155 return NDR_ERR_SUCCESS;
21158 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterData(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterData *r)
21160 TALLOC_CTX *_mem_save_handle_0;
21161 if (flags & NDR_IN) {
21162 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21163 NDR_PULL_ALLOC(ndr, r->in.handle);
21165 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21166 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21167 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21168 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21169 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21170 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21171 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21172 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));
21174 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21175 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));
21177 if (flags & NDR_OUT) {
21178 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21180 return NDR_ERR_SUCCESS;
21183 _PUBLIC_ void ndr_print_spoolss_DeletePrinterData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterData *r)
21185 ndr_print_struct(ndr, name, "spoolss_DeletePrinterData");
21187 if (flags & NDR_SET_VALUES) {
21188 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21190 if (flags & NDR_IN) {
21191 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterData");
21193 ndr_print_ptr(ndr, "handle", r->in.handle);
21195 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21197 ndr_print_string(ndr, "value_name", r->in.value_name);
21200 if (flags & NDR_OUT) {
21201 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterData");
21203 ndr_print_WERROR(ndr, "result", r->out.result);
21209 static enum ndr_err_code ndr_push_spoolss_4a(struct ndr_push *ndr, int flags, const struct spoolss_4a *r)
21211 if (flags & NDR_IN) {
21213 if (flags & NDR_OUT) {
21214 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21216 return NDR_ERR_SUCCESS;
21219 static enum ndr_err_code ndr_pull_spoolss_4a(struct ndr_pull *ndr, int flags, struct spoolss_4a *r)
21221 if (flags & NDR_IN) {
21223 if (flags & NDR_OUT) {
21224 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21226 return NDR_ERR_SUCCESS;
21229 _PUBLIC_ void ndr_print_spoolss_4a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4a *r)
21231 ndr_print_struct(ndr, name, "spoolss_4a");
21233 if (flags & NDR_SET_VALUES) {
21234 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21236 if (flags & NDR_IN) {
21237 ndr_print_struct(ndr, "in", "spoolss_4a");
21241 if (flags & NDR_OUT) {
21242 ndr_print_struct(ndr, "out", "spoolss_4a");
21244 ndr_print_WERROR(ndr, "result", r->out.result);
21250 static enum ndr_err_code ndr_push_spoolss_4b(struct ndr_push *ndr, int flags, const struct spoolss_4b *r)
21252 if (flags & NDR_IN) {
21254 if (flags & NDR_OUT) {
21255 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21257 return NDR_ERR_SUCCESS;
21260 static enum ndr_err_code ndr_pull_spoolss_4b(struct ndr_pull *ndr, int flags, struct spoolss_4b *r)
21262 if (flags & NDR_IN) {
21264 if (flags & NDR_OUT) {
21265 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21267 return NDR_ERR_SUCCESS;
21270 _PUBLIC_ void ndr_print_spoolss_4b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4b *r)
21272 ndr_print_struct(ndr, name, "spoolss_4b");
21274 if (flags & NDR_SET_VALUES) {
21275 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21277 if (flags & NDR_IN) {
21278 ndr_print_struct(ndr, "in", "spoolss_4b");
21282 if (flags & NDR_OUT) {
21283 ndr_print_struct(ndr, "out", "spoolss_4b");
21285 ndr_print_WERROR(ndr, "result", r->out.result);
21291 static enum ndr_err_code ndr_push_spoolss_4c(struct ndr_push *ndr, int flags, const struct spoolss_4c *r)
21293 if (flags & NDR_IN) {
21295 if (flags & NDR_OUT) {
21296 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21298 return NDR_ERR_SUCCESS;
21301 static enum ndr_err_code ndr_pull_spoolss_4c(struct ndr_pull *ndr, int flags, struct spoolss_4c *r)
21303 if (flags & NDR_IN) {
21305 if (flags & NDR_OUT) {
21306 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21308 return NDR_ERR_SUCCESS;
21311 _PUBLIC_ void ndr_print_spoolss_4c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_4c *r)
21313 ndr_print_struct(ndr, name, "spoolss_4c");
21315 if (flags & NDR_SET_VALUES) {
21316 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21318 if (flags & NDR_IN) {
21319 ndr_print_struct(ndr, "in", "spoolss_4c");
21323 if (flags & NDR_OUT) {
21324 ndr_print_struct(ndr, "out", "spoolss_4c");
21326 ndr_print_WERROR(ndr, "result", r->out.result);
21332 static enum ndr_err_code ndr_push_spoolss_SetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_SetPrinterDataEx *r)
21334 if (flags & NDR_IN) {
21335 if (r->in.handle == NULL) {
21336 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21338 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21339 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21340 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21341 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21342 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));
21343 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21344 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21345 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21346 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));
21347 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.type));
21348 if (r->in.buffer == NULL) {
21349 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21351 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21352 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->in.buffer, r->in.offered));
21353 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21355 if (flags & NDR_OUT) {
21356 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21358 return NDR_ERR_SUCCESS;
21361 static enum ndr_err_code ndr_pull_spoolss_SetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_SetPrinterDataEx *r)
21363 TALLOC_CTX *_mem_save_handle_0;
21364 if (flags & NDR_IN) {
21365 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21366 NDR_PULL_ALLOC(ndr, r->in.handle);
21368 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21369 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21370 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21371 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21372 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21373 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21374 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21375 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));
21377 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21378 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));
21379 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21380 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21381 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21382 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));
21384 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21385 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));
21386 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.type));
21387 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.buffer));
21388 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21389 NDR_PULL_ALLOC_N(ndr, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer));
21391 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->in.buffer, ndr_get_array_size(ndr, &r->in.buffer)));
21392 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21393 if (r->in.buffer) {
21394 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->in.buffer, r->in.offered));
21397 if (flags & NDR_OUT) {
21398 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21400 return NDR_ERR_SUCCESS;
21403 _PUBLIC_ void ndr_print_spoolss_SetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_SetPrinterDataEx *r)
21405 ndr_print_struct(ndr, name, "spoolss_SetPrinterDataEx");
21407 if (flags & NDR_SET_VALUES) {
21408 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21410 if (flags & NDR_IN) {
21411 ndr_print_struct(ndr, "in", "spoolss_SetPrinterDataEx");
21413 ndr_print_ptr(ndr, "handle", r->in.handle);
21415 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21417 ndr_print_string(ndr, "key_name", r->in.key_name);
21418 ndr_print_string(ndr, "value_name", r->in.value_name);
21419 ndr_print_uint32(ndr, "type", r->in.type);
21420 ndr_print_ptr(ndr, "buffer", r->in.buffer);
21422 ndr_print_array_uint8(ndr, "buffer", r->in.buffer, r->in.offered);
21424 ndr_print_uint32(ndr, "offered", r->in.offered);
21427 if (flags & NDR_OUT) {
21428 ndr_print_struct(ndr, "out", "spoolss_SetPrinterDataEx");
21430 ndr_print_WERROR(ndr, "result", r->out.result);
21436 static enum ndr_err_code ndr_push_spoolss_GetPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_GetPrinterDataEx *r)
21438 if (flags & NDR_IN) {
21439 if (r->in.handle == NULL) {
21440 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21442 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21443 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21444 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21445 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21446 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));
21447 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21448 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21449 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21450 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));
21451 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21453 if (flags & NDR_OUT) {
21454 if (r->out.type == NULL) {
21455 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21457 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.type));
21458 if (r->out.buffer == NULL) {
21459 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21461 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21462 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21463 if (r->out.needed == NULL) {
21464 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21466 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21467 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21469 return NDR_ERR_SUCCESS;
21472 static enum ndr_err_code ndr_pull_spoolss_GetPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_GetPrinterDataEx *r)
21474 TALLOC_CTX *_mem_save_handle_0;
21475 TALLOC_CTX *_mem_save_type_0;
21476 TALLOC_CTX *_mem_save_needed_0;
21477 if (flags & NDR_IN) {
21478 ZERO_STRUCT(r->out);
21480 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21481 NDR_PULL_ALLOC(ndr, r->in.handle);
21483 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21484 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21485 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21486 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21487 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21488 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21489 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21490 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));
21492 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21493 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));
21494 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21495 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21496 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21497 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));
21499 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21500 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));
21501 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21502 NDR_PULL_ALLOC(ndr, r->out.type);
21503 ZERO_STRUCTP(r->out.type);
21504 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
21505 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
21506 NDR_PULL_ALLOC(ndr, r->out.needed);
21507 ZERO_STRUCTP(r->out.needed);
21509 if (flags & NDR_OUT) {
21510 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21511 NDR_PULL_ALLOC(ndr, r->out.type);
21513 _mem_save_type_0 = NDR_PULL_GET_MEM_CTX(ndr);
21514 NDR_PULL_SET_MEM_CTX(ndr, r->out.type, LIBNDR_FLAG_REF_ALLOC);
21515 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.type));
21516 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_type_0, LIBNDR_FLAG_REF_ALLOC);
21517 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21518 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21519 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21521 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21522 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21523 NDR_PULL_ALLOC(ndr, r->out.needed);
21525 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21526 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21527 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21528 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21529 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21530 if (r->out.buffer) {
21531 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21534 return NDR_ERR_SUCCESS;
21537 _PUBLIC_ void ndr_print_spoolss_GetPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_GetPrinterDataEx *r)
21539 ndr_print_struct(ndr, name, "spoolss_GetPrinterDataEx");
21541 if (flags & NDR_SET_VALUES) {
21542 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21544 if (flags & NDR_IN) {
21545 ndr_print_struct(ndr, "in", "spoolss_GetPrinterDataEx");
21547 ndr_print_ptr(ndr, "handle", r->in.handle);
21549 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21551 ndr_print_string(ndr, "key_name", r->in.key_name);
21552 ndr_print_string(ndr, "value_name", r->in.value_name);
21553 ndr_print_uint32(ndr, "offered", r->in.offered);
21556 if (flags & NDR_OUT) {
21557 ndr_print_struct(ndr, "out", "spoolss_GetPrinterDataEx");
21559 ndr_print_ptr(ndr, "type", r->out.type);
21561 ndr_print_uint32(ndr, "type", *r->out.type);
21563 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21565 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21567 ndr_print_ptr(ndr, "needed", r->out.needed);
21569 ndr_print_uint32(ndr, "needed", *r->out.needed);
21571 ndr_print_WERROR(ndr, "result", r->out.result);
21577 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterDataEx *r)
21579 if (flags & NDR_IN) {
21580 if (r->in.handle == NULL) {
21581 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21583 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21584 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21585 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21586 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21587 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));
21588 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21590 if (flags & NDR_OUT) {
21591 if (r->out.buffer == NULL) {
21592 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21594 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.offered));
21595 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.buffer, r->in.offered));
21596 if (r->out.needed == NULL) {
21597 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21599 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21600 if (r->out.count == NULL) {
21601 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21603 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.count));
21604 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21606 return NDR_ERR_SUCCESS;
21609 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterDataEx *r)
21611 TALLOC_CTX *_mem_save_handle_0;
21612 TALLOC_CTX *_mem_save_needed_0;
21613 TALLOC_CTX *_mem_save_count_0;
21614 if (flags & NDR_IN) {
21615 ZERO_STRUCT(r->out);
21617 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21618 NDR_PULL_ALLOC(ndr, r->in.handle);
21620 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21621 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21622 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21623 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21624 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21625 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21626 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21627 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));
21629 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21630 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));
21631 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.offered));
21632 NDR_PULL_ALLOC_N(ndr, r->out.buffer, r->in.offered);
21633 memset(r->out.buffer, 0, (r->in.offered) * sizeof(*r->out.buffer));
21634 NDR_PULL_ALLOC(ndr, r->out.needed);
21635 ZERO_STRUCTP(r->out.needed);
21636 NDR_PULL_ALLOC(ndr, r->out.count);
21637 ZERO_STRUCTP(r->out.count);
21639 if (flags & NDR_OUT) {
21640 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.buffer));
21641 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21642 NDR_PULL_ALLOC_N(ndr, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer));
21644 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.buffer, ndr_get_array_size(ndr, &r->out.buffer)));
21645 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21646 NDR_PULL_ALLOC(ndr, r->out.needed);
21648 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21649 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21650 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21651 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21652 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21653 NDR_PULL_ALLOC(ndr, r->out.count);
21655 _mem_save_count_0 = NDR_PULL_GET_MEM_CTX(ndr);
21656 NDR_PULL_SET_MEM_CTX(ndr, r->out.count, LIBNDR_FLAG_REF_ALLOC);
21657 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.count));
21658 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_count_0, LIBNDR_FLAG_REF_ALLOC);
21659 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21660 if (r->out.buffer) {
21661 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.buffer, r->in.offered));
21664 return NDR_ERR_SUCCESS;
21667 _PUBLIC_ void ndr_print_spoolss_EnumPrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterDataEx *r)
21669 ndr_print_struct(ndr, name, "spoolss_EnumPrinterDataEx");
21671 if (flags & NDR_SET_VALUES) {
21672 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21674 if (flags & NDR_IN) {
21675 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterDataEx");
21677 ndr_print_ptr(ndr, "handle", r->in.handle);
21679 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21681 ndr_print_string(ndr, "key_name", r->in.key_name);
21682 ndr_print_uint32(ndr, "offered", r->in.offered);
21685 if (flags & NDR_OUT) {
21686 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterDataEx");
21688 ndr_print_ptr(ndr, "buffer", r->out.buffer);
21690 ndr_print_array_uint8(ndr, "buffer", r->out.buffer, r->in.offered);
21692 ndr_print_ptr(ndr, "needed", r->out.needed);
21694 ndr_print_uint32(ndr, "needed", *r->out.needed);
21696 ndr_print_ptr(ndr, "count", r->out.count);
21698 ndr_print_uint32(ndr, "count", *r->out.count);
21700 ndr_print_WERROR(ndr, "result", r->out.result);
21706 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_EnumPrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_EnumPrinterKey *r)
21708 uint32_t cntr_key_buffer_1;
21709 if (flags & NDR_IN) {
21710 if (r->in.handle == NULL) {
21711 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21713 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21714 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21715 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21716 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21717 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));
21718 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size));
21720 if (flags & NDR_OUT) {
21721 if (r->out.key_buffer == NULL) {
21722 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21724 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.key_buffer_size / 2));
21725 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
21726 NDR_CHECK(ndr_push_uint16(ndr, NDR_SCALARS, r->out.key_buffer[cntr_key_buffer_1]));
21728 if (r->out.needed == NULL) {
21729 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21731 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
21732 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21734 return NDR_ERR_SUCCESS;
21737 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_EnumPrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_EnumPrinterKey *r)
21739 uint32_t cntr_key_buffer_1;
21740 TALLOC_CTX *_mem_save_handle_0;
21741 TALLOC_CTX *_mem_save_key_buffer_1;
21742 TALLOC_CTX *_mem_save_needed_0;
21743 if (flags & NDR_IN) {
21744 ZERO_STRUCT(r->out);
21746 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21747 NDR_PULL_ALLOC(ndr, r->in.handle);
21749 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21750 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21751 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21752 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21753 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21754 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21755 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21756 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));
21758 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21759 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));
21760 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.key_buffer_size));
21761 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, r->in.key_buffer_size / 2);
21762 memset(r->out.key_buffer, 0, (r->in.key_buffer_size / 2) * sizeof(*r->out.key_buffer));
21763 NDR_PULL_ALLOC(ndr, r->out.needed);
21764 ZERO_STRUCTP(r->out.needed);
21766 if (flags & NDR_OUT) {
21767 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.key_buffer));
21768 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21769 NDR_PULL_ALLOC_N(ndr, r->out.key_buffer, ndr_get_array_size(ndr, &r->out.key_buffer));
21771 _mem_save_key_buffer_1 = NDR_PULL_GET_MEM_CTX(ndr);
21772 NDR_PULL_SET_MEM_CTX(ndr, r->out.key_buffer, 0);
21773 for (cntr_key_buffer_1 = 0; cntr_key_buffer_1 < r->in.key_buffer_size / 2; cntr_key_buffer_1++) {
21774 NDR_CHECK(ndr_pull_uint16(ndr, NDR_SCALARS, &r->out.key_buffer[cntr_key_buffer_1]));
21776 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_key_buffer_1, 0);
21777 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21778 NDR_PULL_ALLOC(ndr, r->out.needed);
21780 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
21781 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
21782 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
21783 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
21784 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21785 if (r->out.key_buffer) {
21786 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.key_buffer, r->in.key_buffer_size / 2));
21789 return NDR_ERR_SUCCESS;
21792 _PUBLIC_ void ndr_print_spoolss_EnumPrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_EnumPrinterKey *r)
21794 uint32_t cntr_key_buffer_1;
21795 ndr_print_struct(ndr, name, "spoolss_EnumPrinterKey");
21797 if (flags & NDR_SET_VALUES) {
21798 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21800 if (flags & NDR_IN) {
21801 ndr_print_struct(ndr, "in", "spoolss_EnumPrinterKey");
21803 ndr_print_ptr(ndr, "handle", r->in.handle);
21805 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21807 ndr_print_string(ndr, "key_name", r->in.key_name);
21808 ndr_print_uint32(ndr, "key_buffer_size", r->in.key_buffer_size);
21811 if (flags & NDR_OUT) {
21812 ndr_print_struct(ndr, "out", "spoolss_EnumPrinterKey");
21814 ndr_print_ptr(ndr, "key_buffer", r->out.key_buffer);
21816 ndr->print(ndr, "%s: ARRAY(%d)", "key_buffer", (int)r->in.key_buffer_size / 2);
21818 for (cntr_key_buffer_1=0;cntr_key_buffer_1<r->in.key_buffer_size / 2;cntr_key_buffer_1++) {
21820 if (asprintf(&idx_1, "[%d]", cntr_key_buffer_1) != -1) {
21821 ndr_print_uint16(ndr, "key_buffer", r->out.key_buffer[cntr_key_buffer_1]);
21827 ndr_print_ptr(ndr, "needed", r->out.needed);
21829 ndr_print_uint32(ndr, "needed", *r->out.needed);
21831 ndr_print_WERROR(ndr, "result", r->out.result);
21837 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDataEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDataEx *r)
21839 if (flags & NDR_IN) {
21840 if (r->in.handle == NULL) {
21841 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21843 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21844 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21845 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21846 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21847 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));
21848 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21849 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21850 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.value_name, CH_UTF16)));
21851 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.value_name, ndr_charset_length(r->in.value_name, CH_UTF16), sizeof(uint16_t), CH_UTF16));
21853 if (flags & NDR_OUT) {
21854 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21856 return NDR_ERR_SUCCESS;
21859 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDataEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDataEx *r)
21861 TALLOC_CTX *_mem_save_handle_0;
21862 if (flags & NDR_IN) {
21863 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21864 NDR_PULL_ALLOC(ndr, r->in.handle);
21866 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21867 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21868 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21869 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21870 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21871 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21872 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21873 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));
21875 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21876 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));
21877 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.value_name));
21878 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.value_name));
21879 if (ndr_get_array_length(ndr, &r->in.value_name) > ndr_get_array_size(ndr, &r->in.value_name)) {
21880 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));
21882 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.value_name), sizeof(uint16_t)));
21883 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 if (flags & NDR_OUT) {
21886 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21888 return NDR_ERR_SUCCESS;
21891 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDataEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDataEx *r)
21893 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDataEx");
21895 if (flags & NDR_SET_VALUES) {
21896 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21898 if (flags & NDR_IN) {
21899 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDataEx");
21901 ndr_print_ptr(ndr, "handle", r->in.handle);
21903 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21905 ndr_print_string(ndr, "key_name", r->in.key_name);
21906 ndr_print_string(ndr, "value_name", r->in.value_name);
21909 if (flags & NDR_OUT) {
21910 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDataEx");
21912 ndr_print_WERROR(ndr, "result", r->out.result);
21918 static enum ndr_err_code ndr_push_spoolss_DeletePrinterKey(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterKey *r)
21920 if (flags & NDR_IN) {
21921 if (r->in.handle == NULL) {
21922 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
21924 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21925 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21926 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
21927 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.key_name, CH_UTF16)));
21928 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));
21930 if (flags & NDR_OUT) {
21931 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21933 return NDR_ERR_SUCCESS;
21936 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterKey(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterKey *r)
21938 TALLOC_CTX *_mem_save_handle_0;
21939 if (flags & NDR_IN) {
21940 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
21941 NDR_PULL_ALLOC(ndr, r->in.handle);
21943 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
21944 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
21945 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
21946 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
21947 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.key_name));
21948 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.key_name));
21949 if (ndr_get_array_length(ndr, &r->in.key_name) > ndr_get_array_size(ndr, &r->in.key_name)) {
21950 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));
21952 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.key_name), sizeof(uint16_t)));
21953 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));
21955 if (flags & NDR_OUT) {
21956 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
21958 return NDR_ERR_SUCCESS;
21961 _PUBLIC_ void ndr_print_spoolss_DeletePrinterKey(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterKey *r)
21963 ndr_print_struct(ndr, name, "spoolss_DeletePrinterKey");
21965 if (flags & NDR_SET_VALUES) {
21966 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
21968 if (flags & NDR_IN) {
21969 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterKey");
21971 ndr_print_ptr(ndr, "handle", r->in.handle);
21973 ndr_print_policy_handle(ndr, "handle", r->in.handle);
21975 ndr_print_string(ndr, "key_name", r->in.key_name);
21978 if (flags & NDR_OUT) {
21979 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterKey");
21981 ndr_print_WERROR(ndr, "result", r->out.result);
21987 static enum ndr_err_code ndr_push_spoolss_53(struct ndr_push *ndr, int flags, const struct spoolss_53 *r)
21989 if (flags & NDR_IN) {
21991 if (flags & NDR_OUT) {
21992 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
21994 return NDR_ERR_SUCCESS;
21997 static enum ndr_err_code ndr_pull_spoolss_53(struct ndr_pull *ndr, int flags, struct spoolss_53 *r)
21999 if (flags & NDR_IN) {
22001 if (flags & NDR_OUT) {
22002 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22004 return NDR_ERR_SUCCESS;
22007 _PUBLIC_ void ndr_print_spoolss_53(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_53 *r)
22009 ndr_print_struct(ndr, name, "spoolss_53");
22011 if (flags & NDR_SET_VALUES) {
22012 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22014 if (flags & NDR_IN) {
22015 ndr_print_struct(ndr, "in", "spoolss_53");
22019 if (flags & NDR_OUT) {
22020 ndr_print_struct(ndr, "out", "spoolss_53");
22022 ndr_print_WERROR(ndr, "result", r->out.result);
22028 static enum ndr_err_code ndr_push_spoolss_DeletePrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22030 if (flags & NDR_IN) {
22031 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.server));
22032 if (r->in.server) {
22033 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22034 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22035 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.server, CH_UTF16)));
22036 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.server, ndr_charset_length(r->in.server, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22038 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22039 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22040 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.architecture, CH_UTF16)));
22041 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.architecture, ndr_charset_length(r->in.architecture, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22042 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22043 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22044 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.driver, CH_UTF16)));
22045 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.driver, ndr_charset_length(r->in.driver, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22046 NDR_CHECK(ndr_push_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, r->in.delete_flags));
22047 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.version));
22049 if (flags & NDR_OUT) {
22050 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22052 return NDR_ERR_SUCCESS;
22055 static enum ndr_err_code ndr_pull_spoolss_DeletePrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_DeletePrinterDriverEx *r)
22057 uint32_t _ptr_server;
22058 TALLOC_CTX *_mem_save_server_0;
22059 if (flags & NDR_IN) {
22060 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_server));
22062 NDR_PULL_ALLOC(ndr, r->in.server);
22064 r->in.server = NULL;
22066 if (r->in.server) {
22067 _mem_save_server_0 = NDR_PULL_GET_MEM_CTX(ndr);
22068 NDR_PULL_SET_MEM_CTX(ndr, r->in.server, 0);
22069 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.server));
22070 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.server));
22071 if (ndr_get_array_length(ndr, &r->in.server) > ndr_get_array_size(ndr, &r->in.server)) {
22072 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));
22074 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t)));
22075 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.server, ndr_get_array_length(ndr, &r->in.server), sizeof(uint16_t), CH_UTF16));
22076 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_server_0, 0);
22078 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.architecture));
22079 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.architecture));
22080 if (ndr_get_array_length(ndr, &r->in.architecture) > ndr_get_array_size(ndr, &r->in.architecture)) {
22081 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));
22083 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t)));
22084 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.architecture, ndr_get_array_length(ndr, &r->in.architecture), sizeof(uint16_t), CH_UTF16));
22085 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.driver));
22086 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.driver));
22087 if (ndr_get_array_length(ndr, &r->in.driver) > ndr_get_array_size(ndr, &r->in.driver)) {
22088 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));
22090 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t)));
22091 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.driver, ndr_get_array_length(ndr, &r->in.driver), sizeof(uint16_t), CH_UTF16));
22092 NDR_CHECK(ndr_pull_spoolss_DeleteDriverFlags(ndr, NDR_SCALARS, &r->in.delete_flags));
22093 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.version));
22095 if (flags & NDR_OUT) {
22096 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22098 return NDR_ERR_SUCCESS;
22101 _PUBLIC_ void ndr_print_spoolss_DeletePrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_DeletePrinterDriverEx *r)
22103 ndr_print_struct(ndr, name, "spoolss_DeletePrinterDriverEx");
22105 if (flags & NDR_SET_VALUES) {
22106 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22108 if (flags & NDR_IN) {
22109 ndr_print_struct(ndr, "in", "spoolss_DeletePrinterDriverEx");
22111 ndr_print_ptr(ndr, "server", r->in.server);
22113 if (r->in.server) {
22114 ndr_print_string(ndr, "server", r->in.server);
22117 ndr_print_string(ndr, "architecture", r->in.architecture);
22118 ndr_print_string(ndr, "driver", r->in.driver);
22119 ndr_print_spoolss_DeleteDriverFlags(ndr, "delete_flags", r->in.delete_flags);
22120 ndr_print_uint32(ndr, "version", r->in.version);
22123 if (flags & NDR_OUT) {
22124 ndr_print_struct(ndr, "out", "spoolss_DeletePrinterDriverEx");
22126 ndr_print_WERROR(ndr, "result", r->out.result);
22132 static enum ndr_err_code ndr_push_spoolss_55(struct ndr_push *ndr, int flags, const struct spoolss_55 *r)
22134 if (flags & NDR_IN) {
22136 if (flags & NDR_OUT) {
22137 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22139 return NDR_ERR_SUCCESS;
22142 static enum ndr_err_code ndr_pull_spoolss_55(struct ndr_pull *ndr, int flags, struct spoolss_55 *r)
22144 if (flags & NDR_IN) {
22146 if (flags & NDR_OUT) {
22147 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22149 return NDR_ERR_SUCCESS;
22152 _PUBLIC_ void ndr_print_spoolss_55(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_55 *r)
22154 ndr_print_struct(ndr, name, "spoolss_55");
22156 if (flags & NDR_SET_VALUES) {
22157 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22159 if (flags & NDR_IN) {
22160 ndr_print_struct(ndr, "in", "spoolss_55");
22164 if (flags & NDR_OUT) {
22165 ndr_print_struct(ndr, "out", "spoolss_55");
22167 ndr_print_WERROR(ndr, "result", r->out.result);
22173 static enum ndr_err_code ndr_push_spoolss_56(struct ndr_push *ndr, int flags, const struct spoolss_56 *r)
22175 if (flags & NDR_IN) {
22177 if (flags & NDR_OUT) {
22178 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22180 return NDR_ERR_SUCCESS;
22183 static enum ndr_err_code ndr_pull_spoolss_56(struct ndr_pull *ndr, int flags, struct spoolss_56 *r)
22185 if (flags & NDR_IN) {
22187 if (flags & NDR_OUT) {
22188 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22190 return NDR_ERR_SUCCESS;
22193 _PUBLIC_ void ndr_print_spoolss_56(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_56 *r)
22195 ndr_print_struct(ndr, name, "spoolss_56");
22197 if (flags & NDR_SET_VALUES) {
22198 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22200 if (flags & NDR_IN) {
22201 ndr_print_struct(ndr, "in", "spoolss_56");
22205 if (flags & NDR_OUT) {
22206 ndr_print_struct(ndr, "out", "spoolss_56");
22208 ndr_print_WERROR(ndr, "result", r->out.result);
22214 static enum ndr_err_code ndr_push_spoolss_57(struct ndr_push *ndr, int flags, const struct spoolss_57 *r)
22216 if (flags & NDR_IN) {
22218 if (flags & NDR_OUT) {
22219 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22221 return NDR_ERR_SUCCESS;
22224 static enum ndr_err_code ndr_pull_spoolss_57(struct ndr_pull *ndr, int flags, struct spoolss_57 *r)
22226 if (flags & NDR_IN) {
22228 if (flags & NDR_OUT) {
22229 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22231 return NDR_ERR_SUCCESS;
22234 _PUBLIC_ void ndr_print_spoolss_57(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_57 *r)
22236 ndr_print_struct(ndr, name, "spoolss_57");
22238 if (flags & NDR_SET_VALUES) {
22239 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22241 if (flags & NDR_IN) {
22242 ndr_print_struct(ndr, "in", "spoolss_57");
22246 if (flags & NDR_OUT) {
22247 ndr_print_struct(ndr, "out", "spoolss_57");
22249 ndr_print_WERROR(ndr, "result", r->out.result);
22255 static enum ndr_err_code ndr_push_spoolss_XcvData(struct ndr_push *ndr, int flags, const struct spoolss_XcvData *r)
22257 if (flags & NDR_IN) {
22258 if (r->in.handle == NULL) {
22259 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22261 NDR_CHECK(ndr_push_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22262 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22263 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22264 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.function_name, CH_UTF16)));
22265 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));
22266 NDR_CHECK(ndr_push_DATA_BLOB(ndr, NDR_SCALARS, r->in.in_data));
22267 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.in_data.length));
22268 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22269 if (r->in.status_code == NULL) {
22270 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22272 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->in.status_code));
22274 if (flags & NDR_OUT) {
22275 if (r->out.out_data == NULL) {
22276 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22278 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, r->in.out_data_size));
22279 NDR_CHECK(ndr_push_array_uint8(ndr, NDR_SCALARS, r->out.out_data, r->in.out_data_size));
22280 if (r->out.needed == NULL) {
22281 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22283 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.needed));
22284 if (r->out.status_code == NULL) {
22285 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22287 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, *r->out.status_code));
22288 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22290 return NDR_ERR_SUCCESS;
22293 static enum ndr_err_code ndr_pull_spoolss_XcvData(struct ndr_pull *ndr, int flags, struct spoolss_XcvData *r)
22295 TALLOC_CTX *_mem_save_handle_0;
22296 TALLOC_CTX *_mem_save_needed_0;
22297 TALLOC_CTX *_mem_save_status_code_0;
22298 if (flags & NDR_IN) {
22299 ZERO_STRUCT(r->out);
22301 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22302 NDR_PULL_ALLOC(ndr, r->in.handle);
22304 _mem_save_handle_0 = NDR_PULL_GET_MEM_CTX(ndr);
22305 NDR_PULL_SET_MEM_CTX(ndr, r->in.handle, LIBNDR_FLAG_REF_ALLOC);
22306 NDR_CHECK(ndr_pull_policy_handle(ndr, NDR_SCALARS, r->in.handle));
22307 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_handle_0, LIBNDR_FLAG_REF_ALLOC);
22308 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.function_name));
22309 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.function_name));
22310 if (ndr_get_array_length(ndr, &r->in.function_name) > ndr_get_array_size(ndr, &r->in.function_name)) {
22311 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));
22313 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.function_name), sizeof(uint16_t)));
22314 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));
22315 NDR_CHECK(ndr_pull_DATA_BLOB(ndr, NDR_SCALARS, &r->in.in_data));
22316 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in._in_data_length));
22317 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, &r->in.out_data_size));
22318 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22319 NDR_PULL_ALLOC(ndr, r->in.status_code);
22321 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22322 NDR_PULL_SET_MEM_CTX(ndr, r->in.status_code, LIBNDR_FLAG_REF_ALLOC);
22323 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->in.status_code));
22324 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22325 NDR_PULL_ALLOC_N(ndr, r->out.out_data, r->in.out_data_size);
22326 memset(r->out.out_data, 0, (r->in.out_data_size) * sizeof(*r->out.out_data));
22327 NDR_PULL_ALLOC(ndr, r->out.needed);
22328 ZERO_STRUCTP(r->out.needed);
22329 NDR_PULL_ALLOC(ndr, r->out.status_code);
22330 *r->out.status_code = *r->in.status_code;
22332 if (flags & NDR_OUT) {
22333 NDR_CHECK(ndr_pull_array_size(ndr, &r->out.out_data));
22334 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22335 NDR_PULL_ALLOC_N(ndr, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data));
22337 NDR_CHECK(ndr_pull_array_uint8(ndr, NDR_SCALARS, r->out.out_data, ndr_get_array_size(ndr, &r->out.out_data)));
22338 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22339 NDR_PULL_ALLOC(ndr, r->out.needed);
22341 _mem_save_needed_0 = NDR_PULL_GET_MEM_CTX(ndr);
22342 NDR_PULL_SET_MEM_CTX(ndr, r->out.needed, LIBNDR_FLAG_REF_ALLOC);
22343 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.needed));
22344 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_needed_0, LIBNDR_FLAG_REF_ALLOC);
22345 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22346 NDR_PULL_ALLOC(ndr, r->out.status_code);
22348 _mem_save_status_code_0 = NDR_PULL_GET_MEM_CTX(ndr);
22349 NDR_PULL_SET_MEM_CTX(ndr, r->out.status_code, LIBNDR_FLAG_REF_ALLOC);
22350 NDR_CHECK(ndr_pull_uint32(ndr, NDR_SCALARS, r->out.status_code));
22351 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_status_code_0, LIBNDR_FLAG_REF_ALLOC);
22352 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22353 if (r->out.out_data) {
22354 NDR_CHECK(ndr_check_array_size(ndr, (void*)&r->out.out_data, r->in.out_data_size));
22357 return NDR_ERR_SUCCESS;
22360 _PUBLIC_ void ndr_print_spoolss_XcvData(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_XcvData *r)
22362 ndr_print_struct(ndr, name, "spoolss_XcvData");
22364 if (flags & NDR_SET_VALUES) {
22365 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22367 if (flags & NDR_IN) {
22368 ndr_print_struct(ndr, "in", "spoolss_XcvData");
22370 ndr_print_ptr(ndr, "handle", r->in.handle);
22372 ndr_print_policy_handle(ndr, "handle", r->in.handle);
22374 ndr_print_string(ndr, "function_name", r->in.function_name);
22375 ndr_print_DATA_BLOB(ndr, "in_data", r->in.in_data);
22376 ndr_print_uint32(ndr, "_in_data_length", (ndr->flags & LIBNDR_PRINT_SET_VALUES)?r->in.in_data.length:r->in._in_data_length);
22377 ndr_print_uint32(ndr, "out_data_size", r->in.out_data_size);
22378 ndr_print_ptr(ndr, "status_code", r->in.status_code);
22380 ndr_print_uint32(ndr, "status_code", *r->in.status_code);
22384 if (flags & NDR_OUT) {
22385 ndr_print_struct(ndr, "out", "spoolss_XcvData");
22387 ndr_print_ptr(ndr, "out_data", r->out.out_data);
22389 ndr_print_array_uint8(ndr, "out_data", r->out.out_data, r->in.out_data_size);
22391 ndr_print_ptr(ndr, "needed", r->out.needed);
22393 ndr_print_uint32(ndr, "needed", *r->out.needed);
22395 ndr_print_ptr(ndr, "status_code", r->out.status_code);
22397 ndr_print_uint32(ndr, "status_code", *r->out.status_code);
22399 ndr_print_WERROR(ndr, "result", r->out.result);
22405 _PUBLIC_ enum ndr_err_code ndr_push_spoolss_AddPrinterDriverEx(struct ndr_push *ndr, int flags, const struct spoolss_AddPrinterDriverEx *r)
22407 if (flags & NDR_IN) {
22408 NDR_CHECK(ndr_push_unique_ptr(ndr, r->in.servername));
22409 if (r->in.servername) {
22410 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22411 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, 0));
22412 NDR_CHECK(ndr_push_uint32(ndr, NDR_SCALARS, ndr_charset_length(r->in.servername, CH_UTF16)));
22413 NDR_CHECK(ndr_push_charset(ndr, NDR_SCALARS, r->in.servername, ndr_charset_length(r->in.servername, CH_UTF16), sizeof(uint16_t), CH_UTF16));
22415 if (r->in.info_ctr == NULL) {
22416 return ndr_push_error(ndr, NDR_ERR_INVALID_POINTER, "NULL [ref] pointer");
22418 NDR_CHECK(ndr_push_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22419 NDR_CHECK(ndr_push_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, r->in.flags));
22421 if (flags & NDR_OUT) {
22422 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22424 return NDR_ERR_SUCCESS;
22427 _PUBLIC_ enum ndr_err_code ndr_pull_spoolss_AddPrinterDriverEx(struct ndr_pull *ndr, int flags, struct spoolss_AddPrinterDriverEx *r)
22429 uint32_t _ptr_servername;
22430 TALLOC_CTX *_mem_save_servername_0;
22431 TALLOC_CTX *_mem_save_info_ctr_0;
22432 if (flags & NDR_IN) {
22433 NDR_CHECK(ndr_pull_generic_ptr(ndr, &_ptr_servername));
22434 if (_ptr_servername) {
22435 NDR_PULL_ALLOC(ndr, r->in.servername);
22437 r->in.servername = NULL;
22439 if (r->in.servername) {
22440 _mem_save_servername_0 = NDR_PULL_GET_MEM_CTX(ndr);
22441 NDR_PULL_SET_MEM_CTX(ndr, r->in.servername, 0);
22442 NDR_CHECK(ndr_pull_array_size(ndr, &r->in.servername));
22443 NDR_CHECK(ndr_pull_array_length(ndr, &r->in.servername));
22444 if (ndr_get_array_length(ndr, &r->in.servername) > ndr_get_array_size(ndr, &r->in.servername)) {
22445 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));
22447 NDR_CHECK(ndr_check_string_terminator(ndr, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t)));
22448 NDR_CHECK(ndr_pull_charset(ndr, NDR_SCALARS, &r->in.servername, ndr_get_array_length(ndr, &r->in.servername), sizeof(uint16_t), CH_UTF16));
22449 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_servername_0, 0);
22451 if (ndr->flags & LIBNDR_FLAG_REF_ALLOC) {
22452 NDR_PULL_ALLOC(ndr, r->in.info_ctr);
22454 _mem_save_info_ctr_0 = NDR_PULL_GET_MEM_CTX(ndr);
22455 NDR_PULL_SET_MEM_CTX(ndr, r->in.info_ctr, LIBNDR_FLAG_REF_ALLOC);
22456 NDR_CHECK(ndr_pull_spoolss_AddDriverInfoCtr(ndr, NDR_SCALARS|NDR_BUFFERS, r->in.info_ctr));
22457 NDR_PULL_SET_MEM_CTX(ndr, _mem_save_info_ctr_0, LIBNDR_FLAG_REF_ALLOC);
22458 NDR_CHECK(ndr_pull_spoolss_AddPrinterDriverExFlags(ndr, NDR_SCALARS, &r->in.flags));
22460 if (flags & NDR_OUT) {
22461 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22463 return NDR_ERR_SUCCESS;
22466 _PUBLIC_ void ndr_print_spoolss_AddPrinterDriverEx(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_AddPrinterDriverEx *r)
22468 ndr_print_struct(ndr, name, "spoolss_AddPrinterDriverEx");
22470 if (flags & NDR_SET_VALUES) {
22471 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22473 if (flags & NDR_IN) {
22474 ndr_print_struct(ndr, "in", "spoolss_AddPrinterDriverEx");
22476 ndr_print_ptr(ndr, "servername", r->in.servername);
22478 if (r->in.servername) {
22479 ndr_print_string(ndr, "servername", r->in.servername);
22482 ndr_print_ptr(ndr, "info_ctr", r->in.info_ctr);
22484 ndr_print_spoolss_AddDriverInfoCtr(ndr, "info_ctr", r->in.info_ctr);
22486 ndr_print_spoolss_AddPrinterDriverExFlags(ndr, "flags", r->in.flags);
22489 if (flags & NDR_OUT) {
22490 ndr_print_struct(ndr, "out", "spoolss_AddPrinterDriverEx");
22492 ndr_print_WERROR(ndr, "result", r->out.result);
22498 static enum ndr_err_code ndr_push_spoolss_5a(struct ndr_push *ndr, int flags, const struct spoolss_5a *r)
22500 if (flags & NDR_IN) {
22502 if (flags & NDR_OUT) {
22503 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22505 return NDR_ERR_SUCCESS;
22508 static enum ndr_err_code ndr_pull_spoolss_5a(struct ndr_pull *ndr, int flags, struct spoolss_5a *r)
22510 if (flags & NDR_IN) {
22512 if (flags & NDR_OUT) {
22513 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22515 return NDR_ERR_SUCCESS;
22518 _PUBLIC_ void ndr_print_spoolss_5a(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5a *r)
22520 ndr_print_struct(ndr, name, "spoolss_5a");
22522 if (flags & NDR_SET_VALUES) {
22523 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22525 if (flags & NDR_IN) {
22526 ndr_print_struct(ndr, "in", "spoolss_5a");
22530 if (flags & NDR_OUT) {
22531 ndr_print_struct(ndr, "out", "spoolss_5a");
22533 ndr_print_WERROR(ndr, "result", r->out.result);
22539 static enum ndr_err_code ndr_push_spoolss_5b(struct ndr_push *ndr, int flags, const struct spoolss_5b *r)
22541 if (flags & NDR_IN) {
22543 if (flags & NDR_OUT) {
22544 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22546 return NDR_ERR_SUCCESS;
22549 static enum ndr_err_code ndr_pull_spoolss_5b(struct ndr_pull *ndr, int flags, struct spoolss_5b *r)
22551 if (flags & NDR_IN) {
22553 if (flags & NDR_OUT) {
22554 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22556 return NDR_ERR_SUCCESS;
22559 _PUBLIC_ void ndr_print_spoolss_5b(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5b *r)
22561 ndr_print_struct(ndr, name, "spoolss_5b");
22563 if (flags & NDR_SET_VALUES) {
22564 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22566 if (flags & NDR_IN) {
22567 ndr_print_struct(ndr, "in", "spoolss_5b");
22571 if (flags & NDR_OUT) {
22572 ndr_print_struct(ndr, "out", "spoolss_5b");
22574 ndr_print_WERROR(ndr, "result", r->out.result);
22580 static enum ndr_err_code ndr_push_spoolss_5c(struct ndr_push *ndr, int flags, const struct spoolss_5c *r)
22582 if (flags & NDR_IN) {
22584 if (flags & NDR_OUT) {
22585 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22587 return NDR_ERR_SUCCESS;
22590 static enum ndr_err_code ndr_pull_spoolss_5c(struct ndr_pull *ndr, int flags, struct spoolss_5c *r)
22592 if (flags & NDR_IN) {
22594 if (flags & NDR_OUT) {
22595 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22597 return NDR_ERR_SUCCESS;
22600 _PUBLIC_ void ndr_print_spoolss_5c(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5c *r)
22602 ndr_print_struct(ndr, name, "spoolss_5c");
22604 if (flags & NDR_SET_VALUES) {
22605 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22607 if (flags & NDR_IN) {
22608 ndr_print_struct(ndr, "in", "spoolss_5c");
22612 if (flags & NDR_OUT) {
22613 ndr_print_struct(ndr, "out", "spoolss_5c");
22615 ndr_print_WERROR(ndr, "result", r->out.result);
22621 static enum ndr_err_code ndr_push_spoolss_5d(struct ndr_push *ndr, int flags, const struct spoolss_5d *r)
22623 if (flags & NDR_IN) {
22625 if (flags & NDR_OUT) {
22626 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22628 return NDR_ERR_SUCCESS;
22631 static enum ndr_err_code ndr_pull_spoolss_5d(struct ndr_pull *ndr, int flags, struct spoolss_5d *r)
22633 if (flags & NDR_IN) {
22635 if (flags & NDR_OUT) {
22636 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22638 return NDR_ERR_SUCCESS;
22641 _PUBLIC_ void ndr_print_spoolss_5d(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5d *r)
22643 ndr_print_struct(ndr, name, "spoolss_5d");
22645 if (flags & NDR_SET_VALUES) {
22646 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22648 if (flags & NDR_IN) {
22649 ndr_print_struct(ndr, "in", "spoolss_5d");
22653 if (flags & NDR_OUT) {
22654 ndr_print_struct(ndr, "out", "spoolss_5d");
22656 ndr_print_WERROR(ndr, "result", r->out.result);
22662 static enum ndr_err_code ndr_push_spoolss_5e(struct ndr_push *ndr, int flags, const struct spoolss_5e *r)
22664 if (flags & NDR_IN) {
22666 if (flags & NDR_OUT) {
22667 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22669 return NDR_ERR_SUCCESS;
22672 static enum ndr_err_code ndr_pull_spoolss_5e(struct ndr_pull *ndr, int flags, struct spoolss_5e *r)
22674 if (flags & NDR_IN) {
22676 if (flags & NDR_OUT) {
22677 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22679 return NDR_ERR_SUCCESS;
22682 _PUBLIC_ void ndr_print_spoolss_5e(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5e *r)
22684 ndr_print_struct(ndr, name, "spoolss_5e");
22686 if (flags & NDR_SET_VALUES) {
22687 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22689 if (flags & NDR_IN) {
22690 ndr_print_struct(ndr, "in", "spoolss_5e");
22694 if (flags & NDR_OUT) {
22695 ndr_print_struct(ndr, "out", "spoolss_5e");
22697 ndr_print_WERROR(ndr, "result", r->out.result);
22703 static enum ndr_err_code ndr_push_spoolss_5f(struct ndr_push *ndr, int flags, const struct spoolss_5f *r)
22705 if (flags & NDR_IN) {
22707 if (flags & NDR_OUT) {
22708 NDR_CHECK(ndr_push_WERROR(ndr, NDR_SCALARS, r->out.result));
22710 return NDR_ERR_SUCCESS;
22713 static enum ndr_err_code ndr_pull_spoolss_5f(struct ndr_pull *ndr, int flags, struct spoolss_5f *r)
22715 if (flags & NDR_IN) {
22717 if (flags & NDR_OUT) {
22718 NDR_CHECK(ndr_pull_WERROR(ndr, NDR_SCALARS, &r->out.result));
22720 return NDR_ERR_SUCCESS;
22723 _PUBLIC_ void ndr_print_spoolss_5f(struct ndr_print *ndr, const char *name, int flags, const struct spoolss_5f *r)
22725 ndr_print_struct(ndr, name, "spoolss_5f");
22727 if (flags & NDR_SET_VALUES) {
22728 ndr->flags |= LIBNDR_PRINT_SET_VALUES;
22730 if (flags & NDR_IN) {
22731 ndr_print_struct(ndr, "in", "spoolss_5f");
22735 if (flags & NDR_OUT) {
22736 ndr_print_struct(ndr, "out", "spoolss_5f");
22738 ndr_print_WERROR(ndr, "result", r->out.result);
22744 static const struct ndr_interface_call spoolss_calls[] = {
22746 "spoolss_EnumPrinters",
22747 sizeof(struct spoolss_EnumPrinters),
22748 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinters,
22749 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinters,
22750 (ndr_print_function_t) ndr_print_spoolss_EnumPrinters,
22754 "spoolss_OpenPrinter",
22755 sizeof(struct spoolss_OpenPrinter),
22756 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinter,
22757 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinter,
22758 (ndr_print_function_t) ndr_print_spoolss_OpenPrinter,
22763 sizeof(struct spoolss_SetJob),
22764 (ndr_push_flags_fn_t) ndr_push_spoolss_SetJob,
22765 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetJob,
22766 (ndr_print_function_t) ndr_print_spoolss_SetJob,
22771 sizeof(struct spoolss_GetJob),
22772 (ndr_push_flags_fn_t) ndr_push_spoolss_GetJob,
22773 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetJob,
22774 (ndr_print_function_t) ndr_print_spoolss_GetJob,
22778 "spoolss_EnumJobs",
22779 sizeof(struct spoolss_EnumJobs),
22780 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumJobs,
22781 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumJobs,
22782 (ndr_print_function_t) ndr_print_spoolss_EnumJobs,
22786 "spoolss_AddPrinter",
22787 sizeof(struct spoolss_AddPrinter),
22788 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinter,
22789 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinter,
22790 (ndr_print_function_t) ndr_print_spoolss_AddPrinter,
22794 "spoolss_DeletePrinter",
22795 sizeof(struct spoolss_DeletePrinter),
22796 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinter,
22797 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinter,
22798 (ndr_print_function_t) ndr_print_spoolss_DeletePrinter,
22802 "spoolss_SetPrinter",
22803 sizeof(struct spoolss_SetPrinter),
22804 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinter,
22805 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinter,
22806 (ndr_print_function_t) ndr_print_spoolss_SetPrinter,
22810 "spoolss_GetPrinter",
22811 sizeof(struct spoolss_GetPrinter),
22812 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinter,
22813 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinter,
22814 (ndr_print_function_t) ndr_print_spoolss_GetPrinter,
22818 "spoolss_AddPrinterDriver",
22819 sizeof(struct spoolss_AddPrinterDriver),
22820 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriver,
22821 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriver,
22822 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriver,
22826 "spoolss_EnumPrinterDrivers",
22827 sizeof(struct spoolss_EnumPrinterDrivers),
22828 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDrivers,
22829 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDrivers,
22830 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDrivers,
22834 "spoolss_GetPrinterDriver",
22835 sizeof(struct spoolss_GetPrinterDriver),
22836 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver,
22837 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver,
22838 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver,
22842 "spoolss_GetPrinterDriverDirectory",
22843 sizeof(struct spoolss_GetPrinterDriverDirectory),
22844 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriverDirectory,
22845 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriverDirectory,
22846 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriverDirectory,
22850 "spoolss_DeletePrinterDriver",
22851 sizeof(struct spoolss_DeletePrinterDriver),
22852 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriver,
22853 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriver,
22854 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriver,
22858 "spoolss_AddPrintProcessor",
22859 sizeof(struct spoolss_AddPrintProcessor),
22860 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProcessor,
22861 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProcessor,
22862 (ndr_print_function_t) ndr_print_spoolss_AddPrintProcessor,
22866 "spoolss_EnumPrintProcessors",
22867 sizeof(struct spoolss_EnumPrintProcessors),
22868 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcessors,
22869 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcessors,
22870 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcessors,
22874 "spoolss_GetPrintProcessorDirectory",
22875 sizeof(struct spoolss_GetPrintProcessorDirectory),
22876 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrintProcessorDirectory,
22877 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrintProcessorDirectory,
22878 (ndr_print_function_t) ndr_print_spoolss_GetPrintProcessorDirectory,
22882 "spoolss_StartDocPrinter",
22883 sizeof(struct spoolss_StartDocPrinter),
22884 (ndr_push_flags_fn_t) ndr_push_spoolss_StartDocPrinter,
22885 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartDocPrinter,
22886 (ndr_print_function_t) ndr_print_spoolss_StartDocPrinter,
22890 "spoolss_StartPagePrinter",
22891 sizeof(struct spoolss_StartPagePrinter),
22892 (ndr_push_flags_fn_t) ndr_push_spoolss_StartPagePrinter,
22893 (ndr_pull_flags_fn_t) ndr_pull_spoolss_StartPagePrinter,
22894 (ndr_print_function_t) ndr_print_spoolss_StartPagePrinter,
22898 "spoolss_WritePrinter",
22899 sizeof(struct spoolss_WritePrinter),
22900 (ndr_push_flags_fn_t) ndr_push_spoolss_WritePrinter,
22901 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WritePrinter,
22902 (ndr_print_function_t) ndr_print_spoolss_WritePrinter,
22906 "spoolss_EndPagePrinter",
22907 sizeof(struct spoolss_EndPagePrinter),
22908 (ndr_push_flags_fn_t) ndr_push_spoolss_EndPagePrinter,
22909 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndPagePrinter,
22910 (ndr_print_function_t) ndr_print_spoolss_EndPagePrinter,
22914 "spoolss_AbortPrinter",
22915 sizeof(struct spoolss_AbortPrinter),
22916 (ndr_push_flags_fn_t) ndr_push_spoolss_AbortPrinter,
22917 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AbortPrinter,
22918 (ndr_print_function_t) ndr_print_spoolss_AbortPrinter,
22922 "spoolss_ReadPrinter",
22923 sizeof(struct spoolss_ReadPrinter),
22924 (ndr_push_flags_fn_t) ndr_push_spoolss_ReadPrinter,
22925 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReadPrinter,
22926 (ndr_print_function_t) ndr_print_spoolss_ReadPrinter,
22930 "spoolss_EndDocPrinter",
22931 sizeof(struct spoolss_EndDocPrinter),
22932 (ndr_push_flags_fn_t) ndr_push_spoolss_EndDocPrinter,
22933 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EndDocPrinter,
22934 (ndr_print_function_t) ndr_print_spoolss_EndDocPrinter,
22939 sizeof(struct spoolss_AddJob),
22940 (ndr_push_flags_fn_t) ndr_push_spoolss_AddJob,
22941 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddJob,
22942 (ndr_print_function_t) ndr_print_spoolss_AddJob,
22946 "spoolss_ScheduleJob",
22947 sizeof(struct spoolss_ScheduleJob),
22948 (ndr_push_flags_fn_t) ndr_push_spoolss_ScheduleJob,
22949 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ScheduleJob,
22950 (ndr_print_function_t) ndr_print_spoolss_ScheduleJob,
22954 "spoolss_GetPrinterData",
22955 sizeof(struct spoolss_GetPrinterData),
22956 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterData,
22957 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterData,
22958 (ndr_print_function_t) ndr_print_spoolss_GetPrinterData,
22962 "spoolss_SetPrinterData",
22963 sizeof(struct spoolss_SetPrinterData),
22964 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterData,
22965 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterData,
22966 (ndr_print_function_t) ndr_print_spoolss_SetPrinterData,
22970 "spoolss_WaitForPrinterChange",
22971 sizeof(struct spoolss_WaitForPrinterChange),
22972 (ndr_push_flags_fn_t) ndr_push_spoolss_WaitForPrinterChange,
22973 (ndr_pull_flags_fn_t) ndr_pull_spoolss_WaitForPrinterChange,
22974 (ndr_print_function_t) ndr_print_spoolss_WaitForPrinterChange,
22978 "spoolss_ClosePrinter",
22979 sizeof(struct spoolss_ClosePrinter),
22980 (ndr_push_flags_fn_t) ndr_push_spoolss_ClosePrinter,
22981 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ClosePrinter,
22982 (ndr_print_function_t) ndr_print_spoolss_ClosePrinter,
22987 sizeof(struct spoolss_AddForm),
22988 (ndr_push_flags_fn_t) ndr_push_spoolss_AddForm,
22989 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddForm,
22990 (ndr_print_function_t) ndr_print_spoolss_AddForm,
22994 "spoolss_DeleteForm",
22995 sizeof(struct spoolss_DeleteForm),
22996 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteForm,
22997 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteForm,
22998 (ndr_print_function_t) ndr_print_spoolss_DeleteForm,
23003 sizeof(struct spoolss_GetForm),
23004 (ndr_push_flags_fn_t) ndr_push_spoolss_GetForm,
23005 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetForm,
23006 (ndr_print_function_t) ndr_print_spoolss_GetForm,
23011 sizeof(struct spoolss_SetForm),
23012 (ndr_push_flags_fn_t) ndr_push_spoolss_SetForm,
23013 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetForm,
23014 (ndr_print_function_t) ndr_print_spoolss_SetForm,
23018 "spoolss_EnumForms",
23019 sizeof(struct spoolss_EnumForms),
23020 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumForms,
23021 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumForms,
23022 (ndr_print_function_t) ndr_print_spoolss_EnumForms,
23026 "spoolss_EnumPorts",
23027 sizeof(struct spoolss_EnumPorts),
23028 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPorts,
23029 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPorts,
23030 (ndr_print_function_t) ndr_print_spoolss_EnumPorts,
23034 "spoolss_EnumMonitors",
23035 sizeof(struct spoolss_EnumMonitors),
23036 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumMonitors,
23037 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumMonitors,
23038 (ndr_print_function_t) ndr_print_spoolss_EnumMonitors,
23043 sizeof(struct spoolss_AddPort),
23044 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPort,
23045 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPort,
23046 (ndr_print_function_t) ndr_print_spoolss_AddPort,
23050 "spoolss_ConfigurePort",
23051 sizeof(struct spoolss_ConfigurePort),
23052 (ndr_push_flags_fn_t) ndr_push_spoolss_ConfigurePort,
23053 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ConfigurePort,
23054 (ndr_print_function_t) ndr_print_spoolss_ConfigurePort,
23058 "spoolss_DeletePort",
23059 sizeof(struct spoolss_DeletePort),
23060 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePort,
23061 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePort,
23062 (ndr_print_function_t) ndr_print_spoolss_DeletePort,
23066 "spoolss_CreatePrinterIC",
23067 sizeof(struct spoolss_CreatePrinterIC),
23068 (ndr_push_flags_fn_t) ndr_push_spoolss_CreatePrinterIC,
23069 (ndr_pull_flags_fn_t) ndr_pull_spoolss_CreatePrinterIC,
23070 (ndr_print_function_t) ndr_print_spoolss_CreatePrinterIC,
23074 "spoolss_PlayGDIScriptOnPrinterIC",
23075 sizeof(struct spoolss_PlayGDIScriptOnPrinterIC),
23076 (ndr_push_flags_fn_t) ndr_push_spoolss_PlayGDIScriptOnPrinterIC,
23077 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PlayGDIScriptOnPrinterIC,
23078 (ndr_print_function_t) ndr_print_spoolss_PlayGDIScriptOnPrinterIC,
23082 "spoolss_DeletePrinterIC",
23083 sizeof(struct spoolss_DeletePrinterIC),
23084 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterIC,
23085 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterIC,
23086 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterIC,
23090 "spoolss_AddPrinterConnection",
23091 sizeof(struct spoolss_AddPrinterConnection),
23092 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterConnection,
23093 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterConnection,
23094 (ndr_print_function_t) ndr_print_spoolss_AddPrinterConnection,
23098 "spoolss_DeletePrinterConnection",
23099 sizeof(struct spoolss_DeletePrinterConnection),
23100 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterConnection,
23101 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterConnection,
23102 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterConnection,
23106 "spoolss_PrinterMessageBox",
23107 sizeof(struct spoolss_PrinterMessageBox),
23108 (ndr_push_flags_fn_t) ndr_push_spoolss_PrinterMessageBox,
23109 (ndr_pull_flags_fn_t) ndr_pull_spoolss_PrinterMessageBox,
23110 (ndr_print_function_t) ndr_print_spoolss_PrinterMessageBox,
23114 "spoolss_AddMonitor",
23115 sizeof(struct spoolss_AddMonitor),
23116 (ndr_push_flags_fn_t) ndr_push_spoolss_AddMonitor,
23117 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddMonitor,
23118 (ndr_print_function_t) ndr_print_spoolss_AddMonitor,
23122 "spoolss_DeleteMonitor",
23123 sizeof(struct spoolss_DeleteMonitor),
23124 (ndr_push_flags_fn_t) ndr_push_spoolss_DeleteMonitor,
23125 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeleteMonitor,
23126 (ndr_print_function_t) ndr_print_spoolss_DeleteMonitor,
23130 "spoolss_DeletePrintProcessor",
23131 sizeof(struct spoolss_DeletePrintProcessor),
23132 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProcessor,
23133 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProcessor,
23134 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProcessor,
23138 "spoolss_AddPrintProvidor",
23139 sizeof(struct spoolss_AddPrintProvidor),
23140 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrintProvidor,
23141 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrintProvidor,
23142 (ndr_print_function_t) ndr_print_spoolss_AddPrintProvidor,
23146 "spoolss_DeletePrintProvidor",
23147 sizeof(struct spoolss_DeletePrintProvidor),
23148 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrintProvidor,
23149 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrintProvidor,
23150 (ndr_print_function_t) ndr_print_spoolss_DeletePrintProvidor,
23154 "spoolss_EnumPrintProcDataTypes",
23155 sizeof(struct spoolss_EnumPrintProcDataTypes),
23156 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrintProcDataTypes,
23157 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrintProcDataTypes,
23158 (ndr_print_function_t) ndr_print_spoolss_EnumPrintProcDataTypes,
23162 "spoolss_ResetPrinter",
23163 sizeof(struct spoolss_ResetPrinter),
23164 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinter,
23165 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinter,
23166 (ndr_print_function_t) ndr_print_spoolss_ResetPrinter,
23170 "spoolss_GetPrinterDriver2",
23171 sizeof(struct spoolss_GetPrinterDriver2),
23172 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDriver2,
23173 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDriver2,
23174 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDriver2,
23178 "spoolss_FindFirstPrinterChangeNotification",
23179 sizeof(struct spoolss_FindFirstPrinterChangeNotification),
23180 (ndr_push_flags_fn_t) ndr_push_spoolss_FindFirstPrinterChangeNotification,
23181 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindFirstPrinterChangeNotification,
23182 (ndr_print_function_t) ndr_print_spoolss_FindFirstPrinterChangeNotification,
23186 "spoolss_FindNextPrinterChangeNotification",
23187 sizeof(struct spoolss_FindNextPrinterChangeNotification),
23188 (ndr_push_flags_fn_t) ndr_push_spoolss_FindNextPrinterChangeNotification,
23189 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindNextPrinterChangeNotification,
23190 (ndr_print_function_t) ndr_print_spoolss_FindNextPrinterChangeNotification,
23194 "spoolss_FindClosePrinterNotify",
23195 sizeof(struct spoolss_FindClosePrinterNotify),
23196 (ndr_push_flags_fn_t) ndr_push_spoolss_FindClosePrinterNotify,
23197 (ndr_pull_flags_fn_t) ndr_pull_spoolss_FindClosePrinterNotify,
23198 (ndr_print_function_t) ndr_print_spoolss_FindClosePrinterNotify,
23202 "spoolss_RouterFindFirstPrinterChangeNotificationOld",
23203 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotificationOld),
23204 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23205 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23206 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotificationOld,
23210 "spoolss_ReplyOpenPrinter",
23211 sizeof(struct spoolss_ReplyOpenPrinter),
23212 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyOpenPrinter,
23213 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyOpenPrinter,
23214 (ndr_print_function_t) ndr_print_spoolss_ReplyOpenPrinter,
23218 "spoolss_RouterReplyPrinter",
23219 sizeof(struct spoolss_RouterReplyPrinter),
23220 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinter,
23221 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinter,
23222 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinter,
23226 "spoolss_ReplyClosePrinter",
23227 sizeof(struct spoolss_ReplyClosePrinter),
23228 (ndr_push_flags_fn_t) ndr_push_spoolss_ReplyClosePrinter,
23229 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ReplyClosePrinter,
23230 (ndr_print_function_t) ndr_print_spoolss_ReplyClosePrinter,
23234 "spoolss_AddPortEx",
23235 sizeof(struct spoolss_AddPortEx),
23236 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPortEx,
23237 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPortEx,
23238 (ndr_print_function_t) ndr_print_spoolss_AddPortEx,
23242 "spoolss_RouterFindFirstPrinterChangeNotification",
23243 sizeof(struct spoolss_RouterFindFirstPrinterChangeNotification),
23244 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterFindFirstPrinterChangeNotification,
23245 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterFindFirstPrinterChangeNotification,
23246 (ndr_print_function_t) ndr_print_spoolss_RouterFindFirstPrinterChangeNotification,
23250 "spoolss_SpoolerInit",
23251 sizeof(struct spoolss_SpoolerInit),
23252 (ndr_push_flags_fn_t) ndr_push_spoolss_SpoolerInit,
23253 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SpoolerInit,
23254 (ndr_print_function_t) ndr_print_spoolss_SpoolerInit,
23258 "spoolss_ResetPrinterEx",
23259 sizeof(struct spoolss_ResetPrinterEx),
23260 (ndr_push_flags_fn_t) ndr_push_spoolss_ResetPrinterEx,
23261 (ndr_pull_flags_fn_t) ndr_pull_spoolss_ResetPrinterEx,
23262 (ndr_print_function_t) ndr_print_spoolss_ResetPrinterEx,
23266 "spoolss_RemoteFindFirstPrinterChangeNotifyEx",
23267 sizeof(struct spoolss_RemoteFindFirstPrinterChangeNotifyEx),
23268 (ndr_push_flags_fn_t) ndr_push_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23269 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23270 (ndr_print_function_t) ndr_print_spoolss_RemoteFindFirstPrinterChangeNotifyEx,
23274 "spoolss_RouterReplyPrinterEx",
23275 sizeof(struct spoolss_RouterReplyPrinterEx),
23276 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterReplyPrinterEx,
23277 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterReplyPrinterEx,
23278 (ndr_print_function_t) ndr_print_spoolss_RouterReplyPrinterEx,
23282 "spoolss_RouterRefreshPrinterChangeNotify",
23283 sizeof(struct spoolss_RouterRefreshPrinterChangeNotify),
23284 (ndr_push_flags_fn_t) ndr_push_spoolss_RouterRefreshPrinterChangeNotify,
23285 (ndr_pull_flags_fn_t) ndr_pull_spoolss_RouterRefreshPrinterChangeNotify,
23286 (ndr_print_function_t) ndr_print_spoolss_RouterRefreshPrinterChangeNotify,
23291 sizeof(struct spoolss_44),
23292 (ndr_push_flags_fn_t) ndr_push_spoolss_44,
23293 (ndr_pull_flags_fn_t) ndr_pull_spoolss_44,
23294 (ndr_print_function_t) ndr_print_spoolss_44,
23298 "spoolss_OpenPrinterEx",
23299 sizeof(struct spoolss_OpenPrinterEx),
23300 (ndr_push_flags_fn_t) ndr_push_spoolss_OpenPrinterEx,
23301 (ndr_pull_flags_fn_t) ndr_pull_spoolss_OpenPrinterEx,
23302 (ndr_print_function_t) ndr_print_spoolss_OpenPrinterEx,
23306 "spoolss_AddPrinterEx",
23307 sizeof(struct spoolss_AddPrinterEx),
23308 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterEx,
23309 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterEx,
23310 (ndr_print_function_t) ndr_print_spoolss_AddPrinterEx,
23315 sizeof(struct spoolss_47),
23316 (ndr_push_flags_fn_t) ndr_push_spoolss_47,
23317 (ndr_pull_flags_fn_t) ndr_pull_spoolss_47,
23318 (ndr_print_function_t) ndr_print_spoolss_47,
23322 "spoolss_EnumPrinterData",
23323 sizeof(struct spoolss_EnumPrinterData),
23324 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterData,
23325 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterData,
23326 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterData,
23330 "spoolss_DeletePrinterData",
23331 sizeof(struct spoolss_DeletePrinterData),
23332 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterData,
23333 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterData,
23334 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterData,
23339 sizeof(struct spoolss_4a),
23340 (ndr_push_flags_fn_t) ndr_push_spoolss_4a,
23341 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4a,
23342 (ndr_print_function_t) ndr_print_spoolss_4a,
23347 sizeof(struct spoolss_4b),
23348 (ndr_push_flags_fn_t) ndr_push_spoolss_4b,
23349 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4b,
23350 (ndr_print_function_t) ndr_print_spoolss_4b,
23355 sizeof(struct spoolss_4c),
23356 (ndr_push_flags_fn_t) ndr_push_spoolss_4c,
23357 (ndr_pull_flags_fn_t) ndr_pull_spoolss_4c,
23358 (ndr_print_function_t) ndr_print_spoolss_4c,
23362 "spoolss_SetPrinterDataEx",
23363 sizeof(struct spoolss_SetPrinterDataEx),
23364 (ndr_push_flags_fn_t) ndr_push_spoolss_SetPrinterDataEx,
23365 (ndr_pull_flags_fn_t) ndr_pull_spoolss_SetPrinterDataEx,
23366 (ndr_print_function_t) ndr_print_spoolss_SetPrinterDataEx,
23370 "spoolss_GetPrinterDataEx",
23371 sizeof(struct spoolss_GetPrinterDataEx),
23372 (ndr_push_flags_fn_t) ndr_push_spoolss_GetPrinterDataEx,
23373 (ndr_pull_flags_fn_t) ndr_pull_spoolss_GetPrinterDataEx,
23374 (ndr_print_function_t) ndr_print_spoolss_GetPrinterDataEx,
23378 "spoolss_EnumPrinterDataEx",
23379 sizeof(struct spoolss_EnumPrinterDataEx),
23380 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterDataEx,
23381 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterDataEx,
23382 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterDataEx,
23386 "spoolss_EnumPrinterKey",
23387 sizeof(struct spoolss_EnumPrinterKey),
23388 (ndr_push_flags_fn_t) ndr_push_spoolss_EnumPrinterKey,
23389 (ndr_pull_flags_fn_t) ndr_pull_spoolss_EnumPrinterKey,
23390 (ndr_print_function_t) ndr_print_spoolss_EnumPrinterKey,
23394 "spoolss_DeletePrinterDataEx",
23395 sizeof(struct spoolss_DeletePrinterDataEx),
23396 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDataEx,
23397 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDataEx,
23398 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDataEx,
23402 "spoolss_DeletePrinterKey",
23403 sizeof(struct spoolss_DeletePrinterKey),
23404 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterKey,
23405 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterKey,
23406 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterKey,
23411 sizeof(struct spoolss_53),
23412 (ndr_push_flags_fn_t) ndr_push_spoolss_53,
23413 (ndr_pull_flags_fn_t) ndr_pull_spoolss_53,
23414 (ndr_print_function_t) ndr_print_spoolss_53,
23418 "spoolss_DeletePrinterDriverEx",
23419 sizeof(struct spoolss_DeletePrinterDriverEx),
23420 (ndr_push_flags_fn_t) ndr_push_spoolss_DeletePrinterDriverEx,
23421 (ndr_pull_flags_fn_t) ndr_pull_spoolss_DeletePrinterDriverEx,
23422 (ndr_print_function_t) ndr_print_spoolss_DeletePrinterDriverEx,
23427 sizeof(struct spoolss_55),
23428 (ndr_push_flags_fn_t) ndr_push_spoolss_55,
23429 (ndr_pull_flags_fn_t) ndr_pull_spoolss_55,
23430 (ndr_print_function_t) ndr_print_spoolss_55,
23435 sizeof(struct spoolss_56),
23436 (ndr_push_flags_fn_t) ndr_push_spoolss_56,
23437 (ndr_pull_flags_fn_t) ndr_pull_spoolss_56,
23438 (ndr_print_function_t) ndr_print_spoolss_56,
23443 sizeof(struct spoolss_57),
23444 (ndr_push_flags_fn_t) ndr_push_spoolss_57,
23445 (ndr_pull_flags_fn_t) ndr_pull_spoolss_57,
23446 (ndr_print_function_t) ndr_print_spoolss_57,
23451 sizeof(struct spoolss_XcvData),
23452 (ndr_push_flags_fn_t) ndr_push_spoolss_XcvData,
23453 (ndr_pull_flags_fn_t) ndr_pull_spoolss_XcvData,
23454 (ndr_print_function_t) ndr_print_spoolss_XcvData,
23458 "spoolss_AddPrinterDriverEx",
23459 sizeof(struct spoolss_AddPrinterDriverEx),
23460 (ndr_push_flags_fn_t) ndr_push_spoolss_AddPrinterDriverEx,
23461 (ndr_pull_flags_fn_t) ndr_pull_spoolss_AddPrinterDriverEx,
23462 (ndr_print_function_t) ndr_print_spoolss_AddPrinterDriverEx,
23467 sizeof(struct spoolss_5a),
23468 (ndr_push_flags_fn_t) ndr_push_spoolss_5a,
23469 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5a,
23470 (ndr_print_function_t) ndr_print_spoolss_5a,
23475 sizeof(struct spoolss_5b),
23476 (ndr_push_flags_fn_t) ndr_push_spoolss_5b,
23477 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5b,
23478 (ndr_print_function_t) ndr_print_spoolss_5b,
23483 sizeof(struct spoolss_5c),
23484 (ndr_push_flags_fn_t) ndr_push_spoolss_5c,
23485 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5c,
23486 (ndr_print_function_t) ndr_print_spoolss_5c,
23491 sizeof(struct spoolss_5d),
23492 (ndr_push_flags_fn_t) ndr_push_spoolss_5d,
23493 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5d,
23494 (ndr_print_function_t) ndr_print_spoolss_5d,
23499 sizeof(struct spoolss_5e),
23500 (ndr_push_flags_fn_t) ndr_push_spoolss_5e,
23501 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5e,
23502 (ndr_print_function_t) ndr_print_spoolss_5e,
23507 sizeof(struct spoolss_5f),
23508 (ndr_push_flags_fn_t) ndr_push_spoolss_5f,
23509 (ndr_pull_flags_fn_t) ndr_pull_spoolss_5f,
23510 (ndr_print_function_t) ndr_print_spoolss_5f,
23513 { NULL, 0, NULL, NULL, NULL, false }
23516 static const char * const spoolss_endpoint_strings[] = {
23517 "ncacn_np:[\\pipe\\spoolss]",
23520 static const struct ndr_interface_string_array spoolss_endpoints = {
23522 .names = spoolss_endpoint_strings
23525 static const char * const spoolss_authservice_strings[] = {
23529 static const struct ndr_interface_string_array spoolss_authservices = {
23531 .names = spoolss_authservice_strings
23535 const struct ndr_interface_table ndr_table_spoolss = {
23538 {0x12345678,0x1234,0xabcd,{0xef,0x00},{0x01,0x23,0x45,0x67,0x89,0xab}},
23539 NDR_SPOOLSS_VERSION
23541 .helpstring = NDR_SPOOLSS_HELPSTRING,
23543 .calls = spoolss_calls,
23544 .endpoints = &spoolss_endpoints,
23545 .authservices = &spoolss_authservices